<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to ProjectBuild</title><link>https://sourceforge.net/p/mrw/wiki/ProjectBuild/</link><description>Recent changes to ProjectBuild</description><atom:link href="https://sourceforge.net/p/mrw/wiki/ProjectBuild/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 23 Jan 2014 12:32:27 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/mrw/wiki/ProjectBuild/feed" rel="self" type="application/rss+xml"/><item><title>ProjectBuild modified by Steffen A. Mork</title><link>https://sourceforge.net/p/mrw/wiki/ProjectBuild/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -16,7 +16,7 @@

 Die Installation und Konfiguration von Eclipse wird weiter unten beschrieben. Zuerst empfiehlt es sich, das Projekt an beliebiger Stelle auszuchecken: 

-    svn co https://mrw.svn.sourceforge.net/svnroot/mrw/trunk mrw
+    svn co http://svn.code.sf.net/p/mrw/code/trunk mrw

 ## ATmega
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Steffen A. Mork</dc:creator><pubDate>Thu, 23 Jan 2014 12:32:27 -0000</pubDate><guid>https://sourceforge.net1530cb901400b8b00c31402a68ea09ed0fd99332</guid></item><item><title>ProjectBuild modified by Steffen A. Mork</title><link>https://sourceforge.net/p/mrw/wiki/ProjectBuild/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -159,7 +159,7 @@

 Durch Starten der Ant-Targets _package_ im selben Projekt und im Projekt _Steuerung_ werden die Java-Klassen gepackt und in das Projekt _Stellwerk_ kopiert. Durch Öffnen der `plugin.xml` im Projekt _Stellwerk_ kann die Applikation gestartet werden. Das Stellwerk zeigt noch nicht das Gleisbild an. Das muss durch Umkonfigurieren im _Run As Dialog_ geschehen. Dort muss das _Working directory_ auf den Wert _$(workbench_loc)_ gesetzt werden. Die Gleisbildkoordinaten werden in einem Verzeichnis des MRW-Hauptverzeichnis gesucht, das wie der Modellname benannt ist. 

-![source:/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg](/apps/trac/mrw/browser/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg?format=raw)
+![source:/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg](http://svn.code.sf.net/p/mrw/code/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg?format=raw)

 Dieser Vorgang muss im Stand-Alone-Build nicht durchgeführt werden, da dort während des Builds die Gleisbildkoordinaten in die Laufzeitumgebung mit kopiert werden. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Steffen A. Mork</dc:creator><pubDate>Thu, 23 Jan 2014 12:30:53 -0000</pubDate><guid>https://sourceforge.netc9e613e29220c64fcce7a2cf3cdd7c0df79410bb</guid></item><item><title>ProjectBuild modified by Steffen A. Mork</title><link>https://sourceforge.net/p/mrw/wiki/ProjectBuild/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -43,17 +43,11 @@

 Die Ports müssen den Gegebenheiten angepasst werden. Als `default_programmer` kommen folgende Werte infrage: 

-Interface
-Wert 
-
-STK 500v2
-stk500v2 
-
-JTAG
-jtag1 
-
-AVR ISP
-avrispmkii 
+Interface|Wert 
+---------|----
+STK 500v2|stk500v2 
+JTAG|jtag1 
+AVR ISP|avrispmkii 

 Um die Software mittels _avrdude_ zu flashen, gibt es drei Make-Targets: 

@@ -96,21 +90,11 @@

 Die oAW-Tools müssen zur Xtext-Version passen. Hier gibt es folgende Reihenfolge: 

-**Version oAW-Tools**
-**Xtext-Version**
-**Eclipse Version**
-
-5.0.x
-0.7.x
-Galileo 
-
-5.1.x
-1.0.x
-Helios 
-
-5.2.x
-2.x.y
-Indigo und folgende 
+Version oAW-Tools|Xtext-Version|Eclipse Version
+-----------------|-------------|---------------
+5.0.x|0.7.x|Galileo 
+5.1.x|1.0.x|Helios 
+5.2.x|2.x.y|Indigo und folgende 

 Nach der Installation von Plugins muss Eclipse neu gestartet werden. 

@@ -131,17 +115,11 @@

 Folgende Properties müssen korrekt konfiguriert sein: 

-**Property**
-**Bedeutung**
-
-_${eclipse.home}_
-Basisverzeichnis der Eclipse-SDK-Installation mit unten aufgelisteten Plugins 
-
-_${os.tempdir}_
-Ein beliebiges Zwischenverzeichnis 
-
-_${mrw.home}_
-Das Basisverzeichnis in dem das RCP-Runtime-Binary-Paket ausgepackt wurde. 
+Property|Bedeutung
+--------|---------
+_${eclipse.home}_|Basisverzeichnis der Eclipse-SDK-Installation mit unten aufgelisteten Plugins 
+_${os.tempdir}_|Ein beliebiges Zwischenverzeichnis 
+_${mrw.home}_|Das Basisverzeichnis in dem das RCP-Runtime-Binary-Paket ausgepackt wurde. 

 ### Build-Vorgang mit Ant im Terminal

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Steffen A. Mork</dc:creator><pubDate>Thu, 23 Jan 2014 12:03:57 -0000</pubDate><guid>https://sourceforge.nete1e94920ae1190fb47f8f2c70b24b9c13cec12ed</guid></item><item><title>ProjectBuild modified by Dave Brondsema</title><link>https://sourceforge.net/p/mrw/wiki/ProjectBuild/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="erstellung-des-projektes"&gt;Erstellung des Projektes&lt;/h1&gt;
&lt;p&gt;Alle genannten Directory-Angaben beziehen sich, soweit nicht anders erwähnt, auf das Hauptverzeichnis des Gesamtprojektes. Mit &lt;em&gt;$HOME&lt;/em&gt; ist unter Unix, Linux oder Mac OS X das Home-Verzeichnis des Benutzers gemeint. Unter Windows ist es das Hauptverzeichnis des eigenen Profils. Dieses findet sich in der Regel unter &lt;em&gt;C:\Dokumente und Einstellungen&lt;/em&gt;. Wird die Schreibweise &lt;em&gt;${variable}&lt;/em&gt; verwendet, wird auf ein Property aus einer Properties-Datei bezogen. &lt;/p&gt;
&lt;p&gt;Damit man das Projekt erstellen kann, sind verschiedene Software-Pakete nötig. Unter Ubuntu müssen folgende Pakete installiert sein: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;subversion &lt;/li&gt;
&lt;li&gt;gcc-avr avr-libc avrdude &lt;/li&gt;
&lt;li&gt;gcc g++ make &lt;/li&gt;
&lt;li&gt;openjdk-7-jdk librxtx-java ant &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unter Windows müssen folgende Pakete installiert sein: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Subversion &lt;/li&gt;
&lt;li&gt;JDK 7.0 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Installation und Konfiguration von Eclipse wird weiter unten beschrieben. Zuerst empfiehlt es sich, das Projekt an beliebiger Stelle auszuchecken: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;svn&lt;/span&gt; &lt;span class="n"&gt;co&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//mrw.svn.sourceforge.net/svnroot/mrw/trunk mrw&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="atmega"&gt;ATmega&lt;/h2&gt;
&lt;p&gt;Die Programmierung der Mikrocontroller besteht aus drei Teilen: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bootloader der ATmega-Mikrocontroller (für ATmega) &lt;/li&gt;
&lt;li&gt;Die Firmware selbst (für ATmega) &lt;/li&gt;
&lt;li&gt;Tools, um die Firmware via CAN-Bus zu flashen (PC-seitig) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der Bootloader kann über CAN-Bus eine neue Firmware "entgegennehmen" und flashen. Er muss mit einem STK500 oder AVR-ISP mittels &lt;em&gt;avrdude&lt;/em&gt; in den ATmega geflasht werden. Es empfiehlt sich, den Bootloader vor dem Verbauen zu flashen. Dies muss nur einmalig geschehen. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;mc&lt;/span&gt;
&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="n"&gt;clean&lt;/span&gt; &lt;span class="n"&gt;depend&lt;/span&gt;
&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nach diesem Build-Vorgang sind sowohl der Bootloader, als auch dir Firmware kompiliert. Der Bootloader muss auf den ATmega geflasht werden, bevor die Firmware programmiert werden kann. Das geschieht mit SPI oder JTAG. Dafür gibt es z.B. den STK500 oder den AVR-ISP. Mit dem Tool &lt;em&gt;avrdude&lt;/em&gt; kann der Bootloader über die entsprechenden Flashergeräte programmiert werden. Um z.B. mit einem STK500v2 mittels avrdude unter Linux programmieren zu können, muss die Datei &lt;em&gt;.avrduderc&lt;/em&gt; im Homeverzeichnis angelegt werden: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;default_serial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/dev/ttyUSB1&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;default_parallel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/dev/ttyUSB1&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;default_programmer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;stk500v2&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Die Ports müssen den Gegebenheiten angepasst werden. Als &lt;code&gt;default_programmer&lt;/code&gt; kommen folgende Werte infrage: &lt;/p&gt;
&lt;p&gt;Interface&lt;br /&gt;
Wert &lt;/p&gt;
&lt;p&gt;STK 500v2&lt;br /&gt;
stk500v2 &lt;/p&gt;
&lt;p&gt;JTAG&lt;br /&gt;
jtag1 &lt;/p&gt;
&lt;p&gt;AVR ISP&lt;br /&gt;
avrispmkii &lt;/p&gt;
&lt;p&gt;Um die Software mittels &lt;em&gt;avrdude&lt;/em&gt; zu flashen, gibt es drei Make-Targets: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;make install_gateway&lt;/code&gt; installiert die Firmware für ein CAN-Gateway samt Fuses &lt;/li&gt;
&lt;li&gt;&lt;code&gt;make install_bootloader&lt;/code&gt; installiert den CAN-Bootloader in einen CAN-Knoten samt Fuses und Locks. JTAG wird dabei abgeschaltet. &lt;/li&gt;
&lt;li&gt;&lt;code&gt;make install_bootloader_jtag&lt;/code&gt; installiert den CAN-Bootloader in einen CAN-Knoten samt Fuses und Locks. JTAG wird dabei eingeschaltet. Somit lässt sich so ein CAN-Knoten debuggen. &lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="canprog-tools"&gt;canprog Tools&lt;/h2&gt;
&lt;p&gt;Nachdem die Bootloader geflasht sind, aber noch keine Firmware enthalten ist, ist die grüne LED dauerhaft eingeschaltet und die gelbe blinkt. Die LEDs beschreiben den Betriebszustand. Welcher Betriebszustand aktiv ist, kann auf &lt;a class="" href="/p/mrw/wiki/LedAnzeige/"&gt;dieser Seite&lt;/a&gt; nachgelesen werden. PC-seitig sind dafür auch Tools nötig, die entsprechend kompiliert werden müssen und nur unter Linux funktionieren. Dementsprechend müssen diese erst kompiliert werden. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;canprog&lt;/span&gt;
&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="n"&gt;clean&lt;/span&gt; &lt;span class="n"&gt;depend&lt;/span&gt;
&lt;span class="n"&gt;make&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Um die Firmware auf den CAN-Knoten zu übertragen, muss eine Verbindung über CAN-Bus hergestellt sein. Eine bestehende Verbindung kann mit folgendem Kommando überprüft werden: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nx"&gt;.&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;ping&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;serial_device&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Das &lt;em&gt;serial_device&lt;/em&gt; ist z.B. unter Linux &lt;em&gt;/dev/ttyS0&lt;/em&gt; oder &lt;em&gt;/dev/ttyUSB0&lt;/em&gt;, falls z.B. ein FT232-USB-auf-serial-Adapter eingesetzt wird. Kommen Meldungen zurück, funktioniert die Verbindung. Soll eine neue Firmware geflasht werden, muss folgendes aufgerufen werden: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nx"&gt;.&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;canproc&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;serial_device&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;..&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;mc&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;firmware.hex&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Infolgedessen laufen sehr viele hexadezimale Zahlen über den Bildschirm. &lt;/p&gt;
&lt;h2 id="stellwerks-software"&gt;Stellwerks-Software&lt;/h2&gt;
&lt;p&gt;Die Stellwerks-Software kann entweder aus dem Eclipse-SDK gestartet werden, oder Stand-Alone über das RCP-Runtime Binary. Beides muss nur bei &lt;a href="http://archive.eclipse.org/eclipse/downloads/" rel="nofollow"&gt;http://archive.eclipse.org/eclipse/downloads/&lt;/a&gt; heruntergeladen werden. Danach müssen die Plugins für das Eclipse SDK installiert werden und diverse Property-Dateien im Home-Verzeichnis konfiguriert werden. &lt;/p&gt;
&lt;h3 id="installation-des-eclipse-sdk"&gt;Installation des Eclipse-SDK&lt;/h3&gt;
&lt;p&gt;Es empfiehlt sich die &lt;a class="" href="http://www.itemis.de" rel="nofollow"&gt;itemis&lt;/a&gt;-&lt;a class="" href="http://download.itemis.com/distros/" rel="nofollow"&gt;Distribution mit Xtext&lt;/a&gt;, weil hier die wichtigsten Plugins bereits enthalten sind. Beim Start fragt Eclipse nach dem Workspace. Hier wird die Arbeitskopie der Quellen angegeben. Danach müssen die Projekte mit &lt;em&gt;File&lt;/em&gt; -&amp;gt; &lt;em&gt;Import...&lt;/em&gt; -&amp;gt; &lt;em&gt;General -&amp;gt; Existing Projects into Workspace&lt;/em&gt; importiert werden. Danach müssen diverse Update-Sites über &lt;em&gt;Help&lt;/em&gt; -&amp;gt; &lt;em&gt;Install new Software...&lt;/em&gt; -&amp;gt; &lt;em&gt;Add&lt;/em&gt; hinzugefügt werden: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://eisenbahnsteuerung.org/updates/" rel="nofollow"&gt;http://eisenbahnsteuerung.org/updates/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://oaw.sourceforge.net/updates/"&gt;http://oaw.sourceforge.net/updates/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://findbugs.cs.umd.edu/eclipse" rel="nofollow"&gt;http://findbugs.cs.umd.edu/eclipse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die oAW-Tools müssen zur Xtext-Version passen. Hier gibt es folgende Reihenfolge: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Version oAW-Tools&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Xtext-Version&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Eclipse Version&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;5.0.x&lt;br /&gt;
0.7.x&lt;br /&gt;
Galileo &lt;/p&gt;
&lt;p&gt;5.1.x&lt;br /&gt;
1.0.x&lt;br /&gt;
Helios &lt;/p&gt;
&lt;p&gt;5.2.x&lt;br /&gt;
2.x.y&lt;br /&gt;
Indigo und folgende &lt;/p&gt;
&lt;p&gt;Nach der Installation von Plugins muss Eclipse neu gestartet werden. &lt;/p&gt;
&lt;h3 id="lokale-konfiguration"&gt;Lokale Konfiguration&lt;/h3&gt;
&lt;p&gt;Danach sollten im Homeverzeichnis zwei Properties-Dateien angelegt werden: &lt;em&gt;$HOME/.xtext.properties&lt;/em&gt; für die Build-Umgebung und &lt;em&gt;$HOME/.comm.properties&lt;/em&gt; für die Kommunikation mit dem CAN-Gateway. &lt;/p&gt;
&lt;p&gt;Beispiel für &lt;em&gt;$HOME/.xtext.properties&lt;/em&gt;: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;eclipse.home=/opt/oaw4/eclipse
eclipse.home.plugins=&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;eclipse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/plugins

os.tempdir=/tmp

mrw.home=/opt/mrw/
mrw.deploy=&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/eclipse
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Folgende Properties müssen korrekt konfiguriert sein: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Property&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Bedeutung&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;${eclipse.home}&lt;/em&gt;&lt;br /&gt;
Basisverzeichnis der Eclipse-SDK-Installation mit unten aufgelisteten Plugins &lt;/p&gt;
&lt;p&gt;&lt;em&gt;${os.tempdir}&lt;/em&gt;&lt;br /&gt;
Ein beliebiges Zwischenverzeichnis &lt;/p&gt;
&lt;p&gt;&lt;em&gt;${mrw.home}&lt;/em&gt;&lt;br /&gt;
Das Basisverzeichnis in dem das RCP-Runtime-Binary-Paket ausgepackt wurde. &lt;/p&gt;
&lt;h3 id="build-vorgang-mit-ant-im-terminal"&gt;Build-Vorgang mit Ant im Terminal&lt;/h3&gt;
&lt;p&gt;Der Build mit Ant setzt eine funktionstüchtige Installation von Eclipse voraus. Eclipse muss für den Build mit Ant nicht gestartet sein. &lt;/p&gt;
&lt;p&gt;Zuerst muss die Steuerungs-Software kompiliert werden: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;Steuerung&lt;/span&gt;
&lt;span class="n"&gt;ant&lt;/span&gt; &lt;span class="n"&gt;clean&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt;
&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="p"&gt;..&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Danach muss die Datenstruktur speziell für die Anlage generiert und kompiliert werden. Als Beispiel wird &lt;em&gt;&lt;span&gt;&lt;span&gt;[AnlageZwei]&lt;/span&gt;&lt;/span&gt;&lt;/em&gt; herangezogen. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;AnlageZwei&lt;/span&gt;
&lt;span class="n"&gt;ant&lt;/span&gt; &lt;span class="n"&gt;clean&lt;/span&gt; &lt;span class="n"&gt;generate&lt;/span&gt; &lt;span class="n"&gt;package&lt;/span&gt;
&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="p"&gt;..&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Zum Schluss wird die Stellwerks-Software kompiliert und deployed: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;Stellwerk&lt;/span&gt;
&lt;span class="n"&gt;ant&lt;/span&gt; &lt;span class="n"&gt;clean&lt;/span&gt; &lt;span class="n"&gt;deploy&lt;/span&gt;
&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="p"&gt;..&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Danach ist im Verzeichnis &lt;em&gt;${mrw.deploy}&lt;/em&gt; das Stellwerk deployed und betriebsfertig. &lt;/p&gt;
&lt;h3 id="build-vorgang-in-eclipse"&gt;Build-Vorgang in Eclipse&lt;/h3&gt;
&lt;p&gt;Nach erfolgreich importiertem Workspace müssen zuerst die Java-Klassen aus dem Modell generiert werden. Dazu muss ein Ant-View hinzugefügt werden: &lt;em&gt;Window&lt;/em&gt; -&amp;gt; &lt;em&gt;Show View&lt;/em&gt; -&amp;gt; &lt;em&gt;Ant&lt;/em&gt;. Hier sollten alle &lt;em&gt;build.xml&lt;/em&gt; hinzugefügt werden. Je nach gewünschter Anlage müssen in folgender Reihenfolge die Ant-Targets gestartet werden: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Steuerung package &lt;/li&gt;
&lt;li&gt;Anlage&amp;lt;xy&amp;gt; generate (das kann auch durch den entsprechenden Start des Workflows geschehen) &lt;/li&gt;
&lt;li&gt;Anlage&amp;lt;xy&amp;gt; package &lt;/li&gt;
&lt;li&gt;Stellwerk package (falls RCP-Runtime verwendet wird) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Durch Starten der Ant-Targets &lt;em&gt;package&lt;/em&gt; im selben Projekt und im Projekt &lt;em&gt;Steuerung&lt;/em&gt; werden die Java-Klassen gepackt und in das Projekt &lt;em&gt;Stellwerk&lt;/em&gt; kopiert. Durch Öffnen der &lt;code&gt;plugin.xml&lt;/code&gt; im Projekt &lt;em&gt;Stellwerk&lt;/em&gt; kann die Applikation gestartet werden. Das Stellwerk zeigt noch nicht das Gleisbild an. Das muss durch Umkonfigurieren im &lt;em&gt;Run As Dialog&lt;/em&gt; geschehen. Dort muss das &lt;em&gt;Working directory&lt;/em&gt; auf den Wert &lt;em&gt;$(workbench_loc)&lt;/em&gt; gesetzt werden. Die Gleisbildkoordinaten werden in einem Verzeichnis des MRW-Hauptverzeichnis gesucht, das wie der Modellname benannt ist. &lt;/p&gt;
&lt;p&gt;&lt;img alt="source:/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg" src="/apps/trac/mrw/browser/trunk/Bilder/Trac/ProjectBuild/EclipseRunAsDialog.jpg?format=raw" /&gt;&lt;/p&gt;
&lt;p&gt;Dieser Vorgang muss im Stand-Alone-Build nicht durchgeführt werden, da dort während des Builds die Gleisbildkoordinaten in die Laufzeitumgebung mit kopiert werden. &lt;/p&gt;
&lt;h3 id="rs232-kommunikation-unter-java"&gt;RS232-Kommunikation unter Java&lt;/h3&gt;
&lt;p&gt;Um über RS232 unter Java kommunizieren zu können muss das Paket &lt;em&gt;rxtx&lt;/em&gt; installiert sein. Unter Ubuntu kann das erfolgen, indem man das Paket folgendermaßen installiert: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;librxtx&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Unter Windows müssen zwei DLLs in das &lt;em&gt;system32&lt;/em&gt; der Windows-Installation kopiert werden. Diese DLLs liegen im Verzeichnis &lt;em&gt;rxtx&lt;/em&gt; im Projekt &lt;em&gt;Steuerung&lt;/em&gt;. Für andere Platformen gibt es Installationshinweise auf der &lt;a class="" href="http://www.rxtx.org" rel="nofollow"&gt;Homepage des RXTX-Projektes&lt;/a&gt;. Die Java-seitigen Jar-Dateien sind in den entsprechenden Projekten untergebracht und müssen nicht extra konfiguriert oder installiert werden. Für die Kommunikation über RS232 mit dem CAN-Gateway muss noch der serielle Port konfiguriert werden. Zu diesem Zweck muss in der genannten Properties-Datei das Property &lt;em&gt;${mrw.port}&lt;/em&gt; auf den seriellen Port zeigen. Das Property &lt;em&gt;mrw.railway&lt;/em&gt; enthält den Klassennamen der zu steuernden Anlage. Diese Klasse muss eine Ableitung der Klasse &lt;em&gt;de.morknet.mrw.Modell&lt;/em&gt; sein. &lt;/p&gt;
&lt;p&gt;Jedes Property kann durch einen Host-spezifische Konfiguration ergänzt werden. So ist das Property &lt;em&gt;mrw.port.leo&lt;/em&gt; nur für den Host &lt;em&gt;Leo&lt;/em&gt; gültig. Es können mehrere Host-Konfigurationen parallel konfiguriert werden. Das ist besonders bei Netzkonfigurationen (z.B. NFS oder Domain Logon) sinnvoll. &lt;/p&gt;
&lt;p&gt;Beispiel für &lt;em&gt;$HOME/.comm.properties&lt;/em&gt;: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ttyS0&lt;/span&gt;
&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;railway&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Mork2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Die Kommunikation findet immer mit 115200 Baud mit den Bedingungen 8N1 statt. Es findet kein Hardware-Handshake statt. Diese Parameter werden automatisch von der Steuerungs-Software benutzt. Es muss nur sichergestellt werden, dass die Rechner-Hardware diese Übertragung fehlerfrei nutzen kann. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Achtung! &lt;/strong&gt;&lt;br /&gt;
Sollte die RS232-Kommunikation nicht funktionieren, startet die Stellwerks-Software trotzdem im Simulationsmodus. Erkennen kann man das an den Debug-Ausgaben während des Starts: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="mi"&gt;73&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MrwController&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Validierung&lt;/span&gt; &lt;span class="n"&gt;vollst&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="n"&gt;ndig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Fehlerzahl&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="mi"&gt;76&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Layout&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Lade&lt;/span&gt; &lt;span class="n"&gt;Layout&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Informationen&lt;/span&gt; &lt;span class="n"&gt;aus&lt;/span&gt; &lt;span class="n"&gt;Verzeichnis&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;eclipse&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3.5&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Mork2&lt;/span&gt;
    &lt;span class="mi"&gt;93&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MrwProperties&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remotehost&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pisces&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;
    &lt;span class="mi"&gt;94&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MrwProperties&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remoteport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4268&lt;/span&gt;
    &lt;span class="mi"&gt;94&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TcpConnection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Versuche&lt;/span&gt; &lt;span class="n"&gt;TCP&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Verbindung&lt;/span&gt; &lt;span class="err"&gt;ü&lt;/span&gt;&lt;span class="n"&gt;ber&lt;/span&gt; &lt;span class="n"&gt;pisces&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;4268&lt;/span&gt;
  &lt;span class="mi"&gt;3114&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;No&lt;/span&gt; &lt;span class="n"&gt;route&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;
  &lt;span class="mi"&gt;3114&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MrwProperties&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ttyS0x&lt;/span&gt;
  &lt;span class="mi"&gt;3115&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Port&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ttyS0x&lt;/span&gt;
  &lt;span class="mi"&gt;3115&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;DEBUG&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rs232&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RS232Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Versuche&lt;/span&gt; &lt;span class="n"&gt;serielle&lt;/span&gt; &lt;span class="n"&gt;Schnittstelle&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ttyS0x&lt;/span&gt;
&lt;span class="nl"&gt;Experimental:&lt;/span&gt;  &lt;span class="n"&gt;JNI_OnLoad&lt;/span&gt; &lt;span class="n"&gt;called&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;Stable&lt;/span&gt; &lt;span class="n"&gt;Library&lt;/span&gt;
&lt;span class="o"&gt;=========================================&lt;/span&gt;
&lt;span class="n"&gt;Native&lt;/span&gt; &lt;span class="n"&gt;lib&lt;/span&gt; &lt;span class="n"&gt;Version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RXTX&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;span class="n"&gt;Java&lt;/span&gt; &lt;span class="n"&gt;lib&lt;/span&gt; &lt;span class="n"&gt;Version&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RXTX&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
  &lt;span class="mi"&gt;3151&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; 
  &lt;span class="mi"&gt;3152&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Benutze&lt;/span&gt; &lt;span class="n"&gt;Dummy&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Verbindung&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
  &lt;span class="mi"&gt;3152&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;INFO&lt;/span&gt;  &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;morknet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mrw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;comm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Connection&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;Versende&lt;/span&gt; &lt;span class="n"&gt;Synchronisierungssequenz&lt;/span&gt; &lt;span class="err"&gt;ü&lt;/span&gt;&lt;span class="n"&gt;ber&lt;/span&gt; &lt;span class="n"&gt;die&lt;/span&gt; &lt;span class="n"&gt;Verbindung&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="can-knoten-konfigurieren"&gt;CAN-Knoten konfigurieren&lt;/h2&gt;
&lt;p&gt;Um den CAN-Knoten eine Konfiguration zukommen zu lassen, muss das Projekt &lt;em&gt;Stellwerk&lt;/em&gt; schon kompiliert sein, wodurch sich durch das Property &lt;em&gt;mrw.railway&lt;/em&gt; in der Datei &lt;em&gt;$HOME/.comm.properties&lt;/em&gt; die Zielanlage schon ergibt. Desweiteren müssen alle entsprechenden CAN-Knoten ihre korrekten Controller-IDs konfiguriert haben (s. &lt;em&gt;setid&lt;/em&gt;). Nach folgendem Aufruf wird die modellierte Konfiguration an alle CAN-Knoten übertragen: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;ant&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="sonstige-nutzliche-targets"&gt;Sonstige nützliche Targets&lt;/h2&gt;
&lt;p&gt;Im Rahmen des Continuous Integration sind noch einige nützliche Ant-Targets zu erwähnen, die im Projekt &lt;em&gt;&lt;span&gt;&lt;span&gt;[AnlageZwei]&lt;/span&gt;&lt;/span&gt;&lt;/em&gt; enthalten sind: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;findbugs &lt;/li&gt;
&lt;li&gt;emma - Test mit Code Coverage &lt;/li&gt;
&lt;li&gt;test - Test ohne Code Coverage &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="neues-metamodell-installieren"&gt;Neues Metamodell installieren&lt;/h2&gt;
&lt;p&gt;Das Metamodell samt Editor ist im Projekt &lt;em&gt;Modelleditor&lt;/em&gt; untergebracht. Der Build funktioniert nur bis Eclipse Helios inklusive. Grund herfür ist, dass das benötigte Plugin &lt;em&gt;UML2Tools&lt;/em&gt; nicht weiter verwaltet wird. Unter &lt;em&gt;model/Modelrailway.umlclass&lt;/em&gt; ist das Metamodell als UML-Diagramm untergebracht. Die Dateien &lt;em&gt;model/Modelrailway.uml&lt;/em&gt; und &lt;em&gt;model/Modelrailway.ecore&lt;/em&gt; sind über das Genmodel &lt;em&gt;model/Modelrailway.genmodel&lt;/em&gt; gekoppelt. Nach Änderungen muss das Genmodel neu geladen werden. Dazu wählt man die Datei &lt;em&gt;model/Modelrailway.genmodel&lt;/em&gt; aus und wählt im Kontextmenü den Menüpunkt &lt;em&gt;Reload...&lt;/em&gt; aus. Im sich öffnenden Dialog wählt man den Importer &lt;em&gt;UML&lt;/em&gt; aus. Danach wird zweimal mit &lt;em&gt;Next &amp;gt;&lt;/em&gt; bestätigt. Im letzten Dialog muss das Ecore &lt;em&gt;de.morknet.mrw.metamodel&lt;/em&gt; ausgewählt sein, um danach mit &lt;em&gt;Finish&lt;/em&gt; den Ladevorgang zu beenden. &lt;/p&gt;
&lt;p&gt;Um die Editoren zu generieren, muss die Datei &lt;em&gt;model/Modelrailway.genmodel&lt;/em&gt; geöffnet werden. Auf dem &lt;em&gt;Modelleditor&lt;/em&gt; genannten Root-Element wird mit der rechten Maustaste der Menüpunkt &lt;em&gt;Generate all&lt;/em&gt; ausgewählt. &lt;/p&gt;
&lt;p&gt;Um den Modelleditor zu benutzen, muss er als Plugin exportiert werden. Dazu wird - immernoch im Projekt &lt;em&gt;Modelleditor&lt;/em&gt; - der Menüpunkt &lt;em&gt;Export...&lt;/em&gt; ausgewählt. Im geöffneten Dialog wird unter &lt;em&gt;Plug-in Development&lt;/em&gt; der Punkt &lt;em&gt;Deployable plug-ins and fragments&lt;/em&gt; ausgewählt. Das Projekt &lt;em&gt;Modelleditor&lt;/em&gt; muss ausgewählt werden. Der Export muss in die bestehende Eclipse-Installation erfolgen. Nach erfolgreichem Export muss Eclipse neu gestartet werden, um das Plugin zu aktivieren. &lt;/p&gt;
&lt;p&gt;Der Modelleditor kann auch als Feature über die Updatesite installiert werden. Die Updatesite lautet &lt;a href="http://eisenbahnsteuerung.org/updates/" rel="nofollow"&gt;http://eisenbahnsteuerung.org/updates/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="feature-build-erzeugen-und-updatesite-aktualisieren"&gt;Feature Build erzeugen und Updatesite aktualisieren.&lt;/h2&gt;
&lt;p&gt;Das Plugin kann auch als Feature verteilt werden. Soll ein neuer Feature Build erzeugt werden, muss entsprechend die Versionsnummer vom Feature Projekt &lt;em&gt;Modelleditor Feature&lt;/em&gt; und allen geänderten Plugins hochgezählt werden. Haben sich die Abhängigkeiten geändert, müssen sie in der Feature.xml neu geladen und berechnet werden. Im Projekt &lt;em&gt;Updatesite&lt;/em&gt; muss die neue Feature-Version der entsprechenden Kategorie angepasst werden. Nach _Build All' sind die entsprechenden JARs erzeugt worden. _&lt;/p&gt;
&lt;p&gt;Es empfiehlt sich, die neuen JARs ins Subversion aufzunehmen. Ein Export des Projektes kann direkt mit der realen Updatesite z.B. mit &lt;code&gt;rsync&lt;/code&gt; abgeglichen werden. &lt;/p&gt;
&lt;p&gt;Viel Spaß! &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave Brondsema</dc:creator><pubDate>Wed, 22 Jan 2014 16:59:56 -0000</pubDate><guid>https://sourceforge.netaaba495f21db048002fbcfec6a05ed421940c8d0</guid></item></channel></rss>