Skip to content

ptServer lok

Jan Horacek edited this page Jan 4, 2021 · 8 revisions

PT server :: Hnací vozidla

Specifikace objektu

Každý objekt loko obsahuje tato data:

"addr": integer,
"name": string,
"owner": string,
"designation": string,
"class": ("steam", "diesel", "motor", "electro", "car", "other")

Volitelně pak obsahuje tato data:

"note": string,
"funcDescription": [
    "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:

"speedStep": integer,
"realSpeed": integer,
"direction": ("0", "1"),
"funcState": string,
"siteA": ("L", "S"),
"area": string,
"ruc": boolean,
"lastUsed": dateTime,
"acquired": boolean,
"acquiring": boolean,
"stolen": boolean,
"traveledForward": integer,
"traveledBackward": integer,
  • funcState 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:
    • active=[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í.
    • state=[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é.
{
	"lokState": {
		...
	}
}

PUT /lokState/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.
{
	"lokState": {
		"speedStep": 15
	}
}

Akceptované atributy:

  • speedStep
  • realSpeed
  • direction
  • funcState

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