@@ -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