Browse Source

update

master
zhaohe 1 year ago
parent
commit
6c6ed27dfe
  1. 1
      CMakeLists.txt
  2. 104
      src/app/syncbox16ch/syncbox16ch.cpp
  3. 2
      src/app/syncbox16ch/syncbox16ch.ui
  4. 33
      src/app/syncbox16ch/syncbox16ch_sdk.cpp
  5. 27
      src/app/syncbox16ch/syncbox16ch_sdk.hpp
  6. 32
      src/qtutils/enummap.cpp
  7. 29
      src/qtutils/enummap.hpp
  8. 12
      src/qtutils/qtutils.cpp
  9. 29
      src/qtutils/qtutils.hpp
  10. 4
      src/zqui/zqui/mainwindow.cpp

1
CMakeLists.txt

@ -23,6 +23,7 @@ include_directories(libzqt)
add_compile_options(-Wall )
file(GLOB_RECURSE APPSRC #
src/*.cpp #
src/*.c #

104
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");
}

2
src/app/syncbox16ch/syncbox16ch.ui

@ -223,7 +223,7 @@
</size>
</property>
<property name="text">
<string>发</string>
<string>配置/触发</string>
</property>
<property name="iconSize">
<size>

33
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<string> WorkModeStrList() { return EnumMapStrList(output_mode_enummap); }
} // namespace syncbox16chsdk
} // namespace iflytop
/***********************************************************************************************************************
* SyncBox16ChSDK *
***********************************************************************************************************************/
using namespace iflytop;
using namespace syncbox16chsdk;
void SyncBox16ChSDK::initialize() { ZFPGACommander::ins()->initialize(); }

27
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<string> 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

32
src/qtutils/enummap.cpp

@ -0,0 +1,32 @@
#include "enummap.hpp"
#include <string.h>
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<string> EnumMapStrList(const enummap_iterm_t* map) {
list<string> strlist;
for (int i = 0; !map[i].end; i++) {
if (map[i].chname) strlist.push_back(map[i].chname);
}
return strlist;
}
} // namespace iflytop

29
src/qtutils/enummap.hpp

@ -0,0 +1,29 @@
#pragma once
#include <fstream>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <thread>
#include <vector>
namespace iflytop {
using namespace std;
typedef struct {
int val;
const char* chname;
bool end;
} enummap_iterm_t;
const char* EnumMapValue2Str(const enummap_iterm_t* map, int val);
int EnumMapStr2Value(const enummap_iterm_t* map, const char* str);
list<string> EnumMapStrList(const enummap_iterm_t* map);
} // namespace iflytop

12
src/qtutils/qtutils.cpp

@ -0,0 +1,12 @@
#include "qtutils.hpp"
using namespace iflytop;
namespace iflytop {
QStringList QStringListValueOf(list<string> strlist) {
QStringList qstrlist;
for (auto str : strlist) {
qstrlist.append(QString::fromStdString(str));
}
return qstrlist;
}
} // namespace iflytop

29
src/qtutils/qtutils.hpp

@ -0,0 +1,29 @@
#pragma once
#include <fstream>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <thread>
#include <vector>
//
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QWidget>
namespace iflytop {
using namespace std;
QStringList QStringListValueOf(list<string> strlist);
} // namespace iflytop

4
src/zqui/zqui/mainwindow.cpp

@ -73,6 +73,10 @@ void MainWindow::buildUI() {
void MainWindow::on_serialPortCB_customContextMenuRequested(const QPoint &pos) {}
void MainWindow::setVersionInfo(int pos, QString versionName, QString version) {
ui->version_pos1->setDisabled(true);
ui->version_pos2->setDisabled(true);
ui->version_pos3->setDisabled(true);
if (pos == 1) {
ui->version_label_po1->setText(versionName);
ui->version_pos1->setText(version);

Loading…
Cancel
Save