#include #include #include #include #include #include "message_handler.h" #include "plugins/interfaces.h" #include #include #include #include #include #include #include #include "update.h" #include "worker_thread.h" #include "worker.h" #include #ifdef PTU5 #define SERIAL_PORT "ttymxc2" #else #define SERIAL_PORT "ttyUSB0" #endif static void doWork(QString update_ctrl_file, QString workingDir) { std::this_thread::sleep_for(std::chrono::milliseconds(2000)); //Update update(update_ctrl_file, workingDir); //update.doUpdate(); std::this_thread::sleep_for(std::chrono::milliseconds(2000)); QCoreApplication::quit(); } // argv[1]: file to send to dc int main(int argc, char *argv[]) { QApplication a(argc, argv); if (!messageHandlerInstalled()) { // change internal qt-QDebug-handling atbInstallMessageHandler(atbDebugOutput); setDebugLevel(QtMsgType::QtDebugMsg); //setDebugLevel(QtMsgType::QtDebugMsg); } QByteArray const value = qgetenv("XDG_RUNTIME_DIR"); if (value.size() == 0) { qputenv("XDG_RUNTIME_DIR", "/run/user/0"); } QString rtPath = QCoreApplication::applicationDirPath(); QString plugInDir(rtPath +(rtPath.endsWith("/") ? "" : "/") + "plugins"); if (!QDir(plugInDir).exists()) { qCritical() << plugInDir << "does not exists, but has to contain dc-library"; exit(-1); } qInfo() << "pwd" << "=" << rtPath; qInfo() << "plugInDir" << "=" << plugInDir; hwinf *hw = Update::loadDCPlugin(QDir(plugInDir), "libCAmaster.so"); QString const update_ctrl_file = "/opt/app/tools/atbupdate/update_log.csv"; QString const workingDir = (argc == 2) ? argv[1] : "."; Update update(hw, update_ctrl_file, workingDir); return 0; std::thread t(doWork, update_ctrl_file, workingDir); int ret = a.exec(); t.join(); return ret; }