/****************************************************************************** ** 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)); } } }
uint16 Ut_CFE_SB_GetTotalMsgLengthHook(CFE_SB_MsgPtr_t MsgPtr) { #ifdef MESSAGE_FORMAT_IS_CCSDS return CCSDS_RD_LEN(MsgPtr->Hdr); #endif }/* end Ut_CFE_SB_GetTotalMsgLengthHook */
uint8 CCSDS_ComputeCheckSum (CCSDS_CmdPkt_t *PktPtr) { uint16 PktLen = CCSDS_RD_LEN(PktPtr->PriHdr); uint8 *BytePtr = (uint8 *)PktPtr; uint8 CheckSum; CheckSum = 0xFF; while (PktLen--) CheckSum ^= *(BytePtr++); return CheckSum; } /* END CCSDS_ComputeCheckSum() */
/****************************************************************************** ** Function: UTF_put_packet() ** ** Purpose: ** Display a packet. */ void UTF_put_packet (uint8 source, CCSDS_PriHdr_t *packet) { if (packet_output_disabled[CCSDS_RD_SID(*packet)]) return; if (custom_packet_handlers[CCSDS_RD_SID(*packet)]) custom_packet_handlers[CCSDS_RD_SID(*packet)](source, packet); else if (default_packet_handler) { (*default_packet_handler)(source, packet); } else { UTF_put_packet_header (source, packet); if (!packet_output_header_only [CCSDS_RD_SID(*packet)]) { UTF_put_text("PKT:"); UTF_put_data(((void *)packet), (uint16)(CCSDS_RD_LEN(*packet)), UTF_AS_WORD); } else { UTF_put_text("\n"); } } }