NTCIP Gateway Functionalities
This chapter describes the usage of the NTCIP gateway.
Please note that a valid configuration is assumed before any command is issued against the communication partner. In case of configuration faults, the communication will not be established.
Enable/Disable Communication
The communication between NTCIP Gateway and DMS must be enabled explicitly. It can be disabled (temporarily) if that is needed, without the need to remove the DP and all its configuration data.
When the Command.EnableCommunication DPE is set to TRUE, the DMS is contacted using the SNMP configuration. A new configuration will only be activated when the communication is stopped and restarted using this DPE.
Periodic Status Updates
The NTCIP Gateway executes active poll requests every 10 seconds to each of the communicating DMS. The result of the status request is published to the DPEs of the State subtree.
There is no old/new comparison on the status values, the DPEs are updated each time the request succeeds.
Periodic Current Display Update
The DMS display content is polled every 10 seconds from all the communicating DMS. However, to reduce the system load, only updated values are sent to the DPEs of the CurrentMessage subtree.
Refresh FontList
To refresh the Fonts DPE, the command RefreshFontList must be set to TRUE. The NTCIP Gateway then polls the NTCIP MIB dmsFontTable object of the DMS.
Please note that this table has multiple lines of 8 fields each, so updating the table information will cause additional traffic on the network. The DMS status requests are not concerned, they are interleaved. However, the response might take some time.
Reading a font table with 10 entries, which is a typical size, takes 1 to 2 seconds, depending on the network traffic.
Refresh BitmapList
To refresh the Bitmaps DPE, the command RefreshBitmapList must be set to TRUE. The NTCIP Gateway then polls the NTCIP MIB dmsGraphicTable object of the DMS.
Please note that this table has multiple lines of 10 fields each, so updating the table information will cause additional traffic on the network. The DMS status requests are not concerned, they are interleaved. However, the response might take some time.
Reading a bitmap table with 255 entries, which is a typical size, takes roughly 10 seconds, depending on the network traffic.
Refresh MessageList
To refresh the AvailableMessages DPE, the command RefreshMessageList must be set to TRUE. The NTCIP Gateway then polls the NTCIP MIB dmsMessageTable object of the DMS.
Please note that this table has multiple lines of 9 fields each, so updating the table information will cause additional traffic on the network. The DMS status requests are not concerned, they are interleaved. However, the response might take some time.
Reading a message table with 255 entries, which is a typical size, takes roughly 10 seconds, depending on the network traffic.
Since this command also updates all the other content fields, it might take a bit longer, though.
Refresh BrightnessTable
To refresh the BrightnessValuesTable DPE, the command RefreshBrightnessTable must be set to TRUE. The NTCIP Gateway then polls the NTCIP MIB dmsIllumBrightnessValues object of the DMS.
In contrast to the other resource tables, this "table" is contained in one OctetString object. therefore, refreshing the information is done using only one read access to the DMS.
Define Message
When you want to define a new message, the first thing to do is decide about the MemoryType and Number which should be used for the new message. The MemoryType must either be changeable or volatile, and the number ranges from 1 to the maximum accepted by the DMS.
The new message needs a MULTI string which describes the content. The MULTI syntax is out of scope of this document.
Please either use a third party editor or refer to the NTCIP 1203 specification for details.
Each message has an additional field for the owner, which can be used to leave a hint about the author or creator of the message. Finally, the beacon can be activated if the DMS supports this feature.
If the DMS uses mechanical pixels, the pixelService feature might be activated to regularly move the pixels for a small amount to avoid getting stuck.
All these data must be set in the DefineMessage DPEs. After doing so, the DefineMessage command DPE can be set to TRUE. The message data is then sent to the DMS, and the DMS either accepts the new message or answers with a proper error code. The application must check the error code. Usually, error code number 2 means "good".
In case there is a message defined on the given location, the old message will be deleted before the new one is defined.
Delete Message
Deleting a message is the first step before defining a new message. For convenience, this function is available even when no new message is to be defined. The fields MemoryType and Number of the DefineMessage subtree must be set, and then the DeleteMessage command DPE must be set to TRUE. After this, the message status is unused (1).
Please note that some DMS do not clear the content of the table. Therefore, the message information might be still readable, but the message can no longer be used.
Get MessageDetails
Before activating a message, the status of the message should be checked. Therefore, after defining the MemoryType and the Number of the message to be activated in the ActivateMessage subtree, the current content of this message can be retrieved from the DMS by issuing the GetMessageDetails command.
In response, the NTCIP Gateway fills out the message specific fields in the ActivateMessage subtree. The important field is the Status DPE, which should be valid (4). Any other value means that the message cannot be used for activation and must be defined first. The other fields contain the MultiString, the MessagePriority and other details which have been defined for that message.
Of course, this functionality can also be used to check any of the messages of the DMS any time without the need of activating them.
Activate Message
First, the MemoryType (permanent (2), changeable (3) or volatile (4)) and the Number of the message to be activated in the ActivateMessage subtree must be defined. The ActivationPriority defines the priority to be used for activation, and the Duration defines the duration of display for that message in miunutes.
After setting these values, the ActivateMessage command can be issued, and the DMS will set the error states accordingly.
The ActivationStatus subtree contains the two relevant DPEs: LastActivationError and LastActivationState.
Blank Sign
This command is for convenience. Blanking the sign usually means activating a "blank" message. However, since this can be done internally, the BlankSign command does not need any further parameters. By activating this command, the currently displayed message will be replaced by the "blank" message. The ActivationPriority is always chosen in a way that the blank message will be accepted by the DMS.
Reset DMS Controller
Sometimes it is necessary to reset the DMS controller. This is possible from remote, and the NTCIP Gateway provides this functionality as well. When the Reset command is set to TRUE, a corresponding message is sent to the DMS, and the DMS controller will do a restart. Of course, this means that the DMS goes offline for some time, and the NTCIP Gateway will reconnect when it is reachable again.