Library globals

Namespace globals . emexec

View source

---------------------------------------------------------------------------

Title                : Emesary based 'real time' module executive

File Type            : Implementation File

Description          : Uses Emesary notifications to permit Nasal subsystems to be invoked in
: a controlled manner.
: 
: Sends out a FrameNotification for each frame recipient can implement
: workload reduction as appropriate based on skipping frames (2=half,
: 4=quarter etc.) because some code can safely be run at quarter rate
: (e.g. ~10hz).
: 
: The developer should interleave slower rate modules to spread out
: workload A frame is defined by the timer rate; which is usually the
: maximum rate as determined by the FPS.
: 
: This is an alternative to the timer based or explicit function calling
: way of invoking aircraft systems.  It has the advantage of using less
: timers and remaining modular, as each aircraft subsytem can simply
: register itself with the global transmitter to receive the frame
: notification.

See Also             : https://wiki.flightgear.org/Nasal_Optimisation#Emesary_real_time_executive
: F-15 and F-14 for examples of how to use this.

Author               : Richard Harrison (richard@zaretto.com)

Creation Date        : 4 June 2018

Copyright (C) 2018 Richard Harrison           Released under GPL V2

---------------------------------------------------------------------------*/

Classes

EmesaryExecutive

the main exeuctive class. There will be one of these as emexec.ExceModule however multiple instances could be created - but only by those who understand scheduling - because it is not necessary to have more than one - unless we mange to enable some sort of per core threading.

FrameNotification

This is the notification that is sent out to all recipients each frame. The notification contains a hash of property values. Frame modules can request that the hash includes key/property pairs by using the FrameNotificationAddProperty An instance of this class is be contained within the EmesaryExecutive.

FrameNotificationAddProperty

request to add a property to the frame notification

OperationTimer

Variables

ExecModule

xmit