Ejemplo n.º 1
0
/******************************************************************************
**  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));
        }
    }
}
Ejemplo n.º 2
0
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 */
Ejemplo n.º 3
0
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() */
Ejemplo n.º 4
0
/******************************************************************************
**  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");
        }
    }
}