示例#1
0
FMU2Wrapper::FMU2Wrapper(fmi2String instanceName, fmi2String GUID,
                         const fmi2CallbackFunctions *functions,
                         fmi2Boolean loggingOn) :
  _globalSettings(),
  _functions(*functions),
  callbackLogger(_functions.logger)
{
  _instanceName = instanceName;
  _GUID = GUID;

  // setup logger
  _logger = NULL;
  _logCategories = 0x0000;
  if (loggingOn) {
    // only instantiate logger if requested as it is not thread save
    setDebugLogging(loggingOn, 0, NULL);
  }

  // setup model
  _model = createSystemFMU(&_globalSettings);
  _model->initializeMemory();
  _model->initializeFreeVariables();
  _needUpdate = true;
  _stringBuffer.resize(_model->getDimString());
  _clockTick = new bool[_model->getDimClock()];
  _clockSubactive = new bool[_model->getDimClock()];
  std::fill(_clockTick, _clockTick + _model->getDimClock(), false);
  std::fill(_clockSubactive, _clockSubactive + _model->getDimClock(), false);
  _nclockTick = 0;
}
示例#2
0
FMU2Wrapper::FMU2Wrapper(fmi2String instanceName, fmi2String GUID,
                         const fmi2CallbackFunctions *functions,
                         fmi2Boolean loggingOn) :
  _global_settings(), _functions(*functions), logger(_functions.logger),
  componentEnvironment(_functions.componentEnvironment),
  instanceName(_instanceName), logCategories(_logCategories)
{
  _instanceName = instanceName;
  _GUID = GUID;
  _logCategories = loggingOn? 0xFFFF: 0x0000;
  _model = createSystemFMU(&_global_settings);
  _model->initialize();
  _string_buffer.resize(_model->getDimString());
  _clock_buffer = new bool[_model->getDimClock()];
  std::fill(_clock_buffer, _clock_buffer + _model->getDimClock(), false);
  _nclock_active = 0;
}