diff --git a/Core/Src/main.c b/Core/Src/main.c
index 1d7491e..4782933 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -238,6 +238,8 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
/* Infinite loop */
+ /* USER CODE BEGIN WHILE */
+ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
@@ -253,7 +255,7 @@ int main(void)
/* === 3. 极速无乱码透传 === */
- /* === 方案 A:从 433 收到无线数据 -> 拆包提取ID -> 纯净透传给 485 === */
+/* === 方案 A:从 433 收到无线数据 -> 给上位机解析 === */
if (u1_rx_len > 0 && (HAL_GetTick() - u1_last_rx_time > 20))
{
static uint8_t temp_buf1[256];
@@ -263,28 +265,62 @@ int main(void)
u1_rx_len = 0;
__enable_irq();
- /* 🚀 解析“快递单”:检查数据长度,并且第0个字节必须是我们定义的魔法帧头 0xAA */
+ /* 🚀 终极上位机协议:[0xAA帧头] + [设备ID] + [来源接口] + [数据长度] + [纯净数据] */
if (len >= 2 && temp_buf1[0] == 0xAA)
{
- uint8_t sender_id = temp_buf1[1]; // 提取发件人的身份证
- uint16_t real_len = len - 2; // 扒掉2个字节的衣服后,真实数据的长度
- uint8_t* real_data = &temp_buf1[2]; // 真实数据的起始指针
+ uint8_t sender_id = temp_buf1[1];
+ uint16_t payload_len = len - 2;
+ uint8_t* payload_data = &temp_buf1[2];
+
+ /* 默认 0x03 为 RS485 透传数据 */
+ uint8_t source_type = 0x03;
+
+ /* ==========================================================
+ 🚀 核心修复:直接对比底层字节,抛弃 strncmp!
+ 同时兼容你可能忘了烧录新代码的旧版 $DI 协议!
+ ========================================================== */
+
+ /* 判断是不是新版 [DI] 标签 */
+ if (payload_len >= 4 && payload_data[0] == '[' && payload_data[1] == 'D' && payload_data[2] == 'I' && payload_data[3] == ']')
+ {
+ source_type = 0x01; /* 0x01 代表是 DI 口触发的数据 */
+ payload_data += 4; /* 砍掉 "[DI]" 标签 */
+ payload_len -= 4;
+ }
+ /* 判断是不是旧版 $DI 标签 (防止远端发送板没烧录最新代码) */
+ else if (payload_len >= 3 && payload_data[0] == '$' && payload_data[1] == 'D' && payload_data[2] == 'I')
+ {
+ source_type = 0x01; /* 也是 DI 口数据,但不砍标签了,直接全发过去 */
+ }
+ /* 判断是不是网口 [NET] 标签 */
+ else if (payload_len >= 5 && payload_data[0] == '[' && payload_data[1] == 'N' && payload_data[2] == 'E' && payload_data[3] == 'T' && payload_data[4] == ']')
+ {
+ source_type = 0x02; /* 0x02 代表是 网络口 收到的数据 */
+ payload_data += 5; /* 砍掉 "[NET]" 标签 */
+ payload_len -= 5;
+ }
+ /* ========================================================== */
- /* 【追踪器】打印出来:知道是哪个设备发来的! */
- printf("\r\n[DEBUG] 收到来自 设备[%d] 的消息, 有效数据长度: %d 字节!\r\n", sender_id, real_len);
- /* 只把干净的真实数据发给 485 设备,绝不能把 0xAA 和 ID 发给 485,否则外部设备会乱码 */
- if (real_len > 0) {
- MultiUART_Send(PORT_UART3, real_data, real_len);
- MultiUART_Send(PORT_UART2, real_data, real_len); // 电脑监控原始数据
+ if (payload_len > 0) {
+ /* 重新组装终极协议帧 */
+ uint8_t upper_buf[260];
+ upper_buf[0] = 0xAA; // Byte 0: 魔法帧头
+ upper_buf[1] = sender_id; // Byte 1: 发送设备 ID
+ upper_buf[2] = source_type; // Byte 2: 数据来源 (1=DI, 2=NET, 3=485)
+ upper_buf[3] = (uint8_t)payload_len; // Byte 3: 真实数据长度
+ memcpy(&upper_buf[4], payload_data, payload_len); // Byte 4~末尾: 绝对纯净的数据
+
+ /* 发送给 485 和电脑上位机 */
+ MultiUART_Send(PORT_UART3, upper_buf, payload_len + 4);
+ MultiUART_Send(PORT_UART2, upper_buf, payload_len + 4);
}
}
else
{
- /* 如果没有匹配上帧头(比如收到了环境干扰乱码),直接按原样丢弃或透传 */
+ /* 普通无帧头干扰数据,按原样透传 */
MultiUART_Send(PORT_UART3, temp_buf1, len);
MultiUART_Send(PORT_UART2, temp_buf1, len);
}
- }
/* === 方案 B:从 485 收到设备数据 -> 穿上包装(附加ID) -> 通过 433 无线发射 === */
if (u3_rx_len > 0 && (HAL_GetTick() - u3_last_rx_time > 20))
@@ -302,15 +338,15 @@ int main(void)
rf_tx_buf[1] = MY_DEVICE_ID; // 贴上本机的身份证号
memcpy(&rf_tx_buf[2], temp_buf3, len); // 把 485 收到的真实数据塞进后面
- /* 把带有身份证的完整包裹,通过 433 发射到空气中 (长度要 +2) */
+ /* 把带有身份证的完整包裹,通过 433 发射到空气中 */
MultiUART_Send(PORT_UART1, rf_tx_buf, len + 2);
}
/* USER CODE END WHILE */
}
- /* USER CODE END 3 */
- /* USER CODE END 3 */
}
+}
+ /* USER CODE END 3 */
/**
* @brief System Clock Configuration
* @retval None
diff --git a/MDK-ARM/project.uvguix.xtell b/MDK-ARM/project.uvguix.xtell
index bda07b2..a62fcb9 100644
--- a/MDK-ARM/project.uvguix.xtell
+++ b/MDK-ARM/project.uvguix.xtell
@@ -111,7 +111,7 @@
0
3522
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001D000000030000000100000047433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C636D645F7061727365722E63000000000C636D645F7061727365722E6300000000FFDC7800FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C636D645F726F757465722E63000000000C636D645F726F757465722E6300000000BECEA100FFFFFFFF47433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000F0A0A100FFFFFFFF52433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C757365725F6D61696E5C757365725F6D61696E2E63000000000B757365725F6D61696E2E6300000000BCA8E100FFFFFFFF4E433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75617274325F7072696E742E63000000000D75617274325F7072696E742E63000000009CC1B600FFFFFFFF4E433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C75617274325F7072696E742E68000000000D75617274325F7072696E742E6800000000F7B88600FFFFFFFF58433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C77697A5F706C6174666F726D5C77697A5F706C6174666F726D2E63000000000E77697A5F706C6174666F726D2E6300000000D9ADC200FFFFFFFF5A433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C77697A5F696E746572666163655C77697A5F696E746572666163652E63000000000F77697A5F696E746572666163652E6300000000A5C2D700FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72656C61795F636F6E74726F6C2E63000000000F72656C61795F636F6E74726F6C2E6300000000B3A6BE00FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6D756C74695F756172745F726F757465722E6300000000136D756C74695F756172745F726F757465722E6300000000EAD6A300FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C4C6F6F706261636B5C6C6F6F706261636B2E63000000000A6C6F6F706261636B2E6300000000F6FA7D00FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C6D756C74695F756172745F726F757465722E6800000000136D756C74695F756172745F726F757465722E6800000000B5E99D00FFFFFFFF5F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75617274335F70726F746F636F6C5F6469736372696D696E61746F722E63000000001E75617274335F70726F746F636F6C5F6469736372696D696E61746F722E63000000005FC3CF00FFFFFFFF57433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433335F636F6E6669672E68000000000E72663433335F636F6E6669672E6800000000C1838300FFFFFFFF4F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72663433335F72785F6170702E63000000000E72663433335F72785F6170702E6300000000CACAD500FFFFFFFF4F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72663433335F74785F6170702E63000000000E72663433335F74785F6170702E6300000000C5D4F200FFFFFFFF48433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75736172742E63000000000775736172742E6300000000FFDC7800FFFFFFFF55433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000BECEA100FFFFFFFF68433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000F0A0A100FFFFFFFF47433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000BCA8E100FFFFFFFF6D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E63000000009CC1B600FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433335F68616C2E68000000000B72663433335F68616C2E6800000000F7B88600FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C5372635C72663433332E63000000000772663433332E6300000000D9ADC200FFFFFFFF6D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F756172742E63000000001473746D3332663178785F68616C5F756172742E6300000000A5C2D700FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C5372635C72663433335F68616C2E63000000000B72663433335F68616C2E6300000000B3A6BE00FFFFFFFF5C433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C75617274335F736D6172745F726F757465725F636F6E6669672E68000000001B75617274335F736D6172745F726F757465725F636F6E6669672E6800000000EAD6A300FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433332E68000000000772663433332E6800000000F6FA7D00FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C696F5F6D6F6E69746F722E63000000000C696F5F6D6F6E69746F722E6300000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000055030000
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001D000000000000000100000047433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C636D645F7061727365722E63000000000C636D645F7061727365722E6300000000FFDC7800FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C636D645F726F757465722E63000000000C636D645F726F757465722E6300000000BECEA100FFFFFFFF47433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000F0A0A100FFFFFFFF52433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C757365725F6D61696E5C757365725F6D61696E2E63000000000B757365725F6D61696E2E6300000000BCA8E100FFFFFFFF4E433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75617274325F7072696E742E63000000000D75617274325F7072696E742E63000000009CC1B600FFFFFFFF4E433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C75617274325F7072696E742E68000000000D75617274325F7072696E742E6800000000F7B88600FFFFFFFF58433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C77697A5F706C6174666F726D5C77697A5F706C6174666F726D2E63000000000E77697A5F706C6174666F726D2E6300000000D9ADC200FFFFFFFF5A433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C77697A5F696E746572666163655C77697A5F696E746572666163652E63000000000F77697A5F696E746572666163652E6300000000A5C2D700FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72656C61795F636F6E74726F6C2E63000000000F72656C61795F636F6E74726F6C2E6300000000B3A6BE00FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6D756C74695F756172745F726F757465722E6300000000136D756C74695F756172745F726F757465722E6300000000EAD6A300FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C557365725C4C6F6F706261636B5C6C6F6F706261636B2E63000000000A6C6F6F706261636B2E6300000000F6FA7D00FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C6D756C74695F756172745F726F757465722E6800000000136D756C74695F756172745F726F757465722E6800000000B5E99D00FFFFFFFF5F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75617274335F70726F746F636F6C5F6469736372696D696E61746F722E63000000001E75617274335F70726F746F636F6C5F6469736372696D696E61746F722E63000000005FC3CF00FFFFFFFF57433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433335F636F6E6669672E68000000000E72663433335F636F6E6669672E6800000000C1838300FFFFFFFF4F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72663433335F72785F6170702E63000000000E72663433335F72785F6170702E6300000000CACAD500FFFFFFFF4F433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C72663433335F74785F6170702E63000000000E72663433335F74785F6170702E6300000000C5D4F200FFFFFFFF48433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C75736172742E63000000000775736172742E6300000000FFDC7800FFFFFFFF55433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000BECEA100FFFFFFFF68433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000F0A0A100FFFFFFFF47433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000BCA8E100FFFFFFFF6D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E63000000009CC1B600FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433335F68616C2E68000000000B72663433335F68616C2E6800000000F7B88600FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C5372635C72663433332E63000000000772663433332E6300000000D9ADC200FFFFFFFF6D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F756172742E63000000001473746D3332663178785F68616C5F756172742E6300000000A5C2D700FFFFFFFF54433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C5372635C72663433335F68616C2E63000000000B72663433335F68616C2E6300000000B3A6BE00FFFFFFFF5C433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C496E635C75617274335F736D6172745F726F757465725F636F6E6669672E68000000001B75617274335F736D6172745F726F757465725F636F6E6669672E6800000000EAD6A300FFFFFFFF50433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C4472697665725F52463433335C496E635C72663433332E68000000000772663433332E6800000000F6FA7D00FFFFFFFF4D433A5C776F726B66696C655C4533322D3433335C736F6674776172655C5441524745545F424F4152445F4533322D3433335442482D53435C436F72655C5372635C696F5F6D6F6E69746F722E63000000000C696F5F6D6F6E69746F722E6300000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000055030000
@@ -1806,7 +1806,7 @@
File
2938
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000005656E6469669600000000000000140005656E64696604363231310D6164635F76616C75655F6F70312150726F746F636F6C5F4275696C643556506F7765725374617475735061636B65741253656E64486561727462656174546F53544311504D54436F6E74726F6C5F55706461746513504D54436F6E74726F6C5F53657456636F6E740B53544D5F4241545F4144430863616C6C6261636B1F50726F746F636F6C5F4275696C6456636F6E745374617475735061636B6574126164635F46414E5F323230565F76616C7565096164635F76616C75651046414E5F323230565F636F6E74726F6C146469705377697463684D6F6465456E7465726564186469705F7377697463685F6D6F64655F6465746563746564134465746563744469705377697463684D6F64650450334D300430784343106469705F7377697463685F74696D657207526561644144430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000005656E6469669600000000000000140005656E64696604363231310D6164635F76616C75655F6F70312150726F746F636F6C5F4275696C643556506F7765725374617475735061636B65741253656E64486561727462656174546F53544311504D54436F6E74726F6C5F55706461746513504D54436F6E74726F6C5F53657456636F6E740B53544D5F4241545F4144430863616C6C6261636B1F50726F746F636F6C5F4275696C6456636F6E745374617475735061636B6574126164635F46414E5F323230565F76616C7565096164635F76616C75651046414E5F323230565F636F6E74726F6C146469705377697463684D6F6465456E7465726564186469705F7377697463685F6D6F64655F6465746563746564134465746563744469705377697463684D6F64650450334D300430784343106469705F7377697463685F74696D657207526561644144430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
974
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000770726F6A656374960000000000000001000770726F6A656374000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000770726F6A656374960000000000000001000770726F6A656374000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1838,7 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3603,12 +3603,12 @@
0
100
- 3
+ 0
../Core/Src/main.c
- 17
- 192
- 244
+ 0
+ 325
+ 377
1
0
@@ -3633,9 +3633,9 @@
../Core/Inc/main.h
- 44
+ 80
31
- 53
+ 66
1
0
@@ -3859,7 +3859,7 @@
..\Core\Src\io_monitor.c
0
- 236
+ 173
258
1
diff --git a/MDK-ARM/project/cmd_parser.o b/MDK-ARM/project/cmd_parser.o
index 445a1f2..f1bb835 100644
Binary files a/MDK-ARM/project/cmd_parser.o and b/MDK-ARM/project/cmd_parser.o differ
diff --git a/MDK-ARM/project/cmd_router.crf b/MDK-ARM/project/cmd_router.crf
index db33d0e..fd7eb03 100644
Binary files a/MDK-ARM/project/cmd_router.crf and b/MDK-ARM/project/cmd_router.crf differ
diff --git a/MDK-ARM/project/cmd_router.o b/MDK-ARM/project/cmd_router.o
index 02ac7ed..b11ed61 100644
Binary files a/MDK-ARM/project/cmd_router.o and b/MDK-ARM/project/cmd_router.o differ
diff --git a/MDK-ARM/project/debug_log.crf b/MDK-ARM/project/debug_log.crf
index 20c3049..13aee29 100644
Binary files a/MDK-ARM/project/debug_log.crf and b/MDK-ARM/project/debug_log.crf differ
diff --git a/MDK-ARM/project/debug_log.o b/MDK-ARM/project/debug_log.o
index 9eda456..22c7bc4 100644
Binary files a/MDK-ARM/project/debug_log.o and b/MDK-ARM/project/debug_log.o differ
diff --git a/MDK-ARM/project/dhcp.o b/MDK-ARM/project/dhcp.o
index 3baf1c3..a04606c 100644
Binary files a/MDK-ARM/project/dhcp.o and b/MDK-ARM/project/dhcp.o differ
diff --git a/MDK-ARM/project/gpio.crf b/MDK-ARM/project/gpio.crf
index 1e1cfb3..4877d93 100644
Binary files a/MDK-ARM/project/gpio.crf and b/MDK-ARM/project/gpio.crf differ
diff --git a/MDK-ARM/project/gpio.o b/MDK-ARM/project/gpio.o
index 73b678a..13b2fe8 100644
Binary files a/MDK-ARM/project/gpio.o and b/MDK-ARM/project/gpio.o differ
diff --git a/MDK-ARM/project/io_monitor.crf b/MDK-ARM/project/io_monitor.crf
index 770fc6f..84cb6b8 100644
Binary files a/MDK-ARM/project/io_monitor.crf and b/MDK-ARM/project/io_monitor.crf differ
diff --git a/MDK-ARM/project/io_monitor.o b/MDK-ARM/project/io_monitor.o
index 0ec3b66..b409bd9 100644
Binary files a/MDK-ARM/project/io_monitor.o and b/MDK-ARM/project/io_monitor.o differ
diff --git a/MDK-ARM/project/loopback.crf b/MDK-ARM/project/loopback.crf
index 3b6ac6e..8d74cc9 100644
Binary files a/MDK-ARM/project/loopback.crf and b/MDK-ARM/project/loopback.crf differ
diff --git a/MDK-ARM/project/loopback.o b/MDK-ARM/project/loopback.o
index 698c32a..7f49d1f 100644
Binary files a/MDK-ARM/project/loopback.o and b/MDK-ARM/project/loopback.o differ
diff --git a/MDK-ARM/project/main.crf b/MDK-ARM/project/main.crf
index c344390..a713e84 100644
Binary files a/MDK-ARM/project/main.crf and b/MDK-ARM/project/main.crf differ
diff --git a/MDK-ARM/project/main.o b/MDK-ARM/project/main.o
index dcbdf3a..9cd13ac 100644
Binary files a/MDK-ARM/project/main.o and b/MDK-ARM/project/main.o differ
diff --git a/MDK-ARM/project/multi_uart_router.crf b/MDK-ARM/project/multi_uart_router.crf
index 0e73e57..71a1fda 100644
Binary files a/MDK-ARM/project/multi_uart_router.crf and b/MDK-ARM/project/multi_uart_router.crf differ
diff --git a/MDK-ARM/project/multi_uart_router.o b/MDK-ARM/project/multi_uart_router.o
index 1e5c65b..23baa31 100644
Binary files a/MDK-ARM/project/multi_uart_router.o and b/MDK-ARM/project/multi_uart_router.o differ
diff --git a/MDK-ARM/project/multicast.o b/MDK-ARM/project/multicast.o
index 482021e..acc3839 100644
Binary files a/MDK-ARM/project/multicast.o and b/MDK-ARM/project/multicast.o differ
diff --git a/MDK-ARM/project/project.axf b/MDK-ARM/project/project.axf
index b25d166..0f5d1ff 100644
Binary files a/MDK-ARM/project/project.axf and b/MDK-ARM/project/project.axf differ
diff --git a/MDK-ARM/project/project.build_log.htm b/MDK-ARM/project/project.build_log.htm
index 60b611f..3611879 100644
--- a/MDK-ARM/project/project.build_log.htm
+++ b/MDK-ARM/project/project.build_log.htm
@@ -28,34 +28,51 @@ Project File Date: 05/05/2026
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'project'
assembling startup_stm32f103xb.s...
-compiling main.c...
-../Core/Src/main.c(262): warning: #223-D: function "memcpy" declared implicitly
- memcpy(temp_buf1, (uint8_t*)u1_rx_buffer, len);
-../Core/Src/main.c(274): warning: #870-D: invalid multibyte character sequence
- printf("\r\n[DEBUG] 收到来自 设备[%d] 的消?, 有效数据长度: %d 字节!\r\n", sender_id, real_len);
-../Core/Src/main.c(295): warning: #223-D: function "memcpy" declared implicitly
- memcpy(temp_buf3, (uint8_t*)u3_rx_buffer, len);
-../Core/Src/main.c: 3 warnings, 0 errors
-compiling systick.c...
+compiling gpio.c...
compiling spi.c...
+compiling systick.c...
compiling rf433_tx_app.c...
..\Core\Src\rf433_tx_app.c(28): warning: #188-D: enumerated type mixed with another type
static rf433_tx_app_t g_tx_app = {0};
..\Core\Src\rf433_tx_app.c: 1 warning, 0 errors
+compiling main.c...
+../Core/Src/main.c(264): warning: #223-D: function "memcpy" declared implicitly
+ memcpy(temp_buf1, (uint8_t*)u1_rx_buffer, len);
+../Core/Src/main.c: 1 warning, 0 errors
+compiling cmd_parser.c...
compiling rf433_rx_app.c...
..\Core\Src\rf433_rx_app.c(23): warning: #188-D: enumerated type mixed with another type
static rf433_rx_app_t g_rx_app = {0};
..\Core\Src\rf433_rx_app.c: 1 warning, 0 errors
compiling usart.c...
-compiling cmd_parser.c...
-compiling gpio.c...
-compiling relay_control.c...
+compiling io_monitor.c...
+../Core/Inc/data_source.h(8): warning: #1-D: last line of file ends without a newline
+ #endif /* __DATA_SOURCE_H */
+..\Core\Src\io_monitor.c: 1 warning, 0 errors
+compiling debug_log.c...
+compiling cmd_router.c...
+../Core/Inc/data_source.h(8): warning: #1-D: last line of file ends without a newline
+ #endif /* __DATA_SOURCE_H */
+../Core/Inc/uart3_protocol_discriminator.h(150): warning: #1-D: last line of file ends without a newline
+ #endif
+../Core/Inc/uart3_passthrough.h(207): warning: #1-D: last line of file ends without a newline
+ #endif
+../Core/Inc/uart3_smart_router_config.h(143): warning: #1-D: last line of file ends without a newline
+ #endif
+..\Core\Src\cmd_router.c(286): warning: #188-D: enumerated type mixed with another type
+ for (port_id_t i = 0; i < PORT_COUNT; i++) {
+..\Core\Src\cmd_router.c(463): warning: #188-D: enumerated type mixed with another type
+ for (port_id_t port_id = 0; port_id < PORT_COUNT; port_id++) {
+..\Core\Src\cmd_router.c(554): warning: #188-D: enumerated type mixed with another type
+ for (port_id_t port = 0; port < PORT_COUNT; port++) {
+..\Core\Src\cmd_router.c(116): warning: #550-D: variable "g_current_parsing_port" was set but never used
+ static uint8_t g_current_parsing_port = PORT_UART2;
+..\Core\Src\cmd_router.c: 8 warnings, 0 errors
+compiling stm32f1xx_hal_msp.c...
compiling uart2_print.c...
..\Core\Src\uart2_print.c(485): warning: #1-D: last line of file ends without a newline
#endif
..\Core\Src\uart2_print.c: 1 warning, 0 errors
-compiling stm32f1xx_hal_msp.c...
-compiling stm32f1xx_it.c...
compiling uart3_protocol_discriminator.c...
../Core/Inc/uart3_protocol_discriminator.h(150): warning: #1-D: last line of file ends without a newline
#endif
@@ -86,38 +103,10 @@ compiling uart3_protocol_discriminator.c...
..\Core\Src\uart3_protocol_discriminator.c(58): warning: #177-D: function "check_scan_timeout" was declared but never referenced
static bool check_scan_timeout(uint32_t current_tick)
..\Core\Src\uart3_protocol_discriminator.c: 14 warnings, 0 errors
-compiling io_monitor.c...
-../Core/Inc/data_source.h(8): warning: #1-D: last line of file ends without a newline
- #endif /* __DATA_SOURCE_H */
-..\Core\Src\io_monitor.c: 1 warning, 0 errors
-compiling debug_log.c...
-compiling cmd_router.c...
-../Core/Inc/data_source.h(8): warning: #1-D: last line of file ends without a newline
- #endif /* __DATA_SOURCE_H */
-../Core/Inc/uart3_protocol_discriminator.h(150): warning: #1-D: last line of file ends without a newline
- #endif
-../Core/Inc/uart3_passthrough.h(207): warning: #1-D: last line of file ends without a newline
- #endif
-../Core/Inc/uart3_smart_router_config.h(143): warning: #1-D: last line of file ends without a newline
- #endif
-..\Core\Src\cmd_router.c(286): warning: #188-D: enumerated type mixed with another type
- for (port_id_t i = 0; i < PORT_COUNT; i++) {
-..\Core\Src\cmd_router.c(463): warning: #188-D: enumerated type mixed with another type
- for (port_id_t port_id = 0; port_id < PORT_COUNT; port_id++) {
-..\Core\Src\cmd_router.c(554): warning: #188-D: enumerated type mixed with another type
- for (port_id_t port = 0; port < PORT_COUNT; port++) {
-..\Core\Src\cmd_router.c(116): warning: #550-D: variable "g_current_parsing_port" was set but never used
- static uint8_t g_current_parsing_port = PORT_UART2;
-..\Core\Src\cmd_router.c: 8 warnings, 0 errors
+compiling relay_control.c...
+compiling stm32f1xx_it.c...
+compiling stm32f1xx_hal_gpio_ex.c...
compiling stm32f1xx_hal.c...
-compiling uart3_passthrough.c...
-../Core/Inc/uart3_passthrough.h(207): warning: #1-D: last line of file ends without a newline
- #endif
-../Core/Inc/uart3_smart_router_config.h(143): warning: #1-D: last line of file ends without a newline
- #endif
-..\Core\Src\uart3_passthrough.c(273): warning: #1-D: last line of file ends without a newline
- }
-..\Core\Src\uart3_passthrough.c: 3 warnings, 0 errors
compiling multi_uart_router.c...
..\Core\Src\multi_uart_router.c(273): warning: #188-D: enumerated type mixed with another type
for (port_id_t i = 0; i < PORT_COUNT; i++) {
@@ -126,20 +115,24 @@ compiling multi_uart_router.c...
..\Core\Src\multi_uart_router.c(158): warning: #177-D: function "rx_ring_pop" was declared but never referenced
static uint16_t rx_ring_pop(uart_rx_ring_t *ring, uint8_t *byte)
..\Core\Src\multi_uart_router.c: 3 warnings, 0 errors
-compiling stm32f1xx_hal_gpio_ex.c...
-compiling tim.c...
compiling stm32f1xx_hal_spi.c...
+compiling tim.c...
+compiling uart3_passthrough.c...
+../Core/Inc/uart3_passthrough.h(207): warning: #1-D: last line of file ends without a newline
+ #endif
+../Core/Inc/uart3_smart_router_config.h(143): warning: #1-D: last line of file ends without a newline
+ #endif
+..\Core\Src\uart3_passthrough.c(273): warning: #1-D: last line of file ends without a newline
+ }
+..\Core\Src\uart3_passthrough.c: 3 warnings, 0 errors
compiling stm32f1xx_hal_rcc.c...
compiling stm32f1xx_hal_flash.c...
-compiling stm32f1xx_hal_gpio.c...
compiling stm32f1xx_hal_cortex.c...
+compiling stm32f1xx_hal_gpio.c...
compiling stm32f1xx_hal_rcc_ex.c...
compiling stm32f1xx_hal_dma.c...
compiling stm32f1xx_hal_pwr.c...
compiling stm32f1xx_hal_flash_ex.c...
-compiling system_stm32f1xx.c...
-compiling rf433_hal.c...
-compiling stm32f1xx_hal_exti.c...
compiling rf433.c...
..\Driver_RF433\Src\rf433.c(209): warning: #188-D: enumerated type mixed with another type
ret = rf433_set_config(&rf433_current_config);
@@ -150,18 +143,21 @@ compiling rf433.c...
..\Driver_RF433\Src\rf433.c(132): warning: #177-D: function "rf433_response_command_check" was declared but never referenced
static bool rf433_response_command_check(rf433_request_cmd_t cmd, uint8_t *buffer, uint8_t length)
..\Driver_RF433\Src\rf433.c: 4 warnings, 0 errors
+compiling stm32f1xx_hal_tim_ex.c...
+compiling stm32f1xx_hal_exti.c...
+compiling stm32f1xx_hal_uart.c...
+compiling system_stm32f1xx.c...
+compiling user_main.c...
+compiling rf433_hal.c...
compiling wiz_interface.c...
..\User\wiz_interface\wiz_interface.c(201): warning: #870-D: invalid multibyte character sequence
printf(" -> [WIZ] 硬件复位通过!说? TIM2 定时器工作完全正常!\r\n");
..\User\wiz_interface\wiz_interface.c: 1 warning, 0 errors
-compiling stm32f1xx_hal_tim.c...
-compiling user_main.c...
compiling multicast.c...
-compiling stm32f1xx_hal_tim_ex.c...
-compiling stm32f1xx_hal_uart.c...
compiling w5500.c...
-compiling socket.c...
compiling wizchip_conf.c...
+compiling socket.c...
+compiling stm32f1xx_hal_tim.c...
compiling dhcp.c...
compiling wiz_platform.c...
compiling loopback.c...
@@ -171,9 +167,9 @@ compiling loopback.c...
memcpy(&tx_buf[2 + tag_len], buf, size);
..\User\Loopback\loopback.c: 2 warnings, 0 errors
linking...
-Program Size: Code=19500 RO-data=656 RW-data=212 ZI-data=8188
+Program Size: Code=19640 RO-data=572 RW-data=212 ZI-data=8188
FromELF: creating hex file...
-"project\project.axf" - 0 Error(s), 42 Warning(s).
+"project\project.axf" - 0 Error(s), 40 Warning(s).
Software Packages used:
@@ -197,7 +193,7 @@ Package Vendor: Keil
* Component: ARM::CMSIS:CORE@6.1.1
Include file: CMSIS/Core/Include/tz_context.h
-Build Time Elapsed: 00:00:22
+Build Time Elapsed: 00:00:20