DUECA/DUSIME
|
A base class from which users can derive DUSIME modules. More...
#include <SimulationModule.hxx>
Protected Member Functions | |
SimulationModule (Entity *e, const char *m_class, const char *part, const IncoTable *table=NULL, int state_size=0) | |
Constructor. | |
virtual | ~SimulationModule () |
Destructor. | |
SimulationState::Type | getAndCheckState (const TimeSpec &ts, bool confirm_transition=true) |
Returns the state of the simulation at this time. | |
void | transitionComplete () |
If a transition was not (implicitly) confirmed in the getAndCheckState call (second argument false), confirm with this call that it is now complete. | |
SimulationState::Type | getCurrentState () |
If you "forgot" what the state from a previous getAndCheckState() call was, you can remember it here. | |
![]() | |
DusimeModule (Entity *e, const char *m_class, const char *part, const IncoTable *inco_table, int state_size) | |
Constructor. | |
virtual | ~DusimeModule () |
Destructor. | |
bool | snapshotNow () |
Returns true if a snapshot has to be taken in this cycle. | |
virtual void | fillSnapshot (const TimeSpec &ts, Snapshot &snap, bool from_trim) |
If snapshots are generated, this has to be implemented by a descendant. | |
virtual void | loadSnapshot (const TimeSpec &ts, const Snapshot &snap) |
For restoring the state from an old snapshot. | |
void | trimCalculationCondition (TriggerPuller &cond) |
This can be used to specify the condition under which the trim calculation may take place, for example, data has to be received on trim calculation input channels. | |
virtual void | trimCalculation (const TimeSpec &ts, const TrimMode &mode) |
This must be overridden if the module takes part in trim condition calculations. | |
![]() | |
Module (const Entity *e, const char *m_class, const char *part) | |
Constructor. | |
virtual void | setSafetyStop () |
Put a brake on this module's activities. | |
![]() | |
NamedObject (const GlobalId &id) | |
Reserve for AssociateObject. | |
NamedObject (const NameSet &ns) | |
Normal constructor, protected, because it has no use to create a NamedObject by itself. | |
virtual | ~NamedObject () |
Destructor. | |
Additional Inherited Members | |
![]() | |
virtual | ~Module () |
Destructor. | |
virtual bool | complete () |
Inform the module that all parameters have now been passed. | |
virtual bool | isPrepared ()=0 |
To check whether the module is ready for work. | |
virtual bool | isInitialPrepared () |
To check whether the module is prepared to be prepared. | |
ObjectType | getObjectType () const |
The object type within DUECA. | |
virtual void | startModule (const TimeSpec &time)=0 |
Start the module's activity (activities) | |
virtual void | stopModule (const TimeSpec &time)=0 |
Stop the module's activity (activities) | |
virtual void | initialStartModule (const TimeSpec &time) |
Initial start opportunity. | |
virtual void | finalStopModule (const TimeSpec &time) |
Final stop command. | |
const Entity * | getMyEntity () |
Return a pointer to the entity to which this module belongs. | |
const ModuleState & | getState () |
Return the module state. | |
![]() | |
const std::string | getEntity () const |
Returns the "entity" part of the name. | |
const std::string | getClass () const |
Returns the "class" part of the name. | |
const std::string | getPart () const |
Returns the sub-entity or "part" part of the name. | |
const NameSet & | getNameSet () const |
This returns the complete name set. | |
const GlobalId & | getId () const |
This returns the id. | |
![]() | |
SnapshotState | snap_state |
State of the snapshot taking. | |
![]() | |
ModuleState | state |
Flag to remember whether we are stopped due to some error with hardware device manipulation. | |
A base class from which users can derive DUSIME modules.
The SimulationModule base class implements the basic communication for a DUSIME module. By deriving from this class, using its methods to dermine the simulation state, and re-implementing applicable virtual methods, a fully DUSIME-aware class can be made, and objects of this class have coordinated start-stop abilities, the ability to calculate initial conditions and the ability for saving and restoring simulation state.
|
protected |
Constructor.
e | Pointer to my entity |
m_class | String with name of the module class |
part | String with part name |
table | Pointer to the table with initial condition calculation definitions. If this class does not take part in calculation of initial conditions this pointer may be NULL. |
state_size | Size of the state, as sent in a snapshot. |
|
protected |
Returns the state of the simulation at this time.
To be used by the child, every time a model update is calculated, for determining desired action. Note that this call MUST be used by the derived class, otherwise the state of the SimulationModule does not change, and with that the DUSIME state machine gets stuck.
This call has a side effect; it checks for commanded state changes, and implements/confirms those when their time maches the passed TimeSpec.
ts | Current time specification. |
confirm_transition | If true, immediately confirm a transition to a new state. |
|
protected |
If you "forgot" what the state from a previous getAndCheckState() call was, you can remember it here.