diff --git a/src/app/syncbox16ch/syncbox16ch.cpp b/src/app/syncbox16ch/syncbox16ch.cpp index 7d3f48a..1f93b9a 100644 --- a/src/app/syncbox16ch/syncbox16ch.cpp +++ b/src/app/syncbox16ch/syncbox16ch.cpp @@ -4,6 +4,8 @@ #include "syncbox16ch_sdk.hpp" #include "ui_syncbox16ch.h" #include "zqui/zqui/zqui.hpp" +// +#include "app_version.hpp" using namespace iflytop; using namespace syncbox16chsdk; @@ -13,30 +15,43 @@ using namespace syncbox16chsdk; SyncBox16CH::SyncBox16CH(QWidget *parent) : QWidget(parent), ui(new Ui::SyncBox16CH) { ui->setupUi(this); - ZLOGI(TAG,"Hello"); + ZLOGI(TAG, "Hello"); { // - // ui->StateGB->hide(); ui->OutputModeVal->addItems(QStringListValueOf(WorkModeStrList())); - - // ui->OutputPluseTypeVal->addItem(outputPluseType2Str(koutput_pluse_type_custom)); - // ui->OutputPluseTypeVal->addItem(outputPluseType2Str(koutput_pluse_type_square_wave)); - ui->OutputPluseWidthVal->setText("1"); ui->OutputPluseNumVal->setText("1"); ui->OutputPluseFreqVal->setText("1000"); } - SDK->getCmder()->regStateCbFn([this](bool connect) { - if (connect) { - ZQUI::ins()->setDeviceConnectedStatus(true); - } else { - ZQUI::ins()->setDeviceConnectedStatus(false); - } - }); + SDK->getCmder()->regStateCbFn([this](bool connect) { onSubDeviceConnected(connect); }); SDK->initialize(); + m_wq.startSchedule(); + + ZQUI::ins()->doinui([]() { + Version appv(APP_VERSION_MAIN, APP_VERSION_SUB, APP_VERSION_FIX); + ZQUI::ins()->mainW()->setVersionInfo(1, " APP_VER:", appv.toString().c_str()); + }); // ZQUI::ins()->mainW()->setVersionInfo(1, "APP_VERSION", "1.0.0"); } +void SyncBox16CH::onSubDeviceConnected(bool connected) { + if (connected) { + ZQUI::ins()->setDeviceConnectedStatus(true); + m_wq.push([]() { + Version stm32v; + Version fpgav; + SDK->getCmder()->readStm32Version(stm32v); + SDK->getCmder()->readFPGAVersion(fpgav); + + ZQUI::ins()->doinui([stm32v, fpgav]() { + ZQUI::ins()->mainW()->setVersionInfo(2, "STM32_VER:", stm32v.toString().c_str()); + ZQUI::ins()->mainW()->setVersionInfo(3, " FPGA_VER:", fpgav.toString().c_str()); + }); + }); + } else { + ZQUI::ins()->setDeviceConnectedStatus(false); + } +} SyncBox16CH::~SyncBox16CH() { delete ui; } diff --git a/src/app/syncbox16ch/syncbox16ch.h b/src/app/syncbox16ch/syncbox16ch.h index 0000c7b..713afc5 100644 --- a/src/app/syncbox16ch/syncbox16ch.h +++ b/src/app/syncbox16ch/syncbox16ch.h @@ -3,6 +3,8 @@ #include +#include "zqui/base/zworkqueue.hpp" + namespace Ui { class SyncBox16CH; } @@ -10,6 +12,8 @@ class SyncBox16CH; class SyncBox16CH : public QWidget { Q_OBJECT + iflytop::ZWorkQueue m_wq; + public: explicit SyncBox16CH(QWidget *parent = nullptr); ~SyncBox16CH(); @@ -21,7 +25,8 @@ class SyncBox16CH : public QWidget { private: Ui::SyncBox16CH *ui; - void onModeChange(); + void onModeChange(); + void onSubDeviceConnected(bool connected); }; #endif // SYNCBOX16CH_H diff --git a/src/app/syncbox16ch/syncbox16ch_sdk.cpp b/src/app/syncbox16ch/syncbox16ch_sdk.cpp index e06a898..026b861 100644 --- a/src/app/syncbox16ch/syncbox16ch_sdk.cpp +++ b/src/app/syncbox16ch/syncbox16ch_sdk.cpp @@ -29,8 +29,4 @@ WorkMode_t WorkModeValueOf(QString str) { return WorkModeValueOf(str.toStdStri ***********************************************************************************************************************/ using namespace iflytop; using namespace syncbox16chsdk; -void SyncBox16ChSDK::initialize() { - ZFPGACommander::ins()->initialize(); - - -} +void SyncBox16ChSDK::initialize() { ZFPGACommander::ins()->initialize(); } diff --git a/src/app_version.hpp b/src/app_version.hpp new file mode 100644 index 0000000..5cb0ea4 --- /dev/null +++ b/src/app_version.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "zfpga_basic_protocol\zaf_protocol.h" + +#define APP_VERSION VERSION(1, 0, 0) + +#define APP_VERSION_MAIN VERSION_MAIN(APP_VERSION) +#define APP_VERSION_SUB VERSION_SUB(APP_VERSION) +#define APP_VERSION_FIX VERSION_FIX(APP_VERSION) \ No newline at end of file diff --git a/src/protocol/zfpga_commander/zfpga_commander.cpp b/src/protocol/zfpga_commander/zfpga_commander.cpp index 7a6c41d..5101506 100644 --- a/src/protocol/zfpga_commander/zfpga_commander.cpp +++ b/src/protocol/zfpga_commander/zfpga_commander.cpp @@ -76,7 +76,11 @@ void ZFPGACommander::initialize() { })); m_online_detect_thread.reset(new thread([this]() { while (true) { - this_thread::sleep_for(chrono::milliseconds(500)); + if (!isconnected) { + this_thread::sleep_for(chrono::milliseconds(100)); + } else { + this_thread::sleep_for(chrono::milliseconds(3000)); + } bool tostate = false; if (ping()) { tostate = true; @@ -214,7 +218,6 @@ shared_ptr ZFPGACommander::sendPacket(zaf_packet_header_t *packet, uint void ZFPGACommander::writeReg(uint32_t regadd, uint32_t regvalue, uint32_t ®backvalue, int32_t overtime_ms) { lock_guard lock(m_tx_lock); - Reginfo *reg = GetRegInfo(regadd); if (reg->flag & kreg_flag_force_write) { @@ -229,8 +232,7 @@ void ZFPGACommander::writeReg(uint32_t regadd, uint32_t regvalue, uint32_t ®b return; } void ZFPGACommander::readReg(uint32_t regadd, uint32_t ®value, int32_t overtime_ms) { - lock_guard lock(m_tx_lock); - + lock_guard lock(m_tx_lock); Reginfo *reg = GetRegInfo(regadd); @@ -326,10 +328,16 @@ void ZFPGACommander::RegInfo_Reset() { void ZFPGACommander::readFPGAVersion(Version &version) { uint32_t version32; readReg(kreg_fpga_version, version32, 100); + version.main = VERSION_MAIN(version32); + version.sub = VERSION_SUB(version32); + version.fix = VERSION_FIX(version32); } void ZFPGACommander::readStm32Version(Version &version) { uint32_t version32; readReg(kreg_software_version, version32, 10); + version.main = VERSION_MAIN(version32); + version.sub = VERSION_SUB(version32); + version.fix = VERSION_FIX(version32); } bool ZFPGACommander::ping() { @@ -344,7 +352,6 @@ bool ZFPGACommander::ping() { void ZFPGACommander::callcmd(uint32_t cmd, uint32_t delayms) { lock_guard lock(m_tx_lock); - uint8_t txdata[128] = {0}; zaf_packet_header_t *txpacket = (zaf_packet_header_t *)txdata; diff --git a/src/protocol/zfpga_commander/zfpga_commander.hpp b/src/protocol/zfpga_commander/zfpga_commander.hpp index 71dc632..e631aa7 100644 --- a/src/protocol/zfpga_commander/zfpga_commander.hpp +++ b/src/protocol/zfpga_commander/zfpga_commander.hpp @@ -74,6 +74,19 @@ class Version { uint32_t main; uint32_t sub; uint32_t fix; + + public: + Version() {} + Version(uint32_t main, uint32_t sub, uint32_t fix) : main(main), sub(sub), fix(fix) {} + + + string toString() const { + stringstream ss; + ss << main << "." << sub << "." << fix; + return ss.str(); + } + + }; class ZFPGACommander { diff --git a/src/zqui/version.h b/src/zqui/version.h deleted file mode 100644 index 6f70f09..0000000 --- a/src/zqui/version.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once