Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

23
[email protected] Java on Tracks Die Kind-im-Manne-Session Dirk Weil | GEDOPLAN 1 Java on Tracks – die Kind-im-Manne-Session

description

Java Vortrag Dirk Weil auf der JAX 2012 "Java on Tracks – Die Kind-im-Manne-Session", IPS Stand JAX 2012

Transcript of Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Page 1: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

[email protected]

Java on TracksDie Kind-im-Manne-Session

Dirk Weil | GEDOPLAN

1 Java on Tracks – die Kind-im-Manne-Session

Page 2: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Dirk Weil

• GEDOPLAN GmbH, Bielefeld• Java EE seit 1998• Konzeption und

[email protected]

• Konzeption undRealisierung

• Vorträge• Seminare• Veröffentlichungen

2 Java on Tracks – die Kind-im-Manne-Session

Page 3: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Die Ausgangslage

Job

[email protected] on Tracks – die Kind-im-Manne-Session3

Keller

Page 4: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

V5T11

• Visual Train Control

• VT 11.5

[email protected]

• 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: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Aufgaben von V5T11

• Visualisierung des Gleisplans.• Anzeige von Gleisbelegungen.• Reservieren und Freigeben von

[email protected]

• 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

Page 6: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Mehrzugsteuerung Selectrix

• Keine getrennten Stromkreise• Loks enthalten

Decoder

[email protected]

Decoder• erhalten Befehle

über die Gleisspannung– Geschwindigkeit, Richtung– Licht– Horn– …

Java on Tracks – die Kind-im-Manne-Session6

Page 7: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Mehrzugsteuerung Selectrix

• Zentrale– Gleisspannung– SX-Bus

[email protected]

• Funktionsdecoder– Steuerung von Weichen, Signalen

• Besetztmelder– Überwachung von Gleisen

• Interface– Konverter SX-Bus � serielle Schnittstelle

Java on Tracks – die Kind-im-Manne-Session7

Page 8: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Systemaufbau

[email protected] on Tracks – die Kind-im-Manne-Session8

Page 9: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Wer hat's erfunden?

[email protected]

GEDOPLAN Code Camp 2012

9 Java on Tracks – die Kind-im-Manne-Session

Page 10: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Selectrix Connector

• Anbindung des Selectrix-Systems• Bidirektionaler Connector nach JCA 1.6• Outbound: Setzen und Abfragen von

[email protected]

• Outbound: Setzen und Abfragen von einzelnen Adressen– setValue(12, 0b01001110)

Java on Tracks – die Kind-im-Manne-Session10

Geschwindigkeitsstufe 14vorwärtsLicht anHorn aus

Page 11: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Selectrix Connector

• Inbound: Melden von Zustandsänderungen– SelectrixMessage(90, 0b00100000)

[email protected]

– SelectrixMessage(90, 0b00100000)

Java on Tracks – die Kind-im-Manne-Session11

Gleis 11Gleis 12Gleis 1…

Page 12: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Selectrix Connector

• Zugriff auf serielle und parallele Schnittstellen– commapi 2.0: uralt, stagniert

[email protected]

– 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

Page 13: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Betriebssteuerung

• Geschäftslogik– Objektrepräsentation der Modellbahn

(Loks, Weichen, Signale, Gleisabschnitte)

[email protected]

(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

Page 14: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

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

Page 15: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

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, …);

}

Page 16: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Betriebssteuerung

• Fahrstraßensteuerung– Reservieren von Fahrstraßen

= Stellen benötigter Weichen und Signale

[email protected]

= Stellen benötigter Weichen und Signale– Kollisionskontrolle

Java on Tracks – die Kind-im-Manne-Session16

Page 17: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

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

Page 18: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Stellwerk

• Visualisierung des Gleisplans• Stellen von Weichen und Signalen• Reservieren von Fahrstraßen

[email protected]

• Reservieren von Fahrstraßen• Anzeige von Gleisbelegungen

Java on Tracks – die Kind-im-Manne-Session18

Page 19: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Stellwerk

[email protected] on Tracks – die Kind-im-Manne-Session19

Page 20: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Stellwerk

• Ansatz im Code Camp– Gleisplan als SVG– Darstellung der Zustände per Transfor-

[email protected]

– 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

Page 21: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Remote Control

• Mobile Variante eines"Walk Around Controllers"– Auswahl einer Lok

[email protected]

– Auswahl einer Lok– Steuerung von

Geschwindigkeit, Licht etc.

Java on Tracks – die Kind-im-Manne-Session21

Page 22: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

Demo

[email protected] on Tracks – die Kind-im-Manne-Session22

Page 23: Vortrag Dirk Weil Java on Tracks – Die Kind-im-Manne-Session auf der JAX 2012

[email protected]@gedoplan.de23 Java on Tracks – die Kind-im-Manne-Session