#include "ads_pluginloader.h" //#include "ads_driver1553.h" #include "avb_driver.h" //#include #include #include #include #include #include #include #include #include #include //Q_IMPORT_PLUGIN(adsDriver1553DdcSim) //Q_IMPORT_PLUGIN(DummyDriver1553) class IAvbDriver; //Ads_driver1553* AdsDriver1553_DummyDriver(); #if 0 static Ads_driver1553* tryLoad(const QString& /*driver_name*/, int /*x=0*/) //QPluginLoader& ploader) { QPluginLoader& ploader; bool loaded=false; if (false) { QFileInfo fname(driver_name); QString fixed_name=driver_name; QDir pluginsDir = QDir(QCoreApplication::applicationDirPath()); QString dir_name=pluginsDir.dirName(); bool is_develop=(dir_name.toLower()) == "debug" || (dir_name == "release"); if (is_develop) { pluginsDir.cd("../.."); pluginsDir.cd(fname.completeBaseName()); pluginsDir.cd(dir_name); fixed_name=pluginsDir.absoluteFilePath(fname.fileName()); } if (fname.suffix()!="dll") { fixed_name+=".dll"; } ploader.setFileName(pluginsDir.absoluteFilePath(fixed_name)); loaded=ploader.load(); if (!loaded) return 0; Ads_driver1553* d=qobject_cast(ploader.instance()); return d; } else { Ads_driver1553* d=AdsDriver1553_DummyDriver(); return d; } Ads_driver1553* d=AdsDriver1553_DummyDriver(); return d; } #endif class AvbClientConcrete: public IAvbDriverClient { public: virtual void logError(const char* fmt, ...) { va_list args; va_start(args, fmt); qWarning()<createDriver(settings); //return RexAvdDriveCreate(); QString driver_name=requested_name; QString ovr_ha=settings->value("SystemConfig/udp1553_network", QString()).toString(); QHostAddress ha; QHostAddress* pha=0; if (!ovr_ha.isEmpty()) { ovr_ha.remove(QChar('"')); ha=QHostAddress(ovr_ha); qDebug()<<"****udp1553_network="<")); Ads_driver1553* obj=0; if (!avb_simulator) { for(;obj==0;) { obj=tryLoad(driver_name, ploader); if (!obj) { QMessageBox::StandardButton res=QMessageBox::information(0, "1553 Driver load error", QString("%1\n\nDo you want to retry with the simulator?").arg(ploader.errorString()), QMessageBox::Yes|QMessageBox::Abort|QMessageBox::Retry); if (res==QMessageBox::Retry) { QString fileName = QFileDialog::getOpenFileName(0, "Open 1553 driver", QString(), "Driver file (*.dll)"); if (!fileName.isNull() && !fileName.isEmpty()) driver_name=fileName; } else if (res==QMessageBox::Yes) break; else return 0; } qDebug()<<"DRIVER1553: loaded "<(o); if (obj) { qDebug()<<"DRIVER1553: using built-in simulator"; break; } } } if (!obj) { QMessageBox::critical(0, "1553 Driver load error", ploader.errorString()); return 0; } IAvbDriver* d=obj->createDriver(settings); return d; #endif }