Пример #1
0
int32 FM_TableInit(void)
{
    int32 Status;

    /* Initialize file system free space table pointer */
    FM_GlobalData.FreeSpaceTablePtr = (FM_FreeSpaceTable_t *) NULL;

    /* Register the file system free space table - this must succeed! */
    Status = CFE_TBL_Register(&FM_GlobalData.FreeSpaceTableHandle,
                               FM_TABLE_CFE_NAME, sizeof(FM_FreeSpaceTable_t),
                             (CFE_TBL_OPT_SNGL_BUFFER | CFE_TBL_OPT_LOAD_DUMP),
                             (CFE_TBL_CallbackFuncPtr_t) FM_ValidateTable);

    if (Status == CFE_SUCCESS)
    {
        /* Make an attempt to load the default table data - OK if this fails */
        CFE_TBL_Load(FM_GlobalData.FreeSpaceTableHandle,
                     CFE_TBL_SRC_FILE, FM_TABLE_DEF_NAME);

        /* Allow cFE a chance to dump, update, etc. */
        FM_AcquireTablePointers();
    }

    return(Status);

} /* End FM_TableInit */
Пример #2
0
void SC_LoadDefaultTables(void)
{
    char    TableName[OS_MAX_PATH_LEN];
    int32   FileDesc;
    int32   RtsIndex;
    int32   RtsCount = 0;

    /*
    ** Currently, only RTS tables are loaded during initialization.
    **
    ** ATS and ATS Append tables must be loaded by command.
    */        
    for (RtsIndex = 0; RtsIndex < SC_NUMBER_OF_RTS; RtsIndex++)
    {
        /* Example filename: /cf/apps/sc_rts001.tbl */
        sprintf(TableName, "%s%03ld.tbl", SC_RTS_FILE_NAME, RtsIndex + 1);
        
        FileDesc = OS_open(TableName, OS_READ_ONLY, 0);
                   
        if (FileDesc >= 0)
        {
            OS_close(FileDesc);
            
            /* Only try to load table files that can be opened, ignore others */
            if(CFE_TBL_Load(SC_OperData.RtsTblHandle[RtsIndex], CFE_TBL_SRC_FILE, TableName) == CFE_SUCCESS){
               RtsCount++;
            }
        }
    }

    /* Display startup RTS load count */
    CFE_EVS_SendEvent(SC_RTS_LOAD_COUNT_INFO_EID, CFE_EVS_INFORMATION,
       "RTS table file load count = %ld", RtsCount);

    return;    

} /* end SC_LoadDefaultTables() */
Пример #3
0
void TT_AppInit(void)
{
	void *TblPointer;
	int32 Status;
    /*
    ** Initialize app command execution counters...
    */
    TT4_AppData.CmdCount = 0;
    TT4_AppData.ErrCount = 0;
    TT4_AppData.HkPacket.UpdateCount = 0;

    /*
    ** Initialize app configuration data...
    */
    strcpy(TT4_AppData.PipeName, "TT_CMD_PIPE");

    TT4_AppData.PipeDepth = 12;

    TT4_AppData.LimitHK   = 2;
    TT4_AppData.LimitCmd  = 4;

    /*
    ** Initialize event filter table...
    */
    TT4_AppData.EventFilters[0].EventID = TT_INIT_INF_EID;
    TT4_AppData.EventFilters[0].Mask    = CFE_EVS_NO_FILTER;
    TT4_AppData.EventFilters[1].EventID = TT_NOOP_INF_EID;
    TT4_AppData.EventFilters[1].Mask    = CFE_EVS_NO_FILTER;
    TT4_AppData.EventFilters[2].EventID = TT_RESET_INF_EID;
    TT4_AppData.EventFilters[2].Mask    = CFE_EVS_NO_FILTER;
    TT4_AppData.EventFilters[3].EventID = TT_MID_ERR_EID;
    TT4_AppData.EventFilters[3].Mask    = CFE_EVS_NO_FILTER;
    TT4_AppData.EventFilters[4].EventID = TT_CC1_ERR_EID;
    TT4_AppData.EventFilters[4].Mask    = CFE_EVS_NO_FILTER;
    TT4_AppData.EventFilters[5].EventID = TT_LEN_ERR_EID;
    TT4_AppData.EventFilters[5].Mask    = CFE_EVS_NO_FILTER;

    /*
    ** Register event filter table...
    */
    CFE_EVS_Register(TT4_AppData.EventFilters,
                     TT_EVT_COUNT,
                     CFE_EVS_BINARY_FILTER);

    /*
    ** Initialize housekeeping packet (clear user data area)...
    */
    CFE_SB_InitMsg(&TT4_AppData.HkPacket,
                    CFE_TT_HK_TLM_MID,
                    sizeof(TT_HkPacket_t), TRUE);

    /*
    ** Create Software Bus message pipe...
    */
    CFE_SB_CreatePipe(&TT4_AppData.CmdPipe,
                       TT4_AppData.PipeDepth,
                       TT4_AppData.PipeName);

    /*
    ** Subscribe to Housekeeping request commands...
    */
    CFE_SB_Subscribe(CFE_TT_SEND_HK_MID,TT4_AppData.CmdPipe);

    /*
    ** Subscribe to TT ground command packets...
    */
    CFE_SB_Subscribe(CFE_TT_CMD_MID,TT4_AppData.CmdPipe);
    
    /*
    ** Register & Initialize Table...
    */
    Status = CFE_TBL_Register(&TT4_AppData.TblHandle,
                     "FourNumbers",
                     4, /* size of table in bytes*/
                     CFE_TBL_OPT_DBL_BUFFER | CFE_TBL_OPT_LOAD_DUMP,
                     &TT_TableValidationCallbackFunc);
/*                     NULL);  */
    UTF_put_text("CFE_TBL_Register returned %lx\n", Status);
 
    Status = CFE_TBL_Load(TT4_AppData.TblHandle,
                 CFE_TBL_SRC_FILE,
                 "/ram/tt_table_values0.dat");
    UTF_put_text("CFE_TBL_Load returned %lx\n", Status);
                 
    Status = CFE_TBL_GetAddress(&TblPointer,TT4_AppData.TblHandle);
    UTF_put_text("CFE_TBL_GetAddress returned %lx\n", Status);
      
    UTF_put_text("The initial values are:%d %d %d %d\n",
     *(int8*)TblPointer,*(int8*)(TblPointer+1),
     *(int8*)(TblPointer+2),*(int8*)(TblPointer+3));
     
     
    Status = CFE_TBL_ReleaseAddress(TT4_AppData.TblHandle);                
   UTF_put_text("CFE_TBL_ReleaseAddress returned %lx\n", Status);

    /*
    ** Application startup event message...
    */
    CFE_EVS_SendEvent(TT_INIT_INF_EID,
                      CFE_EVS_INFORMATION,
                     "TT: Application Initialized");

    return;

} /* End of TT_AppInit() */
Пример #4
0
int32 TO_TableInit (void)
{
	int32 iStatus = CFE_SUCCESS;

    /* Register The TO config table */
    iStatus = CFE_TBL_Register (&TO_AppData.ConfigHandle,
    		TO_CONFIG_TABLENAME, (sizeof (TO_Table_t)),
    		CFE_TBL_OPT_DEFAULT,
    		(CFE_TBL_CallbackFuncPtr_t)TO_ValidateTable);

    if (iStatus != CFE_SUCCESS)
    {
    	CFE_EVS_SendEvent(TO_CONFIG_REG_ERR_EID, CFE_EVS_ERROR,
    			"CFE_TBL_Register() returned error %i.  Aborting table init.",
    			iStatus);

        goto end_of_function;
    }

    /* Load the TO configuration table file */
    iStatus = CFE_TBL_Load (TO_AppData.ConfigHandle, CFE_TBL_SRC_FILE,
    		TO_CONFIG_FILENAME);

    if (iStatus != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(TO_CONFIG_LD_ERR_EID, CFE_EVS_ERROR,
                  "CFE_TBL_Load() returned error %i.  Aborting table init.",
                  iStatus);

        goto end_of_function;
    }

    /* Manage the TO config table */
    iStatus = CFE_TBL_Manage(TO_AppData.ConfigHandle);
    if (iStatus != CFE_SUCCESS)
    {
    	CFE_EVS_SendEvent(TO_CONFIG_MNG_ERR_EID, CFE_EVS_ERROR,
           "CFE_TBL_Manage() returned error %i.  Aborting table init.",
           iStatus);

        goto end_of_function;
    }

    /* Make sure the CI iLoad Table is accessible */
    iStatus = CFE_TBL_GetAddress ((void **) (& TO_AppData.Config),
    		                                TO_AppData.ConfigHandle);
    /* Status should be CFE_TBL_INFO_UPDATED because we loaded it above */
    if (iStatus != CFE_TBL_INFO_UPDATED)
    {
    	CFE_EVS_SendEvent(TO_CONFIG_GADR_ERR_EID, CFE_EVS_ERROR,
    			"CFE_TBL_GetAddress() returned error %i.  Aborting table init.",
    			iStatus);

    	goto end_of_function;
    }

    iStatus = CFE_SUCCESS;

end_of_function:
    return iStatus;

}
Пример #5
0
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int32 HS_TblInit(void)
{
    uint32      TableSize;
    int32       Status = CFE_SUCCESS;

    /* Register The HS Critical Applications Monitor Table */
    TableSize = HS_MAX_CRITICAL_APPS * sizeof (HS_AMTEntry_t);
    Status = CFE_TBL_Register (&HS_AppData.AMTableHandle,
                                HS_AMT_TABLENAME,
                                TableSize,
                                CFE_TBL_OPT_DEFAULT,
                                HS_ValidateAMTable);

    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_AMT_REG_ERR_EID, CFE_EVS_ERROR,
            "Error Registering AppMon Table,RC=0x%08X",Status);
        return (Status);
    }

    /* Register The HS Critical Events Monitor Table */
    TableSize = HS_MAX_CRITICAL_EVENTS * sizeof (HS_EMTEntry_t);
    Status = CFE_TBL_Register (&HS_AppData.EMTableHandle,
                                HS_EMT_TABLENAME,
                                TableSize,
                                CFE_TBL_OPT_DEFAULT,
                                HS_ValidateEMTable);

    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_EMT_REG_ERR_EID, CFE_EVS_ERROR,
            "Error Registering EventMon Table,RC=0x%08X",Status);
        return (Status);
    }

    /* Register The HS Message Actions Table */
    TableSize = HS_MAX_MSG_ACT_TYPES * sizeof (HS_MATEntry_t);
    Status = CFE_TBL_Register (&HS_AppData.MATableHandle,
                                HS_MAT_TABLENAME,
                                TableSize,
                                CFE_TBL_OPT_DEFAULT,
                                HS_ValidateMATable);

    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_MAT_REG_ERR_EID, CFE_EVS_ERROR,
            "Error Registering MsgActs Table,RC=0x%08X",Status);
        return (Status);
    }

#if HS_MAX_EXEC_CNT_SLOTS != 0
    /* Register The HS Execution Counters Table */
    TableSize = HS_MAX_EXEC_CNT_SLOTS * sizeof (HS_XCTEntry_t);
    Status = CFE_TBL_Register (&HS_AppData.XCTableHandle,
                                HS_XCT_TABLENAME,
                                TableSize,
                                CFE_TBL_OPT_DEFAULT,
                                HS_ValidateXCTable);

    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_XCT_REG_ERR_EID, CFE_EVS_ERROR,
            "Error Registering ExeCount Table,RC=0x%08X",Status);
        return (Status);
    }

    /* Load the HS Execution Counters Table */
    Status = CFE_TBL_Load (HS_AppData.XCTableHandle,
                           CFE_TBL_SRC_FILE,
                           (const void *) HS_XCT_FILENAME);
    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_XCT_LD_ERR_EID, CFE_EVS_ERROR,
            "Error Loading ExeCount Table,RC=0x%08X",Status);
        HS_AppData.ExeCountState = HS_STATE_DISABLED;
    }
#endif

    /* Load the HS Critical Applications Monitor Table */
    Status = CFE_TBL_Load (HS_AppData.AMTableHandle,
                           CFE_TBL_SRC_FILE,
                           (const void *) HS_AMT_FILENAME);
    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_AMT_LD_ERR_EID, CFE_EVS_ERROR,
            "Error Loading AppMon Table,RC=0x%08X",Status);
        HS_AppData.CurrentAppMonState = HS_STATE_DISABLED;
        CFE_EVS_SendEvent (HS_DISABLE_APPMON_ERR_EID, CFE_EVS_ERROR,
                           "Critical Application Monitoring Disabled due to Table Load Failure");
        HS_AppData.AppMonLoaded = HS_STATE_DISABLED;
    }

    /* Load the HS Critical Events Monitor Table */
    Status = CFE_TBL_Load (HS_AppData.EMTableHandle,
                           CFE_TBL_SRC_FILE,
                           (const void *) HS_EMT_FILENAME);
    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_EMT_LD_ERR_EID, CFE_EVS_ERROR,
            "Error Loading EventMon Table,RC=0x%08X",Status);
        HS_AppData.CurrentEventMonState = HS_STATE_DISABLED;
        CFE_EVS_SendEvent (HS_DISABLE_EVENTMON_ERR_EID, CFE_EVS_ERROR,
                           "Critical Event Monitoring Disabled due to Table Load Failure");
        HS_AppData.EventMonLoaded = HS_STATE_DISABLED;
    }

    /* Load the HS Message Actions Table */
    Status = CFE_TBL_Load (HS_AppData.MATableHandle,
                           CFE_TBL_SRC_FILE,
                           (const void *) HS_MAT_FILENAME);
    if (Status != CFE_SUCCESS)
    {
        CFE_EVS_SendEvent(HS_MAT_LD_ERR_EID, CFE_EVS_ERROR,
            "Error Loading MsgActs Table,RC=0x%08X",Status);
        HS_AppData.MsgActsState = HS_STATE_DISABLED;
    }

    /*
    ** Get pointers to table data
    */
    HS_AcquirePointers();

    return CFE_SUCCESS;

} /* End of HS_TblInit() */