Changeset 3e9baabb in OpenModelica
- Timestamp:
- 2011-03-04T18:56:41+01:00 (13 years ago)
- Branches:
- Added-citation-metadata, maintenance/v1.14, maintenance/v1.15, maintenance/v1.16, maintenance/v1.17, maintenance/v1.18, maintenance/v1.19, maintenance/v1.20, maintenance/v1.21, maintenance/v1.22, maintenance/v1.23, master, omlib-staging
- Children:
- c0d0d6d3
- Parents:
- c4b7b4c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
CMakeLists.txt
re387022 r3e9baabb 36 36 #BUILDMODEL(Simple ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Test +d=bltdump) 37 37 #BUILDMODEL(WheelLoader_der_state ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Test +d=bltdump "") 38 BUILDMODELFMU(Test ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Test/FMU +d=bltdump "")38 #BUILDMODELFMU(Test ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Test/FMU +d=bltdump "") 39 39 #BUILDMODEL(Test1 ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Test/FMU +d=bltdump "") 40 BUILDMODELFMUMOS(WheelLoader D:/Programming/Models/Radlader/radlader-cnh/WheelLoader.mos +d=bltdump "") -
Compiler/susan_codegen/SimCode/SimCodeFMU.tpl
rdad6a1d r3e9baabb 337 337 #include "fmiModelFunctions.h" 338 338 #include "fmu_model_interface.h" 339 #include "<%fileNamePrefix%>_functions.h" 339 340 340 341 void setStartValues(ModelInstance *comp); … … 349 350 fmiString getString(ModelInstance* comp, const fmiValueReference vr); 350 351 fmiStatus setString(ModelInstance* comp, const fmiValueReference vr, const fmiString value); 351 352 fmiStatus setExternalFunction(ModelInstance* c, const fmiValueReference vr, const void* value); 353 352 354 <%ModelDefineData(modelInfo)%> 353 355 … … 366 368 <%getStringFunction(modelInfo)%> 367 369 <%setStringFunction(modelInfo)%> 368 370 <%setExternalFunction(modelInfo)%> 369 371 370 372 >> … … 388 390 #define NUMBER_OF_STRINGS <%numberOfStrings%> 389 391 #define NUMBER_OF_BOOLEANS <%numberOfBooleans%> 392 #define NUMBER_OF_EXTERNALFUNCTIONS 0 390 393 391 394 // define variable data for model … … 705 708 end setStringFunction; 706 709 710 template setExternalFunction(ModelInfo modelInfo) 711 "Generates setString function for c file." 712 ::= 713 match modelInfo 714 case MODELINFO(vars=SIMVARS(__)) then 715 << 716 fmiStatus setExternalFunction(ModelInstance* c, const fmiValueReference vr, const void* value){ 717 switch (vr) { 718 default: 719 return fmiError; 720 } 721 return fmiOK; 722 } 723 724 >> 725 end setExternalFunction; 726 707 727 template SwitchVars(SimVar simVar, String arrayName) 708 728 "Generates code for defining variables in c file for FMU target. " -
c_runtime/fmu_model_interface.c
rdad6a1d r3e9baabb 589 589 fmiStatus fmiSetExternalFunction(fmiComponent c, fmiValueReference vr[], size_t nvr, const void* value[]) 590 590 { 591 int i; 591 592 ModelInstance* comp = (ModelInstance *)c; 592 593 if (invalidState(comp, "fmiTerminate", modelInitialized)) 593 594 return fmiError; 595 if (nvr>0 && nullPointer(comp, "fmiSetReal", "vr[]", vr)) 596 return fmiError; 597 if (nvr>0 && nullPointer(comp, "fmiSetReal", "value[]", value)) 598 return fmiError; 594 599 if (comp->loggingOn) comp->functions.logger(c, comp->instanceName, fmiOK, "log", 595 600 "fmiSetExternalFunction"); 601 // no check wether setting the value is allowed in the current state 602 for (i=0; i<nvr; i++) { 603 if (vrOutOfRange(comp, "fmiSetExternalFunction", vr[i], NUMBER_OF_EXTERNALFUNCTIONS)) 604 return fmiError; 605 if (setExternalFunction(comp, vr[i],value[i]) != fmiOK) // to be implemented by the includer of this file 606 return fmiError; 607 } 596 608 return fmiOK; 597 609 };
Note: See TracChangeset
for help on using the changeset viewer.