|
@ -65,20 +65,21 @@ void Main::onRceivePacket(CanPacketRxBuffer *rxbuf, uint8_t *packet, size_t len) |
|
|
if (ecode != 0) { |
|
|
if (ecode != 0) { |
|
|
m_canReceiver.sendErrorAck(cmdheader, ecode); |
|
|
m_canReceiver.sendErrorAck(cmdheader, ecode); |
|
|
} else { |
|
|
} else { |
|
|
m_canReceiver.sendAck(cmdheader, rxdata, sizeof(receipt_size)); |
|
|
|
|
|
|
|
|
m_canReceiver.sendAck(cmdheader, rxdata, receipt_size); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
/**
|
|
|
/**
|
|
|
* @brief 处理串口接收到的消息 |
|
|
* @brief 处理串口接收到的消息 |
|
|
*/ |
|
|
*/ |
|
|
static void processUartRX(uint8_t *packet, size_t len) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void processUARTEachLine(char *packet, size_t len) { |
|
|
static uint8_t rxdata[1024] = {0}; |
|
|
static uint8_t rxdata[1024] = {0}; |
|
|
int32_t receipt_size = 0; |
|
|
int32_t receipt_size = 0; |
|
|
bool match = false; |
|
|
bool match = false; |
|
|
|
|
|
|
|
|
memset(rxdata, 0, sizeof(rxdata)); |
|
|
memset(rxdata, 0, sizeof(rxdata)); |
|
|
printf("processUartRX %d\n", len); |
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
//
|
|
|
int32_t bytelen = 0; |
|
|
int32_t bytelen = 0; |
|
|
uint8_t *hexbytes = StringUtils::hex_str_to_bytes((char *)packet, len, bytelen); |
|
|
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); |
|
|
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)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
/*******************************************************************************
|
|
|