diff --git a/mainwindow.cpp b/mainwindow.cpp
index 7abc9ad..d78800f 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -16,6 +16,7 @@ using namespace std;
static MainWindow *m_mainWindow;
static CLSTControler *m_clstc;
+QTimer *timer;
#define TAG "MainWindow"
static const char *fmt(const char *fmt, ...) {
@@ -58,13 +59,13 @@ static const QString zaferror_to_str(zaf_error_code_t value) {
}
}
-#define DO(action) \
- { \
- zaf_error_code_t ecode = action; \
- if (ecode != kaf_ec_success) { \
- ui->informationBrowser->setText(zaferror_to_str(ecode)); \
- return; \
- } \
+#define DO(action) \
+ { \
+ zaf_error_code_t ecode = action; \
+ if (ecode != kaf_ec_success) { \
+ dumpLog("do %s fail,%s", #action, zaferror_to_str(ecode).toStdString().c_str()); \
+ return; \
+ } \
}
void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
@@ -90,6 +91,67 @@ void MainWindow::updatePage() {
DO(m_clstc->InterClk_setPluseCnt(PluseCnt));
DO(m_clstc->InterClk_setSeqCtrlPluseCntMax(SeqCtrlPluseCntMax));
}
+
+ {
+ ExtTriggerSrcType src;
+ SigProcessMode mode;
+ TriggerEdge edge;
+ uint32_t coefficient;
+ uint32_t bias;
+ uint32_t division;
+ uint32_t multiplication;
+
+#define UPDATE(index) \
+ src = ExtTriggerSrcType(ui->TriInX_SrcSelect_Val_##index->currentText().toStdString()); \
+ coefficient = ui->TriInX_FileterCoefficient_Val_##index->text().toUInt(); \
+ bias = ui->TriInX_FreqDetectBias_Val_##index->text().toUInt(); \
+ mode = SigProcessMode(ui->TriInX_Mode_Val_##index->currentText().toStdString()); \
+ edge = TriggerEdge(ui->TriInX_TriggerModeTriggerEdge_Val_##index->currentText().toStdString()); \
+ division = ui->TriInX_TriggerModeFreqDivision_Val_##index->text().toUInt(); \
+ multiplication = ui->TriInX_TriggerModeFreqMultiplication_Val_##index->text().toUInt(); \
+ DO(m_clstc->TriInX_setSrcSelect(index, src)); \
+ DO(m_clstc->TriInX_setFileterCoefficient(index, coefficient)); \
+ DO(m_clstc->TriInX_setFreqDetectBias(index, bias)); \
+ DO(m_clstc->TriInX_setMode(index, mode)); \
+ DO(m_clstc->TriInX_setTriggerModeTriggerEdge(index, edge)); \
+ DO(m_clstc->TriInX_setTriggerModeFreqDivision(index, division)); \
+ DO(m_clstc->TriInX_setTriggerModeFreqMultiplication(index, multiplication));
+
+ UPDATE(1);
+ UPDATE(2);
+ UPDATE(3);
+ UPDATE(4);
+#undef UPDATE
+ }
+}
+void MainWindow::refreshReadonlyPage() {
+ zaf_error_code_t ecode;
+
+ {
+ float TriOutSignalFreq;
+ ecode = m_clstc->InterClk_readTriOutSignalFreq(TriOutSignalFreq);
+ if (ecode != kaf_ec_success) return;
+
+ ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2));
+ }
+
+ {
+ float infreq;
+ float outfreq;
+
+#define UPDATE(index) \
+ DO(m_clstc->TriInX_readInSignalFreq(index, infreq)); \
+ DO(m_clstc->TriInX_readOutSignalFreq(index, outfreq)); \
+ ui->TriInX_OutSignalFreq_Val_##index->setText(QString::number(outfreq, 'f', 2)); \
+ ui->TriInX_InSignalFreq_Val_##index->setText(QString::number(infreq, 'f', 2));
+
+ UPDATE(1);
+ UPDATE(2);
+ UPDATE(3);
+ UPDATE(4);
+
+#undef UPDATE
+ }
}
void MainWindow::refreshPage() {
@@ -109,6 +171,45 @@ void MainWindow::refreshPage() {
ui->InterClk_SeqCtrlPluseCntMax_Text->setText(QString::number(SeqCtrlPluseCntMax));
ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2));
}
+
+ {
+ ExtTriggerSrcType src;
+ SigProcessMode mode;
+ TriggerEdge edge;
+ uint32_t coefficient;
+ uint32_t bias;
+ uint32_t division;
+ uint32_t multiplication;
+ float infreq;
+ float outfreq;
+
+#define UPDATE(index) \
+ DO(m_clstc->TriInX_getSrcSelect(index, src)); \
+ DO(m_clstc->TriInX_getFileterCoefficient(index, coefficient)); \
+ DO(m_clstc->TriInX_getFreqDetectBias(index, bias)); \
+ DO(m_clstc->TriInX_getMode(index, mode)); \
+ DO(m_clstc->TriInX_getTriggerModeTriggerEdge(index, edge)); \
+ DO(m_clstc->TriInX_getTriggerModeFreqDivision(index, division)); \
+ DO(m_clstc->TriInX_getTriggerModeFreqMultiplication(index, multiplication)); \
+ DO(m_clstc->TriInX_readInSignalFreq(index, infreq)); \
+ DO(m_clstc->TriInX_readOutSignalFreq(index, outfreq)); \
+ ui->TriInX_SrcSelect_Val_##index->setCurrentText(QString::fromStdString(src.toString())); \
+ ui->TriInX_FileterCoefficient_Val_##index->setText(QString::number(coefficient)); \
+ ui->TriInX_FreqDetectBias_Val_##index->setText(QString::number(bias)); \
+ ui->TriInX_Mode_Val_##index->setCurrentText(QString::fromStdString(mode.toString())); \
+ ui->TriInX_OutSignalFreq_Val_##index->setText(QString::number(outfreq, 'f', 2)); \
+ ui->TriInX_InSignalFreq_Val_##index->setText(QString::number(infreq, 'f', 2)); \
+ ui->TriInX_TriggerModeFreqDivision_Val_##index->setText(QString::number(division)); \
+ ui->TriInX_TriggerModeFreqMultiplication_Val_##index->setText(QString::number(multiplication)); \
+ ui->TriInX_TriggerModeTriggerEdge_Val_##index->setCurrentText(QString::fromStdString(edge.toString()));
+
+ UPDATE(1);
+ UPDATE(2);
+ UPDATE(3);
+ UPDATE(4);
+
+#undef UPDATE
+ }
}
void MainWindow::constructUI() {
@@ -178,11 +279,13 @@ void MainWindow::constructUI() {
*******************************************************************************/
connect(ui->refreshPageKey, &QPushButton::clicked, this, [=](bool check) { //
refreshPage();
+ dumpLog("刷新成功");
});
connect(ui->UpdateCfg_Key, &QPushButton::clicked, this, [=](bool check) { //
updatePage();
refreshPage();
+ dumpLog("提交成功");
});
/*******************************************************************************
@@ -190,7 +293,7 @@ void MainWindow::constructUI() {
*******************************************************************************/
connect(ui->storageConfigKey, &QPushButton::clicked, this, [=](bool check) { //
DO(m_clstc->storageConfigs());
- ui->informationBrowser->setText("保存配置成功");
+ dumpLog("保存配置成功");
});
/*******************************************************************************
@@ -198,7 +301,7 @@ void MainWindow::constructUI() {
*******************************************************************************/
connect(ui->rebootDeviceKey, &QPushButton::clicked, this, [=](bool check) { //
DO(m_clstc->reboot());
- ui->informationBrowser->setText("重启设备成功");
+ dumpLog("重启设备成功");
});
/*******************************************************************************
@@ -206,7 +309,7 @@ void MainWindow::constructUI() {
*******************************************************************************/
connect(ui->factoryResetKey, &QPushButton::clicked, this, [=](bool check) { //
DO(m_clstc->factoryReset());
- ui->informationBrowser->setText("恢复出厂设置成功");
+ dumpLog("恢复出厂设置成功");
});
/*******************************************************************************
@@ -219,7 +322,7 @@ void MainWindow::constructUI() {
uint32_t value = 0;
DO(m_clstc->reg_read(addr, value, 100));
ui->regReadbakVal->setText(fmt("0x%08X", value));
- ui->informationBrowser->setText(fmt("读取0x%04x成功", addr));
+ dumpLog(fmt("读取0x%04x成功", addr));
});
connect(ui->regWriteKey, &QPushButton::clicked, this, [=](bool check) { //
@@ -228,18 +331,49 @@ void MainWindow::constructUI() {
uint32_t readkbak = 0;
DO(m_clstc->reg_write(addr, value, readkbak, 100));
ui->regReadbakVal->setText(fmt("0x%04x", readkbak));
- ui->informationBrowser->setText(fmt("写入0x%08x成功", addr));
+ dumpLog(fmt("写入0x%08x成功", addr));
});
connect(ui->InterClk_trigger_Key, &QPushButton::clicked, this, [=](bool check) { //
DO(m_clstc->InterClk_trigger());
- ui->informationBrowser->setText(fmt("触发成功"));
- refreshPage();
+ dumpLog(fmt("触发成功"));
});
connect(ui->InterClk_stop_Key, &QPushButton::clicked, this, [=](bool check) { //
DO(m_clstc->InterClk_stop());
- ui->informationBrowser->setText(fmt("停止触发成功"));
+ dumpLog(fmt("停止触发成功"));
});
+
+ /*******************************************************************************
+ * 外部触发页面初始化 *
+ *******************************************************************************/
+
+ ui->TriInX_SrcSelect_Val_1->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::DIFF_INPUT).toString()));
+ ui->TriInX_SrcSelect_Val_1->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::OPTOCOUPLER_INPUT).toString()));
+ ui->TriInX_Mode_Val_1->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRIGGER_MODE).toString()));
+ ui->TriInX_Mode_Val_1->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_1->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_1->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::FALLING).toString()));
+
+ ui->TriInX_SrcSelect_Val_2->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::DIFF_INPUT).toString()));
+ ui->TriInX_SrcSelect_Val_2->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::OPTOCOUPLER_INPUT).toString()));
+ ui->TriInX_Mode_Val_2->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRIGGER_MODE).toString()));
+ ui->TriInX_Mode_Val_2->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_2->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_2->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::FALLING).toString()));
+
+ ui->TriInX_SrcSelect_Val_3->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::DIFF_INPUT).toString()));
+ ui->TriInX_SrcSelect_Val_3->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::OPTOCOUPLER_INPUT).toString()));
+ ui->TriInX_Mode_Val_3->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRIGGER_MODE).toString()));
+ ui->TriInX_Mode_Val_3->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_3->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_3->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::FALLING).toString()));
+
+ ui->TriInX_SrcSelect_Val_4->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::DIFF_INPUT).toString()));
+ ui->TriInX_SrcSelect_Val_4->addItem(QString::fromStdString(ExtTriggerSrcType(ExtTriggerSrcType::OPTOCOUPLER_INPUT).toString()));
+ ui->TriInX_Mode_Val_4->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRIGGER_MODE).toString()));
+ ui->TriInX_Mode_Val_4->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_4->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString()));
+ ui->TriInX_TriggerModeTriggerEdge_Val_4->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::FALLING).toString()));
}
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
@@ -261,26 +395,56 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction)));
constructUI();
- m_clstc->regRawDataListener([this](uart_message_type_t type, uint8_t *data, size_t len) {
- QString text;
- if (type == kuart_raw_tx) {
- text.append("TX: ");
- for (size_t i = 0; i < len; i++) {
- text.append(fmt("%02X ", data[i]));
- }
- } else if (type == kuart_raw_rx) {
- text.append("RX: ");
- for (size_t i = 0; i < len; i++) {
- text.append(fmt("%02X ", data[i]));
- }
+ // 创建定时器
+ timer = new QTimer(this);
+ connect(timer, &QTimer::timeout, this, [this]() { refreshReadonlyPage(); });
+ timer->setInterval(1000); // 每隔一秒触发一次
+ timer->start();
+
+ // m_clstc->regRawDataListener([this](uart_message_type_t type, uint8_t *data, size_t len) {
+ // QString text;
+ // if (type == kuart_raw_tx) {
+ // text.append("TX: ");
+ // for (size_t i = 0; i < len; i++) {
+ // text.append(fmt("%02X ", data[i]));
+ // }
+ // } else if (type == kuart_raw_rx) {
+ // text.append("RX: ");
+ // for (size_t i = 0; i < len; i++) {
+ // text.append(fmt("%02X ", data[i]));
+ // }
+ // }
+ // emit doinui_signal(QFunction([this, text]() {
+ // if (ui->instructionPreview->document()->lineCount() > 100) {
+ // ui->instructionPreview->document()->clear();
+ // }
+ // ui->instructionPreview->append(text);
+ // }));
+ // });
+}
+
+void MainWindow::dumpLog(const char *fmt, ...) {
+ va_list args;
+ va_start(args, fmt);
+ char buf[1024] = {0};
+ vsnprintf(buf, sizeof(buf), fmt, args);
+ qDebug() << buf;
+ va_end(args);
+ QString text(buf);
+
+ QString info;
+
+ // zos_get_ticket
+ info.append(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz"));
+ info.append(" [Info]:");
+ info.append(text);
+
+ emit doinui_signal(QFunction([this, info]() {
+ if (ui->instructionPreview->document()->lineCount() > 100) {
+ ui->instructionPreview->document()->clear();
}
- emit doinui_signal(QFunction([this, text]() {
- if (ui->instructionPreview->document()->lineCount() > 20) {
- ui->instructionPreview->clear();
- }
- ui->instructionPreview->append(text);
- }));
- });
+ ui->instructionPreview->append(info);
+ }));
}
MainWindow::~MainWindow() { delete ui; }
\ No newline at end of file
diff --git a/mainwindow.h b/mainwindow.h
index 415233e..4b54db7 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -74,6 +74,7 @@ class MainWindow : public QMainWindow {
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void refreshPage();
+ void refreshReadonlyPage();
void updatePage();
private slots:
@@ -84,8 +85,14 @@ class MainWindow : public QMainWindow {
signals:
void doinui_signal(QFunction);
+
+
private:
static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg);
void constructUI();
+ void dumpLog(const char *fmt, ...);
};
#endif // MAINWINDOW_H
+
+
+
diff --git a/mainwindow.ui b/mainwindow.ui
index 36697e5..01d522f 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -6,8 +6,8 @@
0
0
- 1055
- 768
+ 1244
+ 790
@@ -435,7 +435,7 @@
- 1
+ 0
true
@@ -444,6 +444,1466 @@
外部触发源配置
+
+ -
+
+
+
+ 400
+ 16777215
+
+
+
+ 外部触发3
+
+
+
-
+
+
+
+ 0
+ 120
+
+
+
+
+ 16777215
+ 120
+
+
+
+ TRIGGER_MODE配置
+
+
+
-
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 倍频因子
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发边沿
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 分频因子
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输入频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 模式
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输出频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 滤波系数(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 频率探测允许误差(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发源选择
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+
+ 400
+ 16777215
+
+
+
+ 外部触发4
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 频率探测允许误差(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输入频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发源选择
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输出频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 滤波系数(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 模式
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 120
+
+
+
+
+ 16777215
+ 120
+
+
+
+ TRIGGER_MODE配置
+
+
+
-
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 倍频因子
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发边沿
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 分频因子
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+
+
+
+ -
+
+
+
+ 400
+ 16777215
+
+
+
+ 外部触发2
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 频率探测允许误差(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输入频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发源选择
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输出频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 滤波系数(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 模式
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 120
+
+
+
+
+ 16777215
+ 120
+
+
+
+ TRIGGER_MODE配置
+
+
+
-
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 倍频因子
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发边沿
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 分频因子
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+
+
+
+ -
+
+
+
+ 400
+ 16777215
+
+
+
+ 外部触发1
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 频率探测允许误差(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输入频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发源选择
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 输出频率探测(HZ)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 滤波系数(x10ns)
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 模式
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 120
+
+
+
+
+ 16777215
+ 120
+
+
+
+ TRIGGER_MODE配置
+
+
+
-
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 倍频因子
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 触发边沿
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 25
+
+
+
+
+ 16777215
+ 25
+
+
+
+ 分频因子
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
@@ -668,7 +2128,7 @@
0
0
- 1055
+ 1244
23
diff --git a/src/camera_light_src_timing_controller/qt_serial_datachannel.cpp b/src/camera_light_src_timing_controller/qt_serial_datachannel.cpp
index 31f52d0..9e7549b 100644
--- a/src/camera_light_src_timing_controller/qt_serial_datachannel.cpp
+++ b/src/camera_light_src_timing_controller/qt_serial_datachannel.cpp
@@ -22,7 +22,7 @@ void QTDataChannel::init() {
uint8_t rx[1024] = {0};
int rx_cnt = com_receive(rx, 1024);
if (rx_cnt != 0) {
- ZLOGI(TAG, "rx %d bytes", rx_cnt);
+ // ZLOGI(TAG, "rx %d bytes", rx_cnt);
if (m_rxcb) m_rxcb(rx, rx_cnt);
}
}
@@ -47,7 +47,7 @@ bool QTDataChannel::open() {
DCB p;
memset(&p, 0, sizeof(p));
p.DCBlength = sizeof(p);
- p.BaudRate = m_baudRate; //
+ p.BaudRate = m_baudRate; // 波特率
switch (m_dataBits) {
case QSerialPort::Data5:
@@ -74,41 +74,41 @@ bool QTDataChannel::open() {
// QSerialPort::MarkParity = 5,
// QSerialPort::UnknownParity = -1
- switch (m_parity) // Уλ
+ switch (m_parity) // 校验位
{
case QSerialPort::NoParity:
- p.Parity = NOPARITY; // У
+ p.Parity = NOPARITY; // 无校验
break;
case QSerialPort::EvenParity:
- p.Parity = EVENPARITY; // У
+ p.Parity = EVENPARITY; // 奇校验
break;
case QSerialPort::OddParity:
- p.Parity = ODDPARITY; // żУ
+ p.Parity = ODDPARITY; // 偶校验
break;
case QSerialPort::MarkParity:
- p.Parity = MARKPARITY; // У
+ p.Parity = MARKPARITY; // 标记校验
break;
default:
- p.Parity = NOPARITY; // У
+ p.Parity = NOPARITY; // 无校验
}
- switch (m_stopBits) // ֹͣλ
+ switch (m_stopBits) // 停止位
{
case QSerialPort::OneStop:
- p.StopBits = ONESTOPBIT; // 1λֹͣλ
+ p.StopBits = ONESTOPBIT; // 1位停止位
break;
case QSerialPort::OneAndHalfStop:
- p.StopBits = TWOSTOPBITS; // 2λֹͣλ
+ p.StopBits = TWOSTOPBITS; // 2位停止位
break;
case QSerialPort::TwoStop:
- p.StopBits = ONE5STOPBITS; // 1.5λֹͣλ
+ p.StopBits = ONE5STOPBITS; // 1.5位停止位
break;
default:
- p.StopBits = ONESTOPBIT; // У
+ p.StopBits = ONESTOPBIT; // 无校验
}
if (!SetCommState(m_CommHandler, &p)) {
- // òʧ
+ // 设置参数失败
CloseHandle(m_CommHandler);
return false;
}
@@ -124,11 +124,11 @@ void QTDataChannel::close() {
bool QTDataChannel::isOpen() { return m_isOpen; }
bool QTDataChannel::send(const uint8_t *data, size_t len) {
DWORD dwBytesWrite = len;
- BOOL bWriteStat = WriteFile(m_CommHandler, // ھ
- (char *)data, // ַ
- dwBytesWrite, // Ҫ͵ֽ
- &dwBytesWrite, // DWORD*շسɹ͵ֽ
- NULL); // NULLΪͬͣOVERLAPPED*Ϊ첽
+ BOOL bWriteStat = WriteFile(m_CommHandler, // 串口句柄
+ (char *)data, // 数据首地址
+ dwBytesWrite, // 要发送的数据字节数
+ &dwBytesWrite, // DWORD*,用来接收返回成功发送的数据字节数
+ NULL); // NULL为同步发送,OVERLAPPED*为异步发送
return dwBytesWrite;
}
void QTDataChannel::regRxListener(function cb) { m_rxcb = cb; }
@@ -136,18 +136,18 @@ void QTDataChannel::regRxListener(function cb)
int QTDataChannel::com_receive(uint8_t *rxbuf, int rxbufsize) {
COMMTIMEOUTS TimeOuts;
GetCommTimeouts(m_CommHandler, &TimeOuts);
- TimeOuts.ReadIntervalTimeout = 0; // ʱ
- TimeOuts.ReadTotalTimeoutMultiplier = 0; // ʱϵ
- TimeOuts.ReadTotalTimeoutConstant = 1; // ʱ䳣
+ TimeOuts.ReadIntervalTimeout = 0; // 读间隔超时
+ TimeOuts.ReadTotalTimeoutMultiplier = 0; // 读时间系数
+ TimeOuts.ReadTotalTimeoutConstant = 1; // 读时间常量
SetCommTimeouts(m_CommHandler, &TimeOuts);
// PurgeComm(m_CommHandler, PURGE_RXCLEAR);
- DWORD wCount = rxbufsize; // ɹȡֽ
- BOOL bReadStat = ReadFile(m_CommHandler, // ھ
- rxbuf, // ַ
- wCount, // Ҫȡֽ
- &wCount, // DWORD*,շسɹȡֽ
+ DWORD wCount = rxbufsize; // 成功读取的数据字节数
+ BOOL bReadStat = ReadFile(m_CommHandler, // 串口句柄
+ rxbuf, // 数据首地址
+ wCount, // 要读取的数据最大字节数
+ &wCount, // DWORD*,用来接收返回成功读取的数据字节数
NULL);
return wCount;
}