# Komunikace se stolem Milana Marka pro GFM04 MSV Studénka
příkazy: Oddělovač CRLF. Na libovolný povel může stůl vrátit `ERR text chyby`.
## `IDN` - Ident
### Request
```
IDN
```
### Response
```
TYP GFM04 FW verze
```
## `SET` - Pohyb stolu
X (natočení), Y (naklopení) hodnota ve stupních a zlomcích stupně (nikoliv minutách), respektuje interní offset (viz povel `S00`). Smysl mají dvě desetinná místa.
Rozsah +-190 pro X, +- 45 pro Y **ve fyzických souřadnicích** (nerespektuje `S00`), při špatném rozsahu stůl vrátí `ERR Out of bound`.
Otáčení je kladné při směru proti pohybu hodinových ručiček.
Naklápění je kladné, když průmět světla u spektrometru klesá, záporné když stoupá.
### Request
```
SET X Y
```
příklad:
```
SET 123.45 -32.111
```
### Response
Odpověd dorazí až když je stůl ve vyžádané poloze
```
OK
```
## `GET` - Zjištění polohy stolu
Zjištění polohy stolu v rel. souřadnicích (respektuje povel `S00`)
### Request
```
GET
```
### Response
```
VAL X Y
```
příklad
```
VAL 123.45 -32.123
```
## `S00` - Nastavení relativních souřadnic stolu
Vyslání tohoto povelu způsobí, že aktuální fyzická poloha stolu bude mít souřadnice vyslané v tomto povelu.
Typicky se bude používat s hodnotami `X = 0`, `Y = 0`, čímž se řekne, že aktuálně nastavená poloha stolu je nulová.
Stůl si musí interně spočítat offset mezi skutečnou polohou a požadovanou. Veškerá interakce poté probíhá v relativních souřadnicích, ve kterých se tento offset uplatňuje, tedy
- v komunikaci s SW po RS232, tedy povely `SET`, `GET`
- v komunikaci s uživatelem pomocí panelu, tedy vypisování souřadnic na displej a vstup pomocí klávesnice
Offset se vynuluje po referování stolu (povel `REF`)
### Request
```
S00 X Y
```
příklad (nulování):
```
S00 0 0
```
příklad:
```
S00 123.45 -32.111
```
### Response
```
OK
```
## `REF` - Reference stolu
Poznámka: Uživatelé ve Studénce si referenci interně nazývají "Kalibrace".
Referování funguje takto: Po spuštění stolu není možné se stolem pohybovat - ani ručně, ani vzdáleně - dokud není zreferován.
Reference se ovšem nespouští automaticky po spuštění stolu (z bezpečnostních důvodů), ale až po explicitní akci - stisku tlačítka, nebo povelu `REF`.
Pokud se stolu vyšle povel pro nastavení nebo zjištění polohy, a stůl přitom není zreferován, vrátí chybu `Not referenced`.
Po referenci stolu se vynuluje interní offset stolu (viz povel `S00`)
### Request
```
REF
```
### Response
```
OK
```
## `TXT` - Zobrazení textu na displeji ovládacího panelu
Stůl zobrazí ASCII text na volném řádku panelu pro ovládání stolu. Prázdný text řádek smaže. Užitečné např. pro zobrazování aktuální hodnoty svítivosti na panelu.
### Request
```
TXT
```
### Response
```
OK
```
### Příklad
```
TXT Luxmetr 12345,6 cd
```
## Typické chyby:
- Too long (povel příliš dlouhý)
- Unknown command
- Out of bound
- Unknown parameter
- No value
- NoRef