Skip to content

Documentation

Alessandro Felicetti edited this page Apr 8, 2023 · 16 revisions

Functions

Base sketch

Please note that bridge.run() has to be called really fast, please do not use big delay() inside your loop.

#include <TSBridge.h>
TSBridge bridge;
void setup() {
  bridge.begin();
}
void loop(){
  bridge.run();
}

Base sketch - custom serial port

Useful when using other serial ports or adapters. Always use 115200 baud rate.

#include <TSBridge.h>
TSBridge bridge;
void setup() {
  Serial.begin(115200);
  bridge.begin(&Serial);
}
void loop(){
  bridge.run();
}

Get and print current train speed

#include <TSBridge.h>
TSBridge bridge;
float speed;

void setup() {
  Serial.begin();
}
void loop(){
  bridge.run();
  speed = bridge.kph;
}

Control train speed, brakes and reverser

Warning! Due to the way the library has been built, all available controls will be sent to the game. Therefore it is necessary at least to initialize even those that are not used, otherwise they will have a value of 0. For example, pantograph needs to be set 1, otherwise train won't move.

#include <TSBridge.h>
TSBridge bridge;
int reverserBW = 4;
int reverserFW = 5;
int io_throttle = A1;
int io_brake = A0;

void setup() {
  Serial.begin();
  pinMode(reverserFW, INPUT_PULLUP);
  pinMode(reverserBW, INPUT_PULLUP);
}
void loop(){
  bridge.run();
  // Throttle and brake
  int temp = analogRead(io_throttle);
  bridge.setThrottle((float)map(temp, 0, 1024, 0, 1000));
  temp = analogRead(io_brake);
  bridge.setBrakes((float)map(temp, 0, 1024, 0, 1000));
  // Reverser
  if (digitalRead(reverserFW) == LOW) {
    bridge.setReverser(1.0);
  }
  if (digitalRead(reverserBW) == LOW) {
    bridge.setReverser(-1.0);
  }
  if ((digitalRead(reverserFW) == HIGH) && (digitalRead(reverserBW) == HIGH)) {
    bridge.setReverser(0.0);
  }
}

Available properties

Name Return Notes
kph float Train speed in KPH or MPH
ammeter float Train current consumption
vigilAlarm float Vigi alarm
AWS float AWS alarm
PZB40 float PZB 40
PZB55 float PZB 55
PZB70 float PZB 70
PZB85 float PZB 85
PZB500 float PZB 500
PZB1000 float PZB 1000
PZBWarn float PZB Warning

Available commands

Name Value Notes
setThrottle float Control the train throttle 0-1000
setBrakes float Control the train brake 0-1000
setReverser float Control the train reverser -1/0/1
setHorn int Activate or deactivate horn
setSander int Activate or deactivate sander
setPantograph int Activate or deactivate pantographs
setStartup int Activate or deactivate startup
setLights int Activate or deactivate lights
setVigilReset int Reset vigil alarms
setAwsReset int Reset AWS alarms
setCMD40 int PZB cmd40
setCMDFree int PZB cmdFree
setCMDW int PZB Cmd_Wachsam
setEmergency int Activate or deactivate emergency brakes