The Navigation Panel

The navigation panels gives you a live view of the system, in a tree hierarchy. This is in contrast to the project panel, which presents a logical view of the system, as grouped by components.

alternate text

The Karabo navigation panel. Icons next to the device instance id give you the color code status of the device, as well as the alarm condition of the device if an alarm is active.

In its default view, the navigation panel shows the system topology in tree hierarchy showing the unified and alarm states of the running devices. This is automatically shown upon successfully connecting to the GUI server of the desired topic.

This is comprised of the following components, and will be further discussed on the following chapters:

  1. Panel Bar

  2. Search Bar

  3. System Topology

alternate text

A navigation panel is composed of the panel bar, the search bar, and the corresponding topology tree (System Topology).


System Topology

The system topology consists of Karabo components, namely: control servers, device servers, device classes and device instances.

  • Control servers are the physical machine running the device servers.

  • Device servers are the hosts of devices.

  • Device classes are the templates of devices.

  • Device instances are running devices on the device server.

These components are show in a tree structure:

control_server
├── device_server
    ├── device_class
        ├── device_instance

and can be seen in the Navigation Panel as follows:

_images/topology_breakdown.png

host_icon Control Server

The control server is a machine or computer that hosts Karabo components, namely device servers, devices, clusters of brokers, and database servers. This usually has a name exfl_____. A system could have one or more control servers.

server_icon Device Server

Device servers are the hosts for Karabo devices. They are responsible for loading the device code and running the device in an event loop, i.e. keeping it live and available to the distributed system. Device servers come in three flavors: C++, Python and middle-layer device servers.

Context menu

Right-clicking will show a context menu, which are as follows:

alternate text

The server context menu.

  1. Shutdown server

    This will restart the server, which takes a few seconds. When this option is selected, the server will be removed in the system topology but will then restart and reappear after the last server of the same control server.

  2. About

    This will show a dialog that contains keys which describes the device server.

About

The contents of About varies for different servers classes, which can be seen as follows:

alternate text

The About dialog of the different device server classes.

Below is a more detailed information about each keys.

key

type

description

type

string

Karabo component type:

host: control server
server: device server
class: device class
device: device instance

serverID

string

The ID of the device server.

version

string

The version of the device server.

host

string

The ID of the control server where the server is located.

visibility

integer

User access level who can see the server:

0: observer (default)
1: user
2: operator
3: expert
4: admin
5: god

heartbeatInterval

integer

Interval in seconds at which the server sends heartbeats to distributed systems

karaboVersion

string

Current version of the Karabo Framework.

p2p_connection

string

Complete address of the host (tcp://host:port) for p2p connection

deviceClasses

vector string

List of devices classes that can be instantiated in the server.

visibilities

vector integer

List of visibility of the device classes.


deviceclass_icon Device Class

Device classes that can be run on the device server are shown at its children in the System Topology. They appear in the topology when a device of the respective class is online.

The list of available classes can be viewed via the server’s About.

alternate text

The device classes are also listed in the server’s About dialog.


Configuration

Clicking the device class will show the default device Schema in the Configuration Panel.

alternate text

The default device class configuration will be shown when clicking the device class in the Project Panel.


Context menu

Right-clicking will show a context menu, which are as follows:

alternate text

The device class context menu.

  1. Open configuration (*.xml)

    This will load a device class configuration file.

  2. Save configuration as (*.xml)

    This will save the current device class configuration as an .xml.

See also

Configuration Panel.

  1. Open device scene

    This option will only appear when a device class has been instantiated for the session and if it has a default scene. If selected, the default scene for the device will be shown on the Scene Panel. The retrieved scene from a navigation panel will not be attached to the project.

    alternate text

    See also

    Scene Panel.


deviceinstance_icon Device Instance

When a device is successfully instantiated, it goes online and runs on the specified device server. A device instance is shown under the device class of the device server that hosts it. Its status can easily be perceived in the Navigation Panel with the help of some visual indications.


Instance status

The device instance icons change depending on its status.

icon

status

description

deviceinstance_icon_small

Instantiated

The device is instantiated and is healthy.

deviceinstanceerror_icon

Instance Error

The device is instantiated but has encountered error(s)

devicemonitored_icon

Monitored

The device is instantiated and its configuration is being monitored via the scene or configuration panel.


Alarm levels

The alarm level of device instances can be seen in the first column of the system topology. This appears when one of its properties trigger an alarm. Below are the alarm indications and their meanings.

icon

status

description

None

The device is working normally.

alarm_warning

Warning

A device property is in a value range where it should be monitored.

alarm_critical

Critical

A device property is in its critical value range.

alarm_interlock

Interlock

A device property has triggered an interlock.


Device status

The device status can also be perceived from the status icons that appear on the second column of the system topology.

icon

status

description

state_error

error

Hardware and/or pipeline-processing error(s) has been encountered.

state_active

ok

The device did not encounter any errors

Configuration

Clicking the device instance will show the current device instance configuration in the Configuration Panel.

alternate text

The instance of the new device configuration.

This will also change its icon to devicemonitored_icon, denoting that it is the current device configuration shown in the Configuration Panel.


Context menu

Right-clicking will show a context menu, which are as follows:

alternate text

The context menu of the device instance.

  1. Open configuration (*.xml)

    • This will load a device class configuration file.

  2. Save configuration as (*.xml)

    • This will save the current device class configuration as an .xml.

  3. Shutdown device

    • This will shutdown the device instance and remove it from the system.

  4. Open device scene

    This option will only appear for devices with available scenes. If selected, a dialog where the scene to be displayed can be selected.

  5. About

    This will show a dialog that contains keys which describes the device instance.

Opening Default Device Scene

Aside from displaying scenes from the context menu option, the default device scene can also be opened by double-clicking the device instance.

About

The contents of About varies for different instance classes, which can be seen as follows:

alternate text

The About dialog of the different device instance classes.

Below is a more detailed information about each keys.

key

type

description

heartbeatInterval

integer

Interval in seconds at which the server sends heartbeats to distributed systems

archive

bool

Whether the device is archived in the DataLogger

status

string

Description of the device status.

serverId

string

The ID of device server which the device is running on:

cppServer
pythonServer
mdlServer

type

text

Karabo component type:

host: control server
server: device server
class: device class
device: device instance

capabilities

integer

What the device can do, a sum of:

1: provides scenes
2: provides macros
4: provides interfaces

classId

string

The ID of the device class of the instance.

p2p_connection

string

Complete address of the host (tcp://host:port)

compatibility

string

Earliest version of Karabo Framework the device is compatible with.

visibility

integer

User access level who can see the device:

0: observer (default)
1: user
2: operator
3: expert
4: admin
5: god

host

string

The ID of the control server where the device is running on.

karaboVersion

string

Current version of the Karabo Framework


Expanding/collapsing the tree

The system topology is expanded by default. This means all items are being shown in the Navigation Panel, resulting to a lengthy topology. A component can be collapsed, with its members being hidden from the list. The arrow icon beside the component can be clicked in order to do so.

alternate text

A Karabo component with members (such as cppServer/doocs_1) can be expanded (left) and collapsed (right) by clicking on the arrow icon beside it.

The header of the system topology can also be double-clicked to expand/collapse all the components.

alternate text

Double-clicking the header (left) will collapse the tree, leaving a list of control servers (right). Double-clicking it again will expand all the components.