Comunication description
UDP data structure¶
The first two bytes of data are the identifier.
The two constant characters are "GT" 0x4754.
The following bytes, labeled Byte 0, 1, and so on, in the following table represent custom commands and data and are described below.
| byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 | |
| request (m -> sl) | 1 – Reading a32 bit register | group # | param# | |||||
| response (sl -> m) | 1 (OK) | group # | param# | OK | data | data | data | data |
| response (sl -> m) | 1 (Err) | group # | param# | err | ||||
| request (m -> sl) | 2 – write a32-bit register | group # | param# | data | data | data | data | |
| response (sl -> m) | 2 (OK) | group # | param# | OK | ||||
| response (sl -> m) | 2 (Err) | group # | param# | err | ||||
| request (m -> sl) | 3 – Read acontiguous area of 32 bit registers | group # | param# | number | ||||
| response (sl -> m) | 3 (OK) | group # | param# | OK | number | data | data | ... |
| response (sl -> m) | 3 (Err) | group # | param# | err | # OK | data /? | data /? | ... |
| request (m -> sl) | 4 – writing acontiguous area of 32 bit registers | group # | param# | number | data | data | data | ... |
| response (sl -> m) | 4 (OK) | group # | param# | OK | number | |||
| response (sl -> m) | 4 (Err) | group # | param# | err | # OK | |||
| request (m -> sl) | 11 – Read acontiguous oscilloscope area | a.offs_L | a.offs_H | number | ||||
| response (sl -> m) | 11 (OK) | a.offs_L | a.offs_H | OK | number | data | data | ... |
| response (sl -> m) | 11 (Err) | a.offs_L | a.offs_H | err | # OK | data /? | data /? | ... |
| Name | Meaning |
|---|---|
| group # | Parameter group number |
| param # | Parameter number in the group |
| OK | Write / Read OK ("= 0") |
| Err | Error code ("≠ 0" 1 = wrong command, 2 = invalid address, 3 = RO / out of range, 4 = data firmware error) |
| Number | Parameter number (Int32) in a contiguous area |
| # OK | The number of the successfully written parameter |
| a.offs | Offset in the area of 32-bit registers (one 32-bit register) |
A description of each register with information about group # and param # can be found HERE.
Request (master -> slave) The minimum length of UDP data is 2 + 3 bytes for reading and 2 + 4 bytes for writing. The packet can contain several requests. The maximum total packet length is 1470 bytes + 2 (+2 indicates part of the identifier).
Response (slave -> master) The command, the number of parameters, and the parameter number in the group are the same as in the case of the request. To work with a contiguous area of registers, it is necessary to use the number of parameters. The length of the response to a read request is extended by the 4-byte value of the parameter. The response to a write request is extended by the result write: = 0 - write OK, ≠ 0 - write error code. The responses are also grouped into one packet. The master must design the application so that it is possible to send responses with one packet with a total length of max. 2 + 1 470 bytes (2+ indicates the identifier section).
Example of Communication¶
Request
| identifier | identifier | write | group | element | data | data | data | data |
| 0x47 | 0x54 | 0x02 | 0x03 | 0x90 | 0x90 | 0x12 | 0x34 | 0x11 |
| read | group | element | ||||||
| 0x01 | 0x02 | 0x45 |
Response
| identifier | identifier | write | number | group | status | ||||
| 0x47 | 0x54 | 0x02 | 0x03 | 0x90 | 0x00 | ||||
| read | group | element | status | data | data | data | data | ||
| 0x01 | 0x02 | 0x45 | 0x00 | 0x72 | 0x12 | 0x34 | 0x56 |
UDP data structure for reading a text message
| byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 | byte 8 | |
| request (m -> sl) | 41 - reading messages | a.off | number | ||||||
| response (sl -> m) | 41 (OK) | a.off | number | OK | data | data | data | data | ... |
| response (sl -> m) | 41 (Err) | a.off | number | err | data | data | data | data | ... |
| parameter | meaning |
|---|---|
| a.off | offset of the first message (line) 0..255 |
| number | number of consecutive messages (lines) in telegram 1..4 (message length is 256 bytes) |