File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ namespace {
5454 logger (std::move(logger)) {}
5555
5656 double lastSuccessfulTime{0 };
57+ bool wantsToTerminate{false };
5758
5859 std::unique_ptr<fmu4cpp::fmu_base> slave;
5960 std::unique_ptr<fmi2Logger> logger;
@@ -211,7 +212,7 @@ fmi2Status fmi2DoStep(
211212 component->lastSuccessfulTime = currentCommunicationPoint + communicationStepSize;
212213 return fmi2OK;
213214 }
214-
215+ component-> wantsToTerminate = true ;
215216 return fmi2Discard;
216217 } catch (const fmu4cpp::fatal_error &ex) {
217218 component->logger ->log (fmiFatal, ex.what ());
@@ -403,29 +404,36 @@ fmi2Status fmi2GetRealStatus(
403404 return fmi2OK;
404405 }
405406
406- return fmi2Error ;
407+ return fmi2Discard ;
407408}
408409
409410fmi2Status fmi2GetIntegerStatus (
410411 fmi2Component,
411412 const fmi2StatusKind,
412413 fmi2Integer *) {
413- return fmi2Error ;
414+ return fmi2Discard ;
414415}
415416
416417fmi2Status fmi2GetBooleanStatus (
417- fmi2Component,
418- const fmi2StatusKind,
419- fmi2Boolean *) {
420- return fmi2Error;
418+ fmi2Component c,
419+ const fmi2StatusKind s,
420+ fmi2Boolean *value) {
421+
422+ const auto component = static_cast <Fmi2Component *>(c);
423+ if (s == fmi2Terminated) {
424+ *value = component->wantsToTerminate ;
425+ return fmi2OK;
426+ }
427+
428+ return fmi2Discard;
421429}
422430
423431fmi2Status fmi2GetStringStatus (
424432 fmi2Component,
425433 const fmi2StatusKind,
426434 fmi2String *) {
427435
428- return fmi2Error ;
436+ return fmi2Discard ;
429437}
430438
431439
You can’t perform that action at this time.
0 commit comments