Upload
javatim
View
1.283
Download
6
Embed Size (px)
DESCRIPTION
Java Vortrag Dirk Weil auf der JAX 2012 "Java on Tracks – Die Kind-im-Manne-Session", IPS Stand JAX 2012
Citation preview
Java on TracksDie Kind-im-Manne-Session
Dirk Weil | GEDOPLAN
1 Java on Tracks – die Kind-im-Manne-Session
Dirk Weil
• GEDOPLAN GmbH, Bielefeld• Java EE seit 1998• Konzeption und
• Konzeption undRealisierung
• Vorträge• Seminare• Veröffentlichungen
2 Java on Tracks – die Kind-im-Manne-Session
V5T11
• Visual Train Control
• VT 11.5
• 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
Aufgaben von V5T11
• Visualisierung des Gleisplans.• Anzeige von Gleisbelegungen.• Reservieren und Freigeben von
• Reservieren und Freigeben von Fahrstraßen inklusive der dazu nötigen Weichen- und Signalstellungen.
• Keine Automatisierung des Fahrbetriebs!
Java on Tracks – die Kind-im-Manne-Session5
Mehrzugsteuerung Selectrix
• Keine getrennten Stromkreise• Loks enthalten
Decoder
Decoder• erhalten Befehle
über die Gleisspannung– Geschwindigkeit, Richtung– Licht– Horn– …
Java on Tracks – die Kind-im-Manne-Session6
Mehrzugsteuerung Selectrix
• Zentrale– Gleisspannung– SX-Bus
• Funktionsdecoder– Steuerung von Weichen, Signalen
• Besetztmelder– Überwachung von Gleisen
• Interface– Konverter SX-Bus � serielle Schnittstelle
Java on Tracks – die Kind-im-Manne-Session7
Systemaufbau
[email protected] on Tracks – die Kind-im-Manne-Session8
Wer hat's erfunden?
GEDOPLAN Code Camp 2012
9 Java on Tracks – die Kind-im-Manne-Session
Selectrix Connector
• Anbindung des Selectrix-Systems• Bidirektionaler Connector nach JCA 1.6• Outbound: Setzen und Abfragen von
• Outbound: Setzen und Abfragen von einzelnen Adressen– setValue(12, 0b01001110)
Java on Tracks – die Kind-im-Manne-Session10
Geschwindigkeitsstufe 14vorwärtsLicht anHorn aus
Selectrix Connector
• Inbound: Melden von Zustandsänderungen– SelectrixMessage(90, 0b00100000)
– SelectrixMessage(90, 0b00100000)
Java on Tracks – die Kind-im-Manne-Session11
Gleis 11Gleis 12Gleis 1…
…
Selectrix Connector
• Zugriff auf serielle und parallele Schnittstellen– commapi 2.0: uralt, stagniert
– commapi 2.0: uralt, stagniert– rxtx: GNU-Implementierung, derzeit auf cloudhopper.com zu finden
– Java Communications 3.0: Oracle hat den Faden wieder aufgenommen; derzeit keine Windows-Implementierung
Java on Tracks – die Kind-im-Manne-Session12
Betriebssteuerung
• Geschäftslogik– Objektrepräsentation der Modellbahn
(Loks, Weichen, Signale, Gleisabschnitte)
(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 DBJava on Tracks – die Kind-im-Manne-Session13
Betriebssteuerung
Steuerung
SelectrixConnector
Mes
sagi
ng/E
vent
s
)
[email protected] on Tracks – die Kind-im-Manne-Session14
LokLok
Funktions-decoder
Besetzt-melder
Weiche
Signal
Mes
sagi
ng/E
vent
s
AP
I (setValue
)
Gleis
Betriebssteuerung
• Systemzustand: @ApplicationScoped CDI Bean@ApplicationScoped
public class SteuerungProducer
[email protected] on Tracks – die Kind-im-Manne-Session15
public class SteuerungProducer
{
@Produces @ApplicationScoped
private Steuerung steuerung;
@PostConstruct
private void init()
{
this.steuerung = XmlConverter.fromXml(Steuerung.class, …);
…
}
Betriebssteuerung
• Fahrstraßensteuerung– Reservieren von Fahrstraßen
= Stellen benötigter Weichen und Signale
= Stellen benötigter Weichen und Signale– Kollisionskontrolle
Java on Tracks – die Kind-im-Manne-Session16
Betriebssteuerung
• Serviceangebot für Clients
[email protected] on Tracks – die Kind-im-Manne-Session17
Steuerung
LokLok
Besetzt-melder
Funktions-decoder
Weiche
Signal
Gleis
Model (JSF)
EJB
(R
emot
e) RE
ST
WS
Stellwerk
• Visualisierung des Gleisplans• Stellen von Weichen und Signalen• Reservieren von Fahrstraßen
• Reservieren von Fahrstraßen• Anzeige von Gleisbelegungen
Java on Tracks – die Kind-im-Manne-Session18
Stellwerk
[email protected] on Tracks – die Kind-im-Manne-Session19
Stellwerk
• Ansatz im Code Camp– Gleisplan als SVG– Darstellung der Zustände per Transfor-
– Darstellung der Zustände per Transfor-mation des Objektmodells hinter der Grafik
– Listener-Registrierung auf Grafikelementen für User-Aktionen
• Vielversprechend• Aus Zeitgründen nicht realisiert
Java on Tracks – die Kind-im-Manne-Session20
Remote Control
• Mobile Variante eines"Walk Around Controllers"– Auswahl einer Lok
– Auswahl einer Lok– Steuerung von
Geschwindigkeit, Licht etc.
Java on Tracks – die Kind-im-Manne-Session21
Demo
[email protected] on Tracks – die Kind-im-Manne-Session22
[email protected]@gedoplan.de23 Java on Tracks – die Kind-im-Manne-Session