Bug 439 - allow open system model for external test generators like Simulink
Summary: allow open system model for external test generators like Simulink
Status: ASSIGNED
Alias: None
Product: UPPAAL TRON
Classification: Unclassified
Component: any (show other bugs)
Version: unspecified
Hardware: PC All
: P2 enhancement
Assignee: Marius Mikučionis
URL:
Depends on:
Blocks:
 
Reported: 2008-04-25 13:44 CEST by Marius Mikučionis
Modified: 2008-05-07 09:30 CEST (History)
0 users

See Also:
Architecture:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marius Mikučionis 2008-04-25 13:44:17 CEST
A number of people complain that it is too cumbersome and inefficient to model some environments, especially when dynamical test data needs to be fed as input.
Currently all possible values, one way or the other, need to be reflected in the environment model. This is due to closed system model in TRON.

The solution is to open the system model and allow some channels (with data variables) to synchronize with external processes rather than just internal model.

This would require:
1) to enable "external" channel declaration (via adapter or additional API), at least external output channels can be implemented by multiplexing adapter.
2) adjusting the UPPAAL engine to implement "external channel synchronization" i.e. without internal synchronization pairing (this would break UPPAAL semantics).
3) the data arriving from external channels should overwrite the values in current state estimate (breaks UPPAAL semantics).
4) optionally provide additional API for test input data from external generator. This would require the following transaction model:
   1. TRON decides to send an input on external input
   2. TRON asks external test generator to fill the input data values
   3. External test generator fills the data and returns to TRON
   4. TRON attempts to deliver input:
   5. if there are no outputs unprocessed in the output queue, then input delivery succeeds, notify the generator that data has been sent.
   6. if there is an output in output queue, then discard the input (and notify generator that input has been discarded).
5) optionally notify external test generator about the outputs (can be done by multiplexing input/output events at current adapter level).