Skip to content

ptServer blok

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

PT server :: Bloky

Specifikace objektu

Každý objekt blok obsahuje tato data:

"name": string,
"id": integer,
"type": ("turnout", "track", "ir", "signal", "crossing", "railway", ...),
"areas": [list_of_area_ids]

Blok výhybka

Blok výhybka přidává tato data:

"coupling": integer,
"lock": integer,
"track": integer,
"rcs": {
    "in+": {board: integer, port:integer},
    "in-": {...},
    "out+": {...},
    "out-": {...}
}

Stav bloku výhybka vždy obsahuje tato data:

"position": ("off", "none", "+", "-", "both"),

Stav bloku výhybka může obsahovat tato data:

"note": string,
"lockout": string
  • Štítek je uveden, pokud je neprázdný.
  • Výluka je uvedena, pokud je neprázdná.

Blok úsek

Blok úsek vždy přidává tato data:

"booster": string,
"maxTrains": integer,
"stationTrack": boolean,
"rcs": [
    {
        "board": integer,
        "port": integer
    },
    ...
]

Blok úsek může přidávat tato data:

"loop": boolean
"length": integer,
"trackName": string
  • Smyčkový úsek je vyplněn právě tehdy, je-li true.

RCS vstupy značí RCS vstupy jednotlivých sekcí úseku.

Stav bloku úsek vždy obsahuje tato data:

"state": ("off", "none", "free", "occupied")
"sections": [
    ("off", "none", "free", "occupied"),
    ("off", "none", "free", "occupied"),
    ...
]
"power": bool,
"shortCircuit": bool,
"dcc": bool,
"lock": integer

Stav bloku úsek může obsahovat tato data:

"note": string,
"lockout": string,
  • Štítek je uveden, pokud je neprázdný.
  • Výluka je uvedena, pokud je neprázdná.

Blok IR čidlo

Blok IR vždy přidává tato data:

"rcs": {
    "board": integer,
    "port": integer
}

RCS vstup je právě jeden a značí onen jeden RCS vstup pro IR čidlo.

Stav bloku IR obsahuje tato data:

"state": ("off", "none", "free", "occupied")

Pozor: Bloky typu IR neví, v jaké jsou stanici, tudíž na ně nefunguje filtr stanic v GET požadavku (bloky IR se vůbec neobjeví ve výsledku).

Blok rozpojovač

Blok Rozpojovač vždy přidává tato data:

"rcs": {
    "board": integer,
    "port": integer
}

Stav bloku Rozpojovač obsahuje tato data:

"state": ("off", "not_selected", "mounting", "active")
  • off: blok rozpojovače neaktivní.
  • not_selected: rozpojovač nevybrán v panelu.
  • mounting: rozpojovač se chystá na aktivaci.
  • active: rozpojovač má aktivní výstup.

Stav je možné měnit PUT příkazem, je možné nastavit stavy: not_selected, mounting, active.

Další bloky

Specifikace zatím nedoplněna, ale posílají se všechny typy bloků.

Endpointy

GET /blocks

  • Endpoint vrací bloky.
  • Parametry:
    • station=id – vrací jen bloky v dané stanici,
    • type=typ – vrací jen bloky daného typu,
    • state=[Boolean] – jestli vrátit s bloky i jejich stav.
{
    "blocks": [
        {...}, {...}, ...
    ]
}

GET /blocks/id

  • Endpoint vrací blok id.
  • Parametry:
    • state=[Boolean] – jestli vrátit s bloky i jejich stav.
{
    "block": {
        ...
    }
}

GET /blockState/id

  • Endpoint vrací stav bloku id.
  • Parametry: žádné.
{
    "blockState": {
        ...
    }
}

PUT /blockState/id

  • Endpoint umožňuje změnit stav bloku id.
  • Odpovědí je nový stav bloku.
  • Stav bloku měníme posláním nového kýženého stavu v těle požadavku.
{
    "blockState": {
        "position": "-"
    }
}

Akceptované atributy pro blok výhybka:

  • position = ("+", "-")
Clone this wiki locally