Ejemplo n.º 1
0
int32 Ut_CFE_SB_RcvMsgHook(CFE_SB_MsgPtr_t *BufPtr, CFE_SB_PipeId_t PipeId, int32 TimeOut)
{
    UtListNode_t        *CurrentNode;

    if (PipeTable[PipeId].InUse == TRUE) {

        if (UtList_IsEmpty(&PipeTable[PipeId].MsgQueue) == FALSE) {

            CurrentNode = UtList_First(&PipeTable[PipeId].MsgQueue);
            if (CurrentNode->Tag == TRUE) {         /* Indicates buffer is in use */
                UtList_DeleteFirst(&PipeTable[PipeId].MsgQueue);
            }

            if (UtList_IsEmpty(&PipeTable[PipeId].MsgQueue) == FALSE) {

                CurrentNode = UtList_First(&PipeTable[PipeId].MsgQueue);
                CurrentNode->Tag = TRUE;            /* Indicates buffer is in use */
               *BufPtr = CurrentNode->Data;
                return(CFE_SUCCESS);
            }
        }

        if (TimeOut == CFE_SB_POLL) {
            return(CFE_SB_NO_MESSAGE);
        }
        else {
            return(CFE_SB_TIME_OUT);
        }
    }
    else {
        printf("Error - Invalid PipeId\n");
        return(CFE_SB_NO_MESSAGE);
    }
}
Ejemplo n.º 2
0
boolean Ut_CFE_SB_PacketSent(uint16 MessageID)
{
    UtListNode_t        *CurrentNode;
    CFE_SB_Msg_t        *MessagePtr;

    CurrentNode = UtList_First(&MsgQueue);
    while (CurrentNode) {
        MessagePtr = CurrentNode->Data;
        if (MessageID == CFE_SB_GetMsgId(MessagePtr)) {
            return(TRUE);
        }
        CurrentNode = CurrentNode->Next;
    }
    return(FALSE);
}
Ejemplo n.º 3
0
uint32 Ut_CFE_SB_GetMsgCount(uint16 MessageID)
{
    UtListNode_t        *CurrentNode;
    CFE_SB_Msg_t        *MessagePtr;
    uint32               MessageCount = 0;

    CurrentNode = UtList_First(&MsgQueue);
    while (CurrentNode) {
        MessagePtr = CurrentNode->Data;
        if (MessageID == CFE_SB_GetMsgId(MessagePtr)) {
            MessageCount++;
        }
        CurrentNode = CurrentNode->Next;
    }
    return(MessageCount);
}
boolean Ut_CFE_EVS_EventSent(uint16 EventID, uint16 EventType, const char *EventText)
{
    UtListNode_t        *CurrentNode;
    Ut_CFE_EVS_Event_t  *EventMessagePtr;

    CurrentNode = UtList_First(&EventQueue);
    while (CurrentNode) {
        EventMessagePtr = CurrentNode->Data;
        if ((EventMessagePtr->EventID == EventID) &&
            (EventMessagePtr->EventType == EventType) &&
            (strncmp(EventText, EventMessagePtr->EventText, strlen(EventText)) == 0)) {
            return(TRUE);
        }
        CurrentNode = CurrentNode->Next;
    }
    return(FALSE);
}
uint32 Ut_CFE_EVS_GetEventCount(uint16 EventID, uint16 EventType, const char *EventText)
{
    UtListNode_t        *CurrentNode;
    Ut_CFE_EVS_Event_t  *EventMessagePtr;
    uint32               EventCount = 0;

    CurrentNode = UtList_First(&EventQueue);
    while (CurrentNode) {
        EventMessagePtr = CurrentNode->Data;
        if ((EventMessagePtr->EventID == EventID) &&
            (EventMessagePtr->EventType == EventType) &&
            (strncmp(EventText, EventMessagePtr->EventText, strlen(EventText)) == 0)) {
            EventCount++;
        }
        CurrentNode = CurrentNode->Next;
    }
    return(EventCount);
}
Ejemplo n.º 6
0
void *Ut_CFE_SB_FindPacket(uint16 MessageID, uint32 MessageNumber)
{
    UtListNode_t        *CurrentNode;
    CFE_SB_Msg_t        *MessagePtr;
    uint32               MessageCount = 0;

    CurrentNode = UtList_First(&MsgQueue);
    while (CurrentNode) {
        MessagePtr = CurrentNode->Data;
        if (MessageID == CFE_SB_GetMsgId(MessagePtr)) {
            MessageCount++;
            if (MessageCount == MessageNumber) {
                return(CurrentNode->Data);
            }
        }
        CurrentNode = CurrentNode->Next;
    }
    return(NULL);
}