Synchronous modeling - how it works

Synchronous interfaces are very simple: they represent standalone functions, with (possibly) a set of input and (possibly) a set of output parameters. They are performing their work and generating their output without depending on any external functionality - that is, they don't call any other interfaces to do their work.

Assuming, for example that ...

The following happen during the VM's code generation stage ... The VM code generator is therefore able to create code that performs the appropriate calls (at runtime) to call subsystem B's PI1 provided interface. In fact, based on the work done from aadl2glueC, the VM only has to perform a simple function call, to an appropriately named bridge function for the PI. This call is easy to introduce in the VM code, since the invocation of any PI (and thus, our example PI1 from subsystem A) is ``routed'' via a VM callback function.

The VM therefore, in the context of this callback, can ...

This ``bridge'' function then (prepared from aadl2glueC) performs three tasks: Notice that during this process, there is no modeling-tool-specific ``agenda''. The exact same steps are taken for all synchronous modeling tools (SCADE, MATLAB/Simulink, etc): the data modeling layer generates the appropriate ``bridge'' functions, and the VM only needs to invoke them, nothing else.

The names of these ``bridge'' functions follow simple naming conventions, and can be broken down in two layers


Subsections