ATBUpdateTool/main.cpp

69 lines
1.7 KiB
C++
Raw Normal View History

2023-04-05 14:43:27 +02:00
#include <QCoreApplication>
#include <QApplication>
#include <QDebug>
#include <QTimer>
2023-04-13 11:22:32 +02:00
#include <QFileInfo>
2023-04-05 14:43:27 +02:00
#include "message_handler.h"
2023-05-19 15:33:40 +02:00
#include "interfaces.h"
#include "DCPlugin/include/hwapi.h"
2023-04-05 14:43:27 +02:00
#include <unistd.h>
#include <thread>
#include <memory>
2023-04-14 09:06:45 +02:00
#include <QSharedMemory>
2023-05-19 15:33:40 +02:00
#include <QRunnable>
#include <QThreadPool>
2023-05-26 13:02:45 +02:00
#include <QDir>
2023-05-19 15:33:40 +02:00
2023-05-22 16:04:50 +02:00
#include "update.h"
#ifdef PTU5
#define SERIAL_PORT "ttymxc2"
#else
#define SERIAL_PORT "ttyUSB0"
#endif
2023-05-19 15:33:40 +02:00
class Work : public QRunnable {
2023-05-22 16:04:50 +02:00
QString m_update_ctrl_file;
2023-05-26 13:02:45 +02:00
QString m_workingDir;
2023-05-19 15:33:40 +02:00
public:
2023-05-26 13:02:45 +02:00
explicit Work(QString update_ctrl_file, QString workingDir)
: m_update_ctrl_file(update_ctrl_file)
, m_workingDir(workingDir) {
}
2023-05-19 15:33:40 +02:00
void run() {
2023-05-26 13:02:45 +02:00
Update m_update(m_update_ctrl_file, m_workingDir);
// if (m_update.doUpdate()) {
// }
2023-04-05 14:43:27 +02:00
}
2023-05-19 15:33:40 +02:00
};
2023-04-05 14:43:27 +02:00
// argv[1]: file to send to dc
int main(int argc, char *argv[]) {
2023-04-05 14:43:27 +02:00
QApplication a(argc, argv);
if (!messageHandlerInstalled()) { // change internal qt-QDebug-handling
atbInstallMessageHandler(atbDebugOutput);
setDebugLevel(QtMsgType::QtDebugMsg);
//setDebugLevel(QtMsgType::QtDebugMsg);
}
2023-05-26 13:02:45 +02:00
QByteArray const value = qgetenv("XDG_RUNTIME_DIR");
if (value.size() == 0) {
qputenv("XDG_RUNTIME_DIR", "/run/user/0");
2023-04-13 11:22:32 +02:00
}
2023-05-26 13:02:45 +02:00
QString const update_ctrl_file = "/opt/app/tools/atbupdate/update_log.csv";
QString const workingDir = (argc == 2) ? argv[1] : ".";
Work work(update_ctrl_file, workingDir);
2023-05-19 15:33:40 +02:00
work.setAutoDelete(false);
QThreadPool *threadPool = QThreadPool::globalInstance();
threadPool->start(&work);
2023-05-22 16:04:50 +02:00
if (!threadPool->waitForDone()) {
return -1;
}
return 0;
2023-04-05 14:43:27 +02:00
}