Protocol internal messages

In addition to packet buffer types representing openDAQ™ packets, the protocol also encompasses additional types interpreted as internal protocol messages, which may not be associated with a specific signal.

Packets release

When the server detects that one or more data packets, previously encoded into packet buffers and sent to the client, are no longer referenced by any subsequent data packets, it generates a "packets release" internal protocol message. This message includes a generic header and payload containing the IDs of the packets no longer needed. It notifies the client that the corresponding packet copies it has recreated are no longer required and can be released.

Bytes group Start position offset (in bytes) Value type Size in bytes Value

Generic header

Header size

0

unsigned 8 bit integer

1

12

Packet buffer type code

1

unsigned 8 bit integer

1

0x2

Packet streaming protocol version

2

unsigned 8 bit integer

1

-

Flags

3

unsigned 8 bit integer

1

0x0

Signal numeric ID

4

unsigned 32 bit integer

4

0xFFFFFFFF

Payload size

8

unsigned 32 bit integer

4

-

Payload

IDs of data packets to release

12

Array of unsigned 64 bit integers

-

-

Already sent packet buffer

A single openDAQ™ data packet can be used/shared by multiple signals. The packet streaming server will only transmit the data packet for the first signal. The data packet buffer does not include the “Can release” flag, therefor the client needs to keep/cache the packet buffer for subsequent (already sent) packet buffers. Other signals will then send “Already sent” packet buffers to notify the client that it should reuse the cached packet buffer for the new signal.

Bytes group Start position offset (in bytes) Value type Size in bytes Value

Generic header

Header size

0

unsigned 8 bit integer

1

28

Packet buffer type code

1

unsigned 8 bit integer

1

0x3

Packet streaming protocol version

2

unsigned 8 bit integer

1

-

Flags

3

unsigned 8 bit integer

1

-

Related signal numeric ID

4

unsigned 32 bit integer

4

-

Payload size

8

unsigned 32 bit integer

4

0

Extra header

Packet ID

12

unsigned 64 bit integer

8

-

Domain packet ID

20

unsigned 64 bit integer

8

-