gateway_mcu/CH32V303-FreeRTOS/App/application/Slave/Src/slave485DataParse.c

429 lines
12 KiB
C
Raw Permalink Normal View History

#include "slave485DataParse.h"
#include "slaveQueueUart.h"
#include "mcu_common.h"
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J1<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J1_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J1_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J1_handle) == 1)
&& (maxdataLen > J1_485RxBufferIndex)) {
J1_485RxBuffer[J1_485RxBufferIndex++] = uart_dev_in_char(g_J1_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J1_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J1_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J1_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J1_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J1;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J1_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J1_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J1_485RxBuffer, J1_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J1_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J1_485RxBufferIndex = 0;
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J3<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J3_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J3_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J3_handle) == 1)
&& (maxdataLen > J3_485RxBufferIndex)) {
J3_485RxBuffer[J3_485RxBufferIndex++] = uart_dev_in_char(g_J3_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J3_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J3_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J3_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J3_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J3;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J3_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J3_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J3_485RxBuffer, J3_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J3_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J3_485RxBufferIndex = 0;
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J5<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J5_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J5_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J5_handle) == 1)
&& (maxdataLen > J5_485RxBufferIndex)) {
J5_485RxBuffer[J5_485RxBufferIndex++] = uart_dev_in_char(g_J5_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J5_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J5_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J5_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J5_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J5;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J5_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J5_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J5_485RxBuffer, J5_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J5_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J5_485RxBufferIndex = 0;
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J7<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J7_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J7_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J7_handle) == 1)
&& (maxdataLen > J7_485RxBufferIndex)) {
J7_485RxBuffer[J7_485RxBufferIndex++] = uart_dev_in_char(g_J7_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J7_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J7_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J7_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J7_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J7;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J7_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J7_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J7_485RxBuffer, J7_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J7_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J7_485RxBufferIndex = 0;
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J8<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J8_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J8_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J8_handle) == 1)
&& (maxdataLen > J8_485RxBufferIndex)) {
J8_485RxBuffer[J8_485RxBufferIndex++] = uart_dev_in_char(g_J8_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J8_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J8_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J8_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J8_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J8;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J8_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J8_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J8_485RxBuffer, J8_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J8_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J8_485RxBufferIndex = 0;
}
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>J9<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param
* @retval
*/
void J9_SensorDataAnalysis(void)
{
static uint32_t tick;
if (J9_485RxBufferIndex == 0) {
tick = xTaskGetTickCount();
}
/* <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6ms<6D><73>3<EFBFBD><33>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t nowTick = xTaskGetTickCount();
while ((getTickDiff(nowTick) < 3)
&& (uart_dev_char_present(g_J9_handle) == 1)
&& (maxdataLen > J9_485RxBufferIndex)) {
J9_485RxBuffer[J9_485RxBufferIndex++] = uart_dev_in_char(g_J9_handle);
}
/* <20><>ʱ<EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> */
if ((J9_485RxBufferIndex >= maxdataLen) || (getTickDiff(tick) > delayTick)) {
uint32_t tempLen = 6 + J9_485RxBufferIndex + slaveQueueUartSendInfoSize;
if (xPortGetFreeHeapSize() < tempLen + 1024) {
J9_485RxBufferIndex = 0;
return;
}
uint8_t *Buff = (uint8_t *)pvPortMalloc(tempLen);
slaveQueueUartSendInfo *sendBuff = (slaveQueueUartSendInfo *)Buff;
sendBuff->length = 6 + J9_485RxBufferIndex;
sendBuff->data = Buff + sizeof(slaveQueueUartSendInfo);
uint8_t *send = sendBuff->data;
/* <20><>ʼ<EFBFBD><CABC>־ */
*send = 'S';
*(send + 1) = 'L';
/* <20>˿ں<CBBF> */
send += 2;
*send = J9;
/* <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> */
send += 1;
*send = (uint8_t)(J9_485RxBufferIndex >> 8);
*(send + 1) = (uint8_t)(J9_485RxBufferIndex);
/* <20><><EFBFBD>ݰ<EFBFBD> */
send += 2;
memcpy((char *)send, (char *)J9_485RxBuffer, J9_485RxBufferIndex);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
send += J9_485RxBufferIndex;
*send = 0x17;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>пռ<D5BC>򽫷<EFBFBD><F2BDABB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if (uxQueueSpacesAvailable(mcu_uart_Queue)) {
xQueueSend(mcu_uart_Queue, &Buff, 10);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD>޿ռ<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD> */
else {
vPortFree(Buff);
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>buff<66>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
J9_485RxBufferIndex = 0;
}
}