Skip to content

Commit

Permalink
Update nasa#1965, alternative fix that uses a MSG macro to do conversion
Browse files Browse the repository at this point in the history
This also standardizes the structure names in all message definition headers.
  • Loading branch information
jphickey committed Sep 20, 2021
1 parent 9759e12 commit 3dc63e0
Show file tree
Hide file tree
Showing 19 changed files with 248 additions and 221 deletions.
21 changes: 21 additions & 0 deletions modules/core_api/fsw/inc/cfe_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,27 @@
#include "cfe_sb_api_typedefs.h"
#include "cfe_time_api_typedefs.h"

/** \defgroup CFEAPIMSGConversion cFE Message type conversion
* \{
*/

/*****************************************************************************/
/**
* \brief Convert from a CFE_MSG_TelemetryHeader_t or CFE_MSG_CommandHeader_t to a CFE_MSG_Message_t
*
* \par Description
* Given a pointer to a secondary header structure, return a pointer
* to the CFE_MSG_Message_t (base header/primary header) object.
*
* \par Notes
* Implemented as a macro, so it should work with both Command and Telemetry headers, as well as
* both const and non-const headers. The const-ness of the pointer type should be preserved.
*
*/
#define CFE_MSG_PTR(shdr) (&((shdr)->Msg))

/**\}*/

/** \defgroup CFEAPIMSGHeader cFE Generic Message APIs
* \{
*/
Expand Down
70 changes: 35 additions & 35 deletions modules/es/fsw/inc/cfe_es_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@
*/
typedef struct CFE_ES_NoArgsCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
} CFE_ES_NoArgsCmd_t;

/*
Expand Down Expand Up @@ -1093,8 +1093,8 @@ typedef struct CFE_ES_RestartCmd_Payload
*/
typedef struct CFE_ES_RestartCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_RestartCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_RestartCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_RestartCmd_t;

/**
Expand All @@ -1116,8 +1116,8 @@ typedef struct CFE_ES_FileNameCmd_Payload
*/
typedef struct CFE_ES_FileNameCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_FileNameCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_FileNameCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_FileNameCmd_t;

/*
Expand Down Expand Up @@ -1147,8 +1147,8 @@ typedef struct CFE_ES_OverWriteSysLogCmd_Payload
*/
typedef struct CFE_ES_OverWriteSysLogCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_OverWriteSysLogCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_OverWriteSysLogCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_OverWriteSysLogCmd_t;

/**
Expand Down Expand Up @@ -1179,8 +1179,8 @@ typedef struct CFE_ES_StartAppCmd_Payload
*/
typedef struct CFE_ES_StartApp
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_StartAppCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_StartAppCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_StartAppCmd_t;

/**
Expand All @@ -1199,8 +1199,8 @@ typedef struct CFE_ES_AppNameCmd_Payload
*/
typedef struct CFE_ES_AppNameCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_AppNameCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_AppNameCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_AppNameCmd_t;

/*
Expand Down Expand Up @@ -1230,8 +1230,8 @@ typedef struct CFE_ES_AppReloadCmd_Payload
*/
typedef struct CFE_ES_ReloadAppCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_AppReloadCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_AppReloadCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_ReloadAppCmd_t;

/**
Expand All @@ -1251,8 +1251,8 @@ typedef struct CFE_ES_SetMaxPRCountCmd_Payload
*/
typedef struct CFE_ES_SetMaxPRCountCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_SetMaxPRCountCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_SetMaxPRCountCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_SetMaxPRCountCmd_t;

/**
Expand All @@ -1273,8 +1273,8 @@ typedef struct CFE_ES_DeleteCDSCmd_Payload
*/
typedef struct CFE_ES_DeleteCDSCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_DeleteCDSCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_DeleteCDSCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_DeleteCDSCmd_t;

/**
Expand All @@ -1293,8 +1293,8 @@ typedef struct CFE_ES_StartPerfCmd_Payload
*/
typedef struct CFE_ES_StartPerfDataCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_StartPerfCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_StartPerfCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_StartPerfDataCmd_t;

/**
Expand All @@ -1314,8 +1314,8 @@ typedef struct CFE_ES_StopPerfCmd_Payload
*/
typedef struct CFE_ES_StopPerfDataCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_StopPerfCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_StopPerfCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_StopPerfDataCmd_t;

/**
Expand All @@ -1336,8 +1336,8 @@ typedef struct CFE_ES_SetPerfFilterMaskCmd_Payload
*/
typedef struct CFE_ES_SetPerfFilterMaskCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_SetPerfFilterMaskCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_SetPerfFilterMaskCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_SetPerfFilterMaskCmd_t;

/**
Expand All @@ -1358,8 +1358,8 @@ typedef struct CFE_ES_SetPerfTrigMaskCmd_Payload
*/
typedef struct CFE_ES_SetPerfTriggerMaskCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_SetPerfTrigMaskCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_SetPerfTrigMaskCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_SetPerfTriggerMaskCmd_t;

/**
Expand All @@ -1380,8 +1380,8 @@ typedef struct CFE_ES_SendMemPoolStatsCmd_Payload
*/
typedef struct CFE_ES_SendMemPoolStatsCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_SendMemPoolStatsCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_SendMemPoolStatsCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_SendMemPoolStatsCmd_t;

/**
Expand All @@ -1401,8 +1401,8 @@ typedef struct CFE_ES_DumpCDSRegistryCmd_Payload
*/
typedef struct CFE_ES_DumpCDSRegistryCmd
{
CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command header */
CFE_ES_DumpCDSRegistryCmd_Payload_t Payload; /**< \brief Command payload */
CFE_MSG_CommandHeader_t CommandHeader; /**< \brief Command header */
CFE_ES_DumpCDSRegistryCmd_Payload_t Payload; /**< \brief Command payload */
} CFE_ES_DumpCDSRegistryCmd_t;

/*************************************************************************/
Expand All @@ -1425,8 +1425,8 @@ typedef struct CFE_ES_OneAppTlm_Payload

typedef struct CFE_ES_OneAppTlm
{
CFE_MSG_TelemetryHeader_t TlmHeader; /**< \brief Telemetry header */
CFE_ES_OneAppTlm_Payload_t Payload; /**< \brief Telemetry payload */
CFE_MSG_TelemetryHeader_t TelemetryHeader; /**< \brief Telemetry header */
CFE_ES_OneAppTlm_Payload_t Payload; /**< \brief Telemetry payload */
} CFE_ES_OneAppTlm_t;

/**
Expand All @@ -1441,8 +1441,8 @@ typedef struct CFE_ES_PoolStatsTlm_Payload

typedef struct CFE_ES_MemStatsTlm
{
CFE_MSG_TelemetryHeader_t TlmHeader; /**< \brief Telemetry header */
CFE_ES_PoolStatsTlm_Payload_t Payload; /**< \brief Telemetry payload */
CFE_MSG_TelemetryHeader_t TelemetryHeader; /**< \brief Telemetry header */
CFE_ES_PoolStatsTlm_Payload_t Payload; /**< \brief Telemetry payload */
} CFE_ES_MemStatsTlm_t;

/*************************************************************************/
Expand Down Expand Up @@ -1549,8 +1549,8 @@ typedef struct CFE_ES_HousekeepingTlm_Payload

typedef struct CFE_ES_HousekeepingTlm
{
CFE_MSG_TelemetryHeader_t TlmHeader; /**< \brief Telemetry header */
CFE_ES_HousekeepingTlm_Payload_t Payload; /**< \brief Telemetry payload */
CFE_MSG_TelemetryHeader_t TelemetryHeader; /**< \brief Telemetry header */
CFE_ES_HousekeepingTlm_Payload_t Payload; /**< \brief Telemetry payload */

} CFE_ES_HousekeepingTlm_t;

Expand Down
22 changes: 11 additions & 11 deletions modules/es/fsw/src/cfe_es_task.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,20 +393,20 @@ int32 CFE_ES_TaskInit(void)
/*
** Initialize housekeeping packet (clear user data area)
*/
CFE_MSG_Init((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.HkPacket, CFE_SB_ValueToMsgId(CFE_ES_HK_TLM_MID),
CFE_MSG_Init(CFE_MSG_PTR(&CFE_ES_Global.TaskData.HkPacket.TelemetryHeader), CFE_SB_ValueToMsgId(CFE_ES_HK_TLM_MID),
sizeof(CFE_ES_Global.TaskData.HkPacket));

/*
** Initialize single application telemetry packet
*/
CFE_MSG_Init((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.OneAppPacket, CFE_SB_ValueToMsgId(CFE_ES_APP_TLM_MID),
sizeof(CFE_ES_Global.TaskData.OneAppPacket));
CFE_MSG_Init(CFE_MSG_PTR(&CFE_ES_Global.TaskData.OneAppPacket.TelemetryHeader),
CFE_SB_ValueToMsgId(CFE_ES_APP_TLM_MID), sizeof(CFE_ES_Global.TaskData.OneAppPacket));

/*
** Initialize memory pool statistics telemetry packet
*/
CFE_MSG_Init((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.MemStatsPacket, CFE_SB_ValueToMsgId(CFE_ES_MEMSTATS_TLM_MID),
sizeof(CFE_ES_Global.TaskData.MemStatsPacket));
CFE_MSG_Init(CFE_MSG_PTR(&CFE_ES_Global.TaskData.MemStatsPacket.TelemetryHeader),
CFE_SB_ValueToMsgId(CFE_ES_MEMSTATS_TLM_MID), sizeof(CFE_ES_Global.TaskData.MemStatsPacket));

/*
** Create Software Bus message pipe
Expand Down Expand Up @@ -839,8 +839,8 @@ int32 CFE_ES_HousekeepingCmd(const CFE_MSG_CommandHeader_t *data)
/*
** Send housekeeping telemetry packet.
*/
CFE_SB_TimeStampMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.HkPacket);
CFE_SB_TransmitMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.HkPacket, true);
CFE_SB_TimeStampMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.HkPacket.TelemetryHeader));
CFE_SB_TransmitMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.HkPacket.TelemetryHeader), true);

/*
** This command does not affect the command execution counter.
Expand Down Expand Up @@ -1235,8 +1235,8 @@ int32 CFE_ES_QueryOneCmd(const CFE_ES_QueryOneCmd_t *data)
/*
** Send application status telemetry packet.
*/
CFE_SB_TimeStampMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.OneAppPacket);
Result = CFE_SB_TransmitMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.OneAppPacket, true);
CFE_SB_TimeStampMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.OneAppPacket.TelemetryHeader));
Result = CFE_SB_TransmitMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.OneAppPacket.TelemetryHeader), true);
if (Result == CFE_SUCCESS)
{
CFE_ES_Global.TaskData.CommandCounter++;
Expand Down Expand Up @@ -1974,8 +1974,8 @@ int32 CFE_ES_SendMemPoolStatsCmd(const CFE_ES_SendMemPoolStatsCmd_t *data)
/*
** Send memory statistics telemetry packet.
*/
CFE_SB_TimeStampMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.MemStatsPacket);
CFE_SB_TransmitMsg((CFE_MSG_Message_t*)&CFE_ES_Global.TaskData.MemStatsPacket, true);
CFE_SB_TimeStampMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.MemStatsPacket.TelemetryHeader));
CFE_SB_TransmitMsg(CFE_MSG_PTR(&CFE_ES_Global.TaskData.MemStatsPacket.TelemetryHeader), true);

CFE_ES_Global.TaskData.CommandCounter++;
CFE_EVS_SendEvent(CFE_ES_TLM_POOL_STATS_INFO_EID, CFE_EVS_EventType_DEBUG,
Expand Down
Loading

0 comments on commit 3dc63e0

Please sign in to comment.