From 87bf9ee1d52bbdbef25f47debb4781ce4722db5f Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 26 Dec 2023 20:09:16 +0800 Subject: [PATCH] update --- usrc/main.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/usrc/main.cpp b/usrc/main.cpp index 02b6998..41c5549 100644 --- a/usrc/main.cpp +++ b/usrc/main.cpp @@ -65,20 +65,21 @@ void Main::onRceivePacket(CanPacketRxBuffer *rxbuf, uint8_t *packet, size_t len) if (ecode != 0) { m_canReceiver.sendErrorAck(cmdheader, ecode); } else { - m_canReceiver.sendAck(cmdheader, rxdata, sizeof(receipt_size)); + m_canReceiver.sendAck(cmdheader, rxdata, receipt_size); } } } /** * @brief 处理串口接收到的消息 */ -static void processUartRX(uint8_t *packet, size_t len) { + +static void processUARTEachLine(char *packet, size_t len) { static uint8_t rxdata[1024] = {0}; int32_t receipt_size = 0; bool match = false; memset(rxdata, 0, sizeof(rxdata)); - printf("processUartRX %d\n", len); + // int32_t bytelen = 0; uint8_t *hexbytes = StringUtils::hex_str_to_bytes((char *)packet, len, bytelen); @@ -96,6 +97,23 @@ static void processUartRX(uint8_t *packet, size_t len) { } dumphexdata(rxdata, receipt_size); } + printf("\n"); +} + +static void processUartRX(uint8_t *packet, size_t len) { + for (size_t i = 0; i < len; i++) { + if (packet[i] == '\n' || packet[i] == '\r') { + packet[i] = '\0'; + } + } + + for (size_t i = 0; i < len; i++) { + if (i == 0) { + processUARTEachLine((char *)packet, strlen((char *)packet)); + } else if (packet[i - 1] == '\0' && packet[i] != '\0') { + processUARTEachLine((char *)packet + i, strlen((char *)packet + i)); + } + } } /*******************************************************************************