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); } }
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); }
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); }
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); }