Java on Tracks – die Kind-im-Manne-Session
description
Transcript of Java on Tracks – die Kind-im-Manne-Session
![Page 1: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/1.jpg)
Java on TracksDie Kind-im-Manne-Session
Dirk Weil | GEDOPLAN
![Page 2: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/2.jpg)
Dirk Weil• GEDOPLAN GmbH, Bielefeld• Java EE seit 1998• Konzeption und
Realisierung• Vorträge• Seminare• Veröffentlichungen
2 Java on Tracks – die Kind-im-Manne-Session
![Page 4: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/4.jpg)
V5T11• Visual Train Control
• VT 11.5
http://commons.wikimedia.org/wiki/File:601_Verkehrsmuseum_Nuernberg_11092010_complete_train.JPG
4 Java on Tracks – die Kind-im-Manne-Session
![Page 5: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/5.jpg)
Aufgaben von V5T11• Visualisierung des Gleisplans.• Anzeige von Gleisbelegungen.• Reservieren und Freigeben von Fahrstraßen
inklusive der dazu nötigen Weichen- und Signalstellungen.
• Keine Automatisierung des Fahrbetriebs!
5 Java on Tracks – die Kind-im-Manne-Session
![Page 6: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/6.jpg)
Mehrzugsteuerung Selectrix• Keine getrennten Stromkreise• Loks enthalten
Decoder• erhalten Befehle
über die Gleisspannung– Geschwindigkeit, Richtung– Licht– Horn– …
6 Java on Tracks – die Kind-im-Manne-Session
![Page 7: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/7.jpg)
Mehrzugsteuerung Selectrix• Zentrale
– Gleisspannung– SX-Bus
• Funktionsdecoder– Steuerung von Weichen, Signalen
• Besetztmelder– Überwachung von Gleisen
• Interface– Konverter SX-Bus � serielle Schnittstelle
7 Java on Tracks – die Kind-im-Manne-Session
![Page 9: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/9.jpg)
Wer hat's erfunden?
GEDOPLAN Code Camp 2012
9 Java on Tracks – die Kind-im-Manne-Session
![Page 10: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/10.jpg)
Selectrix Connector• Anbindung des Selectrix-Systems• Bidirektionaler Connector nach JCA 1.6• Outbound: Setzen und Abfragen von einzelnen
Adressen– setValue(12, 0b01001110)
Geschwindigkeitsstufe 14vorwärtsLicht anHorn aus
10 Java on Tracks – die Kind-im-Manne-Session
![Page 11: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/11.jpg)
Selectrix Connector• Inbound: Melden von Zustandsänderungen
– SelectrixMessage(90, 0b00100000)
Gleis 11Gleis 12Gleis 1…
…
11 Java on Tracks – die Kind-im-Manne-Session
![Page 12: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/12.jpg)
Selectrix Connector• Zugriff auf serielle und parallele Schnittstellen
– commapi 2.0: uralt, stagniert– rxtx: GNU-Implementierung, derzeit auf rxtx.qbang.org zu finden
– Java Communications 3.0: Oracle hat den Faden wieder aufgenommen; derzeit keine Windows-Implementierung
12 Java on Tracks – die Kind-im-Manne-Session
![Page 13: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/13.jpg)
Betriebssteuerung• Geschäftslogik
– Objektrepräsentation der Modellbahn (Loks, Weichen, Signale, Gleisabschnitte)
– Objektrepräsentation der MZS (Zentrale, Funktionsdecoder, Besetztmelder)
– Bidirektionale Synchronisation mit der MZS– Initialisierung aus XML-Konfig.-Datei– geplant: Speicherung des Systemzustandes in einer
DB
13 Java on Tracks – die Kind-im-Manne-Session
![Page 14: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/14.jpg)
Betriebssteuerung
Steuerung
LokLok
Funktions-decoder
Besetzt-melder
Weiche
Signal
SelectrixConnector
Mes
sagi
ng/E
vent
s
AP
I (setValue
)
Gleis
14 Java on Tracks – die Kind-im-Manne-Session
![Page 15: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/15.jpg)
Betriebssteuerung• Systemzustand: @ApplicationScoped CDI Bean
@ApplicationScoped
public class SteuerungProducer
{
@Produces @ApplicationScoped
private Steuerung steuerung;
@PostConstruct
private void init()
{
this.steuerung = XmlConverter.fromXml(Steuerung.class, …);
…
}
15 Java on Tracks – die Kind-im-Manne-Session
![Page 16: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/16.jpg)
Betriebssteuerung• Fahrstraßensteuerung
– Reservieren von Fahrstraßen= Stellen benötigter Weichen und Signale
– Kollisionskontrolle
16 Java on Tracks – die Kind-im-Manne-Session
![Page 17: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/17.jpg)
Betriebssteuerung• Serviceangebot für Clients
Steuerung
LokLok
Besetzt-melder
Funktions-decoder
Weiche
Signal
Gleis
Model (JSF)
EJB
(R
emot
e) RE
ST
WS
17 Java on Tracks – die Kind-im-Manne-Session
![Page 18: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/18.jpg)
Stellwerk• Visualisierung des Gleisplans• Stellen von Weichen und Signalen• Reservieren von Fahrstraßen• Anzeige von Gleisbelegungen
18 Java on Tracks – die Kind-im-Manne-Session
![Page 20: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/20.jpg)
Stellwerk• Ansatz im Code Camp
– Gleisplan als SVG– Darstellung der Zustände per Transformation des
Objektmodells hinter der Grafik– Listener-Registrierung auf Grafikelementen für User-
Aktionen
• Vielversprechend• Aus Zeitgründen nicht realisiert
20 Java on Tracks – die Kind-im-Manne-Session
![Page 21: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/21.jpg)
Remote Control• Mobile Variante eines
"Walk Around Controllers"– Auswahl einer Lok– Steuerung von
Geschwindigkeit, Licht etc.
21 Java on Tracks – die Kind-im-Manne-Session
![Page 24: Java on Tracks – die Kind-im-Manne-Session](https://reader034.fdocument.pub/reader034/viewer/2022051411/5479b0985806b57b048b4704/html5/thumbnails/24.jpg)
… und aus dem "echten Leben"• Steuerung eines
fahrerlosenTransportsystems(FTS)
Java on Tracks – die Kind-im-Manne-Session24