-
Notifications
You must be signed in to change notification settings - Fork 1
Train Module
Daniel Türk edited this page Mar 6, 2018
·
7 revisions
Use an address of bus 0 for the decoder:
TrainModule trainModule = device.getTrainModule((byte) 3);
// receive state changes of the train
trainModule.addTrainDataListener(new TrainDataListener() {
@Override
public void drivingLevelChanged(int level) {
out("drivingLevelChanged " + level + " (" + trainAddress + ")");
}
@Override
public void drivingDirectionChanged(TrainModule.DRIVING_DIRECTION direction) {
out("drivingDirectionChanged " + direction + " (" + trainAddress + ")");
}
@Override
public void functionStateChanged(byte address, int functionBit, boolean state) {
out("functionStateChanged " + address + "," + functionBit + "," + state + "(" + trainAddress + ")");
}
@Override
public void lightStateChanged(boolean on) {
out("lightStateChanged " + on + " (" + trainAddress + ")");
}
@Override
public void hornStateChanged(boolean on) {
out("hornStateChanged " + on + " (" + trainAddress + ")");
}
});
// control the train
trainModule.setLight(true);
trainModule.setDirection(TrainModule.DRIVING_DIRECTION.FORWARD);
Thread.sleep(1000L);
trainModule.setDrivingLevel(4);
Thread.sleep(2000L);
trainModule.setDrivingLevel(0);
trainModule.setHorn(true);
Thread.sleep(1000L);
trainModule.setHorn(false);
trainModule.setDirection(TrainModule.DRIVING_DIRECTION.BACKWARD);
trainModule.setDrivingLevel(4);
Thread.sleep(2000L);
trainModule.setDrivingLevel(0);
Thread.sleep(1000L);
trainModule.setLight(false);TODO:
- multi addresses