Skip to content

ptServer lok

Jan Horacek edited this page Apr 5, 2020 · 8 revisions

PT server :: Hnací vozidla

Specifikace objektu

Každý objekt loko obsahuje tato data:

adresa: integer,
nazev: string,
majitel: string,
oznaceni: string,
trida: ("parni", "diesel", "motor", "elektro")

Volitelně pak obsahuje tato data:

poznamka: string,
vyznamFunkci: [
    "svetla",
    "svetla zadni",
    ...
]
  • Poznámka je v objektu přítomna právě tehdy, když poznámka není prázdná.
  • Význam funkcí je seznam variabilní délky, první význam je vždy význam funkce 0, poslední položka je poslední vyplněný význam. Příklad: Pokud má seznam 10 prvků, jedná se o významy funkcí F0-F9. Celkový počet dostupných funkcí je 28. Význam funkcí, které nejsou vyplněny v seznamu, je prázdný. Pokud není vyplněn žádný význam, atribut vyznamFunkci v objektu není.

Každý stav lokomotivy obsahuje tato data:

rychlostStupne: integer,
rychlostKmph: integer,
smer: ("0", "1"),
stavFunkci: string,
stanovisteA: ("L", "S"),
najetoVpred: {
    metru: integer,
    bloku: integer
}
najetoVzad: {
    metru: integer,
    bloku: integer
  • stavFunkci je string tvaru 011001010, který má vždy délku 29 znaků (F0-F28), přičemž 0 značí vypnutou funkci a 1 značí zapnutou funkci. Seznam vždy začíná F0 a končí F28.

Endpointy

GET /loks

  • Endpoint vrací seznam lokomotiv.
  • Parametry:
    • aktivni=[Boolean] – jestli vrátit jen aktivní lokomotivy. Pokud není argument přítomný, vrátí všechny loko, pokud je přítomný, vrátí jen aktivní/neaktivní.
    • stav=[Boolean] – jestli vrátit s lokomotivami i jejich stavy.
{
	"loks": [
		{...}, {...}, ...
	]
}

GET /loks/addr

  • Endpoint vrací lokomotivu s adresou addr.
  • Parametry:
    • stav=[Boolean] – jestli vrátit s lokomotivou i její stav.
{
	"lok": {
		...
	}
}

GET /lokStav/addr

  • Endpoint vrací stav lokomotivy s adresou addr.
  • Parametry: žádné.
{
	"lokStav": {
		...
	}
}

PUT /lokStav/addr

  • Endpoint umožňuje změnit stav lokomotivy s adresou addr.
  • Odpovědí je nový stav lokomotivy.
  • Stav lokomotivy měníme posláním nového kýženého stavu v těle požadavku.
  • Kýžený stav se od aktuálního stavu může lišit ve více parametrech, server se v takovém případě pokusí udělat nejlepší možnou akci.
{
	"lokStav": {
		"rychlostStupne": 15
	}
}

Akceptované atributy:

  • rychlostStupne
  • rychlostKmph
  • smer
  • stavFunkci

Atributy lze kombinovat. Pokud je zadáno rychlostStupne i rychlostKmph, vybere se rychlostStupne. rychlostKmph je v takovém případě ignorováno.

Clone this wiki locally