From 6b2830ee83dded3de454714619427ce56b7219b3 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Sat, 2 Dec 2023 09:46:18 +0100 Subject: [PATCH] start download thread in cycleSend() when reuested --- src/datIf.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/datIf.cpp b/src/datIf.cpp index 8b7b71e..b071962 100644 --- a/src/datIf.cpp +++ b/src/datIf.cpp @@ -2,6 +2,9 @@ #include "sendWRcmd.h" #include "controlBus.h" #include "storeINdata.h" +#include "download_thread.h" +#include "hwapi.h" + #include #include #include @@ -47,8 +50,10 @@ static uint8_t datif_pNextCmd, datif_sendSlowCmd; //#define DATIF_CTR_GOTRESPVAL 100 -T_datif::T_datif(QObject *parent) : QObject(parent) +T_datif::T_datif(hwinf *hw, QObject *parent) : QObject(parent) { + m_hw = hw; + QByteArray myBA; QDir myDir("../dmd"); @@ -198,8 +203,21 @@ char T_datif::datif_cycleSend() return 0; } + if (m_hw->dcDownloadRequested()) { // only happens in ca-master + m_hw->dcDownloadResetRequest(); + // start download-thread. + m_downloadThread = new DownloadThread(m_hw); + m_downloadThread->start(); + int cnt = 10; + while (--cnt > 0 && !m_downloadThread->isRunning()) { + QThread::msleep(100); + } + if (cnt <= 0) { + qCritical() << "DOWNLOAD-THREAD NOT RUNNING WITHIN 1000ms"; + } + } // 17.7.2023: repeat commands if result was !=OK ------------------------------------------------------------------- if (datif_cmdWasPerformed==2 && doRepeat) // Cmd was not or false performed und Wiederholen erwuenscht