Trainbrains SDK to biblioteka, która pozwoli Ci tworzyć własne rozwiązania z wykorzystaniem gotowe modułów do sterowania urządzeniami występującymi na makietach kolejowych.
Można ją pobrać z repozytorium trainbrains na gitlab.com lub zaimportować do projektu w VisualCode z dodatkiem platformIO
Sterowanie semaforami
Przykładowy fragment kodu do zmiany sygnału na semaforze:
C++
TrainbrainsModulesRef modules = new TrainbrainsModules();
LightSignalRef signalC = new LightSignal(12, "Signal C");
modules->init();
modules->setSignalAspect(signalC, SignalAspectS1);
Przekładanie zwrotnic
Przykładowy fragment kodu do przekładania zwrotnicy:
TrainbrainsModulesRef modules = new TrainbrainsModules();
PointRef point1 = new Point(20, "Point 1");
modules->init();
modules->switchPointPosition(point1, PointPosition::POSITION_PLUS);
Reagowanie na zajęcie toru
Przykładowy fragment kodu do zmiany sygnały na semaforze pod wpływem zajęcia odcinka toru:
//once
modules->init();
modules->use(track1);
track1->whenTrackOccupied([](TrackUnoccupancyDetectorRef detector){ modules->setSignalAspect(signalA, PKPSignalAspect::Stop); });
track1->whenTrackReleased([](TrackUnoccupancyDetectorRef detector){ modules->setSignalAspect(signalA, PKPSignalAspect::Clear); });
//in loop
modules->checkUsedObjectsState();
Dokumentacja
Aktualną dokumentację możesz pobrać tutaj