diff --git a/DownloadDCFirmware/update.cpp b/DownloadDCFirmware/update.cpp index 2e7af00..1a22343 100644 --- a/DownloadDCFirmware/update.cpp +++ b/DownloadDCFirmware/update.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include #define UPDATE_OPKG (1) #define UPDATE_DC (0) @@ -147,6 +149,35 @@ Update::~Update() { unloadDCPlugin(); } +bool Update::openSerialPort() { + // const SettingsDialog::Settings p = m_settings->settings(); + m_serial->setPortName(SERIAL_PORT); + m_serial->setBaudRate(QSerialPort::Baud115200); + m_serial->setDataBits(QSerialPort::DataBits::Data8); + m_serial->setParity(QSerialPort::Parity::NoParity); + m_serial->setStopBits(QSerialPort::StopBits::OneStop); + m_serial->setFlowControl(QSerialPort::FlowControl::NoFlowControl); + if (m_serial->open(QIODevice::ReadWrite)) { + //showStatusMessage(tr("Connected to %1 : %2, %3, %4, %5, %6") + // .arg(p.name, p.stringBaudRate, p.stringDataBits, + // p.stringParity, p.stringStopBits, p.stringFlowControl)); + return true; + } else { + //QMessageBox::critical(this, tr("Error"), m_serial->errorString()); + //showStatusMessage(tr("Open error")); + } + return false; +} + +bool Update::closeSerialPort() { + if (m_serial->isOpen()) { + m_serial->close(); + return true; + } + return false; + //showStatusMessage(tr("Disconnected")); +} + Update::DownloadResult Update::sendStatus(int ret) const { switch (ret) { // return values of dc are: case 0: // 0: no answer by now diff --git a/DownloadDCFirmware/update.h b/DownloadDCFirmware/update.h index 96ac8a7..278052a 100644 --- a/DownloadDCFirmware/update.h +++ b/DownloadDCFirmware/update.h @@ -21,6 +21,7 @@ #define SERIAL_PORT "ttyUSB0" #endif +class QSerialPort; class Update : public QObject { Q_OBJECT @@ -46,6 +47,12 @@ class Update : public QObject { return QStringLiteral("+%1s").arg(secs, 7, 'f', 2, QChar('0')); } + + bool openSerialPort(); + bool closeSerialPort(); + + QSerialPort *m_serial; + public: enum class DownloadResult {OK, ERROR, TIMEOUT, NOP}; enum class FileTypeJson {CONFIG=1, DEVICE=2, CASH=3, SERIAL=4, TIME=5, PRINTER=6};