diff --git a/df_datalink_sp/src/networking/link_layer/service.c b/df_datalink_sp/src/networking/link_layer/service.c index 297105f..ae76f30 100644 --- a/df_datalink_sp/src/networking/link_layer/service.c +++ b/df_datalink_sp/src/networking/link_layer/service.c @@ -112,18 +112,29 @@ static int32_t Service_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst L2_FrameInsertChunk(buff, L2_MSG_SVC_SRC_SPEEDY, L2_MSG_SVC_SRC_SPEEDY_LEN, &(instPtr->sysInfo.vY)); L2_FrameInsertChunk(buff, L2_MSG_SVC_SRC_SPEEDZ, L2_MSG_SVC_SRC_SPEEDZ_LEN, &(instPtr->sysInfo.vZ)); - // packing payload - L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD, L2_MSG_SVC_PAYLOAD_LEN, testData); - + // uint32_t dataId; // if(L2_GetNodeType(instPtr) == L2_NODE_HEAD) // { - // SysMonitor_GetSendPayloadLJRaw(buff+L2_MSG_SVC_PAYLOAD); + // SysMonitor_GetSendPayloadFLJRaw(buff+L2_MSG_SVC_PAYLOAD, &dataId); // } // else // { - // SysMonitor_GetSendPayloadFLJRaw(buff+L2_MSG_SVC_PAYLOAD); + // SysMonitor_GetSendPayloadLJRaw(buff+L2_MSG_SVC_PAYLOAD, &dataId); // } + // L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD_ID, L2_MSG_SVC_PAYLOAD_ID_LEN, &dataId); + // if (dataId == DATA_ID_NONE) + // { + // L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD, L2_MSG_SVC_PAYLOAD_LEN, testData); + // } + + // packing payload + uint32_t dataId; + dataId = DATA_ID_NONE; + L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD_ID, L2_MSG_SVC_PAYLOAD_ID_LEN, &dataId); + L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD, L2_MSG_SVC_PAYLOAD_LEN, testData); + + Status = L2_CrcAppend(buff, L2_SVC_PACK_LEN - L2_MSG_SVC_CRC_LEN, L2_MSG_SVC_CRC, L2_CRC16_1021); if (Status != SUCCESS) { @@ -258,14 +269,21 @@ int32_t L2_Service_PktHandler(L2_INST *instPtr, uint8_t *msg) // Reset node ttl node->ttlCnt = 0; - if(L2_GetNodeType(instPtr) == L2_NODE_HEAD) + uint32_t dataId; + L2_FrameGetChunk(msg, L2_MSG_SVC_PAYLOAD_ID, L2_MSG_SVC_PAYLOAD_ID_LEN, &dataId); + + if(dataId != DATA_ID_NONE) { - SysMonitor_UpdateRecvPayloadLJRaw(msg+L2_MSG_SVC_PAYLOAD); - } - else - { - SysMonitor_UpdateRecvPayloadFLJRaw(msg+L2_MSG_SVC_PAYLOAD); + if(L2_GetNodeType(instPtr) == L2_NODE_HEAD) + { + SysMonitor_UpdateRecvPayloadFLJRaw(msg+L2_MSG_SVC_PAYLOAD); + } + else + { + SysMonitor_UpdateRecvPayloadLJRaw(msg+L2_MSG_SVC_PAYLOAD); + } } + #ifdef DATALINK_ENABLE_AUTOTIMESYNC // Implement a auto time sync. if (L2_GetNodeType(instPtr) != L2_NODE_HEAD) diff --git a/df_datalink_sp/src/systembus/systembus.c b/df_datalink_sp/src/systembus/systembus.c index 0236a2c..d7819fd 100644 --- a/df_datalink_sp/src/systembus/systembus.c +++ b/df_datalink_sp/src/systembus/systembus.c @@ -443,7 +443,12 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr) sysbusRsp->len = FLJ_POLL_RESP_LEN; sysbusRsp->data[WD_CMD] = WD_FLJ_POLL; sysbusRsp->data[WD_PRD] = MY_PRD_ID; - SysMonitor_GetRecvPayloadFLJRaw(sysbusRsp->data + FLJ_DATA_OFFSET); // omit control info + 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); + } if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false) { free(sysbusRsp); @@ -471,7 +476,12 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr) sysbusRsp->len = LJ_POLL_RESP_LEN; sysbusRsp->data[WD_CMD] = WD_LJ_POLL; sysbusRsp->data[WD_PRD] = MY_PRD_ID; - SysMonitor_GetRecvPayloadLJRaw(sysbusRsp->data + 2); // omit control info + 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); + } if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false) { free(sysbusRsp);