feat(vd960DBN): 实现 DLD960Loop 串口通信协议 (0x7F)
新增: - docs/DLD960Loop_串口通信协议.md — 协议文档 V1.02 - loop_uart_proto.h/c — 协议实现: checksum/组包/解析/帧状态机/命令状态机 修改: - usart_biz.c: 使用 lup_feed_byte() 帧解析器替代 timeout heuristic; 波特率修正为 115200 - tcp_json_srv.c/h: loop_param_set/query 真实实现(0x63/0x64), 0xC0 传感器推流, 延迟响应机制 - peripheral_main.c: 添加 tcp_json_push_sensor() 调用, 帧解析器超时保护 校验验证: 5个协议例程 XOR+SUM 全部通过
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include "net_srv.h"
|
||||
#include "storage.h"
|
||||
#include "tcp_json_srv.h"
|
||||
#include "loop_uart_proto.h"
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL TYPEDEFS
|
||||
@@ -269,6 +270,8 @@ void Main_Circulation(void)
|
||||
|
||||
poll_dbn_ble();
|
||||
|
||||
tcp_json_push_sensor(); // Push 0xC0 sensor data to TCP JSON client
|
||||
|
||||
tcp_json_poll();
|
||||
|
||||
key_event_srv();
|
||||
@@ -335,6 +338,13 @@ void TIM3_IRQHandler(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Safety: reset frame parser if stuck in non-IDLE state too long
|
||||
if(g_lup_parser.state != LUP_FRAME_STATE_IDLE){
|
||||
if(g_pkg_uart_2.tick > 20){
|
||||
lup_frame_reset();
|
||||
g_pkg_uart_2.tick = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0){//HAL_PUSH_BUTTON()){
|
||||
g_flag_counter_key.tick++;
|
||||
|
||||
Reference in New Issue
Block a user