diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40aadf5..19a3ae3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,7 @@ include_directories(libzqt)
add_compile_options(-Wall )
+
file(GLOB_RECURSE APPSRC #
src/*.cpp #
src/*.c #
diff --git a/src/app/syncbox16ch/syncbox16ch.cpp b/src/app/syncbox16ch/syncbox16ch.cpp
index 08e6324..3639a7d 100644
--- a/src/app/syncbox16ch/syncbox16ch.cpp
+++ b/src/app/syncbox16ch/syncbox16ch.cpp
@@ -1,12 +1,12 @@
#include "syncbox16ch.h"
+#include "qtutils/qtutils.hpp"
+#include "syncbox16ch_sdk.hpp"
#include "ui_syncbox16ch.h"
#include "zqui/zqui/zqui.hpp"
-typedef enum {
- koutput_mode_continue_mode,
- koutput_mode_pluse_mode,
-} OutputMode_t;
+using namespace iflytop;
+using namespace syncbox16chsdk;
typedef enum {
// 自定义
@@ -15,36 +15,6 @@ typedef enum {
koutput_pluse_type_square_wave,
} OutputPluseType_t;
-static QString outputMode2Str(OutputMode_t mode) {
- if (mode == koutput_mode_continue_mode) {
- return "连续模式";
- } else if (mode == koutput_mode_pluse_mode) {
- return "脉冲模式";
- } else {
- return "未知模式";
- }
-}
-
-static OutputMode_t outputModeStr2Enum(QString str) {
- if (str == "连续模式") {
- return koutput_mode_continue_mode;
- } else if (str == "脉冲模式") {
- return koutput_mode_pluse_mode;
- } else {
- return koutput_mode_continue_mode;
- }
-}
-
-static QString outputPluseType2Str(OutputPluseType_t type) {
- if (type == koutput_pluse_type_custom) {
- return "自定义";
- } else if (type == koutput_pluse_type_square_wave) {
- return "方波";
- } else {
- return "未知";
- }
-}
-
static OutputPluseType_t outputPluseTypeStr2Enum(QString str) {
if (str == "自定义") {
return koutput_pluse_type_custom;
@@ -55,14 +25,23 @@ static OutputPluseType_t outputPluseTypeStr2Enum(QString str) {
}
}
+static QString outputPluseType2Str(OutputPluseType_t type) {
+ switch (type) {
+ case koutput_pluse_type_custom:
+ return "自定义";
+ case koutput_pluse_type_square_wave:
+ return "方波";
+ default:
+ return "自定义";
+ }
+}
+
SyncBox16CH::SyncBox16CH(QWidget *parent) : QWidget(parent), ui(new Ui::SyncBox16CH) {
ui->setupUi(this);
-
{
//
// ui->StateGB->hide();
- ui->OutputModeVal->addItem(outputMode2Str(koutput_mode_continue_mode));
- ui->OutputModeVal->addItem(outputMode2Str(koutput_mode_pluse_mode));
+ ui->OutputModeVal->addItems(QStringListValueOf(WorkModeStrList()));
ui->OutputPluseTypeVal->addItem(outputPluseType2Str(koutput_pluse_type_custom));
ui->OutputPluseTypeVal->addItem(outputPluseType2Str(koutput_pluse_type_square_wave));
@@ -71,6 +50,8 @@ SyncBox16CH::SyncBox16CH(QWidget *parent) : QWidget(parent), ui(new Ui::SyncBox1
ui->OutputPluseNumVal->setText("1");
ui->OutputPluseFreqVal->setText("1000");
}
+
+ ZQUI::ins()->mainW()->setVersionInfo(1, "APP_VERSION", "1.0.0");
}
SyncBox16CH::~SyncBox16CH() { delete ui; }
@@ -78,29 +59,48 @@ SyncBox16CH::~SyncBox16CH() { delete ui; }
void SyncBox16CH::on_OutputModeVal_currentIndexChanged(const QString &arg1) { onModeChange(); }
void SyncBox16CH::on_OutputPluseTypeVal_currentIndexChanged(const QString &arg1) { onModeChange(); }
void SyncBox16CH::onModeChange() {
- OutputMode_t outputMode = outputModeStr2Enum(ui->OutputModeVal->currentText());
+ WorkMode_t outputMode = syncbox16chsdk::WorkModeValueOf(ui->OutputModeVal->currentText().toStdString().c_str());
OutputPluseType_t outputPluseType = outputPluseTypeStr2Enum(ui->OutputPluseTypeVal->currentText());
- if (outputMode == koutput_mode_continue_mode) {
+ // kWorkMode_extCpyMode,
+ // kWorkMode_extTriMode,
+ // kWorkMode_manualTriMode,
+
+ if (outputMode == kWorkMode_extCpyMode) {
+ // 脉冲数量
ui->OutputPluseNumVal->hide();
ui->OutputPluseNumTag->hide();
- } else if (outputMode == koutput_mode_pluse_mode) {
- ui->OutputPluseNumVal->show();
- ui->OutputPluseNumTag->show();
- }
-
- if (outputPluseType == koutput_pluse_type_custom) {
- ui->OutputPluseWidthVal->show();
- ui->OutputPluseWidthTag->show();
- } else if (outputPluseType == koutput_pluse_type_square_wave) {
+ // 脉冲宽度
ui->OutputPluseWidthVal->hide();
ui->OutputPluseWidthTag->hide();
+ // 脉冲类型
+ ui->OutputPluseTypeVal->hide();
+ ui->OutputPluseTypeTag->hide();
+ // 脉冲频率
+ ui->OutputPluseFreqTag->hide();
+ ui->OutputPluseFreqVal->hide();
+ } else if (outputMode == kWorkMode_manualTriMode || outputMode == kWorkMode_extTriMode) {
+ // 脉冲数量
+ ui->OutputPluseNumVal->show();
+ ui->OutputPluseNumTag->show();
+ // 脉冲宽度
+ if (outputPluseType == koutput_pluse_type_custom) {
+ ui->OutputPluseWidthVal->show();
+ ui->OutputPluseWidthTag->show();
+ } else if (outputPluseType == koutput_pluse_type_square_wave) {
+ ui->OutputPluseWidthVal->hide();
+ ui->OutputPluseWidthTag->hide();
+ }
+ // 脉冲类型
+ ui->OutputPluseTypeVal->show();
+ ui->OutputPluseTypeTag->show();
+ // 脉冲频率
+ ui->OutputPluseFreqTag->show();
+ ui->OutputPluseFreqVal->show();
}
}
void SyncBox16CH::on_SendButton_clicked() {
- ICLEAR();
- ISHOW("on send button");
-
-
+ ICLEAR();
+ ISHOW("on send button");
}
diff --git a/src/app/syncbox16ch/syncbox16ch.ui b/src/app/syncbox16ch/syncbox16ch.ui
index 4f58f89..46707b6 100644
--- a/src/app/syncbox16ch/syncbox16ch.ui
+++ b/src/app/syncbox16ch/syncbox16ch.ui
@@ -223,7 +223,7 @@
- 发送
+ 配置/触发
diff --git a/src/app/syncbox16ch/syncbox16ch_sdk.cpp b/src/app/syncbox16ch/syncbox16ch_sdk.cpp
index 043b47e..af9c58d 100644
--- a/src/app/syncbox16ch/syncbox16ch_sdk.cpp
+++ b/src/app/syncbox16ch/syncbox16ch_sdk.cpp
@@ -1,6 +1,31 @@
#include "syncbox16ch_sdk.hpp"
-using namespace iflytop;
-void SyncBox16ChSDK::initialize() {
-
-}
+#include "protocol/zfpga_commander/zfpga_commander.hpp"
+#include "qtutils/enummap.hpp"
+
+/***********************************************************************************************************************
+ * ENUMMAP *
+ ***********************************************************************************************************************/
+namespace iflytop {
+namespace syncbox16chsdk {
+
+enummap_iterm_t output_mode_enummap[] = {
+ {kWorkMode_extCpyMode, "信号拷贝模式"},
+ {kWorkMode_extTriMode, "外部触发模式"},
+ {kWorkMode_manualTriMode, "手动触发模式"},
+ {-1, "null", true},
+};
+
+const char* WorkModeToStr(uint32_t mode) { return EnumMapValue2Str(output_mode_enummap, mode); }
+WorkMode_t WorkModeValueOf(const char* str) { return (WorkMode_t)EnumMapStr2Value(output_mode_enummap, str); }
+list WorkModeStrList() { return EnumMapStrList(output_mode_enummap); }
+
+} // namespace syncbox16chsdk
+} // namespace iflytop
+
+/***********************************************************************************************************************
+ * SyncBox16ChSDK *
+ ***********************************************************************************************************************/
+using namespace iflytop;
+using namespace syncbox16chsdk;
+void SyncBox16ChSDK::initialize() { ZFPGACommander::ins()->initialize(); }
diff --git a/src/app/syncbox16ch/syncbox16ch_sdk.hpp b/src/app/syncbox16ch/syncbox16ch_sdk.hpp
index 06e9e55..88001bb 100644
--- a/src/app/syncbox16ch/syncbox16ch_sdk.hpp
+++ b/src/app/syncbox16ch/syncbox16ch_sdk.hpp
@@ -17,18 +17,37 @@
#include "zfpga_basic_protocol/zaf_regs.hpp"
namespace iflytop {
-
+namespace syncbox16chsdk {
using namespace std;
-class SyncBox16ChSDK {
+typedef enum {
+ kWorkMode_extCpyMode,
+ kWorkMode_extTriMode,
+ kWorkMode_manualTriMode,
+} WorkMode_t;
+
+typedef struct {
+} reg_t;
+const char* WorkModeToStr(uint32_t mode);
+WorkMode_t WorkModeValueOf(const char* str);
+list WorkModeStrList();
+
+class SyncBox16ChSDK {
public:
- static SyncBox16ChSDK *ins() {
+ static SyncBox16ChSDK* ins() {
static SyncBox16ChSDK cmder;
return &cmder;
}
+ public:
void initialize();
-};
+ void setPluseWidth(uint32_t widthus);
+ void setPluseFreq(uint32_t freq);
+ void setPluseGeneratorMode();
+
+ public:
+};
+} // namespace syncbox16chsdk
} // namespace iflytop
\ No newline at end of file
diff --git a/src/qtutils/enummap.cpp b/src/qtutils/enummap.cpp
new file mode 100644
index 0000000..98bcfd4
--- /dev/null
+++ b/src/qtutils/enummap.cpp
@@ -0,0 +1,32 @@
+#include "enummap.hpp"
+
+#include
+using namespace std;
+
+namespace iflytop {
+const char* EnumMapValue2Str(const enummap_iterm_t* map, int val) {
+ for (int i = 0; !map[i].end; i++) {
+ if (map[i].val == val) {
+ return map[i].chname;
+ }
+ }
+ return nullptr;
+}
+int EnumMapStr2Value(const enummap_iterm_t* map, const char* str) {
+ for (int i = 0; !map[i].end; i++) {
+ if (strcmp(map[i].chname, str) == 0) {
+ return map[i].val;
+ }
+ }
+ return -1;
+}
+
+list EnumMapStrList(const enummap_iterm_t* map) {
+ list strlist;
+ for (int i = 0; !map[i].end; i++) {
+ if (map[i].chname) strlist.push_back(map[i].chname);
+ }
+ return strlist;
+}
+
+} // namespace iflytop
\ No newline at end of file
diff --git a/src/qtutils/enummap.hpp b/src/qtutils/enummap.hpp
new file mode 100644
index 0000000..e31006b
--- /dev/null
+++ b/src/qtutils/enummap.hpp
@@ -0,0 +1,29 @@
+#pragma once
+#include
+#include
+#include
+#include
+#include