解决编译错误
This commit is contained in:
@ -138,7 +138,7 @@
|
||||
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
||||
{
|
||||
if (huart->Instance == USART3) {
|
||||
MultiUART_FeedByte(PORT_UART3, uart3_rx_byte);
|
||||
MultiUART_FeedByte(PORT_RS485, uart3_rx_byte);
|
||||
HAL_UART_Receive_IT(&huart3, &uart3_rx_byte, 1);
|
||||
}
|
||||
}
|
||||
@ -149,7 +149,7 @@ void CmdRouter_Task(void)
|
||||
// ... UART1/UART3处理 ...
|
||||
|
||||
for (port_id_t port_id = 0; port_id < PORT_COUNT; port_id++) {
|
||||
if (port_id == PORT_UART2) continue; // UART2单独处理
|
||||
if (port_id == PORT_DEBUG) continue; // UART2单独处理
|
||||
|
||||
uint8_t byte;
|
||||
while (MultiUART_ReadByte(port_id, &byte) > 0) {
|
||||
@ -380,7 +380,7 @@ void Passthrough_Task(void)
|
||||
if (node->offset < node->length) {
|
||||
// 发送一个字节
|
||||
uint8_t byte = node->data[node->offset++];
|
||||
MultiUART_Send(PORT_UART1, &byte, 1);
|
||||
MultiUART_Send(PORT_433, &byte, 1);
|
||||
}
|
||||
|
||||
// 检查节点是否发送完成
|
||||
@ -659,7 +659,7 @@ void CmdRouter_Task_UART3_Enhanced(void)
|
||||
|
||||
// 1. 读取UART3接收缓冲区
|
||||
uint8_t byte;
|
||||
while (MultiUART_ReadByte(PORT_UART3, &byte) > 0) {
|
||||
while (MultiUART_ReadByte(PORT_RS485, &byte) > 0) {
|
||||
|
||||
// 2. 协议识别
|
||||
route_result_t route = UART3_Protocol_FeedByte(byte, current_tick);
|
||||
@ -844,7 +844,7 @@ void Passthrough_Task(void)
|
||||
|
||||
// 发送一个字节
|
||||
uint8_t byte = node->data[node->offset++];
|
||||
MultiUART_Send(PORT_UART1, &byte, 1);
|
||||
MultiUART_Send(PORT_433, &byte, 1);
|
||||
|
||||
ctx->queue.pending_count--;
|
||||
ctx->stats.total_bytes_sent++;
|
||||
@ -902,7 +902,7 @@ uint16_t Passthrough_PushBuffer(const uint8_t *data, uint16_t length)
|
||||
bool Passthrough_CanSend(void)
|
||||
{
|
||||
// 检查UART1 TX是否忙
|
||||
return (MultiUART_GetTxAvailable(PORT_UART1) > 0) &&
|
||||
return (MultiUART_GetTxAvailable(PORT_433) > 0) &&
|
||||
(g_passthrough_ctx.queue.pending_count > 0);
|
||||
}
|
||||
```
|
||||
@ -934,8 +934,8 @@ void CmdRouter_Task(void)
|
||||
#else
|
||||
// 原有逻辑:所有数据喂给CmdParser
|
||||
uint8_t byte;
|
||||
while (MultiUART_ReadByte(PORT_UART3, &byte) > 0) {
|
||||
CmdParser_SetSourcePort(PORT_UART3);
|
||||
while (MultiUART_ReadByte(PORT_RS485, &byte) > 0) {
|
||||
CmdParser_SetSourcePort(PORT_RS485);
|
||||
CmdParser_FeedByte(byte, current_tick);
|
||||
}
|
||||
#endif
|
||||
@ -955,14 +955,14 @@ static void UART3_SmartRouter_Task(uint32_t current_tick)
|
||||
uint8_t byte;
|
||||
|
||||
// 读取所有待处理的字节
|
||||
while (MultiUART_ReadByte(PORT_UART3, &byte) > 0) {
|
||||
while (MultiUART_ReadByte(PORT_RS485, &byte) > 0) {
|
||||
// 协议识别
|
||||
route_result_t route = UART3_Protocol_FeedByte(byte, current_tick);
|
||||
|
||||
switch (route) {
|
||||
case ROUTE_CMD:
|
||||
// 指令路径
|
||||
CmdParser_SetSourcePort(PORT_UART3);
|
||||
CmdParser_SetSourcePort(PORT_RS485);
|
||||
CmdParser_FeedByte(byte, current_tick);
|
||||
LOG_DEBUG("[UART3] CMD byte: 0x%02X", byte);
|
||||
break;
|
||||
@ -997,7 +997,7 @@ static void UART3_SmartRouter_Task(uint32_t current_tick)
|
||||
#### 3.3.2 透传引擎发送接口
|
||||
|
||||
```c
|
||||
// 复用现有的 MultiUART_Send(PORT_UART1, data, len)
|
||||
// 复用现有的 MultiUART_Send(PORT_433, data, len)
|
||||
// 透传引擎将数据写入UART1的发送缓冲区
|
||||
// 由MultiUART_TxCpltCallback驱动后续发送
|
||||
```
|
||||
|
||||
@ -285,7 +285,7 @@ void CmdRouter_Init(void);
|
||||
/**
|
||||
* @brief 向指定端口的解析器喂入数据
|
||||
* @note 由UART中断回调调用,线程安全
|
||||
* @param port_id: 端口ID (PORT_UART1/PORT_UART2/PORT_UART3)
|
||||
* @param port_id: 端口ID (PORT_433/PORT_DEBUG/PORT_RS485)
|
||||
* @param byte: 接收到的字节
|
||||
* @param current_tick: 系统时间戳
|
||||
* @retval 无
|
||||
@ -325,9 +325,9 @@ void CmdRouter_SendResponseFmt(port_id_t port_id, const char *fmt, ...);
|
||||
```c
|
||||
/** 端口ID枚举 */
|
||||
typedef enum {
|
||||
PORT_UART1 = 0, /**< RF433模块 */
|
||||
PORT_UART2 = 1, /**< 调试串口 */
|
||||
PORT_UART3 = 2, /**< RS485模块 */
|
||||
PORT_433 = 0, /**< RF433模块 */
|
||||
PORT_DEBUG = 1, /**< 调试串口 */
|
||||
PORT_RS485 = 2, /**< RS485模块 */
|
||||
PORT_COUNT
|
||||
} port_id_t;
|
||||
|
||||
@ -396,18 +396,18 @@ void CmdParser_SetResponseCallback(response_callback_t callback);
|
||||
* @note 静态表,根据port_id索引查找对应UART句柄
|
||||
*/
|
||||
static UART_HandleTypeDef* const g_port_uart_map[PORT_COUNT] = {
|
||||
[PORT_UART1] = &huart1, // RF433
|
||||
[PORT_UART2] = &huart2, // DEBUG
|
||||
[PORT_UART3] = &huart3, // RS485
|
||||
[PORT_433] = &huart1, // RF433
|
||||
[PORT_DEBUG] = &huart2, // DEBUG
|
||||
[PORT_RS485] = &huart3, // RS485
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 端口名称表(用于日志输出)
|
||||
*/
|
||||
static const char* const g_port_name_map[PORT_COUNT] = {
|
||||
[PORT_UART1] = "UART1",
|
||||
[PORT_UART2] = "UART2",
|
||||
[PORT_UART3] = "UART3",
|
||||
[PORT_433] = "UART1",
|
||||
[PORT_DEBUG] = "UART2",
|
||||
[PORT_RS485] = "UART3",
|
||||
};
|
||||
```
|
||||
|
||||
@ -650,9 +650,9 @@ void Configure_UART_Priorities(void)
|
||||
#include "cmd_parser.h"
|
||||
|
||||
typedef enum {
|
||||
PORT_UART1 = 0,
|
||||
PORT_UART2 = 1,
|
||||
PORT_UART3 = 2,
|
||||
PORT_433 = 0,
|
||||
PORT_DEBUG = 1,
|
||||
PORT_RS485 = 2,
|
||||
PORT_COUNT
|
||||
} port_id_t;
|
||||
|
||||
@ -683,7 +683,7 @@ void MultiUART_SendString(port_id_t port_id, const char *str);
|
||||
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
||||
{
|
||||
if (huart->Instance == USART1) {
|
||||
MultiUART_FeedByte(PORT_UART1, rf433_uart_rx_tmp, HAL_GetTick());
|
||||
MultiUART_FeedByte(PORT_433, rf433_uart_rx_tmp, HAL_GetTick());
|
||||
HAL_UART_Receive_IT(&huart1, &rf433_uart_rx_tmp, 1);
|
||||
}
|
||||
// ... 其他端口保持原样 ...
|
||||
|
||||
Reference in New Issue
Block a user