Notification (J) message


(see command description format info here)

Function:Reports I/O pin status change
Send through:Network
Format:Jsss, where sss is the byte value in the 0-255 range containing the status of all I/O lines of the DS
First introduced:Earlier than "baseline" V3.14/V3.51
See also:Serial port and serial communications


Notification message in not a command, it is a message that the DS sends to the network host when one of the monitored I/O lines of the DS changes its state (for longer than 20milliseconds). The status of all lines is rolled into a single byte of data and sent out even when a single I/O line changes its state.

Which I/O lines are being monitored is defined by the current Notification Bitmask (NB) [setting / parameter ] .

Notification messages are only generated when the data connection is in progress and are sent to the network host with which this data connection is established. Notification Destination (ND) setting defines which port on this network host notifications are sent to.

How notifications are sent (out-of-band, inband, etc.) is defined by several factors:

If the Data Login (DL) setting is 1 (enabled), current Transport Protocol (TP) [setting/ parameter] is 1 (TCP), and the data TCP connection is in the command phase then notifications are sent via this TCP connection (IEC character is not used). Otherwise...
If the Inband (IB) setting is 1 (enabled), and the current Transport Protocol (TP) is 1 (TCP) then notifications are sent inside this TCP connection as inband messages (IEC character is used). Otherwise...
Notifications are sent as out-of-band UDP datagrams. 

The value in each Notification message should be interpreted as a collection of binary bits, with each position corresponding to a certain I/O line of the DS. Bit positions are exactly the same as those of the Notification Bitmask (NB) Setting . Bit values correspond to the states of the I/O lines of Modules. Line states on the RS232 connectors of Serial Device Servers and Boards that incorporate RS232 transceivers are inverted relative to the states reported in the notification message .

Example: supposing, the following Notification message is sent*:


Decimal 27 converts to binary 00011011. This means that:

For devices such as EM100: P2/DSR and P5/RTS lines are LOW; P0, P1, P2/DSR, and P4/CTS lines are HIGH;
For devices such as DS100: DSR and RTS lines are HIGH; DTR and CTS lines are LOW.

Notification messages are not commands so they do not require any reply from the receiving end.

If it is the DS that receives a Notification message from another DS, then the following happens:

If current Flow Control (FC) [setting/ parameter] on the receiving DS is 0 (disabled) and current Serial Interface is full-duplex then this DS will set its RTS line according to the value of CTS bit (bit 4) supplied by the Notification message; otherwise the status of the RTS line will not be changed.
If the DTR Mode (DT) setting on the receiving DS is 0 (idle) then this DS will set its DTR line according to the value of DSR bit (bit 2) supplied by the Notification message; otherwise the status of the DTR line will not be changed.

The above means that the Notification message links RTS-CTS and DTR-DSR signals on two communicating DS: when the CTS input on one end changes its status the RTS output on the other end changes its status accordingly (same with the DTR-DSR pair).

* Encapsulation characters such as IEC, STX, CR are not shown.