![]() |
WarpTwin
Documentation for WarpTwin models and classes.
|
Manage all external interfaces to and from warptwin. More...
#include <ExternalInterfaceModel.h>

Classes | |
| struct | Params |
| struct | Inputs |
| struct | Outputs |
Public Member Functions | |
| void | connectExternalSocket (clockwerk::DataIOBase &signal, std::string mode, const std::string &ip, int port) |
| Connect a signal to an external socket. | |
| void | connectExternalSharedMemory (clockwerk::DataIOBase &signal, std::string mode, const std::string shmem_address) |
| Connect a signal to an external shared memory. | |
| ExternalInterfaceModel (warpos::FlightExecutive &executive) | |
| virtual | ~ExternalInterfaceModel () |
| Public Member Functions inherited from warpos::App | |
| App (FlightExecutive &executive, const char *name, uint16 apid, uint8 instance=0) | |
| Executive-based constructor for the task. | |
| virtual | ~App () |
| Destructor. Doesn't really do anything. | |
| int16 | startup () |
| Initialize the app. Should be called once before step. | |
| int16 | step () |
| Step the app by a single step. Maps params, inputs, etc. to outputs. | |
| virtual int16 | activate () |
| Activate the app. The app will step when active. | |
| virtual int16 | deactivate () |
| Deactivate the app. The app will not step when deactivated. | |
| virtual int16 | command (uint16 apid, uint8 *buffer, uint16 size) |
| Process commands issued to the app. | |
| log_level_e | logLevel () |
| Get the log level set for the executive. | |
| void | logLevel (log_level_e log_level) |
| Set the executive log level. | |
| bool | isStarted () |
| Return whether task startup has been run. | |
| uint16 | apid () |
| Get the apid for this app. | |
| uint8 & | instance () |
| Get the instance of this app (used to differentiate between multiple instances of the same app). | |
| Public Member Functions inherited from clockwerk::GraphTreeObject | |
| GraphTreeObject (const char *gt_nme="", GraphTreeObject **storage_array=nullptr, uint32 storage_size=0) | |
| Name-based constructor for GraphTreeObject which will have no children by default. | |
| virtual | ~GraphTreeObject () |
| Destructor. | |
| GraphTreeObject * | parent () |
| Functions to get object's parent/children. | |
| GraphTreeObject ** | children () |
| GraphTreeObject * | childAtIndex (uint8 i) const |
| int16 | parent (GraphTreeObject *new_parent) |
| Function to assign the node's parent via pointer. | |
| int16 | parent (GraphTreeObject &new_parent) |
| Function to assign the node's parent via reference. | |
| uint8 | nChildren () const |
| Getters for number of children and descendants. | |
| uint16 | nDescendants () const |
| uint8 | capacity () const |
| const char * | name () const |
| Getter and setter for object name. | |
| int16 | name (const char *new_name) |
| uint8 | rank () |
| Getter for the object rank. | |
| int8 | type () |
| Function to indicate type – -1 by default unless implemented downstream. | |
| bool | loggable () |
| Getter for object logability flag – note no setter because should only be set by this or a derived class in its definition. | |
| GraphTreeObject * | getRootDataPointer () |
| Get the pointer to the highest object in the graph tree. | |
| virtual int16 | str (char *output, size_t size) const |
| Get object represented as string. | |
| virtual int16 | fromStr (const char *val) |
| Set value of graphtreeobject from string. | |
Public Attributes | |
| Params | params = Params(this, "params") |
| Inputs | inputs = Inputs(this, "inputs") |
| Outputs | outputs = Outputs(this, "outputs") |
| Public Attributes inherited from warpos::App | |
| clockwerk::DataIO< bool > | active = clockwerk::DataIO<bool>(this, "active", true) |
| The active flag for the task – set to true by default. | |
Protected Member Functions | |
| int16 | start () override |
| int16 | execute () override |
| int | _syncSockets () |
| Synchronize all sockets to external. | |
| int | _syncShmem () |
| Synchronize all shared memory to external. | |
| Protected Member Functions inherited from clockwerk::GraphTreeObject | |
| int16 | _setStorage (GraphTreeObject **storage_array, uint8 storage_size) |
| Getter for object's string address. | |
| void | _recalculateDescendants () |
| Function to recursively re-calculate the number of descendants of a given node on the tree. | |
| void | _recalculateRank () |
| Function to recursively re-calculate the rank of a given node on the tree. | |
| int16 | _addChild (GraphTreeObject *child) |
| Function to decompose a string into a series of substrings via indexing. | |
| int16 | _removeChild (GraphTreeObject *child) |
| Function to remove a child from the graph node's children. | |
Protected Attributes | |
| std::vector< DataIOSocketRelay * > | _socket_relays |
| std::vector< DataIOShmemRelay * > | _shmem_relays |
| Protected Attributes inherited from warpos::App | |
| FlightExecutive & | exc |
| Override our executive to include the FlightExecutive instead. | |
| int16 | _error = 0 |
| Internal variable to track and return error on app step through. | |
| uint16 | _apid = 0 |
| Internal variable to hold the APID for this app. | |
| bool | _is_started = false |
| Flag indicating whether app has been started or not. | |
| log_level_e | _local_log_level = log_level_e::LOG_WARNING |
| The log level for this particular app. | |
| GraphTreeObject * | _app_children [MAXIMUM_APP_CHILDREN] |
| Local storage for App children so it can live on the graph tree. | |
| uint8 | _instance |
| Instance number of this app. Used to differentiate between multiple instances of the same app. | |
| Protected Attributes inherited from clockwerk::GraphTreeObject | |
| GraphTreeObject * | _parent = nullptr |
| GraphTreeObject ** | _children_ptr = nullptr |
| uint32 | _max_num_children = 0 |
| uint16 | _num_descendants = 0 |
| char | _name [MAXIMUM_NAME_CHARS] = "" |
| String name for object. | |
| uint8 | _num_children = 0 |
| Number of direct children of the tree (not including the tree itself). | |
| uint8 | _rank = 0 |
| int8 | _graph_tree_type = BASE_GRAPH_TREE |
| Variable to store graph tree object type. | |
| bool | _loggable = false |
| Variable to indicate whether the selected object is loggable. Set to false by default. | |
| uint32 | _index = 0 |
| Index pointing to the next write location for the graph tree children. | |
Manage all external interfaces to and from warptwin.
The External Interface Model is designed to manage all interfaces to and from WarpTwin. It is configured such that it manages the creation, storage, and synchronization of DataIO interfaces to shared memory and sockets, as created through connectExternalSocket and connectExternalSharedMemory. These interfaces are shychronized twice per simulation step – once in start step before any other models run, and once in end step after all models have run.
This model is designed to be created by the Sim Scheduler and should not be created individually.
In addition to shmem and socket synchronization, this model manages the following:
| warptwin::ExternalInterfaceModel::ExternalInterfaceModel | ( | warpos::FlightExecutive & | executive | ) |
Model-specific implementations of startup and derivative Must be scheduled manually to derivative
|
virtual |
|
protected |
Synchronize all shared memory to external.
|
protected |
Synchronize all sockets to external.
| void warptwin::ExternalInterfaceModel::connectExternalSharedMemory | ( | clockwerk::DataIOBase & | signal, |
| std::string | mode, | ||
| const std::string | shmem_address ) |
Connect a signal to an external shared memory.
| signal | The signal to connect externally |
| mode | The mode (must be INPUT or OUTPUT) on which the signal is connected |
| shmem_address | The shared memory location on which the signal is connected |
| void warptwin::ExternalInterfaceModel::connectExternalSocket | ( | clockwerk::DataIOBase & | signal, |
| std::string | mode, | ||
| const std::string & | ip, | ||
| int | port ) |
Connect a signal to an external socket.
| signal | The signal to connect externally |
| mode | The mode (must be INPUT or OUTPUT) on which the signal is connected |
| ip | The IP address of the connection |
| port | The port for the connection |
|
overrideprotectedvirtual |
Reimplemented from warpos::App.
|
overrideprotectedvirtual |
Reimplemented from warpos::App.
|
protected |
|
protected |