The TreeViewNode data record holds the information about one node in the sat-nms tree view and the tree below this node. The complete tree is partially autogenerated and user defined, see below about the standard tree structure used in the sat-nms software.
Data Model
| Key | Type | Value |
|---|---|---|
| nodeName | String | The (displayed) name of this node. This may be a M&C name, a subsystem name, a device name or a screen name, depending on the type of this node. See below on details about node types and names. |
| nodeType | String | One of ROOT, MNCNODE, DEVICELIST, SUBSYSTEM or DEVICE. See below on details about node types and names. |
| children | Array | An array of other TreeViewNode objects being the children of this node. May be null, this denotes a leaf node. |
Standard Tree Structure
The general structure of the tree view ist autogenerated by the software. User defined branches with subsystem definitions are integrated at certain points of the tree.
ROOT
+-- MNC001
+-- MNC002
+-- Devices
+-- SUBSYSTEM-1
+-- SUBSYSTEM-2
+-- SUBSUBSYSTEM-1
+-- DEVICE-1
+-- DEVICE-2
+-- DEVICE-3
+-- DEVICE-4
+-- MNC003
A tree always consists of one ROOT node. The children of this node are the M&C systems managed by the backend (one MNCNODE for each M&C system). Each MNCNODE has at least one child, a DEVICELIST node containing the list of devices managed by this M&C. Up to here all nodes are auto-generated and not c hangeable by the user. Additionally, each MNCNODE may have zero or more SUBSYSTEM nodes with user defined groups of devices or nested subsystems.
Node Types and Names
A TreeViewNode may be one of the types ROOT, MNCNODE, DEVICELIST, SUBSYSTEM or DEVICE. The table below lists the properties of these node types in short form:
| type | auto-generated | may contain | name |
|---|---|---|---|
| ROOT | yes | MNCNODE | always 'TreeView' |
| MNCNODE | yes | DEVICELIST, SUBSYSTEM | M&C name |
| DEVICELIST | yes | DEVICE | always 'Devices' |
| SUBSYSTEM | no | SUBSYSTEM, DEVICE | subsystem name |
| DEVICE | within a DEVICELIST | -/- (leaf node) | device name |
The ROOT node is - as the name suggests - the root of the tree view tree. There is exactly one ROOT node in the tree, its children are one or more MNCNODE nodes, as many as M&C systems are configured to be managed by the backend. The displayed name of each MNCNODE node id the ID / name of this M&C, this is the same as used in message IDs. The list of MNCNODE nodes is auto-generated by the backend, derived from its configuration data.
The first child of each MNCNODE node always is a DEVICELIST node containing the complete list of devices configured on this M&C. This node also is automatically created by the backend, the device list is in 'natural' order, meaning that the devices appear in the same order as they do in the M&C configuration file / screen.
DEVICE nodes are the leaf nodes of the tree. The name of a DEVICE node is the name of the device without the name of the M&C it is contained in.
SUBSYSTEM nodes define a group of devices or nested subsystems. They are the only user defined node objects in the tree. The name of a SUBSYSTEM node is user defined, but as this name appears in the message ID of the summary fault state of a subsystem, the same restrictions applay for subsystem names as for device names. They may consist of upper case letters 'A' .. 'Z', digits and the '-' - character.
Subsystems
Subsystems defined by a SUBSYSTEM node in the tree are managed by the M&C like a virtual device which has a summary fault flag which reads as the maximum fault condition that appears at one of the elements the subsystem contains. The definition of all configured subsystems in a M&C is stored by the M&C itself, not by the backend. Due to the M&C-local architecture of subsystems the following rules apply to them:
The name of a subsystem consists of the same limited set of characters like device names do.
A subsystem may contain devices or other subsystems. These children must be located at the same M&C as their parent subsystem. Subsystems cannot be defined across multiple M&Cs.
Each subsystem distributes a summary fault variable which can be used to display the fault state of the subsystem. The full messgeId of this variable is
{M&C-name}.SUBSYSTEM.{subsystem-name}.fault
or for nested subsystems
{M&C-name}.SUBSYSTEM.{subsystem-name}.{sub-subsystem-name}....fault
These variables - like a .fault value of a device - read one of the strings "OK.", "WARNING" or "Summary FAULT".