3 Commits
Author SHA1 Message Date
Gatsby Van 2c45d1e5b8 add missing remote test 2024-02-01 17:09:59 +08:00
Gatsby Van 9412f65c3c *bugfix: correct memcpy offset 2024-02-01 17:09:37 +08:00
Gatsby Van c0ebef41ee *bugfix: correct type definition 2024-02-01 17:08:51 +08:00
3 changed files with 30 additions and 8 deletions
@@ -1237,6 +1237,7 @@ int32_t Linklayer_Proc(L2_INST *instPtr)
// TODO: // TODO:
// instPtr->linkLog.recxnCnt = // instPtr->linkLog.recxnCnt =
// instPtr->linkLog.beamNo = // instPtr->linkLog.beamNo =
// instPtr->linkLog.beamWidth =
// instPtr->linkLog.beamAz = // instPtr->linkLog.beamAz =
// instPtr->linkLog.beamEl = // instPtr->linkLog.beamEl =
instPtr->linkLog.advTxCnt = (uint16_t)instPtr->log.advTxCnt; instPtr->linkLog.advTxCnt = (uint16_t)instPtr->log.advTxCnt;
+3 -2
View File
@@ -83,6 +83,7 @@ typedef struct __attribute__((packed))
uint8_t linkStage; uint8_t linkStage;
uint32_t recxnCnt; uint32_t recxnCnt;
uint8_t beamNo; uint8_t beamNo;
uint8_t beamWidth;
uint16_t beamAz; uint16_t beamAz;
uint16_t beamEl; uint16_t beamEl;
uint16_t advTxCnt; uint16_t advTxCnt;
@@ -111,8 +112,8 @@ typedef struct __attribute__((packed))
uint64_t acqMean; uint64_t acqMean;
uint8_t acqPhase; uint8_t acqPhase;
uint8_t acqFreqCh; uint8_t acqFreqCh;
uint8_t fsyncPeak; uint64_t fsyncPeak;
uint8_t fsyncMean; uint64_t fsyncMean;
uint8_t fsyncFreqCh; uint8_t fsyncFreqCh;
uint16_t deintlvAmpEst; uint16_t deintlvAmpEst;
uint16_t reserve; uint16_t reserve;
+26 -6
View File
@@ -158,6 +158,15 @@
#define WD_FLJ_RM_TEST 0x02 #define WD_FLJ_RM_TEST 0x02
#define FLJ_RM_TEST_CODE 0x99 #define FLJ_RM_TEST_CODE 0x99
// -- Response // -- Response
#define WD_FLJ_TIME_STAMP 0x02
#define WD_FLJ_TIME_STAMP_LEN 8
#define WD_FLJ_LINK_LOG 0x0A
#define WD_FLJ_LINK_LOG_LEN 64
#define WD_FLJ_PHY_LOG 0x4A
#define WD_FLJ_PHY_LOG_LEN 71
#define WD_FLJ_HARDWARE_ST 0x91
#define WD_FLJ_HARDWARE_ST_LEN 13
#define FLJ_RM_TEST_RESP_LEN 158 #define FLJ_RM_TEST_RESP_LEN 158
// Remote Test LJ // Remote Test LJ
@@ -171,7 +180,7 @@
#define WD_LJ_LINK_LOG 0x0A #define WD_LJ_LINK_LOG 0x0A
#define WD_LJ_LINK_LOG_LEN 64 #define WD_LJ_LINK_LOG_LEN 64
#define WD_LJ_PHY_LOG 0x4A #define WD_LJ_PHY_LOG 0x4A
#define WD_LJ_PHY_LOG_LEN 81 #define WD_LJ_PHY_LOG_LEN 71
#define WD_LJ_HARDWARE_ST 0x91 #define WD_LJ_HARDWARE_ST 0x91
#define WD_LJ_HARDWARE_ST_LEN 13 #define WD_LJ_HARDWARE_ST_LEN 13
@@ -320,7 +329,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk && hwStatsPtr->isAntOk) ? ST_RET_OK : ST_RET_ERROR; sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk && hwStatsPtr->isAntOk) ? ST_RET_OK : ST_RET_ERROR;
} }
// apply status and omit 2 bytes of overhead. // apply status and omit 2 bytes of overhead.
memcpy(sysbusRsp->data + WD_SP_PS_VOLT, &(hwStatsPtr->spPlAuxVolt), ST_RET_INFO_LEN); memcpy(sysbusRsp->data + WD_SP_PS_VOLT, &(hwStatsPtr->spPsVolt), ST_RET_INFO_LEN);
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false) if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
{ {
@@ -557,11 +566,11 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
uint64_t time; uint64_t time;
TimeCtrl_GetCurrentTime(linkInstPtr->config.tmcInstPtr, &tmWord); TimeCtrl_GetCurrentTime(linkInstPtr->config.tmcInstPtr, &tmWord);
time = tmWord.int_part * TIME_FRAC_MAX + tmWord.frac_part; time = tmWord.int_part * TIME_FRAC_MAX + tmWord.frac_part;
memcpy(sysbusRsp->data + WD_LJ_TIME_STAMP, &time, WD_LJ_TIME_STAMP_LEN); memcpy(sysbusRsp->data + WD_FLJ_TIME_STAMP, &time, WD_FLJ_TIME_STAMP_LEN);
SysMonitor_GetSyslog(sysLogPtr); SysMonitor_GetSyslog(sysLogPtr);
memcpy(sysbusRsp->data + WD_LJ_LINK_LOG, &(sysLogPtr->linkLog), WD_LJ_LINK_LOG_LEN); memcpy(sysbusRsp->data + WD_FLJ_LINK_LOG, &(sysLogPtr->linkLog), WD_FLJ_LINK_LOG_LEN);
memcpy(sysbusRsp->data + WD_LJ_PHY_LOG, &(sysLogPtr->phyLog), WD_LJ_PHY_LOG_LEN); memcpy(sysbusRsp->data + WD_FLJ_PHY_LOG, &(sysLogPtr->phyLog), WD_FLJ_PHY_LOG_LEN);
memcpy(sysbusRsp->data + WD_LJ_HARDWARE_ST, &(sysLogPtr->hwState.spPsVolt), WD_LJ_HARDWARE_ST_LEN); memcpy(sysbusRsp->data + WD_FLJ_HARDWARE_ST, &(sysLogPtr->hwState.spPsVolt), WD_FLJ_HARDWARE_ST_LEN);
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false){ if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false){
free(sysbusRsp); free(sysbusRsp);
@@ -574,6 +583,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
} }
case CMD_LJ_RM_TEST: case CMD_LJ_RM_TEST:
{ {
SYSLOG *sysLogPtr = &(instPtr->sysLog);
if (data[WD_LJ_RM_TEST] != LJ_RM_TEST_CODE) if (data[WD_LJ_RM_TEST] != LJ_RM_TEST_CODE)
{ {
DBG_WARNING("SystemBus::Invalid remote test code!\n"); DBG_WARNING("SystemBus::Invalid remote test code!\n");
@@ -592,6 +602,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_CMD] = CMD_LJ_RM_TEST; sysbusRsp->data[WD_CMD] = CMD_LJ_RM_TEST;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
TIME_WORD tmWord;
uint64_t time;
TimeCtrl_GetCurrentTime(linkInstPtr->config.tmcInstPtr, &tmWord);
time = tmWord.int_part * TIME_FRAC_MAX + tmWord.frac_part;
memcpy(sysbusRsp->data + WD_LJ_TIME_STAMP, &time, WD_LJ_TIME_STAMP_LEN);
SysMonitor_GetSyslog(sysLogPtr);
memcpy(sysbusRsp->data + WD_LJ_LINK_LOG, &(sysLogPtr->linkLog), WD_LJ_LINK_LOG_LEN);
memcpy(sysbusRsp->data + WD_LJ_PHY_LOG, &(sysLogPtr->phyLog), WD_LJ_PHY_LOG_LEN);
memcpy(sysbusRsp->data + WD_LJ_HARDWARE_ST, &(sysLogPtr->hwState.spPsVolt), WD_LJ_HARDWARE_ST_LEN);
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false){ if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false){
free(sysbusRsp); free(sysbusRsp);
DBG_WARNING("SystemBus::TX Queue overflowed!\n"); DBG_WARNING("SystemBus::TX Queue overflowed!\n");