diff --git a/.vscode/settings.json b/.vscode/settings.json index 644ff92..e989e1c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,58 @@ "qobject": "cpp", "variant": "cpp", "new": "cpp", - "qtabwidget": "cpp" + "qtabwidget": "cpp", + "array": "cpp", + "atomic": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "list": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "map": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "set": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp" } } \ No newline at end of file diff --git a/app_protocols/transmit_disfection_protocol b/app_protocols/transmit_disfection_protocol index 3cb7df4..058ea4c 160000 --- a/app_protocols/transmit_disfection_protocol +++ b/app_protocols/transmit_disfection_protocol @@ -1 +1 @@ -Subproject commit 3cb7df42d6b6d1a3528def1efb837f4b3af3b60f +Subproject commit 058ea4cf80c30868271212b80b97a86539339ea1 diff --git a/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.cpp b/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.cpp index b542b5d..0edf438 100644 --- a/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.cpp +++ b/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.cpp @@ -41,6 +41,7 @@ void TransmitDisinfectionCanMaster::pingAllBoard() { } return; } +void TransmitDisinfectionCanMaster::enableReport(int to, bool enable) { m_com->callcmd1(to, kfn_enable_report, enable, DEFUALT_OVERTIME); } void TransmitDisinfectionCanMaster::pumpRotate(int boardid, int subid, int rpm) { m_com->callcmd2(boardid, kfn_pump_rotate, subid, rpm, DEFUALT_OVERTIME); } void TransmitDisinfectionCanMaster::pumpStop(int boardid, int subid) { m_com->callcmd1(boardid, kfn_pump_stop, subid, DEFUALT_OVERTIME); } @@ -80,6 +81,7 @@ int TransmitDisinfectionCanMaster::airCompressorReadEI(int boardid) { } int TransmitDisinfectionCanMaster::airCompressorReadEIAdcRaw(int boardid) { // auto rec = m_com->callcmd0(boardid, kfn_air_compressor_read_ei_adc_raw); + return rec->getContent(0); } int TransmitDisinfectionCanMaster::airTightnessTestACCtrl(int boardid, int32_t val) { diff --git a/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.hpp b/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.hpp index 13e27e4..1dc068c 100644 --- a/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.hpp +++ b/src/app/transmit_disinfection/channel/transmit_disinfection_can_master.hpp @@ -45,6 +45,8 @@ class TransmitDisinfectionCanMaster { ask_taskinfo_t readtaskinfo(int to, int32_t taskoff); void clearResetFlag(int to); void pingAllBoard(); + void enableReport(int to, bool enable); + void resetBoard(int to) { m_com->callcmd0(to, kfn_reset_board, DEFUALT_OVERTIME); } void h2o2SensorReadCalibrationDate(int boardid, int32_t *year, int32_t *month, int32_t *day) { // auto ret = m_com->callcmd0(boardid, kfn_h2o2_sensor_read_calibration_date); @@ -58,23 +60,26 @@ class TransmitDisinfectionCanMaster { /*********************************************************************************************************************** * PUMP * ***********************************************************************************************************************/ - void pumpRotate(int boardid, int subid, int rpm); - void pumpStop(int boardid, int subid); - void pumpSetIholdIrunIdelay(int boardid, int subid, int ihold, int irun, int idelay); - void pumpSetRamp(int boardid, int index, int vs, int a1, int amx, int v1); - void pumpSetTzw(int boardid, int index, int tzw); - void pumpSetSubicReg(int boardid, int subid, int regadd, int val); - int pumpGetSubicReg(int boardid, int subid, int regadd); - void pumpPing(int32_t boardid); + void pumpRotate(int boardid, int subid, int rpm); + void pumpStop(int boardid, int subid); + void pumpSetIholdIrunIdelay(int boardid, int subid, int ihold, int irun, int idelay); + void pumpSetRamp(int boardid, int index, int vs, int a1, int amx, int v1); + void pumpSetTzw(int boardid, int index, int tzw); + void pumpSetSubicReg(int boardid, int subid, int regadd, int val); + int pumpGetSubicReg(int boardid, int subid, int regadd); + void pumpPing(int32_t boardid); + int32_t pumpIsRun(int boardid, int subid) { return m_com->callcmd1(boardid, kfn_pump_is_run, subid, DEFUALT_OVERTIME)->getContent(0); } /*********************************************************************************************************************** * blower * ***********************************************************************************************************************/ + void blowerCtrl(int boardid, int power); void blowerCtrlSafeValve(int boardid, int valve_state); int blowerReadEI(int boardid); int blowerReadEIAdcRaw(int boardid); int blowerReadElectricIsError(int boardid); + int blowserIsOpen(int boardid) { return m_com->callcmd0(boardid, kfn_blower_is_open, DEFUALT_OVERTIME)->getContent(0); } /*********************************************************************************************************************** * air_compressor * @@ -83,8 +88,10 @@ class TransmitDisinfectionCanMaster { void airCompressorCtrlSafeValve(int boardid, int valve_state); int airCompressorReadEI(int boardid); int airCompressorReadEIAdcRaw(int boardid); + int airCompressorIsOpen(int boardid) { return m_com->callcmd0(boardid, kfn_air_compressor_is_open, DEFUALT_OVERTIME)->getContent(0); } int airTightnessTestACCtrl(int boardid, int32_t val); + int airTightnessTestACIsOpen(int boardid) { return m_com->callcmd0(boardid, kfn_air_tightness_test_ac_is_open, DEFUALT_OVERTIME)->getContent(0); } /*********************************************************************************************************************** * heater * @@ -95,8 +102,10 @@ class TransmitDisinfectionCanMaster { int heaterReadTemperature(int boardid); int heaterReadEIAdcRaw(int boardid); int heaterReadTemperatureAdcRaw(int boardid); + int heaterIsOpen(int boardid) { return m_com->callcmd0(boardid, kfn_heater_is_open, DEFUALT_OVERTIME)->getContent(0); } void warningLightSetState(int boardid, int r, int g, int b, int warning); + void warningLightReadState(int boardid, int *r, int *g, int *b, int *warning); int evaporationTankWSReadState(int boardid); int bottomWSReadState(int boardid); @@ -108,10 +117,13 @@ class TransmitDisinfectionCanMaster { int proportionalReadPos(int boardid) { return m_com->callcmd0(boardid, kfn_proportional_read_pos, DEFUALT_OVERTIME)->getContent(0); } int proportionalIsBusy(int boardid) { return m_com->callcmd0(boardid, kfn_proportional_is_busy, DEFUALT_OVERTIME)->getContent(0); } - void airTightnessTestCloseOffCh(int boardid) { m_com->callcmd0(boardid, kfn_air_tightness_test_close_off_ch, DEFUALT_OVERTIME); } + // kfn_air_tightness_test_is_cutoff + void airTightnessTestCloseOffCh(int boardid) { m_com->callcmd0(boardid, kfn_air_tightness_test_cutoff_ch, DEFUALT_OVERTIME); } void airTightnessTestOpenCh(int boardid) { m_com->callcmd0(boardid, kfn_air_tightness_test_release_ch, DEFUALT_OVERTIME); } + int airTightnessTestIsCutoff(int boardid) { return m_com->callcmd0(boardid, kfn_air_tightness_test_is_cutoff, DEFUALT_OVERTIME)->getContent(0); } void extChSelectorSetCh(int boardid, int ch) { m_com->callcmd1(boardid, kfn_ext_ch_selector_set_ch, ch, DEFUALT_OVERTIME); } + int extChSelectorGetCh(int boardid) { return m_com->callcmd0(boardid, kfn_ext_ch_selector_get_ch, DEFUALT_OVERTIME)->getContent(0); } }; } // namespace iflytop diff --git a/src/app/transmit_disinfection/utils/tabbuilder.cpp b/src/app/transmit_disinfection/utils/tabbuilder.cpp index a8dd5e8..934cbe9 100644 --- a/src/app/transmit_disinfection/utils/tabbuilder.cpp +++ b/src/app/transmit_disinfection/utils/tabbuilder.cpp @@ -46,6 +46,15 @@ ZQVTabPage *TabBuilder::getTab(const char *tabname) { } return tabMap[tabname]; } + +// int blowserIsOpen(int boardid) {} +// int airCompressorIsOpen(int boardid) {} +// int airTightnessTestACIsOpen(int boardid) {} +// int heaterIsOpen(int boardid) {} +// extChSelectorGetCh +// int airTightnessTestIsCutoff(int boardid) { return m_com->callcmd0(boardid, kfn_air_tightness_test_is_cutoff, DEFUALT_OVERTIME)->getContent(0); } +// void warningLightReadState(int boardid, int *r, int *g, int *b, int *warning); + void TabBuilder::buildBoardBasicCtrl(const char *tabname, int boardid) { // ZQVTabPage *tab = getTab(tabname); ZQFunctionListBox *box = new ZQFunctionListBox(tab, "通用", 4); @@ -57,10 +66,20 @@ void TabBuilder::buildBoardBasicCtrl(const char *tabname, int boardid) { // box->newSubButton("读取系统信息", [this, boardid](int argn, const char **args) { readSysInfo(boardid); }); box->newSubButtonEnd(); box->newSubButton("清除复位标识", [this, boardid](int argn, const char **args) { CAN_MASTER->clearResetFlag(boardid); }); + // enableReport + box->newSubButtonEnd(); + box->newSubButton("使能上报", [this, boardid](int argn, const char **args) { CAN_MASTER->enableReport(boardid, 1); }); + box->newSubButton("失能上报", [this, boardid](int argn, const char **args) { CAN_MASTER->enableReport(boardid, 0); }); + box->newSubButtonEnd(); + box->newSubButton("复位板卡", [this, boardid](int argn, const char **args) { CAN_MASTER->resetBoard(boardid); }); + } else { box->newFunc("读取板卡信息", {"boardid"}, [this](int argn, const char **args) { readBoardInfo(atoi(args[0])); }); box->newFunc("读取系统信息", {"boardid"}, [this](int argn, const char **args) { readSysInfo(atoi(args[0])); }); box->newFunc("清除复位标识", {"boardid"}, [this](int argn, const char **args) { CAN_MASTER->clearResetFlag(atoi(args[0])); }); + box->newFunc("使能上报", {"boardid"}, [this](int argn, const char **args) { CAN_MASTER->enableReport(atoi(args[0]), 1); }); + box->newFunc("失能上报", {"boardid"}, [this](int argn, const char **args) { CAN_MASTER->enableReport(atoi(args[0]), 0); }); + box->newFunc("复位板卡", {"boardid"}, [this](int argn, const char **args) { CAN_MASTER->resetBoard(atoi(args[0])); }); } } void TabBuilder::buildFnPumpCtrl(const char *tabname, int boardid) { @@ -93,6 +112,11 @@ void TabBuilder::buildFnPumpCtrl(const char *tabname, int boardid) { int val = CAN_MASTER->pumpGetSubicReg(kFixBoardId_LiquidCtrl, atoi(args[0]), atoi(args[1])); ISHOW("val:%x", val); }); + + box->newFunc("pumpIsRun", {"subid"}, [](int argn, const char **args) { // + int val = CAN_MASTER->pumpIsRun(kFixBoardId_LiquidCtrl, atoi(args[0])); + ISHOW("val:%d", val); + }); } void TabBuilder::buildHearterTab(const char *tabname, int boardid) { @@ -105,7 +129,7 @@ void TabBuilder::buildHearterTab(const char *tabname, int boardid) { box->newSubButtonEnd(); box->newSubButton("加热安全阀打开", [this, boardid](int argn, const char **args) { CAN_MASTER->heaterCtrlSafeValve(boardid, 1); }); box->newSubButton("加热安全阀关闭", [this, boardid](int argn, const char **args) { CAN_MASTER->heaterCtrlSafeValve(boardid, 0); }); - + box->newSubButtonEnd(); box->newSubButton("读取电流", [this, boardid](int argn, const char **args) { int val = CAN_MASTER->heaterReadEI(boardid); ISHOW("val:%d", val); @@ -123,6 +147,10 @@ void TabBuilder::buildHearterTab(const char *tabname, int boardid) { int val = CAN_MASTER->heaterReadTemperatureAdcRaw(boardid); ISHOW("val:%d", val); }); + box->newSubButton("是否运行", [this, boardid](int argn, const char **args) { + bool val = CAN_MASTER->heaterIsOpen(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildH2O2SensorTab(const char *tabname, int boardid) { ZQVTabPage *tab = getTab(tabname); @@ -165,6 +193,11 @@ void TabBuilder::buildTripleWarningLightTab(const char *tabname, int boardid) { box->newFunc("三色指示灯控制", {"r", "g", "b", "warning"}, [this, boardid](int argn, const char **args) { // CAN_MASTER->warningLightSetState(boardid, atoi(args[0]), atoi(args[1]), atoi(args[2]), atoi(args[3])); }); + box->newFunc("读取三色指示灯状态", {}, [this, boardid](int argn, const char **args) { + int r, g, b, warning; + CAN_MASTER->warningLightReadState(boardid, &r, &g, &b, &warning); + ISHOW("r:%d,g:%d,b:%d,warning:%d", r, g, b, warning); + }); } void TabBuilder::buildWaterSensorTab(const char *tabname, int boardid) { ZQVTabPage *tab = getTab(tabname); @@ -195,10 +228,15 @@ void TabBuilder::buildBlowerTab(const char *tabname, int boardid) { int val = CAN_MASTER->blowerReadEIAdcRaw(boardid); ISHOW("val:%d", val); }); + box->newSubButtonEnd(); box->newSubButton("风机是否错误", [this, boardid](int argn, const char **args) { bool val = CAN_MASTER->blowerReadElectricIsError(boardid); ISHOW("val:%d", val); }); + box->newSubButton("风机是否打开", [this, boardid](int argn, const char **args) { + bool val = CAN_MASTER->blowserIsOpen(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildAirCompressorTab(const char *tabname, int boardid) { @@ -210,7 +248,7 @@ void TabBuilder::buildAirCompressorTab(const char *tabname, int boardid) { // box->newFunc("空压机安全阀控制", {"valve_state"}, [this, boardid](int argn, const char **args) { CAN_MASTER->airCompressorCtrlSafeValve(boardid, atoi(args[0])); }); box->newSubButton("空压机安全阀打开", [this, boardid](int argn, const char **args) { CAN_MASTER->airCompressorCtrlSafeValve(boardid, 1); }); box->newSubButton("空压机安全阀关闭", [this, boardid](int argn, const char **args) { CAN_MASTER->airCompressorCtrlSafeValve(boardid, 0); }); - + box->newSubButtonEnd(); box->newFunc("空压机读取电流", {}, [this, boardid](int argn, const char **args) { int val = CAN_MASTER->airCompressorReadEI(boardid); ISHOW("val:%d", val); @@ -219,6 +257,10 @@ void TabBuilder::buildAirCompressorTab(const char *tabname, int boardid) { int val = CAN_MASTER->airCompressorReadEIAdcRaw(boardid); ISHOW("val:%d", val); }); + box->newFunc("空压机是否打开", {}, [this, boardid](int argn, const char **args) { + bool val = CAN_MASTER->airCompressorIsOpen(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildAirTightnessTestACTab(const char *tabname, int boardid) { @@ -226,6 +268,11 @@ void TabBuilder::buildAirTightnessTestACTab(const char *tabname, int boardid) { ZQFunctionListBox *box = new ZQFunctionListBox(tab, "气密性测试空压机", 4); box->newSubButton("打开", [this, boardid](int argn, const char **args) { CAN_MASTER->airTightnessTestACCtrl(boardid, 1); }); box->newSubButton("关闭", [this, boardid](int argn, const char **args) { CAN_MASTER->airTightnessTestACCtrl(boardid, 0); }); + box->newSubButtonEnd(); + box->newSubButton("是否打开", [this, boardid](int argn, const char **args) { + bool val = CAN_MASTER->airTightnessTestACIsOpen(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildPSBusTab(const char *tabname, int boardid) { ZQVTabPage *tab = getTab(tabname); @@ -268,6 +315,11 @@ void TabBuilder::buildAirTightnessTestTab(const char *tabname, int boardid) { box->newSubButton("气密性测试-释放通道", [this, boardid](int argn, const char **args) { // CAN_MASTER->airTightnessTestOpenCh(boardid); }); + box->newSubButtonEnd(); + box->newSubButton("气密性测试-是否封闭", [this, boardid](int argn, const char **args) { // + int val = CAN_MASTER->airTightnessTestIsCutoff(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildExtChSelectorTab(const char *tabname, int boardid) { @@ -276,6 +328,10 @@ void TabBuilder::buildExtChSelectorTab(const char *tabname, int boardid) { box->newFunc("设置外部通道(0:消毒 1:降解 2:除湿)", {"ch"}, [this, boardid](int argn, const char **args) { // CAN_MASTER->extChSelectorSetCh(boardid, atoi(args[0])); }); + box->newFunc("读取外部通道", {}, [this, boardid](int argn, const char **args) { // + int val = CAN_MASTER->extChSelectorGetCh(boardid); + ISHOW("val:%d", val); + }); } void TabBuilder::buildEnd() {