*bugfix: correct FLJ and LJ data length
This commit is contained in:
@@ -209,7 +209,7 @@ void SysMonitor_UpdateSendPayloadFLJRaw(uint8_t *buff)
|
|||||||
uint8_t buffIndx;
|
uint8_t buffIndx;
|
||||||
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
|
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
|
||||||
sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
|
sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
|
||||||
memcpy(sysMonitorInst->sendPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ);
|
memcpy(sysMonitorInst->sendPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ_TX);
|
||||||
sysMonitorInst->sendPL[buffIndx].dataId_flj++;
|
sysMonitorInst->sendPL[buffIndx].dataId_flj++;
|
||||||
sysMonitorInst->sendPLCtrl.latest = buffIndx;
|
sysMonitorInst->sendPLCtrl.latest = buffIndx;
|
||||||
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
|
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
|
||||||
@@ -230,7 +230,7 @@ void SysMonitor_GetSendPayloadFLJRaw(uint8_t *buff, uint32_t *id)
|
|||||||
sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
|
sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
|
||||||
if (sysMonitorInst->sendPL[buffIndx].dataId_flj != DATA_ID_NONE)
|
if (sysMonitorInst->sendPL[buffIndx].dataId_flj != DATA_ID_NONE)
|
||||||
{
|
{
|
||||||
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ);
|
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ_TX);
|
||||||
}
|
}
|
||||||
*id = sysMonitorInst->sendPL[buffIndx].dataId_flj;
|
*id = sysMonitorInst->sendPL[buffIndx].dataId_flj;
|
||||||
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
|
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
|
||||||
@@ -245,7 +245,7 @@ void SysMonitor_UpdateSendPayloadLJRaw(uint8_t *buff)
|
|||||||
uint8_t buffIndx;
|
uint8_t buffIndx;
|
||||||
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
|
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
|
||||||
sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
|
sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
|
||||||
memcpy(sysMonitorInst->sendPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ);
|
memcpy(sysMonitorInst->sendPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ_TX);
|
||||||
sysMonitorInst->sendPL[buffIndx].dataId_lj++;
|
sysMonitorInst->sendPL[buffIndx].dataId_lj++;
|
||||||
sysMonitorInst->sendPLCtrl.latest = buffIndx;
|
sysMonitorInst->sendPLCtrl.latest = buffIndx;
|
||||||
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
|
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
|
||||||
@@ -266,7 +266,7 @@ void SysMonitor_GetSendPayloadLJRaw(uint8_t *buff, uint32_t *id)
|
|||||||
sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
|
sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
|
||||||
if (sysMonitorInst->sendPL[buffIndx].dataId_lj != DATA_ID_NONE)
|
if (sysMonitorInst->sendPL[buffIndx].dataId_lj != DATA_ID_NONE)
|
||||||
{
|
{
|
||||||
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ);
|
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ_TX);
|
||||||
}
|
}
|
||||||
*id = sysMonitorInst->sendPL[buffIndx].dataId_lj;
|
*id = sysMonitorInst->sendPL[buffIndx].dataId_lj;
|
||||||
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
|
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
|
||||||
@@ -282,7 +282,7 @@ void SysMonitor_UpdateRecvPayloadFLJRaw(uint8_t *buff)
|
|||||||
uint8_t buffIndx;
|
uint8_t buffIndx;
|
||||||
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
|
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
|
||||||
sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
|
sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
|
||||||
memcpy(sysMonitorInst->recvPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ);
|
memcpy(sysMonitorInst->recvPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ_RX);
|
||||||
sysMonitorInst->recvPL[buffIndx].dataId_flj++;
|
sysMonitorInst->recvPL[buffIndx].dataId_flj++;
|
||||||
sysMonitorInst->recvPLCtrl.latest = buffIndx;
|
sysMonitorInst->recvPLCtrl.latest = buffIndx;
|
||||||
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
|
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
|
||||||
@@ -303,7 +303,7 @@ void SysMonitor_GetRecvPayloadFLJRaw(uint8_t *buff, uint32_t *id)
|
|||||||
sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
|
sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
|
||||||
if (sysMonitorInst->recvPL[buffIndx].dataId_flj != DATA_ID_NONE)
|
if (sysMonitorInst->recvPL[buffIndx].dataId_flj != DATA_ID_NONE)
|
||||||
{
|
{
|
||||||
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ);
|
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ_RX);
|
||||||
}
|
}
|
||||||
*id = sysMonitorInst->recvPL[buffIndx].dataId_flj;
|
*id = sysMonitorInst->recvPL[buffIndx].dataId_flj;
|
||||||
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
|
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
|
||||||
@@ -318,7 +318,7 @@ void SysMonitor_UpdateRecvPayloadLJRaw(uint8_t *buff)
|
|||||||
uint8_t buffIndx;
|
uint8_t buffIndx;
|
||||||
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
|
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
|
||||||
sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
|
sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
|
||||||
memcpy(sysMonitorInst->recvPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ);
|
memcpy(sysMonitorInst->recvPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ_RX);
|
||||||
sysMonitorInst->recvPL[buffIndx].dataId_lj++;
|
sysMonitorInst->recvPL[buffIndx].dataId_lj++;
|
||||||
sysMonitorInst->recvPLCtrl.latest = buffIndx;
|
sysMonitorInst->recvPLCtrl.latest = buffIndx;
|
||||||
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
|
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
|
||||||
@@ -339,7 +339,7 @@ void SysMonitor_GetRecvPayloadLJRaw(uint8_t *buff, uint32_t *id)
|
|||||||
sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
|
sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
|
||||||
if (sysMonitorInst->recvPL[buffIndx].dataId_lj != DATA_ID_NONE)
|
if (sysMonitorInst->recvPL[buffIndx].dataId_lj != DATA_ID_NONE)
|
||||||
{
|
{
|
||||||
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ);
|
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ_RX);
|
||||||
}
|
}
|
||||||
*id = sysMonitorInst->recvPL[buffIndx].dataId_lj;
|
*id = sysMonitorInst->recvPL[buffIndx].dataId_lj;
|
||||||
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
|
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
|
||||||
|
|||||||
@@ -4,8 +4,11 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#define PAYLOAD_FLJ 78
|
#define PAYLOAD_LEN 256
|
||||||
#define PAYLOAD_LJ 168
|
#define PAYLOAD_FLJ_RX 168
|
||||||
|
#define PAYLOAD_FLJ_TX 66
|
||||||
|
#define PAYLOAD_LJ_RX 66
|
||||||
|
#define PAYLOAD_LJ_TX 168
|
||||||
|
|
||||||
#define DATA_ID_NONE UINT32_MAX
|
#define DATA_ID_NONE UINT32_MAX
|
||||||
|
|
||||||
|
|||||||
@@ -74,20 +74,20 @@
|
|||||||
// Data Send Test Command
|
// Data Send Test Command
|
||||||
#define CMD_DATA_TEST_A 0xE2
|
#define CMD_DATA_TEST_A 0xE2
|
||||||
// -- Request
|
// -- Request
|
||||||
#define DATA_TEST_REQ_A_LEN 80
|
#define DATA_TEST_REQ_A_LEN 68
|
||||||
// -- -- 78 byte payload
|
// -- -- 68 byte payload
|
||||||
// -- Response
|
// -- Response
|
||||||
#define DATA_TEST_RSP_A_LEN 80
|
#define DATA_TEST_RSP_A_LEN 68
|
||||||
// -- -- 78 byte payload
|
// -- -- 68 byte payload
|
||||||
|
|
||||||
// Data Send Test Command
|
// Data Send Test Command
|
||||||
#define CMD_DATA_TEST_B 0xF2
|
#define CMD_DATA_TEST_B 0xF2
|
||||||
// -- Request
|
// -- Request
|
||||||
#define DATA_TEST_REQ_B_LEN 152
|
#define DATA_TEST_REQ_B_LEN 170
|
||||||
// -- -- 150 byte payload
|
// -- -- 170 byte payload
|
||||||
// -- Response
|
// -- Response
|
||||||
#define DATA_TEST_RSP_B_LEN 152
|
#define DATA_TEST_RSP_B_LEN 170
|
||||||
// -- -- 150 byte payload
|
// -- -- 170 byte payload
|
||||||
|
|
||||||
// Config load
|
// Config load
|
||||||
#define CMD_CONFIG 0xE3
|
#define CMD_CONFIG 0xE3
|
||||||
@@ -132,8 +132,8 @@
|
|||||||
#define WD_FLJ_POLL 0x02
|
#define WD_FLJ_POLL 0x02
|
||||||
#define FLJ_POLL_CODE 0x77
|
#define FLJ_POLL_CODE 0x77
|
||||||
// -- Response
|
// -- Response
|
||||||
#define FLJ_POLL_RESP_LEN 78
|
#define FLJ_POLL_RESP_LEN 170
|
||||||
// -- -- received 78 byte payload
|
// -- -- received 170 byte payload
|
||||||
|
|
||||||
// LJ Poll
|
// LJ Poll
|
||||||
#define CMD_LJ_POLL 0xF5
|
#define CMD_LJ_POLL 0xF5
|
||||||
@@ -141,8 +141,8 @@
|
|||||||
#define WD_LJ_POLL 0x02
|
#define WD_LJ_POLL 0x02
|
||||||
#define LJ_POLL_CODE 0x77
|
#define LJ_POLL_CODE 0x77
|
||||||
// -- Response
|
// -- Response
|
||||||
#define LJ_POLL_RESP_LEN 168
|
#define LJ_POLL_RESP_LEN 68
|
||||||
// -- -- received 156 byte payload
|
// -- -- received 68 byte payload
|
||||||
|
|
||||||
// Remote Test FLJ
|
// Remote Test FLJ
|
||||||
#define CMD_FLJ_RM_TEST 0xE6
|
#define CMD_FLJ_RM_TEST 0xE6
|
||||||
@@ -437,13 +437,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sysbusRsp->len = FLJ_POLL_RESP_LEN;
|
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;
|
sysbusRsp->data[WD_PRD] = MY_PRD_ID;
|
||||||
uint32_t dataId;
|
uint32_t dataId;
|
||||||
SysMonitor_GetRecvPayloadFLJRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId); // omit control info
|
SysMonitor_GetRecvPayloadFLJRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId); // omit control info
|
||||||
if (dataId == DATA_ID_NONE)
|
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)
|
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
|
||||||
{
|
{
|
||||||
@@ -470,13 +473,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sysbusRsp->len = LJ_POLL_RESP_LEN;
|
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;
|
sysbusRsp->data[WD_PRD] = MY_PRD_ID;
|
||||||
uint32_t dataId;
|
uint32_t dataId;
|
||||||
SysMonitor_GetRecvPayloadLJRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId); // omit control info
|
SysMonitor_GetRecvPayloadLJRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId); // omit control info
|
||||||
if (dataId == DATA_ID_NONE)
|
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)
|
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user