Skip to content

Commit 032a19e

Browse files
committed
Merge pull request #2667 from jphickey:fix-2523-evs-counter
Fix #2523, add mutex around EVS counter increment
2 parents c4e0853 + b0f3848 commit 032a19e

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

modules/evs/fsw/src/cfe_evs_utils.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,7 @@ void EVS_GenerateEventTelemetry(EVS_AppData_t *AppDataPtr, uint16 EventID, CFE_E
455455
CFE_EVS_LongEventTlm_t LongEventTlm; /* The "long" flavor is always generated, as this is what is logged */
456456
CFE_EVS_ShortEventTlm_t ShortEventTlm; /* The "short" flavor is only generated if selected */
457457
int ExpandedLength;
458+
bool IsTruncated;
458459

459460
memset(&LongEventTlm, 0, sizeof(LongEventTlm));
460461
memset(&ShortEventTlm, 0, sizeof(ShortEventTlm));
@@ -478,7 +479,11 @@ void EVS_GenerateEventTelemetry(EVS_AppData_t *AppDataPtr, uint16 EventID, CFE_E
478479
{
479480
/* Mark character before zero terminator to indicate truncation */
480481
LongEventTlm.Payload.Message[sizeof(LongEventTlm.Payload.Message) - 2] = CFE_EVS_MSG_TRUNCATED;
481-
CFE_EVS_Global.EVS_TlmPkt.Payload.MessageTruncCounter++;
482+
IsTruncated = true;
483+
}
484+
else
485+
{
486+
IsTruncated = false;
482487
}
483488

484489
/* Obtain task and system information */
@@ -516,6 +521,9 @@ void EVS_GenerateEventTelemetry(EVS_AppData_t *AppDataPtr, uint16 EventID, CFE_E
516521
CFE_SB_TransmitMsg(CFE_MSG_PTR(ShortEventTlm.TelemetryHeader), true);
517522
}
518523

524+
/* Serialize access to event log control variables */
525+
OS_MutSemTake(CFE_EVS_Global.EVS_SharedDataMutexID);
526+
519527
/* Increment message send counters (prevent rollover) */
520528
if (CFE_EVS_Global.EVS_TlmPkt.Payload.MessageSendCounter < CFE_EVS_MAX_EVENT_SEND_COUNT)
521529
{
@@ -526,6 +534,13 @@ void EVS_GenerateEventTelemetry(EVS_AppData_t *AppDataPtr, uint16 EventID, CFE_E
526534
{
527535
AppDataPtr->EventCount++;
528536
}
537+
538+
if (IsTruncated)
539+
{
540+
CFE_EVS_Global.EVS_TlmPkt.Payload.MessageTruncCounter++;
541+
}
542+
543+
OS_MutSemGive(CFE_EVS_Global.EVS_SharedDataMutexID);
529544
}
530545

531546
/*----------------------------------------------------------------

0 commit comments

Comments
 (0)