6 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
Gatsby Van a2c6ff83f7 missing semicolon 2024-02-01 15:12:34 +08:00
Gatsby Van 73b8ee8bc5 *bugfix: correct antenna status code 2024-02-01 15:09:26 +08:00
Gatsby Van d8fbdfb8e6 *bugfix: add missing hardware status fetching 2024-02-01 15:07:48 +08:00
5 changed files with 32 additions and 9 deletions
@@ -1237,6 +1237,7 @@ int32_t Linklayer_Proc(L2_INST *instPtr)
// TODO:
// instPtr->linkLog.recxnCnt =
// instPtr->linkLog.beamNo =
// instPtr->linkLog.beamWidth =
// instPtr->linkLog.beamAz =
// instPtr->linkLog.beamEl =
instPtr->linkLog.advTxCnt = (uint16_t)instPtr->log.advTxCnt;
@@ -296,7 +296,7 @@
#define ANT_STATUS_CODE_SHIFT 24
#define ANT_STATUS_CODE_WIDTH 8
#define ANT_STATUS_CODE_MASK 0xFF000000U
#define ANT_STATUS_CODE_OK 0x01000000U
#define ANT_STATUS_CODE_OK 0x00000000U
/**
* Register: ANT_FRAME_CNT
+1
View File
@@ -300,4 +300,5 @@ void SysMonitor_GetSyslog(SYSLOG *log)
ASSERT(sysMonitorInst != NULL);
SysMonitor_GetLinklayerLog(&(log->linkLog));
SysMonitor_GetPhysicalLayerLog(&(log->phyLog));
SysMonitor_GetHardwareStatus(&(log->hwState));
}
+3 -2
View File
@@ -83,6 +83,7 @@ typedef struct __attribute__((packed))
uint8_t linkStage;
uint32_t recxnCnt;
uint8_t beamNo;
uint8_t beamWidth;
uint16_t beamAz;
uint16_t beamEl;
uint16_t advTxCnt;
@@ -111,8 +112,8 @@ typedef struct __attribute__((packed))
uint64_t acqMean;
uint8_t acqPhase;
uint8_t acqFreqCh;
uint8_t fsyncPeak;
uint8_t fsyncMean;
uint64_t fsyncPeak;
uint64_t fsyncMean;
uint8_t fsyncFreqCh;
uint16_t deintlvAmpEst;
uint16_t reserve;
+26 -6
View File
@@ -158,6 +158,15 @@
#define WD_FLJ_RM_TEST 0x02
#define FLJ_RM_TEST_CODE 0x99
// -- 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
// Remote Test LJ
@@ -171,7 +180,7 @@
#define WD_LJ_LINK_LOG 0x0A
#define WD_LJ_LINK_LOG_LEN 64
#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_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;
}
// 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)
{
@@ -557,11 +566,11 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
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);
memcpy(sysbusRsp->data + WD_FLJ_TIME_STAMP, &time, WD_FLJ_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);
memcpy(sysbusRsp->data + WD_FLJ_LINK_LOG, &(sysLogPtr->linkLog), WD_FLJ_LINK_LOG_LEN);
memcpy(sysbusRsp->data + WD_FLJ_PHY_LOG, &(sysLogPtr->phyLog), WD_FLJ_PHY_LOG_LEN);
memcpy(sysbusRsp->data + WD_FLJ_HARDWARE_ST, &(sysLogPtr->hwState.spPsVolt), WD_FLJ_HARDWARE_ST_LEN);
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false){
free(sysbusRsp);
@@ -574,6 +583,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
}
case CMD_LJ_RM_TEST:
{
SYSLOG *sysLogPtr = &(instPtr->sysLog);
if (data[WD_LJ_RM_TEST] != LJ_RM_TEST_CODE)
{
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_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){
free(sysbusRsp);
DBG_WARNING("SystemBus::TX Queue overflowed!\n");