/****************************************************************************** ** Function: UTF_put_packet_header() ** ** Purpose: ** Display the CCSDS header of a packet. */ void UTF_put_packet_header (uint8 source, CCSDS_PriHdr_t *packet) { uint16 sid; CFE_TIME_SysTime_t TimeFromMsg; sid = CCSDS_RD_SID(*packet); if (CCSDS_SID_TYPE(sid) == CCSDS_CMD) { if (CCSDS_SID_SHDR(sid) == CCSDS_HAS_SEC_HDR) { UTF_put_text("%s CMD: APID:%04x SEQ:%d LEN:%d FC:%d ", (source == UTF_SOURCE_SEND) ? ">": "<", CCSDS_RD_APID(*packet), CCSDS_RD_SEQ(*packet), CCSDS_RD_LEN(*packet), CCSDS_RD_FC(((CCSDS_CmdPkt_t *)packet)->SecHdr)); } else { UTF_put_text("%s CMD: APID:%04x SEQ:%d LEN:%d ", (source == UTF_SOURCE_SEND) ? ">": "<", CCSDS_RD_APID(*packet), CCSDS_RD_SEQ(*packet), CCSDS_RD_LEN(*packet)); } } else { if (CCSDS_SID_SHDR(sid) == CCSDS_HAS_SEC_HDR) { TimeFromMsg = CFE_SB_GetMsgTime((CFE_SB_MsgPtr_t)packet); UTF_put_text("%s TLM: APID:%04x SEQ:%d LEN:%d TIME:%08x %08x ", (source == UTF_SOURCE_SEND) ? ">": "<", CCSDS_RD_APID(*packet), CCSDS_RD_SEQ(*packet), CCSDS_RD_LEN(*packet), TimeFromMsg.Seconds, TimeFromMsg.Subseconds); } else { UTF_put_text("%s TLM: APID:%04x SEQ:%d LEN:%d ", (source == UTF_SOURCE_SEND) ? ">": "<", CCSDS_RD_APID(*packet), CCSDS_RD_SEQ(*packet), CCSDS_RD_LEN(*packet)); } } }
/** ** \brief CFE_SB_GetCmdCode stub function ** ** \par Description ** This function is used to mimic the response of the cFE SB function ** CFE_SB_GetCmdCode. ** ** \par Assumptions, External Events, and Notes: ** None ** ** \returns ** Returns either the function code from command secondary header or ** CFE_SUCCESS. ** ******************************************************************************/ uint16 CFE_SB_GetCmdCode(CFE_SB_MsgPtr_t MsgPtr) { uint16 status = CFE_SUCCESS; CFE_SB_CmdHdr_t *CmdHdrPtr; /* If msg type isn't telemetry */ if (CCSDS_RD_TYPE(MsgPtr->Hdr) != CCSDS_TLM) { /* Cast the input pointer to a Cmd Msg pointer */ CmdHdrPtr = (CFE_SB_CmdHdr_t *)MsgPtr; status = CCSDS_RD_FC(CmdHdrPtr->Sec); } return status; }
uint16 Ut_CFE_SB_GetCmdCodeHook(CFE_SB_MsgPtr_t MsgPtr) { #ifdef MESSAGE_FORMAT_IS_CCSDS CFE_SB_CmdHdr_t *CmdHdrPtr; /* if msg type is telemetry or there is no secondary hdr, return 0 */ if((CCSDS_RD_TYPE(MsgPtr->Hdr) == CCSDS_TLM)||(CCSDS_RD_SHDR(MsgPtr->Hdr) == 0)){ return 0; }/* end if */ /* Cast the input pointer to a Cmd Msg pointer */ CmdHdrPtr = (CFE_SB_CmdHdr_t *)MsgPtr; return CCSDS_RD_FC(CmdHdrPtr->Sec); #endif }/* end Ut_CFE_SB_GetCmdCodeHook */