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.
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:
Panel Bar
Search Bar
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:
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.
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:
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.
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:
Below is a more detailed information about each keys.
key |
type |
description |
---|---|---|
|
string |
Karabo component type: host : control serverserver : device serverclass : device classdevice : device instance |
|
string |
The ID of the device server. |
|
string |
The version of the device server. |
|
string |
The ID of the control server where the server is located. |
|
integer |
User access level who can see the server: 0 : observer (default)1 : user2 : operator3 : expert4 : admin5 : god |
|
integer |
Interval in seconds at which the server sends heartbeats to distributed systems |
|
string |
Current version of the Karabo Framework. |
|
string |
Complete address of the host ( |
|
vector string |
List of devices classes that can be instantiated in the server. |
|
vector integer |
List of visibility of the device classes. |
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.
Configuration¶
Clicking the device class will show the default device Schema
in the
Configuration Panel.
Context menu¶
Right-clicking will show a context menu, which are as follows:
Open configuration (*.xml)
This will load a device class configuration file.
Save configuration as (*.xml)
This will save the current device class configuration as an
.xml
.
See also
Configuration Panel.
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.
See also
Scene Panel.
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 |
---|---|---|
Instantiated |
The device is instantiated and is healthy. |
|
Instance Error |
The device is instantiated but has encountered error(s) |
|
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. |
|
Warning |
A device property is in a value range where it should be monitored. |
|
Critical |
A device property is in its critical value range. |
|
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 |
---|---|---|
error |
Hardware and/or pipeline-processing error(s) has been encountered. |
|
ok |
The device did not encounter any errors |
Configuration¶
Clicking the device instance will show the current device instance configuration in the Configuration Panel.
This will also change its icon to , 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:
Open configuration (*.xml)
This will load a device class configuration file.
Save configuration as (*.xml)
This will save the current device class configuration as an
.xml
.
Shutdown device
This will shutdown the device instance and remove it from the system.
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.
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:
Below is a more detailed information about each keys.
key |
type |
description |
---|---|---|
|
integer |
Interval in seconds at which the server sends heartbeats to distributed systems |
|
bool |
Whether the device is archived in the |
|
string |
Description of the device status. |
|
string |
The ID of device server which the device is running on: cppServer pythonServer mdlServer |
|
text |
Karabo component type: host : control serverserver : device serverclass : device classdevice : device instance |
|
integer |
What the device can do, a sum of: 1 : provides scenes2 : provides macros4 : provides interfaces |
|
string |
The ID of the device class of the instance. |
|
string |
Complete address of the host ( |
|
string |
Earliest version of Karabo Framework the device is compatible with. |
|
integer |
User access level who can see the device: 0 : observer (default)1 : user2 : operator3 : expert4 : admin5 : god |
|
string |
The ID of the control server where the device is running on. |
|
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.
The header of the system topology can also be double-clicked to expand/collapse all the components.
Search Bar¶
The Search Bar enables users to find the Karabo component of their interest in the system topology. This is helpful especially with complicated topologies such as instrument topics.
This is composed of a text field, navigation buttons, and case-sensitivity and regular expression toggle buttons.
Searching Karabo components¶
In order to search for a Karabo component, the user can enter its ID in the search field. The search is being done incrementally, meaning that it is being done as-you-type. The number of results are reflected on the text on the right. The first result from the top will also be highlighted.
Navigating through the results¶
The search results can be viewed via the navigation buttons. These buttons can be used to go to the previous or next result. When pressed, the consequent entry will be focused, therefore being highlighted and its configuration being shown in the Configuration Panel.
The navigation is done in an orderly manner, which means that the results are viewed from the top to the bottom of the topology.
When the search returns no results, these buttons are disabled.
Case-sensitive search¶
The search filter is case-insensitive by default. Toggling the case-sensitive button will match the case of the input text.
Regular expressions¶
Regular expressions (regex) can also be utilized when searching. This is by toggling the regex button and entering a valid regex string.
Note
Karabo GUI uses Python’s re
module in managing the regex. Follow the link
below for more information.