Example #1
0
void CI_ProcessGroundCommand(void)
{
    uint16 CommandCode;

    CommandCode = CFE_SB_GetCmdCode(CIMsgPtr);

    /* Process "known" CI task ground commands */
    switch (CommandCode)
    {
        case CI_NO_OPERATION_CC:

            CI_HkTelemetryPkt.ci_command_count++;
            CFE_EVS_SendEvent(CI_COMMANDNOP_INF_EID,CFE_EVS_INFORMATION, "CI: NOP command");
            break;

        case CI_RESET_COUNTERS_CC:

            CI_ResetCounters();
            CFE_EVS_SendEvent(CI_COMMANDRST_INF_EID,CFE_EVS_INFORMATION, "CI: RESET command");
            break;


        /* default case already found during FC vs length test */
        default:
            break;
    }


    return;

} /* End of CI_ProcessGroundCommand() */
Example #2
0
void $APPLICATION_NAME$_ProcessGroundCommand(void)
{
    uint16 CommandCode;

    CommandCode = CFE_SB_GetCmdCode($APPLICATION_NAME$_MsgPtr);

    /* Process "known" $Application Name$ app ground commands */
    switch (CommandCode)
    {
        case $APPLICATION_NAME$_APP_NOOP_CC:
            $APPLICATION_NAME$_HkTelemetryPkt.$application_name$_command_count++;
            CFE_EVS_SendEvent($APPLICATION_NAME$_COMMANDNOP_INF_EID,CFE_EVS_INFORMATION,
			"$Application Name$: NOOP command");
            break;

        case $APPLICATION_NAME$_APP_RESET_COUNTERS_CC:
            $APPLICATION_NAME$_ResetCounters();
            break;

        /* default case already found during FC vs length test */
        default:
            break;
    }
    return;

} /* End of $APPLICATION_NAME$_ProcessGroundCommand() */
Example #3
0
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int32 HS_CustomCommands(CFE_SB_MsgPtr_t MessagePtr)
{
    int32 Status = CFE_SUCCESS;

    uint16          CommandCode = 0;

    CommandCode = CFE_SB_GetCmdCode(MessagePtr);
    switch (CommandCode)
    {
        case HS_REPORT_DIAG_CC:
            HS_UtilDiagReport();
            break;

        case HS_SET_UTIL_PARAMS_CC:
            HS_SetUtilParamsCmd(MessagePtr);
            break;

        case HS_SET_UTIL_DIAG_CC:
            HS_SetUtilDiagCmd(MessagePtr);
            break;

        default:
            Status = !CFE_SUCCESS;
            break;

    } /* end CommandCode switch */

    return Status;

} /* End of HS_CustomCommands() */
Example #4
0
void TT_AppPipe(CFE_SB_MsgPtr_t msg)
{
    CFE_SB_MsgId_t MessageID;
    uint16 CommandCode;

    MessageID = CFE_SB_GetMsgId(msg);
    switch (MessageID)
    {
        /*
        ** Housekeeping telemetry request...
        */
        case CFE_TT_SEND_HK_MID:
            TT_HousekeepingCmd(msg);
            break;

        /*
        ** TT ground commands...
        */
        case CFE_TT_CMD_MID:

            CommandCode = CFE_SB_GetCmdCode(msg);
            switch (CommandCode)
            {
                case TT_NOOP_CC:
                    TT_NoopCmd(msg);
                    break;

                case TT_RESET_CC:
                    TT_ResetCmd(msg);
                    break;

                default:
                    CFE_EVS_SendEvent(TT_CC1_ERR_EID, CFE_EVS_ERROR,
                     "Invalid ground command code: ID = 0x%X, CC = %d",
                                      MessageID, CommandCode);
                    break;
            }
            break;

        default:

            CFE_EVS_SendEvent(TT_MID_ERR_EID, CFE_EVS_ERROR,
                             "Invalid command pipe message ID: 0x%X",
                              MessageID);
            break;
    }

    return;

} /* End of TT_AppPipe() */
Example #5
0
boolean THRSIM_VerifyCmdLength(CFE_SB_MsgPtr_t Msg, uint16 ExpectedLength) {
    boolean result = TRUE;
    uint16  ActualLength = CFE_SB_GetTotalMsgLength(Msg);

    if (ExpectedLength != ActualLength) {
        CFE_SB_MsgId_t MessageId = CFE_SB_GetMsgId(Msg);
        uint16 CommandCode = CFE_SB_GetCmdCode(Msg);

        CFE_EVS_SendEvent(THRSIM_MSGLEN_ERR_EID, CFE_EVS_ERROR, "Invalid cmd length: MID = 0x%04X, CC = %02u, Exp Len = %u, Len = %u", MessageId, CommandCode, ExpectedLength, ActualLength);
        result = FALSE;
        THRSIM_AppData.HkPacket.error_count++;
    }
    return result;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void TO_exec_local_command(CFE_SB_MsgPtr_t cmd)
{
    uint16 CommandCode;
    boolean valid = TRUE;
    CommandCode = CFE_SB_GetCmdCode(cmd);

    switch (CommandCode)
    {
       case TO_NOP_CC:
            CFE_EVS_SendEvent(TO_NOOP_INF_EID,CFE_EVS_INFORMATION, "No-op command");
            break;

       case TO_RESET_STATUS_CC:
            TO_reset_status();
            --to_hk_status.command_counter;
            break;

       case TO_SEND_DATA_TYPES_CC:
            TO_output_data_types_packet();
            break;

       case TO_ADD_PKT_CC:
            TO_AddPkt((TO_ADD_PKT_t *)cmd);
            break;

       case TO_REMOVE_PKT_CC:
            TO_RemovePkt( (TO_REMOVE_PKT_t *)cmd);
            break;

       case TO_REMOVE_ALL_PKT_CC:
            TO_RemoveAllPkt();
            break;

       case TO_OUTPUT_ENABLE_CC:
            TO_StartSending( (TO_OUTPUT_ENABLE_PKT_t *)cmd );
            downlink_on = TRUE;
            break;

       default:
            CFE_EVS_SendEvent(TO_FNCODE_ERR_EID,CFE_EVS_ERROR, "L%d TO: Invalid Function Code Rcvd In Ground Command 0x%x",__LINE__,
                              CommandCode);
            valid = FALSE;
    }

    if (valid)
       ++to_hk_status.command_counter;
    else
       ++to_hk_status.command_error_counter;
} /* End of TO_exec_local_command() */
Example #7
0
void THRSIM_ProcessGroundCommand(void) {
    uint16 ExpectedLength = sizeof(THRSIM_NoArgsCmd_t);

    if (THRSIM_VerifyCmdLength(THRSIM_AppData.MsgPtr, ExpectedLength)) {
        uint16 CommandCode = CFE_SB_GetCmdCode(THRSIM_AppData.MsgPtr);

        switch (CommandCode) {
            case THRSIM_NOOP_CC:
                THRSIM_AppData.HkPacket.command_count++;
                CFE_EVS_SendEvent(THRSIM_NOOP_INF_EID, CFE_EVS_INFORMATION, "NOOP command");
                break;
            case THRSIM_RESETCTRS_CC:
                THRSIM_ResetCounters();
                break;
            default:
                THRSIM_AppData.HkPacket.error_count++;
                CFE_EVS_SendEvent(THRSIM_CC1_ERR_EID, CFE_EVS_ERROR, "Invalid command code %u", CommandCode);
                break;
        }
    }
}
Example #8
0
boolean TT_VerifyCmdLength(CFE_SB_MsgPtr_t msg, uint16 ExpectedLength)
{
    boolean result = TRUE;
    uint16 ActualLength = CFE_SB_GetTotalMsgLength(msg);

    /*
    ** Verify the command packet length...
    */
    if (ExpectedLength != ActualLength)
    {
        CFE_SB_MsgId_t MessageID = CFE_SB_GetMsgId(msg);
        uint16 CommandCode = CFE_SB_GetCmdCode(msg);

        CFE_EVS_SendEvent(TT_LEN_ERR_EID, CFE_EVS_ERROR,
           "TT: Invalid cmd pkt: ID = 0x%X,  CC = %d, Len = %d",
                          MessageID, CommandCode, ActualLength);
        result = FALSE;
        TT4_AppData.ErrCount++;
    }

    return(result);

} /* End of TT_VerifyCmdLength() */
Example #9
0
void SIMCI_ProcessGroundCommand(void) {
    uint16 CommandCode;

    CommandCode = CFE_SB_GetCmdCode(SIMCI_AppData.MsgPtr);

    switch (CommandCode)
    {
        case SIMCI_NOOP_CC:
            SIMCI_AppData.HkPacket.command_count++;
            CFE_EVS_SendEvent(SIMCI_NOOP_INF_EID, CFE_EVS_INFORMATION, "SIMCI: NOOP command");
            break;

        case SIMCI_RESETCTRS_CC:
            SIMCI_ResetCounters();
            CFE_EVS_SendEvent(SIMCI_COMMANDRST_INF_EID,CFE_EVS_INFORMATION, "SIMCI: RESET command");
            break;

        default:
            SIMCI_AppData.HkPacket.error_count++;
            CFE_EVS_SendEvent(SIMCI_CC1_ERR_EID, CFE_EVS_ERROR, "SIMCI: received invalid command code, CC=%02u", CommandCode);
            break;
    }
}
Example #10
0
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **/
boolean $APPLICATION_NAME$_VerifyCmdLength(CFE_SB_MsgPtr_t msg, uint16 ExpectedLength)
{     
    boolean result = TRUE;

    uint16 ActualLength = CFE_SB_GetTotalMsgLength(msg);

    /*
    ** Verify the command packet length.
    */
    if (ExpectedLength != ActualLength)
    {
        CFE_SB_MsgId_t MessageID   = CFE_SB_GetMsgId(msg);
        uint16         CommandCode = CFE_SB_GetCmdCode(msg);

        CFE_EVS_SendEvent($APPLICATION_NAME$_LEN_ERR_EID, CFE_EVS_ERROR,
           "Invalid msg length: ID = 0x%X,  CC = %d, Len = %d, Expected = %d",
              MessageID, CommandCode, ActualLength, ExpectedLength);
        result = FALSE;
        $APPLICATION_NAME$_HkTelemetryPkt.$application_name$_command_error_count++;
    }

    return(result);

} /* End of $APPLICATION_NAME$_VerifyCmdLength() */
void CFE_TIME_TaskPipe(CFE_SB_MsgPtr_t MessagePtr)
{
    CFE_SB_MsgId_t MessageID;
    uint16 CommandCode;

    MessageID = CFE_SB_GetMsgId(MessagePtr);
    switch (MessageID)
    {
        /*
        ** Housekeeping telemetry request...
        */
        case CFE_TIME_SEND_HK_MID:
            CFE_TIME_HousekeepingCmd();
            break;

        /*
        ** Time at the tone "signal"...
        */
        case CFE_TIME_TONE_CMD_MID:
            CFE_TIME_ToneSignalCmd();
            break;

        /*
        ** Time at the tone "data"...
        */
        case CFE_TIME_DATA_CMD_MID:
            CFE_TIME_ToneDataCmd(MessagePtr);
            break;

        /*
        ** Simulate time at the tone "signal"...
        */
        #if (CFE_TIME_CFG_FAKE_TONE == TRUE)
        case CFE_TIME_FAKE_CMD_MID:
            CFE_TIME_FakeToneCmd();
            break;
        #endif

        /*
        ** Request for time at the tone "data"...
        */
        #if (CFE_TIME_CFG_SERVER == TRUE)
          #if (CFE_TIME_CFG_SOURCE != TRUE)
            #if (CFE_TIME_CFG_FAKE_TONE != TRUE)
        case CFE_TIME_SEND_CMD_MID:
            CFE_TIME_ToneSendCmd();
            break;
            #endif
          #endif
        #endif

        /*
        ** Time task ground commands...
        */
        case CFE_TIME_CMD_MID:

            CommandCode = CFE_SB_GetCmdCode(MessagePtr);
            switch (CommandCode)
            {
                case CFE_TIME_NOOP_CC:
                    CFE_TIME_NoopCmd();
                    break;

                case CFE_TIME_RESET_CC:
                    CFE_TIME_ResetCmd();
                    break;

                case CFE_TIME_DIAG_TLM_CC:
                    CFE_TIME_DiagCmd();
                    break;

                case CFE_TIME_SET_STATE_CC:
                    CFE_TIME_SetStateCmd(MessagePtr);
                    break;

                case CFE_TIME_SET_SOURCE_CC:
                    CFE_TIME_SetSourceCmd(MessagePtr);
                    break;

                case CFE_TIME_SET_SIGNAL_CC:
                    CFE_TIME_SetSignalCmd(MessagePtr);
                    break;

                /*
                ** Time Clients process "tone delay" commands...
                */
                case CFE_TIME_ADD_DELAY_CC:
                    CFE_TIME_SetDelayCmd(MessagePtr, (int16) CFE_TIME_ADD_ADJUST);
                    break;

                case CFE_TIME_SUB_DELAY_CC:
                    CFE_TIME_SetDelayCmd(MessagePtr, (int16) CFE_TIME_SUB_ADJUST);
                    break;

                /*
                ** Time Servers process "set time" commands...
                */
                case CFE_TIME_SET_TIME_CC:
                    CFE_TIME_SetTimeCmd(MessagePtr);
                    break;

                case CFE_TIME_SET_MET_CC:
                    CFE_TIME_SetMETCmd(MessagePtr);
                    break;

                case CFE_TIME_SET_STCF_CC:
                    CFE_TIME_SetSTCFCmd(MessagePtr);
                    break;

                case CFE_TIME_SET_LEAPS_CC:
                    CFE_TIME_SetLeapsCmd(MessagePtr);
                    break;

                case CFE_TIME_ADD_ADJUST_CC:
                    CFE_TIME_AdjustCmd(MessagePtr, (int16) CFE_TIME_ADD_ADJUST);
                    break;

                case CFE_TIME_SUB_ADJUST_CC:
                    CFE_TIME_AdjustCmd(MessagePtr,  (int16) CFE_TIME_SUB_ADJUST);
                    break;

                case CFE_TIME_ADD_1HZADJ_CC:
                    CFE_TIME_1HzAdjCmd(MessagePtr, (int16) CFE_TIME_ADD_ADJUST);
                    break;

                case CFE_TIME_SUB_1HZADJ_CC:
                    CFE_TIME_1HzAdjCmd(MessagePtr, (int16) CFE_TIME_SUB_ADJUST);
                    break;

                default:

                    CFE_TIME_TaskData.ErrCounter++;
                    CFE_EVS_SendEvent(CFE_TIME_CC_ERR_EID, CFE_EVS_ERROR,
                             "Invalid command code -- ID = 0x%X, CC = %d",
                                      MessageID, CommandCode);
                    break;
            } /* switch (CFE_TIME_CMD_MID -- command code)*/
            break;

        default:

            /*
            ** Note: we only increment the command error counter when
            **    processing CFE_TIME_CMD_MID commands...
            */
            CFE_EVS_SendEvent(CFE_TIME_ID_ERR_EID, CFE_EVS_ERROR,
                             "Invalid message ID -- ID = 0x%X",
                              MessageID);
            break;

    } /* switch (message ID) */

    return;

} /* End of CFE_TIME_TaskPipe() */
Example #12
0
void CFE_TBL_TaskPipe(CFE_SB_Msg_t *MessagePtr)
{
    CFE_SB_MsgId_t       MessageID = CFE_SB_GetMsgId(MessagePtr);
    uint16               CommandCode = CFE_SB_GetCmdCode(MessagePtr);
    int16                CmdIndx;
    uint32               ActualLength;
    CFE_TBL_CmdProcRet_t CmdStatus = CFE_TBL_INC_ERR_CTR; /* Assume a failed command */

    /* Search the Command Handler Table for a matching message */
    CmdIndx = CFE_TBL_SearchCmdHndlrTbl(MessageID, CommandCode);

    /* Check to see if a matching command was found */
    if (CmdIndx >= 0)
    {
        /* Verify Message Length before processing */
        ActualLength = CFE_SB_GetTotalMsgLength(MessagePtr);
        if (ActualLength == CFE_TBL_CmdHandlerTbl[CmdIndx].ExpectedLength)
        {
            /* All checks have passed, call the appropriate message handler */
            CmdStatus = (CFE_TBL_CmdHandlerTbl[CmdIndx].MsgProcFuncPtr)(MessagePtr);
        }
        else /* Bad Message Length */
        {
            CFE_EVS_SendEvent( CFE_TBL_LEN_ERR_EID, CFE_EVS_ERROR,
                               "Invalid msg length -- ID = 0x%04X, CC = %d, Len = %d (!= %d)",
                               MessageID, CommandCode, ActualLength,
                               CFE_TBL_CmdHandlerTbl[CmdIndx].ExpectedLength );
        }

        /* Only update command counters when message has a command code */
        if (CFE_TBL_CmdHandlerTbl[CmdIndx].MsgTypes == CFE_TBL_CMD_MSGTYPE)
        {
            if (CmdStatus == CFE_TBL_INC_CMD_CTR)
            {
                CFE_TBL_TaskData.CmdCounter++;
            }
            else if (CmdStatus == CFE_TBL_INC_ERR_CTR)
            {
                CFE_TBL_TaskData.ErrCounter++;
            }
        }
    }
    else
    {
        /* Determine whether event message should be */
        /* "Bad Command Code" or "Bad Message ID"    */
        if (CmdIndx == CFE_TBL_BAD_CMD_CODE)
        {
            CFE_EVS_SendEvent(CFE_TBL_CC1_ERR_EID, CFE_EVS_ERROR,
                              "Invalid command code -- ID = 0x%04X, CC = %d",
                              MessageID, CommandCode);

            /* Update the command error counter */
            CFE_TBL_TaskData.ErrCounter++;
        }
        else  /* CmdIndx == CFE_TBL_BAD_MSG_ID */
        {
            CFE_EVS_SendEvent(CFE_TBL_MID_ERR_EID, CFE_EVS_ERROR,
                             "Invalid message ID -- ID = 0x%04X",
                              MessageID);
            /*
            ** Note: we only increment the command error counter when
            **    processing messages with command codes
            */
        }
    }

    return;

} /* End of CFE_TBL_TaskPipe() */
Example #13
0
int32 SCH_AppPipe(CFE_SB_MsgPtr_t MessagePtr)
{
    int32           Result = CFE_SUCCESS;
    CFE_SB_MsgId_t  MessageID = 0;
    uint16          CommandCode = 0;

    MessageID = CFE_SB_GetMsgId(MessagePtr);
    switch (MessageID)
    {
        /*
        ** Housekeeping telemetry request
        */
        case SCH_SEND_HK_MID:
            Result = SCH_HousekeepingCmd(MessagePtr);
            break;

        /*
        ** SCH ground commands
        */
        case SCH_CMD_MID:

            CommandCode = CFE_SB_GetCmdCode(MessagePtr);
            switch (CommandCode)
            {
                case SCH_NOOP_CC:
                    SCH_NoopCmd(MessagePtr);
                    break;

                case SCH_RESET_CC:
                    SCH_ResetCmd(MessagePtr);
                    break;

                case SCH_ENABLE_CC:
                    SCH_EnableCmd(MessagePtr);
                    break;

                case SCH_DISABLE_CC:
                    SCH_DisableCmd(MessagePtr);
                    break;

                case SCH_ENABLE_GROUP_CC:
                    SCH_EnableGroupCmd(MessagePtr);
                    break;

                case SCH_DISABLE_GROUP_CC:
                    SCH_DisableGroupCmd(MessagePtr);
                    break;

                case SCH_ENABLE_SYNC_CC:
                    SCH_EnableSyncCmd(MessagePtr);
                    break;

                case SCH_SEND_DIAG_TLM_CC:
                    SCH_SendDiagTlmCmd(MessagePtr);
                    break;

                /*
                ** SCH ground commands with unknown command codes...
                */
                default:
                    CFE_EVS_SendEvent(SCH_CC_ERR_EID, CFE_EVS_ERROR,
                                      "Invalid command code: ID = 0x%04X, CC = %d",
                                      MessageID, CommandCode);

                    SCH_AppData.ErrCounter++;
                    break;
            }
            break;

        /*
        ** Unknown message ID's
        */
        default:
            CFE_EVS_SendEvent(SCH_MD_ERR_EID, CFE_EVS_ERROR,
                              "Msg with Invalid message ID Rcvd -- ID = 0x%04X",
                              MessageID);
            break;
    }

    return(Result);

} /* End of SCH_AppPipe() */