Skip to content

Commit 0a8710d

Browse files
authored
Don't emit rhs of events if --emitEvents=true (#1093)
1 parent ad66bdf commit 0a8710d

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/OMSimulatorLib/Model.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,7 @@ oms_status_enu_t oms::Model::initialize()
968968
clock.reset();
969969
clock.tic();
970970

971-
lastEmit = startTime;
971+
lastEmit = startTime - 1.0;
972972

973973
if (!resultFilename.empty())
974974
{
@@ -1173,6 +1173,10 @@ oms_status_enu_t oms::Model::emit(double time, bool force, bool* emitted)
11731173
if (!force && time <= lastEmit)
11741174
return oms_status_ok;
11751175

1176+
// Skip rhs of events if --emitEvents=true
1177+
if (!Flags::EmitEvents() && lastEmit == time)
1178+
return oms_status_ok;
1179+
11761180
if (system)
11771181
if (oms_status_ok != system->updateSignals(*resultFile))
11781182
return oms_status_error;

src/OMSimulatorLib/SystemSC.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ oms_status_enu_t oms::SystemSC::doStep()
522522
logDebug("Event detected in FMU \"" + std::string(fmus[i]->getFullCref()) + "\" at time=" + std::to_string(time));
523523

524524
// emit the left limit of the event (if it hasn't already been emitted)
525-
if (Flags::EmitEvents() && isTopLevelSystem())
525+
if (isTopLevelSystem())
526526
getModel().emit(time, false);
527527

528528
fmistatus = fmi2_import_enter_event_mode(fmus[i]->getFMU());
@@ -555,7 +555,7 @@ oms_status_enu_t oms::SystemSC::doStep()
555555

556556
// emit the right limit of the event
557557
updateInputs(eventGraph);
558-
if (Flags::EmitEvents() && isTopLevelSystem())
558+
if (isTopLevelSystem())
559559
getModel().emit(time, true);
560560

561561
// restart event iteration from the beginning

0 commit comments

Comments
 (0)