zondag 29 april 2012

Seriele communicatie vanuit javaVM werkt!

Voordat ik de Dreamplug server heb besteld heb ik getest of ik met een nullmodem kabel vanuit linux commnadline kon lezen en schrijven naar en van de USB -> RS232 converter. Dit was gelukt met 2 USB->RS232 converters en een null-modem kabel.

Door eerst een dmesg te doen zie je welk ttyXXX zijn aangemaakt voor je USB -> RS232 converter.

[23456.965703] usbcore: registered new interface driver usbserial_generic
[23456.965718] usbserial: USB Serial Driver core
[23457.039061] USB Serial support registered for pl2303
[23457.039174] pl2303 1-1.2.1:1.0: pl2303 converter detected
[23457.044429] usb 1-1.2.1: pl2303 converter now attached to ttyUSB0
[23457.044477] pl2303 1-1.2.2:1.0: pl2303 converter detected
[23457.046868] usb 1-1.2.2: pl2303 converter now attached to ttyUSB1
[23457.046915] pl2303 1-1.2.3:1.0: pl2303 converter detected
[23457.053631] usb 1-1.2.3: pl2303 converter now attached to ttyUSB2
[23457.053691] pl2303 1-1.2.4:1.0: pl2303 converter detected
[23457.071176] usb 1-1.2.4: pl2303 converter now attached to ttyUSB3

vervolgens kun je de settings van de tty poort instellen met 'stty -F /dev/ttyUSBx 9600'.
Als de poorten ingesteld zijn kun je m.b.v. cat en echo schrijven en lezen naar en van de communicatie poort.



Nu heb de communicatie gestest om vanuit Java te communiceren over de USB->RS232 converter.
Hiervoor heb ik eerst librxtx-java geinstalleerd met 'apt-get install librxtx-java'. Dit installeerd te benodigde c libraries, jni interfaces en de java library RXTXcomm-2.2-pre2.jar.

Dit heb je nodig om vanuit de VM de communicatie poort te kunnen berijken.

Vervolgens heb ik 2 java voorbeelden gebruikt om te testen of de communicatie werkt. Hiervoor heb SimpleWrite.java en SimpleRead.java met SimpleSnuV1.java gebruikt.

Eerst de SimpleWrite.java bouwen:
javac -verbose -classpath /usr/share/java/RXTXcomm.jar SimpleWrite.java

Daarna runnen:
java -classpath /usr/share/java/RXTXcomm.jar:/root/rxtxTestApplication/ SimpleWrite

Nu zie je aan de andere kant een teller opgehoogd worden dat geschreven wordt vanuit SimpleWrite.
Dit werkt dus! :-D



Als laatste heb ik ook het lezen van de poort gestest met SimpleRead.java met SimpleSnuV1.java.

Eerst bouwen:
javac -verbose -classpath /usr/share/java/RXTXcomm.jar SimpleRead.java
javac -verbose -classpath /usr/share/java/RXTXcomm.jar SimpleSnuV1.java

Dan de SimpleSnuV1 starten:
java -classpath /usr/share/java/RXTXcomm.jar:/root/rxtxTestApplication/ SimpleSnuV1 /dev/ttyUSB1&
java -classpath /usr/share/java/RXTXcomm.jar:/root/rxtxTestApplication/ SimpleRead /dev/ttyUSB0&

Als alles werkt krijg je deze output:
Data Available
--> atz
Data Available
Data Available
Data Available
atz
OK Sent
<-- OK
Data Available
--> atdxxxxx
Data Available
Data Available
Data Available
atd021891383
<-- CONNECT 9600
Yahoooo OK...
Normal Exit...

donderdag 26 april 2012

Doelstelling week 17



Gedaan in week 16
  1. Ontwerp van het instellingenscherm aangepast en de handleiding bijgewerkt. Dit is nu OK.
  2. Use Cases vinden en Use Case tabellen schrijven.
  3. UML boek doorgekeken voor het maken van use-case diagrammen en tabellen.
  4. Openremote project onderzocht. Een package diagram gemaakt van de bestaande Openremote software.
Doelstelling week 17
  1. Verder met het onwerpen van de use-case diagrammen
  2. UML boek lezen voor de andere diagrammen die ik ga maken voor dit project. (state diagram, sequence diagram en klassen diagram)
  3. Openremote Designer installeren op de pc zodat ik later mijn protocol implementatie aan de Designer kan toevoegen.

donderdag 19 april 2012

Doelstelling week 16


Gedaan in week 15
  1. Handleiding afgemaakt en ter controle opgestuurd. Na een meeting met Rop zijn we het eens geworden dat het instellingenscherm nog was aanpassingen nodig had. 
  2. Hardware is besteld.
  3. PvA en User Requirments document en schermontwerpen besproken en afgetekend.
  4. Gestart met de designfase. Na technisch overleg ben ik begonnen met het vinden van Use Cases. 
Doelstelling week 16
  1. Instellingenscherm aanpassen en handleiding updaten.
  2. Use Cases vinden en Use Case tabellen schrijven.
  3. UML boek doorkijken.
  4. Openremote project onderzoeken.

Ontwerp instellingenscherm aangepast

Omdat het instellingenscherm nog niet helemaal duidelijk was heb ik na een meeting met Rop het instellingen scherm aangepast. Zie hieronder het resultaat. Vervolgens ga ik de handleiding aanpassen laten controleren.



woensdag 11 april 2012

Gebruikershandleiding

Bij het schermontwerp en de user requirements hoort natuurlijk ook een handleiding. Dit is een handig hulpmiddel om nog meer requirements te vinden waar je eerder nog niet aan gedacht had of als controle middel om te kijken of je gevonden eisen kloppen.





Concept Schermontwerp

Nadat de user requirements bekend waren werd het tijd om een schermontwerp te maken. Het ontwerp moet met Openremote designer gerealiseerd kunnen worden dus daar is tijdens het ontwerp rekening mee gehouden.
Het ontwerp bestaat uit 2 schermen.

Het hoofdscherm bevat de bediening van de screens.



En een instellingenscherm waar de drempelwaarden van de automaatstand ingesteld kunnen worden.


Doelstelling week 15


Gedaan in week 14
  1. Eerste concept van de schermen zijn klaar. 
  2. De hardware specificaties zijn verder uitgewerkt en er is gezocht naar kandidaat hardware die aan de specificaties kunnen voldoen. Er is ook contact gelegd met de leverancier van de Dreamplug of de hardware RS232 over USB ondersteund.
  3. De planning is bijgewerkt.
  4. Er is een test gedaan met een Dreamplug van mede afstudeerders bij Tass om te kijken of het RS232 over USB protocol vanuit Linux en Javacode ondersteund wordt. Test 1 voor het RS232 communiceren over USB is geslaagd. Test 2 voor het openen van een RS232 communicatiepoort vanuit Javacode is mislukt doordat er geen tijd meer was.
Doelstelling week 15
  1. Handleiding afmaken.
  2. Hardware bestellen als er een positief bericht terug is gekomen van de leverancier.
  3. Staten met de Design fase.

dinsdag 3 april 2012

Doelstelling week 14

Gedaan in week 13
  1. Gestart met het ontwerpen van de bedieningsschermen.
  2. Technisch overleg gehad met Erik over het hardware ontwerp en de specificaties.
  3. Nog geen begin kunnen maken met de handleiding door tijdgebrek.
Doelstelling week 14
  1. Het ontwerp afmaken van de bedieningschermen.
  2. Hardware specificaties zoeken en hardware ontwerpen verder uitewerken.
  3. Handleiding schrijven aan de hand van het ontwerp en requirements.