Skip to content

Commit

Permalink
Fix #119, consistent ID reports in events and logs
Browse files Browse the repository at this point in the history
Use the same format specifiers and conversion methods when indicating
ATS/RTS IDs and indices in logs.  RTS identified by number, ATS
identified by letter (A/B).
  • Loading branch information
jphickey committed Dec 7, 2023
1 parent ddeab42 commit d50ae60
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 108 deletions.
49 changes: 19 additions & 30 deletions fsw/src/sc_atsrq.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ void SC_StartAtsCmd(const SC_StartAtsCmd_t *Cmd)
SC_OperData.HkPacket.Payload.CmdCtr++;

CFE_EVS_SendEvent(SC_STARTATS_CMD_INF_EID, CFE_EVS_EventType_INFORMATION,
"ATS %c Execution Started", (AtsIndex ? 'B' : 'A'));
"ATS %c Execution Started", SC_IDX_AS_CHAR(AtsIndex));
}
else
{ /* could not start the ats, all commands were skipped */
Expand All @@ -93,7 +93,7 @@ void SC_StartAtsCmd(const SC_StartAtsCmd_t *Cmd)
{ /* the ats didn't have any commands in it */

CFE_EVS_SendEvent(SC_STARTATS_CMD_NOT_LDED_ERR_EID, CFE_EVS_EventType_ERROR,
"Start ATS Rejected: ATS %c Not Loaded", (AtsIndex ? 'B' : 'A'));
"Start ATS Rejected: ATS %c Not Loaded", SC_IDX_AS_CHAR(AtsIndex));

/* increment the command request error counter */
SC_OperData.HkPacket.Payload.CmdErrCtr++;
Expand Down Expand Up @@ -129,8 +129,7 @@ void SC_StartAtsCmd(const SC_StartAtsCmd_t *Cmd)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void SC_StopAtsCmd(const SC_StopAtsCmd_t *Cmd)
{
char TempAtsChar = ' ';
int32 Result = SC_ERROR;
int32 Result = SC_ERROR;

/*
** Check if the ATS ID is valid
Expand All @@ -140,21 +139,10 @@ void SC_StopAtsCmd(const SC_StopAtsCmd_t *Cmd)
Result = CFE_SUCCESS;
}

if (SC_OperData.AtsCtrlBlckAddr->CurrAtsNum == SC_AtsId_ATSA)
{
TempAtsChar = 'A';
}
else
{
if (SC_OperData.AtsCtrlBlckAddr->CurrAtsNum == SC_AtsId_ATSB)
{
TempAtsChar = 'B';
}
}

if (Result == CFE_SUCCESS)
{
CFE_EVS_SendEvent(SC_STOPATS_CMD_INF_EID, CFE_EVS_EventType_INFORMATION, "ATS %c stopped", TempAtsChar);
CFE_EVS_SendEvent(SC_STOPATS_CMD_INF_EID, CFE_EVS_EventType_INFORMATION, "ATS %c stopped",
SC_IDX_AS_CHAR(SC_AtsNumToIndex(SC_OperData.AtsCtrlBlckAddr->CurrAtsNum)));
}
else
{
Expand Down Expand Up @@ -192,7 +180,7 @@ bool SC_BeginAts(SC_AtsIndex_t AtsIndex, uint16 TimeOffset)
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_BEGINATS_INVLD_INDEX_ERR_EID, CFE_EVS_EventType_ERROR,
"Begin ATS error: invalid ATS index %d", AtsIndex);
"Begin ATS error: invalid ATS index %u", SC_IDX_AS_UINT(AtsIndex));
return false;
}

Expand Down Expand Up @@ -407,8 +395,8 @@ void SC_ServiceSwitchPend(void)
SC_OperData.AtsCtrlBlckAddr->AtpState = SC_Status_EXECUTING;

CFE_EVS_SendEvent(SC_ATS_SERVICE_SWTCH_INF_EID, CFE_EVS_EventType_INFORMATION,
"ATS Switched from %c to %c", (OldAtsIndex ? 'B' : 'A'),
(NewAtsIndex ? 'B' : 'A'));
"ATS Switched from %c to %c", SC_IDX_AS_CHAR(OldAtsIndex),
SC_IDX_AS_CHAR(NewAtsIndex));

} /* end if */
}
Expand Down Expand Up @@ -470,7 +458,7 @@ bool SC_InlineSwitch(void)
SC_OperData.AtsCtrlBlckAddr->AtpState = SC_Status_STARTING;

CFE_EVS_SendEvent(SC_ATS_INLINE_SWTCH_INF_EID, CFE_EVS_EventType_INFORMATION, "ATS Switched from %c to %c",
(OldAtsIndex ? 'B' : 'A'), (NewAtsIndex ? 'B' : 'A'));
SC_IDX_AS_CHAR(OldAtsIndex), SC_IDX_AS_CHAR(NewAtsIndex));

/*
** Update the command counter and return code
Expand Down Expand Up @@ -583,7 +571,7 @@ void SC_JumpAtsCmd(const SC_JumpAtsCmd_t *Cmd)
{
/* jump time is less than or equal to this list entry */
CFE_EVS_SendEvent(SC_JUMPATS_CMD_LIST_INF_EID, CFE_EVS_EventType_INFORMATION,
"Jump Cmd: Jump time less than or equal to list entry %d", CmdIndex);
"Jump Cmd: Jump time less than or equal to list entry %u", SC_IDX_AS_UINT(CmdIndex));
break;
}
}
Expand Down Expand Up @@ -660,16 +648,16 @@ void SC_ContinueAtsOnFailureCmd(const SC_ContinueAtsOnFailureCmd_t *Cmd)
SC_OperData.HkPacket.Payload.CmdErrCtr++;

CFE_EVS_SendEvent(SC_CONT_CMD_ERR_EID, CFE_EVS_EventType_ERROR,
"Continue ATS On Failure command failed, invalid state: %d", State);
"Continue ATS On Failure command failed, invalid state: %lu", (unsigned long)State);
}
else
{
SC_OperData.HkPacket.Payload.ContinueAtsOnFailureFlag = State;

SC_OperData.HkPacket.Payload.CmdCtr++;

CFE_EVS_SendEvent(SC_CONT_CMD_DEB_EID, CFE_EVS_EventType_DEBUG, "Continue-ATS-On-Failure command, State: %d",
State);
CFE_EVS_SendEvent(SC_CONT_CMD_DEB_EID, CFE_EVS_EventType_DEBUG, "Continue-ATS-On-Failure command, State: %lu",
(unsigned long)State);
}
}

Expand Down Expand Up @@ -704,24 +692,25 @@ void SC_AppendAtsCmd(const SC_AppendAtsCmd_t *Cmd)
SC_OperData.HkPacket.Payload.CmdErrCtr++;

CFE_EVS_SendEvent(SC_APPEND_CMD_TGT_ERR_EID, CFE_EVS_EventType_ERROR, "Append ATS %c error: ATS table is empty",
'A' + AtsIndex);
SC_IDX_AS_CHAR(AtsIndex));
}
else if (SC_OperData.HkPacket.Payload.AppendEntryCount == 0)
{
/* append table is empty */
SC_OperData.HkPacket.Payload.CmdErrCtr++;

CFE_EVS_SendEvent(SC_APPEND_CMD_SRC_ERR_EID, CFE_EVS_EventType_ERROR,
"Append ATS %c error: Append table is empty", 'A' + AtsIndex);
"Append ATS %c error: Append table is empty", SC_IDX_AS_CHAR(AtsIndex));
}
else if ((AtsInfoPtr->AtsSize + SC_AppData.AppendWordCount) > SC_ATS_BUFF_SIZE32)
{
/* not enough room in ATS buffer for Append table data */
SC_OperData.HkPacket.Payload.CmdErrCtr++;

CFE_EVS_SendEvent(SC_APPEND_CMD_FIT_ERR_EID, CFE_EVS_EventType_ERROR,
"Append ATS %c error: ATS size = %d, Append size = %d, ATS buffer = %d", 'A' + AtsIndex,
(int)AtsInfoPtr->AtsSize, SC_AppData.AppendWordCount, SC_ATS_BUFF_SIZE32);
"Append ATS %c error: ATS size = %d, Append size = %d, ATS buffer = %d",
SC_IDX_AS_CHAR(AtsIndex), (int)AtsInfoPtr->AtsSize, SC_AppData.AppendWordCount,
SC_ATS_BUFF_SIZE32);
}
else
{
Expand All @@ -735,7 +724,7 @@ void SC_AppendAtsCmd(const SC_AppendAtsCmd_t *Cmd)
SC_OperData.HkPacket.Payload.CmdCtr++;

CFE_EVS_SendEvent(SC_APPEND_CMD_INF_EID, CFE_EVS_EventType_INFORMATION,
"Append ATS %c command: %d ATS entries appended", 'A' + AtsIndex,
"Append ATS %c command: %d ATS entries appended", SC_IDX_AS_CHAR(AtsIndex),
SC_OperData.HkPacket.Payload.AppendEntryCount);
}
}
31 changes: 12 additions & 19 deletions fsw/src/sc_cmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,8 @@ void SC_ProcessAtpCmd(void)
SC_OperData.HkPacket.Payload.LastAtsErrCmd = SC_OperData.AtsCtrlBlckAddr->CmdNumber;

CFE_EVS_SendEvent(SC_ATS_DIST_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS Command Distribution Failed, Cmd Number: %d, SB returned: 0x%08X",
EntryPtr->Header.CmdNumber, (unsigned int)Result);
"ATS Command Distribution Failed, Cmd Number: %u, SB returned: 0x%08X",
SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber), (unsigned int)Result);

/* Mark this ATS for abortion */
AbortATS = true;
Expand All @@ -188,7 +188,8 @@ void SC_ProcessAtpCmd(void)
** Send an event message to report the invalid command status
*/
CFE_EVS_SendEvent(SC_ATS_CHKSUM_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS Command Failed Checksum: Command #%d Skipped", EntryPtr->Header.CmdNumber);
"ATS Command Failed Checksum: Command #%u Skipped",
SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber));
/*
** Increment the ATS error counter
*/
Expand Down Expand Up @@ -217,8 +218,9 @@ void SC_ProcessAtpCmd(void)
*/

CFE_EVS_SendEvent(SC_ATS_MSMTCH_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS Command Number Mismatch: Command Skipped, expected: %d received: %d",
(int)SC_CommandIndexToNum(CmdIndex), EntryPtr->Header.CmdNumber);
"ATS Command Number Mismatch: Command Skipped, expected: %u received: %u",
SC_IDNUM_AS_UINT(SC_CommandIndexToNum(CmdIndex)),
SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber));
/*
** Increment the ATS error counter
*/
Expand Down Expand Up @@ -263,16 +265,7 @@ void SC_ProcessAtpCmd(void)

if (AbortATS == true)
{
if (SC_OperData.AtsCtrlBlckAddr->CurrAtsNum == SC_AtsId_ATSA)
{
TempAtsChar = 'A';
}
else
{
TempAtsChar = 'B';
}

CFE_EVS_SendEvent(SC_ATS_ABT_ERR_EID, CFE_EVS_EventType_ERROR, "ATS %c Aborted", TempAtsChar);
CFE_EVS_SendEvent(SC_ATS_ABT_ERR_EID, CFE_EVS_EventType_ERROR, "ATS %c Aborted", SC_IDX_AS_CHAR(AtsIndex));

/* Stop the ATS from executing */
SC_KillAts();
Expand Down Expand Up @@ -371,8 +364,8 @@ void SC_ProcessRtpCommand(void)
** Send an event message to report the invalid command status
*/
CFE_EVS_SendEvent(SC_RTS_DIST_ERR_EID, CFE_EVS_EventType_ERROR,
"RTS %03d Command Distribution Failed: RTS Stopped. SB returned 0x%08X",
(int)SC_OperData.RtsCtrlBlckAddr->CurrRtsNum, (unsigned int)Result);
"RTS %03u Command Distribution Failed: RTS Stopped. SB returned 0x%08X",
SC_IDNUM_AS_UINT(SC_OperData.RtsCtrlBlckAddr->CurrRtsNum), (unsigned int)Result);

SC_OperData.HkPacket.Payload.RtsCmdErrCtr++;
RtsInfoPtr->CmdErrCtr++;
Expand All @@ -393,8 +386,8 @@ void SC_ProcessRtpCommand(void)
** Send an event message to report the invalid command status
*/
CFE_EVS_SendEvent(SC_RTS_CHKSUM_ERR_EID, CFE_EVS_EventType_ERROR,
"RTS %03d Command Failed Checksum: RTS Stopped",
(int)SC_OperData.RtsCtrlBlckAddr->CurrRtsNum);
"RTS %03u Command Failed Checksum: RTS Stopped",
SC_IDNUM_AS_UINT(SC_OperData.RtsCtrlBlckAddr->CurrRtsNum));
/*
** Update the RTS command error counter and last RTS error info
*/
Expand Down
30 changes: 15 additions & 15 deletions fsw/src/sc_loads.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ void SC_LoadAts(SC_AtsIndex_t AtsIndex)
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_LOADATS_INV_INDEX_ERR_EID, CFE_EVS_EventType_ERROR, "ATS load error: invalid ATS index %d",
AtsIndex);
SC_IDX_AS_UINT(AtsIndex));
return;
}

Expand Down Expand Up @@ -189,7 +189,7 @@ void SC_LoadAts(SC_AtsIndex_t AtsIndex)
if ((Result == CFE_SUCCESS) && (AtsInfoPtr->NumberOfCommands > 0))
{
/* record the size of the load in the ATS info table */
AtsInfoPtr->AtsSize = AtsEntryIndex; /* size in 32-bit WORDS */
AtsInfoPtr->AtsSize = SC_IDX_AS_UINT(AtsEntryIndex); /* size in 32-bit WORDS */

/* build the time index table */
SC_BuildTimeIndexTable(AtsIndex);
Expand All @@ -216,7 +216,7 @@ void SC_BuildTimeIndexTable(SC_AtsIndex_t AtsIndex)
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_BUILD_TIME_IDXTBL_ERR_EID, CFE_EVS_EventType_ERROR,
"Build time index table error: invalid ATS index %d", AtsIndex);
"Build time index table error: invalid ATS index %u", SC_IDX_AS_UINT(AtsIndex));
return;
}

Expand Down Expand Up @@ -259,7 +259,7 @@ void SC_Insert(SC_AtsIndex_t AtsIndex, SC_CommandIndex_t NewCmdIndex, uint32 Lis
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_INSERTATS_INV_INDEX_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS insert error: invalid ATS index %d", AtsIndex);
"ATS insert error: invalid ATS index %u", SC_IDX_AS_UINT(AtsIndex));
return;
}

Expand Down Expand Up @@ -340,7 +340,7 @@ void SC_InitAtsTables(SC_AtsIndex_t AtsIndex)
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_INIT_ATSTBL_INV_INDEX_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS table init error: invalid ATS index %d", AtsIndex);
"ATS table init error: invalid ATS index %u", SC_IDX_AS_UINT(AtsIndex));
return;
}

Expand Down Expand Up @@ -390,7 +390,7 @@ void SC_LoadRts(SC_RtsIndex_t RtsIndex)
else
{
CFE_EVS_SendEvent(SC_LOADRTS_INV_INDEX_ERR_EID, CFE_EVS_EventType_ERROR,
"RTS table init error: invalid RTS index %d", RtsIndex);
"RTS table init error: invalid RTS index %u", SC_IDX_AS_UINT(RtsIndex));
return;
}
} /* SC_LoadRts */
Expand Down Expand Up @@ -648,7 +648,7 @@ void SC_ProcessAppend(SC_AtsIndex_t AtsIndex)
if (!SC_AtsIndexIsValid(AtsIndex))
{
CFE_EVS_SendEvent(SC_PROCESS_APPEND_INV_INDEX_ERR_EID, CFE_EVS_EventType_ERROR,
"ATS process append error: invalid ATS index %d", AtsIndex);
"ATS process append error: invalid ATS index %u", SC_IDX_AS_UINT(AtsIndex));
return;
}

Expand Down Expand Up @@ -823,17 +823,17 @@ int32 SC_VerifyAtsEntry(uint32 *Buffer32, int32 EntryIndex, int32 BufferWords)
Result = SC_ERROR;

CFE_EVS_SendEvent(SC_VERIFY_ATS_NUM_ERR_EID, CFE_EVS_EventType_ERROR,
"Verify ATS Table error: invalid command number: buf index = %d, cmd num = %d",
(int)EntryIndex, EntryPtr->Header.CmdNumber);
"Verify ATS Table error: invalid command number: buf index = %d, cmd num = %u",
(int)EntryIndex, SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber));
}
else if ((EntryIndex + SC_ATS_HDR_WORDS) > BufferWords)
{
/* Error -- not enough room for smallest possible ATS entry */
Result = SC_ERROR;

CFE_EVS_SendEvent(SC_VERIFY_ATS_END_ERR_EID, CFE_EVS_EventType_ERROR,
"Verify ATS Table error: buffer full: buf index = %d, cmd num = %d, buf words = %d",
(int)EntryIndex, EntryPtr->Header.CmdNumber, (int)BufferWords);
"Verify ATS Table error: buffer full: buf index = %d, cmd num = %u, buf words = %d",
(int)EntryIndex, SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber), (int)BufferWords);
}
else
{
Expand All @@ -849,17 +849,17 @@ int32 SC_VerifyAtsEntry(uint32 *Buffer32, int32 EntryIndex, int32 BufferWords)
Result = SC_ERROR;

CFE_EVS_SendEvent(SC_VERIFY_ATS_PKT_ERR_EID, CFE_EVS_EventType_ERROR,
"Verify ATS Table error: invalid length: buf index = %d, cmd num = %d, pkt len = %d",
(int)EntryIndex, EntryPtr->Header.CmdNumber, (int)CommandBytes);
"Verify ATS Table error: invalid length: buf index = %d, cmd num = %u, pkt len = %d",
(int)EntryIndex, SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber), (int)CommandBytes);
}
else if ((EntryIndex + SC_ATS_HDR_NOPKT_WORDS + CommandWords) > BufferWords)
{
/* Error -- packet must fit within buffer */
Result = SC_ERROR;

CFE_EVS_SendEvent(SC_VERIFY_ATS_BUF_ERR_EID, CFE_EVS_EventType_ERROR,
"Verify ATS Table error: buffer overflow: buf index = %d, cmd num = %d, pkt len = %d",
(int)EntryIndex, EntryPtr->Header.CmdNumber, (int)CommandBytes);
"Verify ATS Table error: buffer overflow: buf index = %d, cmd num = %u, pkt len = %d",
(int)EntryIndex, SC_IDNUM_AS_UINT(EntryPtr->Header.CmdNumber), (int)CommandBytes);
}
else if (SC_OperData.AtsDupTestArray[SC_CommandNumToIndex(EntryPtr->Header.CmdNumber)] != SC_DUP_TEST_UNUSED)
{
Expand Down
Loading

0 comments on commit d50ae60

Please sign in to comment.