Skip to content

Topics

All topics to do with signalling are prefixed with signalling/.

The topics below show the payload part of the message. The actual message will, of course, be packaged within an envelope.

Voltage values

All read values in from the field are voltage values.
These are an integer between 0 and 1024. This equates to 0 to 50 volts.

audio

Messages to do with the playing and control of audio

Platform can be 0 for both, 1 for platform 1, or 2 for platform 2

play

Play an audio clip.

{
  "audio": "approaching|aux1|aux2|aux3|departing|remembranceat|remembrancepost|remembrancepre|siding",
  "platform": 0
}

playing

Notification that a specific file / audio clip is playing.

{
  "file": "/path/to/audio/file.wav",
  "audio": "approaching|aux1|aux2|aux3|departing|remembranceat|remembrancepost|remembrancepre|siding",
  "platform": 0
}

played

Notification that a specific file / audio clip has completed playing.

{
  "file": "/path/to/audio/file.wav",
  "audio": "approaching|aux1|aux2|aux3|departing|remembranceat|remembrancepost|remembrancepre|siding",
  "platform": 0
}

buttons/<id>

Message to do with request buttons. Output sets the halo lights

input

{
  "value": 450
}

output

{
  "value": true
}

system

{
  "value": true,
  "enabled": true
}

override

{
  "value": true
}

request

{
  "outputOverride": "true|false|system",
  "enabled": "true|false"
}

direction

Direction information

output

{
  "direction": "eastbound|westbound"
}

system

{
  "direction": "eastbound|westbound"
}

override

{
  "direction": "eastbound|westbound|system"
}

request

Request both direction override, and configure month-based direction

{
  "directionOverride": "eastbound|westbound|system",
  "januaryDirection": "eastbound|westbound",
  "februaryDirection": "eastbound|westbound",
  "marchDirection": "eastbound|westbound",
  "aprilDirection": "eastbound|westbound",
  "mayDirection": "eastbound|westbound",
  "juneDirection": "eastbound|westbound",
  "julyDirection": "eastbound|westbound",
  "augustDirection": "eastbound|westbound",
  "septemberDirection": "eastbound|westbound",
  "octoberDirection": "eastbound|westbound",
  "novemberDirection": "eastbound|westbound",
  "decemberDirection": "eastbound|westbound"
}

levers/<id>

input

{
  "normal": 450,
  "reverse": 0
}

output

{
  "locked": true
}

system

{
  "input": "normal|reverse|noreturn",
  "locked": true,
  "autoRestroke": false
}

override

{
  "input": "normal|reverse|noreturn|system",
  "locked": "true|false|system"
}

request

{
  "outputOverride": "true|false|system",
  "inputOverride": "true|false|system",
  "autoRestroke": "true|false"
}

messages/add

{
  "type": "error|trts|info",
  "message": "message text"
}

messages/remove

{
  "type": "error|trts|info",
  "message": "message text"
}

points/<name>

Point names are their number.

input

{
  "normal": 0,
  "reverse": 450
}

output

{
  "normal": false,
  "reverse": false
}

system

{
  "input": "normal|reverse|noreturn",
  "output": "normal|reverse|off"
}

override

{
  "input": "normal|reverse|noreturn|system",
  "output": "normal|reverse|isolated|system"
}

request

{
  "inputOverride": "normal|reverse|noreturn|system",
  "outputOverride": "normal|reverse|isolated|system"
}

relays/<name>

This covers all output and input relays

input

{
  "value": 450
}

output

{
  "value": true
}

sections/<name>

Section names are their letter, or for point sections P followed by their number (eg P5a)

input

{
  "value": 450
}

system

{
  "state": "occupied|unoccupied|route|engineer",
  "setPoint": "10",
  "errorPoint": "1",
  "delay": "5"
}

override

{
  "state": "occupied|unoccupied|engineer|system"
}

request

{
  "inputOverride": "occupied|unoccupied|engineer|system",
  "setPoint": "10",
  "errorPoint": "1",
  "delay": "5"
}

sensors/<name>

input

{
  "no": 450,
  "nc": 0
}

system

{
  "state": "open|closed|noreturn"
}

override

{
  "state": "open|closed|noreturn|system"
}

request

{
  "overrideState": "open|closed|noreturn|system"
}

signals/<name>

name is in the format AJ, followed by the number, followed by E or W for mainline signals, S followed by the number for shunt only signals

input

not currently used, but will be implemented with the new cards

output

{
  "danger": true,
  "caution": false,
  "clear": false,
  "route_1": false,
  "route_2": false,
  "shunt": false
}

system

{
  "output": "danger|caution|clear|shunt|noaspect",
  "route_1": true,
  "route_2": true,
  "delay": 5
}

override

{
  "output": "danger|caution|clear|shunt|noaspect|system"
}

request

{
  "outputOverride": "danger|caution|clear|shunt|noaspect|system",
  "delay": 5
}

station

request

{
  "combineP1": "true|false",
  "requireRequestForSS": "true|false",
  "allowDeparting": "true|false"
}