Popis komunikace
Struktura UDP dat¶
První dva bajty dat jsou identifikátor.
Konstantní dva znaky jsou „GT“ 0x4754
.
Následující bajty označené jako Byte 0
, 1
atd. v následující tabulce představují vlastní příkazy a data.
Popis je níže.
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 /? | ... |
Název | Význam |
---|---|
group # | Číslo skupiny parametrů |
param # | Číslo parametru ve skupině |
OK | Zápis/Čtení OK ("= 0 ") |
Err | Chybový kód ("≠ 0" 1 = chybný příkaz 2 = neplatná adresa, 3 = RO / mimo dosah, 4 = chyba v datovém firmwaru) |
Number | Číslo parametru (Int32) in a contiguous area |
# OK | Číslo úspěšně zapsaného parametru |
a.offs | Ofset v oblasti 32bitových registrů (jeden 32bitový registr) |
Popis jednotlivých registrů s informacemi o group #
a param #
najdete ZDE
Žádost (master -> slave) Minimální délka dat UDP je pro čtení 2 + 3 bajty a 2 + 4 bajty pro zápis. Paket může obsahovat několik požadavků. Maximální celková délka paketu je 1470 bajtů + 2 (+2 označuje část identifikátoru).
Odezva (slave -> master) Příkaz, počet parametrů a číslo parametru ve skupině jsou stejné jako v případě žádosti. Pro práci se spojitou oblastí registrů je nutné použít počet parametrů. Délka odpovědi na požadavek na čtení je prodloužena o 4 bajtovou hodnotu parametru. Odpověď na požadavek na zápis se rozšíří o výsledek write: = 0 - write OK, ≠ 0 - write error code. Odpovědi jsou také seskupeny do jednoho paketu. Master musí navrhnout aplikaci tak, aby bylo možné odesílat odpovědi s jedním paketem o celkové délce max. 2 + 1 470 bajtů (2+ označuje sekci identifikátoru).
Příklad komunikace¶
Požadavek
identifier | identifier | write | group | element | data | data | data | data |
0x47 | 0x54 | 0x02 | 0x03 | 0x90 | 0x90 | 0x12 | 0x34 | 0x11 |
read | group | element | ||||||
0x01 | 0x02 | 0x45 |
Odpověď
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 |
Struktura dat UDP pro čtení textové zprávy
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 | ... |
parametr | význam |
---|---|
a.off | offset první zprávy (řádku) 0..255 |
number | počet po sobě jdoucích zpráv (řádků) v telegramu 1..4 (délka zprávy je 256 bajtů) |