RealTime database (RTDB) access topics
- Last UpdatedApr 24, 2025
- 3 minute read
RealTime database (RTDB) point values are retrieved from the CMX Persistence Store. Subscribing to a RTDB topic returns the current value of the field (if integrity is enabled), and then returns "live" updates whenever a new value is published on the topic. The RTDB topics can be used to view up-to-date RealTime data from a client application running on a different computer or from a product silo other than RealTime.
<system>.realtime.db.<pointname>|<pointnumber>.<field specifier>
In this topic, "point" is the RTDB point name / path of interest from the CMX Persistence Store.
Examples
|
Topic |
Description |
|---|---|
|
<system>.realtime.db. message.|*|.name |
Subscribes to the name field of all message table records. |
|
<system>.realtime.db. analog.fred.curval |
Subscribes to the curval field of the analog table record whose name is equal to "fred". |
|
<system>.realtime.db. remote.onscan |
Message data will contain "true" or "false". |
|
<system>.realtime.db. remote.onscan@raw |
Message data will contain "0" or "1". |
There are several special types of publications supported.
@raw
The @raw keyword is added at the end of the point’s field specifier in order to cause a subscription to the raw integer value rather than the text string. This keyword only has an effect on slot and enumeration fields. It is ignored for all other field types.
flag.packqual
The flag.packqual field specifier returns data that represents the point’s Data Quality (DQ). The DLL libvfc.dll contains class TFlagPackQual, which should be used to pack and unpack data quality for C++ applications. The namespace OASySDNA.Common contains the class FlagPackQual to support .NET applications.
packed<table>Rt
The packed<table>Rt field is used to publish multiple items in one message that represent the time that the point was last krunched, its DQ, and current values. The DLL libapp.dll contains class PackedPublications to support message packing and unpacking for C++ applications. The namespace OASySDNA.Common.PubSub contains the class PackedRTPublication to support. Net applications. When packing or unpacking packed *Rt messages, you should use the classes provided. Do not attempt to extract information manually, as the future version might change the data included in the message. Each packed<table>Rt publication contains, in this order:
-
Timestamp in seconds, Greenwich Mean Time (GMT), an unsigned integer.
-
Timestamp in milliseconds.
-
Foreground color enumeration, pntcolor.
-
Alarm severity enumeration value, sev_enum.
-
Current state message text, string.
-
Current state image name, string.
-
An unsigned char containing bits, shown in order from bit 6, alarm, to bit 0, offscan. This represents flag information for the following fields: alarm, offscan, alminh, error, flash, fresh, manl.
-
The command inhibit tag, string.
-
Additional table-specific information is stored in packedAnalogRt, packedStatusRt, packedRateRt, and packedMultistateRt.
flag.dataAttributes
The flag.dataAttributes field is a virtual field used to publish RealTime data for points via PubSub. This data is used by the easy eXtended Operator Station (ezXOS) and eXtended Editor (XE) to represent information in the Data Attribute Icons on the Control Room Management (CRM) objects.
The PubSub buffer published has the following structure:
|
Field # |
Type |
Content |
|---|---|---|
|
1 |
displayname |
Image without controllability information for icon 1. |
|
2 |
char |
Additional information for icon 1. |
|
3 |
displayname |
Image without controllability information for icon 2. |
|
4 |
char |
Additional information for icon 2. |
|
5 |
displayname |
Image without controllability information for icon 3. |
|
6 |
char |
Additional information for icon 3. |
|
7 |
char |
Controllability flag. 1 means the point is controllable, and 0 means the point is not controllable. |
|
8 |
name |
Group name that the point belongs to. |
|
9 |
displayname |
Image to be used to show controllability information in icon 1. |
|
10 |
displayname |
Image to be used to show controllability information in icon 2. |
|
11 |
displayname |
Image to be used to show controllability information in icon 3. |
The additional information for icons is a mask that includes the following data:
|
Bit # |
Description |
|---|---|
|
0-4 |
Number of flexible tags associated to the point. |
|
5 |
Flag indicating that the controllability image must be used when the point is not controllable. When the flag is not active, the controllability image must be used when the point is controllable. |
|
6 |
Flag indicating that the controllability image has more precedence than the other image. |
|
7 |
Flag indicating that the icon should flash. |
flag.isControllable
The flag.isControllable field is used to know if a point is physically controllable. There are some supported tables. For these tables, flag.isControllable is true when the output field is true.
The output fields for different supported tables are:
-
analog table: output
-
status table: anycmd
-
multistate table: hasOutput.
flag.isControllable will always be false by default for any point in other tables not listed here.