*bugfix: correct FLJ and LJ data length

This commit is contained in:
Gatsby Van
2024-01-31 00:30:36 +08:00
parent 64c116dbe0
commit 49e962612e
3 changed files with 35 additions and 26 deletions
+22 -16
View File
@@ -74,20 +74,20 @@
// Data Send Test Command
#define CMD_DATA_TEST_A 0xE2
// -- Request
#define DATA_TEST_REQ_A_LEN 80
// -- -- 78 byte payload
#define DATA_TEST_REQ_A_LEN 68
// -- -- 68 byte payload
// -- Response
#define DATA_TEST_RSP_A_LEN 80
// -- -- 78 byte payload
#define DATA_TEST_RSP_A_LEN 68
// -- -- 68 byte payload
// Data Send Test Command
#define CMD_DATA_TEST_B 0xF2
// -- Request
#define DATA_TEST_REQ_B_LEN 152
// -- -- 150 byte payload
#define DATA_TEST_REQ_B_LEN 170
// -- -- 170 byte payload
// -- Response
#define DATA_TEST_RSP_B_LEN 152
// -- -- 150 byte payload
#define DATA_TEST_RSP_B_LEN 170
// -- -- 170 byte payload
// Config load
#define CMD_CONFIG 0xE3
@@ -132,8 +132,8 @@
#define WD_FLJ_POLL 0x02
#define FLJ_POLL_CODE 0x77
// -- Response
#define FLJ_POLL_RESP_LEN 78
// -- -- received 78 byte payload
#define FLJ_POLL_RESP_LEN 170
// -- -- received 170 byte payload
// LJ Poll
#define CMD_LJ_POLL 0xF5
@@ -141,8 +141,8 @@
#define WD_LJ_POLL 0x02
#define LJ_POLL_CODE 0x77
// -- Response
#define LJ_POLL_RESP_LEN 168
// -- -- received 156 byte payload
#define LJ_POLL_RESP_LEN 68
// -- -- received 68 byte payload
// Remote Test FLJ
#define CMD_FLJ_RM_TEST 0xE6
@@ -437,13 +437,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
break;
}
sysbusRsp->len = FLJ_POLL_RESP_LEN;
sysbusRsp->data[WD_CMD] = WD_FLJ_POLL;
sysbusRsp->data[WD_CMD] = CMD_FLJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId;
SysMonitor_GetRecvPayloadFLJRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId); // omit control info
if (dataId == DATA_ID_NONE)
{
memset(sysbusRsp->data + FLJ_DATA_OFFSET, 0xAA, PAYLOAD_FLJ);
free(sysbusRsp);
DBG_WARNING("SystemBus::no RX data!\n");
Status = SUCCESS;
break;
}
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
{
@@ -470,13 +473,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
break;
}
sysbusRsp->len = LJ_POLL_RESP_LEN;
sysbusRsp->data[WD_CMD] = WD_LJ_POLL;
sysbusRsp->data[WD_CMD] = CMD_LJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId;
SysMonitor_GetRecvPayloadLJRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId); // omit control info
if (dataId == DATA_ID_NONE)
{
memset(sysbusRsp->data + LJ_DATA_OFFSET, 0xAA, PAYLOAD_LJ);
free(sysbusRsp);
DBG_WARNING("SystemBus::no RX data!\n");
Status = SUCCESS;
break;
}
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
{