desktop_station_s_serial_communication_specification
文書の過去の版を表示しています。
目次
Serial Communication Specification
How to use this topic
This topic describes in Desktop Station's serial communication specification. DSGatewayLib's example (e.g. DSgateway, DSmainRx) supports this specification to communicate with Desktop Station.
How to communicate
The following table describes serial communication configuration.
Parity | None | |
Data Bits | 8 | |
Stop Bit | 1 | |
Bit rate | 115200bps (Default) | It depends on the configuration of Arduino's sketch |
Command structure is “CommandName(Parameter1,Parameter2)\n”.
The parameter numeric must use decimal number. Do not use hexadecimal at command message.
Desktop Station sends to Arduino with DSmain or DCC/MM2 shield that the end of command text is as line feed code “\n (0x0A)”.
Command list
Commands | Parameters | examples |
---|---|---|
setPower | Power on/off | setPower(1)\n |
setLocoSpeed | Locomotive address, Speed, (Speed Step) | setLocoSpeed(5,100,2)\n |
setLocoDirection | Locomotive address, Locomotive Direction | setLocoDirection(5,1)\n |
setLocoFunction | Locomotive address, Function No, Function On/Off | setLocoFunction(5,1,1)\n |
setTurnout | Accessory address, Turnout Direction | setTurnout(5,1)\n |
getS88 | S88 decoder count | getS88(2)\n |
setLocoConfig | dammy, CV No, CV Value | setLocoConfig(0,1,3)\n |
Parameter meaning
Parameter | Value range | meanings |
---|---|---|
Power on/off | 0-1 | 0: Power Off, 1: Power On |
Locomotive address | 0-65535 | See the following address description. |
Speed | 0-1023 | 1023 means max speed. 0 means stop locomotive. |
Speed step | 0-2 | 0: DCC28 or MM2 14, 1:DCC14, 2:DCC128 |
Function No | 0-28 | Locomotive's function number |
Function Value | 0-1 | Locomotive's function ON(1) or OFF(0) |
Locomotive Direction | 1-2 | 1:FWD, 2:REV |
Accessory address | 0-65535 | See the following address description. |
Turnout Direction | 0-1 | 1:Straight, 0: diverging |
S88 decoder count | 0-32 | Set connected S88 decoder count. |
CV Address | 0 or 49152 | Set 0 (MM2, under developing) or 49152 (DCC). |
CV No | 0-255 | Locomotive's CV number |
CV Value | 0-255 | Locomotive's CV Value |
The following table describes Locomotive's and Accessory's address meaning.
Address type | Address range | Address means | |
---|---|---|---|
Marklin Motorola 2 locomotive | 0x0000-0x07FF | 0(0x0000) - 255(0x00FF) | |
DCC locomotive | 0xC000-0x1FFF | 0(0xC000) - 9999(0xE70F) | |
Marklin Motorola 2 accessory | 0x3000-0x37FF | 1(0x3000) - 320(0x3140) | |
DCC accessory | 0x3800-0x3FFF | 1(0x3800) - 2044(0x3FFC) |
Reply message
Reply message | meanings |
---|---|
100 Ready | Waiting for commands. |
200 Ok | Completely processed. Received correctly. |
300 Command error | Command or Parameter is not correct. |
301 Syntax error | Command is not parsed correctly. Command syntax is not correct. |
302 receive timeout | Command is not received fully in the enough time. |
303 Unknown error | Unknown issue happens. |
Example of communication log
[RECV]200 Ok [SEND] setPing() [RECV]200 Ok [SEND] setPower(1) [RECV]200 Ok [SEND] setLocoSpeed(3,63,0) [RECV]200 Ok [SEND] setLocoSpeed(3,200,0) [RECV]200 Ok [SEND] setLocoSpeed(3,89,0) [RECV]200 Ok [SEND] setLocoSpeed(3,0,0) [RECV]200 Ok [SEND] setLocoFunction(3,0,1) [RECV]200 Ok [SEND] getS88(1) [RECV]200 Ok [SEND] setLocoFunction(3,0,0) [RECV]200 Ok [SEND] getS88(1) [RECV]200 Ok [SEND] setLocoDirection(3,2) [RECV]200 Ok [SEND] setLocoSpeed(3,29,0) [RECV]200 Ok [SEND] setLocoSpeed(3,98,0) [RECV]200 Ok [SEND] setLocoSpeed(3,230,0) [RECV]200 Ok [SEND] setLocoSpeed(3,0,0) [RECV]200 Ok [SEND] setTurnout(12288,0) [RECV]200 Ok [SEND] setTurnout(12290,1) [RECV]200 Ok
desktop_station_s_serial_communication_specification.1425289828.txt.gz · 最終更新: 2015/03/02 18:50 by yaasan