Giter VIP home page Giter VIP logo

fmiterminalblock's People

Contributors

spiegel0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

manasdas17

fmiterminalblock's Issues

Missing DLL on using Sundials Integrators

All FMITerminalBlock binaries (main program and tests) fail to execute as soon as FMI++ Sundials support is enabled. The sundials library is not found. (Windows 7, MSVC 14)

Add a facility which evaluates the timing of a simulation run

Information should be provided on whether a events were issued late and how much delay occurred. The following timing performance indicators should be implemented to evaluate the real-time performance of a simulation run:

  • Minimum delay
  • Maximum delay
  • Mean delay
  • Standard deviation or variance of delays
  • Minimum, Maximum, mean delay and delay variance on removing outliers (Remove the highest and lowest n samples)
  • Histogram of delay values
  • Delay values over time
  • Average/Min/Max/... prediction time
  • Average/Min/Max/... network distribution time

To calculate the delay value of each event, multiple points in time may be used for reference. E.g.. a delay may be calculated by comparing the nominal time with the time, the network distribution starts or the time the network distribution ends. The following delays may be considered:

  • Delay until the prediction of the event has been completed
  • Delay until the external event is registered
  • Delay until the network distribution of the events starts
  • Delay until the network distribution of an event ends

Build fails on Debian Jessie

On linking FMITerminalBlock, lots of error messages related to pthread are produced and build fails. E.g.:

[ 13%] Linking CXX executable FMITerminalBlock
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::get_current_thread_data()':
thread.cpp:(.text+0xfd): undefined reference to `pthread_key_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::set_current_thread_data(boost::detail::thread_data_base*)':
thread.cpp:(.text+0x13d): undefined reference to `pthread_key_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::start_thread_noexcept()':
thread.cpp:(.text+0x1d0): undefined reference to `pthread_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::start_thread_noexcept(boost::thread_attributes const&)':
thread.cpp:(.text+0x28d): undefined reference to `pthread_create'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::detach()':
thread.cpp:(.text+0xaad): undefined reference to `pthread_detach'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::join_noexcept()':
thread.cpp:(.text+0x18aa): undefined reference to `pthread_join'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::thread::do_try_join_until_noexcept(timespec const&, bool&)':
thread.cpp:(.text+0x1a3d): undefined reference to `pthread_join'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::get_current_thread_data()':
thread.cpp:(.text+0x116): undefined reference to `pthread_getspecific'
/home/.../boost/boost_1_61_0/lib/libboost_thread.a(thread.o): In function `boost::detail::set_current_thread_data(boost::detail::thread_data_base*)':
thread.cpp:(.text+0x156): undefined reference to `pthread_setspecific'
/home/.../boost/boost_1_61_0/lib/libboost_log.a(attribute_name.o): In function `boost::log::v2s_mt_posix::attribute_name::get_string_from_id(unsigned int)':
attribute_name.cpp:(.text+0x61): undefined reference to `pthread_rwlock_rdlock'
attribute_name.cpp:(.text+0x9b): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0x7f8): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x8a8): undefined reference to `pthread_rwlock_destroy'
/home/.../boost/boost_1_61_0/lib/libboost_log.a(attribute_name.o): In function `boost::log::v2s_mt_posix::attribute_name::get_id_from_string(char const*)':
attribute_name.cpp:(.text+0xb3c): undefined reference to `pthread_rwlock_rdlock'
attribute_name.cpp:(.text+0xbaa): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0xcb2): undefined reference to `pthread_rwlock_unlock'
attribute_name.cpp:(.text+0xcba): undefined reference to `pthread_rwlock_wrlock'
attribute_name.cpp:(.text+0x186c): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x1956): undefined reference to `pthread_rwlock_destroy'
attribute_name.cpp:(.text+0x1c5d): undefined reference to `pthread_rwlock_unlock'

Used software:

  • CMake 3.9.4
  • Boost 1.61.0
  • GCC 4.9.2

Introduce the ability to configure shared network connections

Add configuration options and necessary configuration classes to represent a shared connection. Each connection may be shared between multiple channels/publisher/subscriber. It should also be possible to implicitly generate a connection configuration by appending the connection configuration to a particular channel.

Implement shared network connections

Several channels should be able to share a common generic network connection. Therefore, connection objects have to be created separately and have to be passed on on to each publisher or subscriber. Available subscribers need to be refactored in order to support shared connections.

Provide a detailed delay and timing analysis

Add a process description/notebook which provides some facilities to evaluate the source and structure of various delay components. Several Axis which separate predicted and external events should be provided. Additionally, the prediction and distribution delays should be calculated.

Assertion failed on Debian systems

On executing the test cases on Debian Jessie, EventHandling and NetworkManager fail by showing the following error message repeatedly.

testNetworkManager: /home/.../boost/boost_1_61_0/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' failed.

Program versions:

  • boost 1.61.0
  • GCC 4.9.2

Simulation time starts before the simulation is entirely loaded and initialized

For some FMUs, instantiation and initialization takes a considerable amount of time. Nevertheless, simulation time starts before the FMU is loaded. Hence the whole simulation starts with a delay. The figure shows the delay over simulation time which is steadily decreased.
grafik

Start the simulation time just after the FMU has been initialized.

Add integrator configuration support

Currently, only the FMI++ standard integrators are available. The user should be able to configure simulation parameters such as the integrator type and tolerance information dynamically.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.