diff --git a/.cproject b/.cproject
index c7a91be..e162b1b 100644
--- a/.cproject
+++ b/.cproject
@@ -30,6 +30,7 @@
+
@@ -65,11 +66,12 @@
+
-
-
+
+
+
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 200a6af..3bac06a 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
index 8abf670..ba9170c 100644
--- a/.vscode/c_cpp_properties.json
+++ b/.vscode/c_cpp_properties.json
@@ -21,7 +21,7 @@
"USE_HAL_DRIVER",
"STM32F407xx"
],
- "compilerPath": "C:/ST/STM32CubeIDE_1.13.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/arm-none-eabi-g++.exe",
+ "compilerPath": "C:/ST/STM32CubeIDE_1.17.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/arm-none-eabi-g++.exe",
"intelliSenseMode": "${default}"
}
],
diff --git a/README.md b/README.md
index e23063c..c1a0936 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,9 @@
V201
1.修复泵机启动不起来的BUG
+
+ V202
+ 1. 添加新设备DT600B的支持
```
@@ -51,4 +54,7 @@ BoardTypeId:
kDrawBarDMExtBallValveCtrl = 0x9, // 手持拉杆箱消毒机外部球阀控制板
kH2O2SensorBoard = 0xA, // H2O2传感器板
+ DT600B_LC_BOARD = 0x61,
+ DT600B_PC_BOARD = 0x62,
+```
\ No newline at end of file
diff --git a/app_protocols/transmit_disfection_protocol b/app_protocols/transmit_disfection_protocol
index 1ca640c..a779858 160000
--- a/app_protocols/transmit_disfection_protocol
+++ b/app_protocols/transmit_disfection_protocol
@@ -1 +1 @@
-Subproject commit 1ca640c0002d226f11ae6463ee63b4db9a05e35d
+Subproject commit a77985829c2972df6bf04a8a2195431559acff75
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..c0955e3
--- /dev/null
+++ b/build.bat
@@ -0,0 +1 @@
+C:\ST\STM32CubeIDE_1.17.0\STM32CubeIDE\headless-build.bat -data ../ -build transmit_disinfection_micro/Debug
diff --git a/flush.bat b/flush.bat
new file mode 100644
index 0000000..3426fe1
--- /dev/null
+++ b/flush.bat
@@ -0,0 +1,2 @@
+C:\ST\STM32CubeIDE_1.17.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130\tools\bin\STM32_Programmer_CLI.exe ^
+-c port=SWD -w Debug\transmit_disinfection_micro.hex -rst
\ No newline at end of file
diff --git a/stm32basic b/stm32basic
index cbc4bfd..55c6798 160000
--- a/stm32basic
+++ b/stm32basic
@@ -1 +1 @@
-Subproject commit cbc4bfd877ab7efefe281b29575aa7dcb93863a0
+Subproject commit 55c6798249b224f85639a292e3b2026b97529541
diff --git a/transmit_disinfection_micro.ioc b/transmit_disinfection_micro.ioc
index bbc6f62..035cddb 100644
--- a/transmit_disinfection_micro.ioc
+++ b/transmit_disinfection_micro.ioc
@@ -117,8 +117,8 @@ Mcu.PinsNb=28
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
-MxCube.Version=6.11.0
-MxDb.Version=DB.6.0.110
+MxCube.Version=6.13.0
+MxDb.Version=DB.6.0.130
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
@@ -201,7 +201,7 @@ ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=false
ProjectManager.DeviceId=STM32F407VETx
-ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.28.0
+ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.28.2
ProjectManager.FreePins=true
ProjectManager.HalAssertFull=true
ProjectManager.HeapSize=0x0000
@@ -213,8 +213,8 @@ ProjectManager.MultiThreaded=true
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false
-ProjectManager.ProjectFileName=transmit_disinfection_micro_re.ioc
-ProjectManager.ProjectName=transmit_disinfection_micro_re
+ProjectManager.ProjectFileName=transmit_disinfection_micro.ioc
+ProjectManager.ProjectName=transmit_disinfection_micro
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x2000
@@ -224,7 +224,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_CAN1_Init-CAN1-false-HAL-true,13-MX_SPI1_Init-SPI1-false-HAL-true,14-MX_USART2_UART_Init-USART2-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_CAN1_Init-CAN1-false-HAL-true,13-MX_SPI1_Init-SPI1-false-HAL-true,14-MX_USART2_UART_Init-USART2-false-HAL-true,15-MX_IWDG_Init-IWDG-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
diff --git a/ucomponents/preportional_valve/preportional_valve_ctrl.cpp b/ucomponents/preportional_valve/preportional_valve_ctrl.cpp
index 9904fed..0ff226e 100644
--- a/ucomponents/preportional_valve/preportional_valve_ctrl.cpp
+++ b/ucomponents/preportional_valve/preportional_valve_ctrl.cpp
@@ -68,7 +68,7 @@ int32_t PreportionalValveCtrl::getValveOrderPos(int32_t valueid, int32_t* pos) {
int32_t PreportionalValveCtrl::isBusy(int32_t valueid, int32_t* busy) {
#if 1
- int32_t orderpos = 0;
+ //int32_t orderpos = 0;
int32_t pos = 0;
int32_t err = 0;
@@ -76,7 +76,7 @@ int32_t PreportionalValveCtrl::isBusy(int32_t valueid, int32_t* busy) {
err = getValveOrderPos(valueid, &orderpos);
if (err != 0) return err;
#endif
- orderpos = m_targetpos[valueid];
+ //orderpos = m_targetpos[valueid];
err = getValvePos(valueid, &pos);
if (err != 0) return err;
@@ -101,4 +101,4 @@ int32_t PreportionalValveCtrl::getValveWorkState(int32_t valueid, int32_t* state
if (!ret) return kerr_subdevice_overtime;
*state = state16;
return 0;
-}
\ No newline at end of file
+}
diff --git a/usrc/app/dmapp.cpp b/usrc/app/dmapp.cpp
index fcdf167..b0adb47 100644
--- a/usrc/app/dmapp.cpp
+++ b/usrc/app/dmapp.cpp
@@ -34,12 +34,13 @@ void DisinfectionApp::initialize() {
// large space disinfection machine,
// small space disinfection machine,
// pipe disinfection machine,
- ZASSERT(PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM());
+ // DT600B,
+ ZASSERT(PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B());
/***********************************************************************************************************************
* 加热片 *
***********************************************************************************************************************/
- if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
LargeSpaceDmPowerCtrlBoardHal::HADC1_INIT();
heaterCtrler.initialize(PC7, &hadc1, ADC_CHANNEL_2, &hadc1, ADC_CHANNEL_9);
}
@@ -47,7 +48,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* 风机 *
***********************************************************************************************************************/
- if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM())) {
+ if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isDT600B())) {
LargeSpaceDmPowerCtrlBoardHal::HADC1_INIT();
blowerCtrler.initialize(PC5, &hadc1, ADC_CHANNEL_1);
} //
@@ -60,7 +61,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* 空压机 *
***********************************************************************************************************************/
- if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
LargeSpaceDmPowerCtrlBoardHal::HADC1_INIT();
airComCtrler.initialize(PC3, &hadc1, ADC_CHANNEL_0);
}
@@ -74,7 +75,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* H2O2传感器 *
***********************************************************************************************************************/
- if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isPowerCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
LargeSpaceDmPowerCtrlBoardHal::HUART3_INIT(19200, UART_STOPBITS_2);
LargeSpaceDmPowerCtrlBoardHal::HADC1_INIT();
osDelay(3000);
@@ -84,7 +85,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* 水浸传感器 *
***********************************************************************************************************************/
- if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
ZLOGI(TAG, "WaterSensor init");
evaporationBinWS.initAsInput(PC7, kxs_gpio_nopull, kxs_gpio_no_irq, false /*mirror*/);
deviceBottomWS.initAsInput(PC8, kxs_gpio_nopull, kxs_gpio_no_irq, false /*mirror*/);
@@ -96,7 +97,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* TMC电机初始化 *
***********************************************************************************************************************/
- if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
// TMC电机初始化
ZLOGI(TAG, "TMCMotorGroup init");
LargeSpaceDMLiquidCtrlBoardHal::HSPI1_INIT();
@@ -106,7 +107,7 @@ void DisinfectionApp::initialize() {
/***********************************************************************************************************************
* 三色指示灯 *
***********************************************************************************************************************/
- if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
+ if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM() || PORT::isDT600B())) {
// 三色指示灯初始化
ZLOGI(TAG, "WarningLightDriver init");
wlDriver.initialize(PD8, PD7, PD9, PD10);
@@ -171,8 +172,11 @@ void DisinfectionApp::initialize() {
});
}
- // 加液泵液路进气阀
- if (PORT::isLiquidCtrlBoard()) {
+ /**
+ * @brief
+ * 小空间低配版 和 拉杆箱 均不支持排液功能
+ */
+ if (PORT::isLiquidCtrlBoard() && (PORT::isLargeSpaceDM() || PORT::isSamllSpaceDM() || PORT::isPipeDM())) {
static ZGPIO valve;
valve.initAsOutput(PB3, kxs_gpio_nopull, true, false);
REG_LAMADA_FN(kfn_set_add_fluid_channel_selector_valve, [&](ProcessContext* cxt) {
@@ -184,6 +188,40 @@ void DisinfectionApp::initialize() {
zcanbus_send_ack(cxt->packet, NULL, 0);
});
}
+
+ /**
+ * @brief 液位状态
+ */
+ if (PORT::isLiquidCtrlBoard() && (PORT::isDT600B())) {
+ // 初始化
+ static ZGPIO io0;
+ static bool io0enable = false;
+ static ZGPIO io1;
+ static bool io1enable = false;
+ static ZGPIO io2;
+ static bool io2enable = false;
+
+ if (PORT::isDT600B()) {
+ io0.initAsInput(PD11, kxs_gpio_nopull, kxs_gpio_no_irq, true /*mirror*/);
+ io0enable = true;
+ }
+
+ if (io0enable || io1enable || io2enable) {
+ REG_LAMADA_FN(kfn_liquid_level_read_io_state, [&](ProcessContext* cxt) {
+ int32_t liquid_level_state = 0;
+ if (io0enable) {
+ liquid_level_state |= (io0.read() ? 0 : 1) << 0; // bit0:低液位置
+ }
+ if (io1enable) {
+ liquid_level_state |= (io1.read() ? 0 : 1) << 1; // bit1:中液位
+ }
+ if (io2enable) {
+ liquid_level_state |= (io2.read() ? 0 : 1) << 2; // bit2:高液位
+ }
+ zcanbus_send_ack(cxt->packet, liquid_level_state);
+ });
+ }
+ }
}
/***********************************************************************************************************************
diff --git a/usrc/app_main.cpp b/usrc/app_main.cpp
index f32c76b..63fba3a 100644
--- a/usrc/app_main.cpp
+++ b/usrc/app_main.cpp
@@ -26,8 +26,6 @@ void StartDefaultTask(void const* argument) { umain(); }
*******************************************************************************/
extern "C" {
-// void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
-// }
}
void debug_light_ctrl() {
@@ -47,27 +45,6 @@ void debug_light_ctrl() {
}
}
-void idtable_init() {
- // 大空间ID初始化
- IdMgr::ins().addIdItem({kLargeSpaceDMLiquidCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_LiquidCtrl});
- IdMgr::ins().addIdItem({kLargeSpaceDMPowerCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_PowerControl});
-
- // 小空间ID初始化
- IdMgr::ins().addIdItem({kSmallSpaceDMLiquidCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_LiquidCtrl});
- IdMgr::ins().addIdItem({kSmallSpaceDMPowerCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_PowerControl});
-
- // 管道ID初始化
- IdMgr::ins().addIdItem({kPipeDMLiquidCtrlBoard, kpipe_disinfection_machine, kFixBoardId_LiquidCtrl});
- IdMgr::ins().addIdItem({kPipeDMPowerCtrlBoard, kpipe_disinfection_machine, kFixBoardId_PowerControl});
-
- // 拉杆箱ID初始化
- IdMgr::ins().addIdItem({kDrawBarDMLiquidCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_LiquidCtrl});
- IdMgr::ins().addIdItem({kDrawBarDMPowerCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_PowerControl});
-
- // H2O2传感器ID初始化
- IdMgr::ins().addIdItem({kH2O2SensorBoard, kh2o2_ext_sensor, kFixBoardId_H2O2SensorStart});
-}
-
#define REG_PROCESSER(processer) ProtocolProcesserMgr::ins()->regProcesser(processer);
/* IWDG init function */
@@ -83,7 +60,7 @@ void MX_IWDG_Init(void) {
void umain() {
gBoardFlagSetResetFlag();
- idtable_init();
+ PORT::idtable_init();
deviceInfo_init();
// config_init();
AppPeriodTaskMgr::ins()->initialize();
diff --git a/usrc/board/public_board.cpp b/usrc/board/public_board.cpp
index 45a50b1..f8054bb 100644
--- a/usrc/board/public_board.cpp
+++ b/usrc/board/public_board.cpp
@@ -116,29 +116,20 @@ int PublicBoard::getBoardTypeId() {
return getDeviceIdFromFlash();
} else {
return 0;
- // int32_t id = 0;
- // id += BID0.read() ? 1 : 0;
- // id += BID1.read() ? 2 : 0;
- // id += BID2.read() ? 4 : 0;
- // id += BID3.read() ? 8 : 0;
- // id += BID4.read() ? 16 : 0;
- // id += BID5.read() ? 32 : 0;
- // id += BID6.read() ? 64 : 0;
- // id += BID7.read() ? 128 : 0;
- // return id;
}
}
int PublicBoard::getBoardId() {
- int boardIdoff = 0;
if (getBoardTypeId() == kH2O2SensorBoard) {
+ int boardIdoff = 0;
static ZGPIO id_from_machine; // 消毒机上的开关
if (!id_from_machine.isInited()) {
id_from_machine.initAsInput(PE8, kxs_gpio_nopull, kxs_gpio_no_irq, false);
}
boardIdoff = id_from_machine.read() ? 1 : 2;
+ return IdMgr::ins().getBoardId(getBoardTypeId()) + boardIdoff;
+ } else {
+ return IdMgr::ins().getBoardId(getBoardTypeId());
}
-
- return IdMgr::ins().getBoardId(getBoardTypeId()) + boardIdoff;
}
bool PORT::isLargeSpaceDM() { return PublicBoard::ins()->getProjId() == klarge_space_disinfection_machine; }
@@ -146,11 +137,15 @@ bool PORT::isSamllSpaceDM() { return PublicBoard::ins()->getProjId() == ksmall_s
bool PORT::isPipeDM() { return PublicBoard::ins()->getProjId() == kpipe_disinfection_machine; }
bool PORT::isDrawBarDM() { return PublicBoard::ins()->getProjId() == kdraw_bar_disinfection_box; }
bool PORT::isH2O2Sensor() { return PublicBoard::ins()->getProjId() == kh2o2_ext_sensor; }
+bool PORT::isDT600B() { return PublicBoard::ins()->getProjId() == DT600B; }
+
bool PORT::isLiquidCtrlBoard() {
if (PublicBoard::ins()->getBoardTypeId() == kLargeSpaceDMLiquidCtrlBoard || //
PublicBoard::ins()->getBoardTypeId() == kSmallSpaceDMLiquidCtrlBoard || //
PublicBoard::ins()->getBoardTypeId() == kPipeDMLiquidCtrlBoard || //
- PublicBoard::ins()->getBoardTypeId() == kDrawBarDMLiquidCtrlBoard) {
+ PublicBoard::ins()->getBoardTypeId() == kDrawBarDMLiquidCtrlBoard || //
+ PublicBoard::ins()->getBoardTypeId() == DT600B_LC_BOARD //
+ ) {
return true;
}
return false;
@@ -159,13 +154,38 @@ bool PORT::isPowerCtrlBoard() {
if (PublicBoard::ins()->getBoardTypeId() == kLargeSpaceDMPowerCtrlBoard || //
PublicBoard::ins()->getBoardTypeId() == kSmallSpaceDMPowerCtrlBoard || //
PublicBoard::ins()->getBoardTypeId() == kPipeDMPowerCtrlBoard || //
- PublicBoard::ins()->getBoardTypeId() == kDrawBarDMPowerCtrlBoard) {
+ PublicBoard::ins()->getBoardTypeId() == kDrawBarDMPowerCtrlBoard || //
+ PublicBoard::ins()->getBoardTypeId() == DT600B_PC_BOARD //
+ ) {
return true;
}
return false;
}
+void PORT::idtable_init() {
+ // 大空间ID初始化
+ IdMgr::ins().addIdItem({kLargeSpaceDMLiquidCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_LiquidCtrl});
+ IdMgr::ins().addIdItem({kLargeSpaceDMPowerCtrlBoard, klarge_space_disinfection_machine, kFixBoardId_PowerControl});
+
+ // 小空间ID初始化
+ IdMgr::ins().addIdItem({kSmallSpaceDMLiquidCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_LiquidCtrl});
+ IdMgr::ins().addIdItem({kSmallSpaceDMPowerCtrlBoard, ksmall_space_disinfection_machine, kFixBoardId_PowerControl});
+ // 管道ID初始化
+ IdMgr::ins().addIdItem({kPipeDMLiquidCtrlBoard, kpipe_disinfection_machine, kFixBoardId_LiquidCtrl});
+ IdMgr::ins().addIdItem({kPipeDMPowerCtrlBoard, kpipe_disinfection_machine, kFixBoardId_PowerControl});
+
+ // 拉杆箱ID初始化
+ IdMgr::ins().addIdItem({kDrawBarDMLiquidCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_LiquidCtrl});
+ IdMgr::ins().addIdItem({kDrawBarDMPowerCtrlBoard, kdraw_bar_disinfection_box, kFixBoardId_PowerControl});
+
+ // H2O2传感器ID初始化
+ IdMgr::ins().addIdItem({kH2O2SensorBoard, kh2o2_ext_sensor, kFixBoardId_H2O2SensorStart});
+
+ // 小空间经济版
+ IdMgr::ins().addIdItem({DT600B_LC_BOARD, DT600B, kFixBoardId_LiquidCtrl});
+ IdMgr::ins().addIdItem({DT600B_PC_BOARD, DT600B, kFixBoardId_PowerControl});
+}
namespace iflytop {
bool isBoardType(int32_t val0) {
diff --git a/usrc/board/public_board.hpp b/usrc/board/public_board.hpp
index 9b0422a..909b27f 100644
--- a/usrc/board/public_board.hpp
+++ b/usrc/board/public_board.hpp
@@ -36,11 +36,14 @@ bool isBoardType(int32_t val0, int32_t val1, int32_t val2, int32_t val3);
class PORT {
public:
+ static void idtable_init();
+
static bool isLargeSpaceDM();
static bool isSamllSpaceDM();
static bool isPipeDM();
static bool isDrawBarDM();
static bool isH2O2Sensor();
+ static bool isDT600B();
static bool isLiquidCtrlBoard();
static bool isPowerCtrlBoard();
diff --git a/usrc/module/tmc_motor_group.cpp b/usrc/module/tmc_motor_group.cpp
index 18a12b9..3d1afb0 100644
--- a/usrc/module/tmc_motor_group.cpp
+++ b/usrc/module/tmc_motor_group.cpp
@@ -99,7 +99,6 @@ static void onMotorMonitorTimer(void const* argument) {
}
data.subid = i;
- data.detailinfo;
static_assert(sizeof(gstatus) == 4);
memcpy(&data.detailinfo, &gstatus, sizeof(gstatus));
motorErrorFlag_set(i, true);
diff --git a/usrc/project_configs.h b/usrc/project_configs.h
index 0e401c4..88b85e1 100644
--- a/usrc/project_configs.h
+++ b/usrc/project_configs.h
@@ -15,7 +15,7 @@
* @brief 基础配置
*
*/
-#define SOFTWARE_VERSION 201 // 软件版本
+#define SOFTWARE_VERSION 202 // 软件版本
#define HARDWARE_VERSION 1 // 硬件版本
#define PROJECT "transmit_disinfection_micro_re" // 工程名称
#define SN_HEADER "SN" // SN号前缀