How can a meter report an event?
Events in the server may occur any time and they have to be reported to the client. This is always done by the server management logical device (address 0x01) to the client management application process (address 0x01).
In case of using the three-layer, connection-oriented, HDLC based protocol stack, the process is the following.
The lower layers may not be able to send the message out, e.g. the physical connection may not exist, or if the data link layer does not have the token.
If the physical connection does not exist, it is initiated by the server. Once the physical connection - including the identification service - is done, the EventNotification.request APDU is sent to the data link layer, where it is pending, waiting for a send opportunity.
The server, detecting the event may be in a multi-drop configuration. When the client receives a call, it has to find out, which server on the multi-drop was calling. Therefore, it builds a DL connection, using a special lower HDLC address, the CALLING Physical address (0x7E resp. 0x3FFE) and as upper HDLC address, the management logical device address. Only the physical device calling in will respond and build the data link layer connection.
If the server has no right to talk, the client has to trigger sending out the pending PDU. This is done by sending an empty UI frame to the server with the P/F bit set to 1, giving the permission to the server to send.
The pending PDU is sent in a UI frame, and upon its reception, it is passed on to the Client management application process. The Client AP, depending on the content of the EventNotification, may decide what to do next.
With lower layers other than HDLC, the authorisation to send out the pending EventNotification PDU may be different.