#include #include #include #include #include "gfativaflash.h" #define _TEST_VERBOSITY(v, n) (((v) == -1) && ((n) <= 2)) || (((v) >= 0) && ((v) >= (n))) ///////////////////////////////////////////////////////////////////////////// TivaFlash::TivaFlash(QObject *pParent) : QObject(pParent), m_nExitCode(0), m_slvIdIsNodeAddr(false), m_verbosity(-1), m_bExecuting(false), m_xBaudRate(0), m_curSlvID(0), m_appAddress(0), m_blockSize(0), m_pageEraseTime(0), m_mbCtrlRegister(0), m_forceAllParities(false), m_imgSizeFile(0), m_imgCRC32File(0.0), m_imgUpldProg(this), m_qProcess(this) { setObjectName("TivaFlash"); for(int i = 0; i < _MAX_SLAVE_COUNT; i++) { m_materialEeprom.append(""); m_serialEeprom.append(""); m_imgSizeBoot.append(0); m_imgCRC32Boot.append(0.0); m_imgMaterialBoot.append(""); m_imgBuildBoot.append(""); m_imgSizeApp.append(0); m_imgCRC32App.append(0.0); m_imgMaterialApp.append(""); m_imgBuildApp.append(""); } connect(&m_qProcess, SIGNAL(started()), SLOT(onProcessStarted())); connect(&m_qProcess, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(onProcessFinished(int, QProcess::ExitStatus))); connect(&m_qProcess, SIGNAL(readyReadStandardOutput()), SLOT(onProcessReadyReadStandardOutput())); connect(&m_qProcess, SIGNAL(stateChanged(QProcess::ProcessState)), SLOT(onProcessStateChanged(QProcess::ProcessState))); m_qProcess.setProcessChannelMode(QProcess::MergedChannels); } TivaFlash::~TivaFlash(void) { } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::onProcessStarted(void) { setExecuting(true); emit processStarted(m_curSlvID); } void TivaFlash::onProcessFinished(int exitCode, QProcess::ExitStatus exitStatus) { setExecuting(false); emit processFinished(m_curSlvID, exitCode, exitStatus == QProcess::ExitStatus::NormalExit); } void TivaFlash::onProcessReadyReadStandardOutput(void) { char szLine[256]; while(m_qProcess.readLine(szLine, sizeof(szLine)) > 0) { onCmdOutput(m_curSlvID, szLine); } } void TivaFlash::onProcessStateChanged(QProcess::ProcessState newState) { setExecuting(newState != QProcess::ProcessState::NotRunning); } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getSlavIDs(int nSlvID, int nMbID, QStringList &rargs) const { std::string ret; if(m_slvIdIsNodeAddr) rargs << QString::asprintf("--node-addr=%d", nSlvID); else rargs << QString::asprintf("--stat-num=%d", nSlvID); if(_IS_VALID_MB_ID(nMbID)) { rargs << QString::asprintf("--mb-slave-id=%d", nMbID); if(m_mbCtrlRegister > 0) rargs << QString::asprintf("--mb-bl-ctrl-reg=%d", m_mbCtrlRegister); } } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getXBaud(QStringList &rargs) const { if(m_xBaudRate > 0) { rargs << QString::asprintf("--x-baud-rate=%d", m_xBaudRate); } } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getAppAddr(QStringList &rargs) const { if(m_appAddress > 0) { rargs << QString::asprintf("--app-addr=0x%X", m_appAddress); } } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getBlockSize(QStringList &rargs) const { if(m_blockSize > 0) { rargs << QString::asprintf("--block-size=%d", m_blockSize); } } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getPageEraseTime(QStringList &rargs) const { if(m_pageEraseTime > 0) { rargs << QString::asprintf("--page-erase-time=%d", m_pageEraseTime); } } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::getForceAllParities(QStringList &rargs) const { if(m_forceAllParities) { rargs << QString::asprintf("--force-all-par"); } } ///////////////////////////////////////////////////////////////////////////// int TivaFlash::parseTaggedString(const char *pszIn, std::string &sOut) const { static const std::string strRegEx = "<([0-9]+)>(.+)<\\/\\1>"; static std::regex reg(strRegEx, std::regex_constants::ECMAScript | std::regex_constants::optimize); std::cmatch res; if(pszIn && *pszIn) { try { if(regex_search(pszIn, res, reg)) { size_t nSize = res.size(); if(nSize == 3) { std::string strTagName = res[1].str(); sOut = res[2].str(); return atoi(strTagName.c_str()); } } } catch(...) { } } return -1; } ///////////////////////////////////////////////////////////////////////////// int TivaFlash::parseTaggedValues(const char *pszIn, int &rnVal1, int &rnVal2) const { static const std::string strRegEx = "([0-9]+)\\|([0-9]+)"; static std::regex reg(strRegEx, std::regex_constants::ECMAScript | std::regex_constants::optimize); std::cmatch res; if(pszIn && *pszIn) { try { if(regex_search(pszIn, res, reg)) { size_t nSize = res.size(); if(nSize == 3) { rnVal1 = atoi(res[1].str().c_str()); rnVal2 = atoi(res[2].str().c_str()); return nSize - 1; } } } catch(...) { } } return -1; } ///////////////////////////////////////////////////////////////////////////// void TivaFlash::onCmdOutput(int nSlvID, const char *pszOut) { std::string s; int nTag = parseTaggedString(pszOut, s); int nVal1, nVal2; if(nTag >= 0) { QString qs = QString::fromStdString(s); switch(nTag) { ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_EXIT_CODE: m_nExitCode = qs.toInt(); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_STATUS: if(_TEST_VERBOSITY(m_verbosity, PLUGIN_TAG_STATUS)) emit processOutput(nSlvID, nTag, qs); break; case PLUGIN_TAG_INFO: if(_TEST_VERBOSITY(m_verbosity, PLUGIN_TAG_INFO)) emit processOutput(nSlvID, nTag, qs); break; case PLUGIN_TAG_ERROR: if(_TEST_VERBOSITY(m_verbosity, PLUGIN_TAG_ERROR)) emit processOutput(nSlvID, nTag, qs); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_IMG_MATERIAL_EEPROM: setMaterialEeprom(nSlvID, qs); break; case PLUGIN_TAG_IMG_SERIAL_EEPROM: setSerialEeprom(nSlvID, qs); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_IMG_LENGTH_BOOT: setImgSizeBoot(nSlvID, qs.toUInt()); break; case PLUGIN_TAG_IMG_CRC32_BOOT: setImgCRC32Boot(nSlvID, qs.toDouble()); break; case PLUGIN_TAG_IMG_BUILD_BOOT: setImgBuildBoot(nSlvID, qs); break; case PLUGIN_TAG_IMG_MATERIAL_BOOT: setImgMaterialBoot(nSlvID, qs); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_IMG_LENGTH_APP: setImgSizeApp(nSlvID, qs.toUInt()); break; case PLUGIN_TAG_IMG_CRC32_APP: setImgCRC32App(nSlvID, qs.toDouble()); break; case PLUGIN_TAG_IMG_MATERIAL_APP: setImgBuildApp(nSlvID, qs); break; case PLUGIN_TAG_IMG_BUILD_APP: setImgMaterialApp(nSlvID, qs); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_IMG_LENGTH_FILE: setImgSizeFile(qs.toUInt()); break; case PLUGIN_TAG_IMG_CRC32_FILE: setImgCRC32File(qs.toDouble()); break; case PLUGIN_TAG_IMG_MATERIAL_FILE: setImgMaterialFile(qs); break; case PLUGIN_TAG_IMG_BUILD_FILE: setImgBuildFile(qs); break; ///////////////////////////////////////////////////////////////////// case PLUGIN_TAG_UPLOAD_START_ERASE_FLASH: m_imgUpldProg.clear(); m_imgUpldProg.setCtx(ImgUploadStatus::EraseFlashStart); if(parseTaggedValues(s.c_str(), nVal1, nVal2) == 2) { m_imgUpldProg.setUploadInProgress(true); m_imgUpldProg.setCntFlashPages(nVal1); m_imgUpldProg.setCbTotal(nVal2); emit imgUploadProgress(&m_imgUpldProg); } break; case PLUGIN_TAG_UPLOAD_END_ERASE_FLASH: m_imgUpldProg.setCtx(ImgUploadStatus::EraseFlashEnd); emit imgUploadProgress(&m_imgUpldProg); break; case PLUGIN_TAG_UPLOAD_BLOCKS_START: m_imgUpldProg.setCtx(ImgUploadStatus::ImgUploadStart); m_imgUpldProg.setCbBlock(qs.toInt()); emit imgUploadProgress(&m_imgUpldProg); break; case PLUGIN_TAG_UPLOAD_BLOCK: m_imgUpldProg.setCtx(ImgUploadStatus::ImgUploadBlock); if(parseTaggedValues(s.c_str(), nVal1, nVal2) == 2) { int nCbTotal = m_imgUpldProg.cbTotal(); int nCbSent = nVal1; m_imgUpldProg.setCbSent(nCbSent); if(nCbTotal) m_imgUpldProg.setPercentSent(nCbSent * 100 / nCbTotal); m_imgUpldProg.SetBlockNr(nVal2); emit imgUploadProgress(&m_imgUpldProg); } break; case PLUGIN_TAG_UPLOAD_BLOCKS_END: m_imgUpldProg.setCtx(ImgUploadStatus::ImgUploadSuccess); m_imgUpldProg.setErrorCode(0); m_imgUpldProg.setUploadInProgress(false); emit imgUploadProgress(&m_imgUpldProg); break; case PLUGIN_TAG_UPLOAD_ERROR: m_imgUpldProg.setCtx(ImgUploadStatus::ImgUploadError); m_imgUpldProg.setErrorCode(qs.toInt()); m_imgUpldProg.setUploadInProgress(false); emit imgUploadProgress(&m_imgUpldProg); break; } } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // command methods // getMatSer bool TivaFlash::getMatSer(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; setMaterialEeprom(nSlvID, ""); setSerialEeprom(nSlvID, ""); QStringList args; args << "--show-mat-ser"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // getTargetImgInfo bool TivaFlash::getTargetImgInfo(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; setImgSizeBoot(nSlvID, 0); setImgCRC32Boot(nSlvID, 0.0); setImgMaterialBoot(nSlvID, ""); setImgBuildBoot(nSlvID, ""); setImgSizeApp(nSlvID, 0); setImgCRC32App(nSlvID, 0.0); setImgMaterialApp(nSlvID, ""); setImgBuildApp(nSlvID, ""); QStringList args; args << "--show-dev-img-info"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getXBaud(args); getAppAddr(args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // getFileImgInfo bool TivaFlash::getFileImgInfo(void) { if(m_bExecuting) return false; m_curSlvID = 0; setImgSizeFile(0); setImgCRC32File(0.0); setImgMaterialFile(""); setImgBuildFile(""); QStringList args; args << "--show-file-img-info"; args << "--plugin-mode"; args << QString::fromStdString(m_imgFile); m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // pingTarget bool TivaFlash::pingTarget(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; QStringList args; args << "--ping-target"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // startBootloader bool TivaFlash::startBootloader(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; QStringList args; args << "--start-boot"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // resetBootloader bool TivaFlash::resetBootloader(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; QStringList args; args << "--reset-boot"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // validateImgFile bool TivaFlash::validateImgFile(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; QStringList args; args << "--validate-img"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getAppAddr(args); getForceAllParities(args); args << "--plugin-mode"; args << QString::fromStdString(m_imgFile); m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // uploadImgFile bool TivaFlash::uploadImgFile(int nSlvID, int nMbID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; m_imgUpldProg.clear(); QStringList args; args << "--upload-img"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, nMbID, args); getXBaud(args); getAppAddr(args); getBlockSize(args); getPageEraseTime(args); getForceAllParities(args); args << "--plugin-mode"; args << QString::fromStdString(m_imgFile); m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // reviveBootloader bool TivaFlash::reviveBootloader(int nSlvID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; m_curSlvID = nSlvID; QStringList args; args << "--revive-boot"; args << QString::asprintf("--itf-name=%s", m_itfName.c_str()); getSlavIDs(nSlvID, 0, args); getForceAllParities(args); args << "--plugin-mode"; m_qProcess.start(QString::fromStdString(m_tivaFlashUtilPath), args, QIODevice::ReadOnly); return true; } ///////////////////////////////////////////////////////////////////////////// // clearImgInfo bool TivaFlash::clearImgInfo(int nSlvID) { if(m_bExecuting) return false; if(!_IS_VALID_SLV_ID(nSlvID)) return false; setImgSizeFile(0); setImgCRC32File(0); setImgMaterialFile(0); setImgBuildFile(0); if(nSlvID > 0) { setMaterialEeprom(nSlvID, ""); setSerialEeprom(nSlvID, ""); setImgSizeBoot(nSlvID, 0); setImgCRC32Boot(nSlvID, 0); setImgMaterialBoot(nSlvID, ""); setImgBuildBoot(nSlvID, ""); setImgSizeApp(nSlvID, 0); setImgCRC32App(nSlvID, 0); setImgMaterialApp(nSlvID, ""); setImgBuildApp(nSlvID, ""); } else { for(int i = 0; i < _MAX_SLAVE_COUNT; ++i) { setMaterialEeprom(i, ""); setSerialEeprom(i, ""); setImgSizeBoot(i, 0); setImgCRC32Boot(i, 0); setImgMaterialBoot(i, ""); setImgBuildBoot(i, ""); setImgSizeApp(i, 0); setImgCRC32App(i, 0); setImgMaterialApp(i, ""); setImgBuildApp(i, ""); } } return true; } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // properties // tivaFlashUtilPath QString TivaFlash::tivaFlashUtilPath(void) const { return QString::fromStdString(m_tivaFlashUtilPath); } void TivaFlash::setTivaFlashUtilPath(const QString &val) { m_tivaFlashUtilPath = val.toStdString(); } ///////////////////////////////////////////////////////////////////////////// // itfName QString TivaFlash::itfName(void) const { return QString::fromStdString(m_itfName); } void TivaFlash::setItfName(const QString &val) { m_itfName = val.toStdString(); } ///////////////////////////////////////////////////////////////////////////// // slvIdIsNodeAddr bool TivaFlash::slvIdIsNodeAddr(void) const { return m_slvIdIsNodeAddr; } void TivaFlash::setSlvIdIsNodeAddr(bool val) { if(m_slvIdIsNodeAddr != val) { m_slvIdIsNodeAddr = val; } } ///////////////////////////////////////////////////////////////////////////// // verbosity int TivaFlash::verbosity(void) const { return m_verbosity; } void TivaFlash::setVerbosity(int val) { if(val < 0) val = 0; else if(val > 3) val = 3; if(m_verbosity != val) { m_verbosity = val; } } ///////////////////////////////////////////////////////////////////////////// // imgFile QString TivaFlash::imgFile(void) const { return QString::fromStdString(m_imgFile); } void TivaFlash::setImgFile(const QString &val) { m_imgFile = val.toStdString(); } ///////////////////////////////////////////////////////////////////////////// // executing bool TivaFlash::executing(void) const { return m_bExecuting; } void TivaFlash::setExecuting(bool val) { if(m_bExecuting != val) { m_bExecuting = val; emit executingChanged(m_bExecuting); } } ///////////////////////////////////////////////////////////////////////////// // xBaudRate int TivaFlash::xBaudRate(void) const { return m_xBaudRate; } void TivaFlash::setXBaudRate(int val) { if(m_xBaudRate != val) { m_xBaudRate = val; } } ///////////////////////////////////////////////////////////////////////////// // appAddress int TivaFlash::appAddress(void) const { return m_appAddress; } void TivaFlash::setAppAddress(int val) { if(m_appAddress != val) { m_appAddress = val; } } ///////////////////////////////////////////////////////////////////////////// // blockSize int TivaFlash::blockSize(void) const { return m_blockSize; } void TivaFlash::setBlockSize(int val) { if(m_blockSize != val) { m_blockSize = val; } } ///////////////////////////////////////////////////////////////////////////// // pageEraseTime int TivaFlash::pageEraseTime(void) const { return m_pageEraseTime; } void TivaFlash::setPageEraseTime(int val) { if(m_pageEraseTime != val) { m_pageEraseTime = val; } } ///////////////////////////////////////////////////////////////////////////// // mbCtrlRegister int TivaFlash::mbCtrlRegister(void) const { return m_mbCtrlRegister; } void TivaFlash::setMbCtrlRegister(int val) { if(m_mbCtrlRegister != val) { m_mbCtrlRegister = val; } } ///////////////////////////////////////////////////////////////////////////// // forceAllParities bool TivaFlash::forceAllParities(void) const { return m_forceAllParities; } void TivaFlash::setForceAllParities(bool val) { if(m_forceAllParities != val) { m_forceAllParities = val; } } ///////////////////////////////////////////////////////////////////////////// // imgUploadStatus ImgUploadStatus* TivaFlash::imgUploadStatus(void) { return &m_imgUpldProg; } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // materialEeprom const QStringList& TivaFlash::materialEeprom(void) const { return m_materialEeprom; } void TivaFlash::setMaterialEeprom(int nSlvID, const QString &val) { if(m_materialEeprom[nSlvID] != val) { m_materialEeprom[nSlvID] = val; emit materialEepromChanged(); } } ///////////////////////////////////////////////////////////////////////////// // serialEeprom const QStringList& TivaFlash::serialEeprom(void) const { return m_serialEeprom; } void TivaFlash::setSerialEeprom(int nSlvID, const QString &val) { if(m_serialEeprom[nSlvID] != val) { m_serialEeprom[nSlvID] = val; emit serialEepromChanged(); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // imgSizeBoot const QList& TivaFlash::imgSizeBoot(void) const { return m_imgSizeBoot; } void TivaFlash::setImgSizeBoot(int nSlvID, int val) { if(m_imgSizeBoot[nSlvID] != val) { m_imgSizeBoot[nSlvID] = val; emit imgSizeBootChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgCRC32Boot const QList& TivaFlash::imgCRC32Boot(void) const { return m_imgCRC32Boot; } void TivaFlash::setImgCRC32Boot(int nSlvID, double val) { if(m_imgCRC32Boot[nSlvID] != val) { m_imgCRC32Boot[nSlvID] = val; emit imgCRC32BootChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgMaterialBoot const QStringList& TivaFlash::imgMaterialBoot(void) const { return m_imgMaterialBoot; } void TivaFlash::setImgMaterialBoot(int nSlvID, const QString &val) { if(m_imgMaterialBoot[nSlvID] != val) { m_imgMaterialBoot[nSlvID] = val; emit imgMaterialBootChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgBuildBoot const QStringList& TivaFlash::imgBuildBoot(void) const { return m_imgBuildBoot; } void TivaFlash::setImgBuildBoot(int nSlvID, const QString &val) { if(m_imgBuildBoot[nSlvID] != val) { m_imgBuildBoot[nSlvID] = val; emit imgBuildBootChanged(); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // imgSizeApp const QList& TivaFlash::imgSizeApp(void) const { return m_imgSizeApp; } void TivaFlash::setImgSizeApp(int nSlvID, int val) { if(m_imgSizeApp[nSlvID] != val) { m_imgSizeApp[nSlvID] = val; emit imgSizeAppChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgCRC32App const QList& TivaFlash::imgCRC32App(void) const { return m_imgCRC32App; } void TivaFlash::setImgCRC32App(int nSlvID, double val) { if(m_imgCRC32App[nSlvID] != val) { m_imgCRC32App[nSlvID] = val; emit imgCRC32AppChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgMaterialApp const QStringList& TivaFlash::imgMaterialApp(void) const { return m_imgMaterialApp; } void TivaFlash::setImgMaterialApp(int nSlvID, const QString &val) { if(m_imgMaterialApp[nSlvID] != val) { m_imgMaterialApp[nSlvID] = val; emit imgMaterialAppChanged(); } } ///////////////////////////////////////////////////////////////////////////// // imgBuildApp const QStringList& TivaFlash::imgBuildApp(void) const { return m_imgBuildApp; } void TivaFlash::setImgBuildApp(int nSlvID, const QString &val) { if(m_imgBuildApp[nSlvID] != val) { m_imgBuildApp[nSlvID] = val; emit imgBuildAppChanged(); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // imgSizeFile int TivaFlash::imgSizeFile(void) const { return m_imgSizeFile; } void TivaFlash::setImgSizeFile(int val) { if(m_imgSizeFile != val) { m_imgSizeFile = val; emit imgSizeFileChanged(m_imgSizeFile); } } ///////////////////////////////////////////////////////////////////////////// // imgCRC32File double TivaFlash::imgCRC32File(void) const { return m_imgCRC32File; } void TivaFlash::setImgCRC32File(double val) { if(m_imgCRC32File != val) { m_imgCRC32File = val; emit imgCRC32FileChanged(m_imgCRC32File); } } ///////////////////////////////////////////////////////////////////////////// // imgMaterialFile const QString& TivaFlash::imgMaterialFile(void) const { return m_imgMaterialFile; } void TivaFlash::setImgMaterialFile(const QString &val) { if(m_imgMaterialFile != val) { m_imgMaterialFile = val; emit materialFileChanged(m_imgMaterialFile); } } ///////////////////////////////////////////////////////////////////////////// // imgBuildFile const QString& TivaFlash::imgBuildFile(void) const { return m_imgBuildFile; } void TivaFlash::setImgBuildFile(const QString &val) { if(m_imgBuildFile != val) { m_imgBuildFile = val; emit imgBuildFileChanged(m_imgBuildFile); } } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ImgUploadStatus::ImgUploadStatus(QObject *pParent) : QObject(pParent) { setObjectName("ImgUploadStatus"); clear(); } ImgUploadStatus::~ImgUploadStatus(void) { } ///////////////////////////////////////////////////////////////////////////// void ImgUploadStatus::clear(void) { m_nCtx = 0; m_nErrorCode = 0; m_nCbBlock = 0; m_nBlockNr = 0; m_nCbTotal = 0; m_nCbSent = 0; m_nPercentSent = 0; m_nCntFlashPages = 0; m_bUploadInProgress = false; } ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // properties // ctx int ImgUploadStatus::ctx(void) const { return m_nCtx; } void ImgUploadStatus::setCtx(int val) { if(m_nCtx != val) { m_nCtx = val; emit ctxChanged(m_nCtx); } } ///////////////////////////////////////////////////////////////////////////// // errorCode int ImgUploadStatus::errorCode(void) const { return m_nErrorCode; } void ImgUploadStatus::setErrorCode(int val) { if(m_nErrorCode != val) { m_nErrorCode = val; emit errorCodeChanged(m_nErrorCode); } } ///////////////////////////////////////////////////////////////////////////// // cbBlock int ImgUploadStatus::cbBlock(void) const { return m_nCbBlock; } void ImgUploadStatus::setCbBlock(int val) { if(m_nCbBlock != val) { m_nCbBlock = val; emit cbBlockChanged(m_nCbBlock); } } ///////////////////////////////////////////////////////////////////////////// // blockNr int ImgUploadStatus::blockNr(void) const { return m_nBlockNr; } void ImgUploadStatus::SetBlockNr(int val) { if(m_nBlockNr != val) { m_nBlockNr = val; emit blockNrChanged(m_nBlockNr); } } ///////////////////////////////////////////////////////////////////////////// // cbTotal int ImgUploadStatus::cbTotal(void) const { return m_nCbTotal; } void ImgUploadStatus::setCbTotal(int val) { if(m_nCbTotal != val) { m_nCbTotal = val; emit cbTotalChanged(m_nCbTotal); } } ///////////////////////////////////////////////////////////////////////////// // cbSent int ImgUploadStatus::cbSent(void) const { return m_nCbSent; } void ImgUploadStatus::setCbSent(int val) { if(m_nCbSent != val) { m_nCbSent = val; emit cbSentChanged(m_nCbSent); } } ///////////////////////////////////////////////////////////////////////////// // percentSent int ImgUploadStatus::percentSent(void) const { return m_nPercentSent; } void ImgUploadStatus::setPercentSent(int val) { if(m_nPercentSent != val) { m_nPercentSent = val; emit percentSentChanged(m_nPercentSent); } } ///////////////////////////////////////////////////////////////////////////// // cntFlashPages int ImgUploadStatus::cntFlashPages(void) const { return m_nCntFlashPages; } void ImgUploadStatus::setCntFlashPages(int val) { if(m_nCntFlashPages != val) { m_nCntFlashPages = val; emit cntFlashPagesChanged(m_nCntFlashPages); } } ///////////////////////////////////////////////////////////////////////////// // uploadInProgress bool ImgUploadStatus::uploadInProgress(void) const { return m_bUploadInProgress; } void ImgUploadStatus::setUploadInProgress(bool val) { if(m_bUploadInProgress != val) { m_bUploadInProgress = val; emit uploadInProgressChanged(m_bUploadInProgress); } }