<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog @ SIB Visions &#187; Raspberry Pi</title>
	<atom:link href="http://blog.sibvisions.com/tag/raspberry-pi/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sibvisions.com</link>
	<description>Blog @ SIB Visions</description>
	<lastBuildDate>Fri, 24 Apr 2026 07:44:44 +0000</lastBuildDate>
		<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RaspberryPi, Jetty, Vaadin &amp; Push support</title>
		<link>https://blog.sibvisions.com/2015/01/22/raspberrypi-jetty-vaadin-push-support/</link>
		<comments>https://blog.sibvisions.com/2015/01/22/raspberrypi-jetty-vaadin-push-support/#comments</comments>
		<pubDate>Thu, 22 Jan 2015 12:52:20 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Raspberry Pi]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=3615</guid>
		<description><![CDATA[I wrote in a previous article about my problems with Jetty and Vaadin push support.
I found the problem in the meantime and Jetty works well on my Raspi. The performance is a little bit better than with Tomcat 8.
What was the problem?
Vaadin 7.1 push implementation was incompatible with Jetty 9.2.6. I had to use Jetty [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote in a <a href="https://blog.sibvisions.com/2015/01/08/iot-window-shutter-control-with-jvx-vaadin-and-raspberrypi/">previous article</a> about my problems with Jetty and Vaadin push support.</p>
<p>I found the problem in the meantime and Jetty works well on my Raspi. The performance is a little bit better than with Tomcat 8.</p>
<p><strong>What was the problem?</strong></p>
<p>Vaadin 7.1 push implementation was incompatible with Jetty 9.2.6. I had to use Jetty 9.0.7.</p>
<p>I didn't use Jetty as embedded server, it runs standalone via bin/jetty.sh. It was a little bit tricky to add an external lib to the classpatch because the commandline argument changed from 9.0 to 9.2.</p>
<p>I had to add following to my jetty.sh:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw3">export</span> <span class="re2">JETTY_HOME</span>=<span class="st0">&quot;/opt/jetty/&quot;</span><br />
<span class="kw3">export</span> <span class="re2">JETTY_BASE</span>=<span class="st0">&quot;/opt/jetty/&quot;</span><br />
<span class="kw3">export</span> <span class="re2">JAVA</span>=<span class="st0">&quot;/opt/java/bin/java&quot;</span><br />
<span class="kw3">export</span> <span class="re2">JETTY_ARGS</span>=<span class="st0">&quot;--module=websocket --module=continuation path=/usr/share/java/RXTXcomm.jar&quot;</span></div>
</div>
<p>With 9.2:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw3">export</span> <span class="re2">JETTY_ARGS</span>=<span class="st0">&quot;--module=websocket --module=continuation --lib=/usr/share/java/RXTXcomm.jar&quot;</span></div>
</div>
<p>You have to know the pitfalls <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It seems that Vaadin' websocket implementation for Jetty is better than for Tomcat because  Vaadin handles multiple rotate/resize events faster with less communication. I know that Vaadin 7.3 has a better websocket implementation and it's also up-to-date and should work with Jetty 9.2.6, but I still use Vaadin 7.1.</p>
<p>I recommend Jetty for your embedded project because it's fast and simple. If you prefer Tomcat, you can't do anything wrong.</p>
<p>Oh... I also solved the problem with missing request from / to /index.html. The redirection won't work if you don't have a file with the name index.html in your public web area because Jetty does nothing in that case. I didn't find an option for that, but creating an empty index.html solved my problem because I had a Servlet which was listening on /index.html.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2015/01/22/raspberrypi-jetty-vaadin-push-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IoT: Window shutter control with JVx, Vaadin and RaspberryPi</title>
		<link>https://blog.sibvisions.com/2015/01/08/iot-window-shutter-control-with-jvx-vaadin-and-raspberrypi/</link>
		<comments>https://blog.sibvisions.com/2015/01/08/iot-window-shutter-control-with-jvx-vaadin-and-raspberrypi/#comments</comments>
		<pubDate>Thu, 08 Jan 2015 09:00:41 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Vaadin]]></category>
		<category><![CDATA[vaadinUI]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=3577</guid>
		<description><![CDATA[It's about two years ago that I wrote about controlling window shutters. The system run for 2 years without problems but it was time to change "something" because it was vacation time and I thought it would be useful to showcase our vaadin UI  
The old system was controled via (good old) SMS - [...]]]></description>
			<content:encoded><![CDATA[<p>It's about two years ago that I wrote about <a href="https://blog.sibvisions.com/2013/01/21/control-your-window-shutters-with-javafx/">controlling window shutters</a>. The system run for 2 years without problems but it was time to change "something" because it was vacation time and I thought it would be useful to showcase our vaadin UI <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The old system was controled via (good old) SMS - without GUI. It had a lot of commands but only en/disable up/down were heavily used because the integrated public holiday and weekend automatism solved most use cases. The SMS contol was great and worked without problems but it was a problem if you didn't know the commands and syntax by heart!</p>
<p>Another consideration was a simple real-world showcase for our vaadin UI, the responsive feature and push support. Our application frame was already <a href="https://blog.sibvisions.com/2014/12/30/responsive-web-application/">responsive</a> and worked on desktop, tablet and smartphone browsers. I thought about using AngularJS or different "hypeware" but I didn't have weeks to research and implement. My new GUI had to be finished in few hours. And it should be maintainable for the next two (or more) years without problems.</p>
<p>I love researching hypeware... but simply read some articles if you want: </p>
<ul>
<li><a href="https://java.dzone.com/articles/10-amazing-libraries-your-web">10 Amazing Libraries for Your Web-based JavaScript Applications</a></li>
<li><a href="https://java.dzone.com/articles/7-exceptional-javascript">7 Exceptional JavaScript Frameworks for Mobile App Developers</a></li>
<li><a href="https://manuel.bernhardt.io/2014/12/30/generation-javascript/">Generation Javascript</a></li>
</ul>
<p>There are too many frameworks, everyone is different - no real standard APIs (didn't count HTML and CSS). You can't be sure that the framework is future-proof because developers love to change software to be incompatible with previous versions just to be state-of-the-art.<br />
And why should a developer use 5 or more frameworks to create a simple application for desktop and mobile? You'll need more libs if your application needs DB and CRUD support.<br />
C'mon we need simple and small frameworks and not what we have right now! The world is talking about microservices and what about "micro frameworks"?</p>
<p>Conclusio: I didn't find something comparable to JVx. Of course, it's my opinion and I'm JVx developer, but I'm a researcher and the technology isn't a problem if it makes sense to use it.</p>
<p>To be honest: Our Vaadin UI in combination with other JVx features is unbeatable for most application types. Of course, it's not recommended for web pages with custom layout requirements. If you need an "application style" solution with menu and screen/work area or form based -  <strong>there's nothing comparable</strong>.</p>
<p>After I knew that my new GUI would be a JVx' vaadin solution, I had to think about the details. The whole application should be responsive to support every modern device and desktop browsers as well. The application server should be Jetty or Tomcat and it should run on the RasPi. The performance is not critical because the hardware is limited (but cheap).</p>
<p><em>Software stack</em>: clear<br />
<em>Hardware</em>: clear<br />
<em>Deployment type</em>: clear</p>
<p>Next step was development. This was easy because I re-used existing classes and added some get/set methods to access internal members. The most important change was an event listener because every vaadin client should be updated immediate via push. It wasn't possible without notification mechanism. I thought about an event bus and played around with <a href="https://github.com/bennidi/mbassador">mbassador</a>. It's a nice and small lib, fast and just works (recommendable).<br />
To be honest: I didn't need it because I didn't need more than one listener and an event bus is not much more than a listener abstraction (with some extras).</p>
<p>After some hours developing and refactoring, everything was ready for a test.... The next decission: Jetty or Tomcat?<br />
I worked with Tomcat for many years and didn't know much about Jetty, only that it's the number one for embedding into applications, supports SPDY and has websocket support. I played around with Jetty and got it running. The installation of my GUI worked like a charme and everything worked except push. I found solutions for embedded run mode but not for standalone Jetty. I'm pretty sure that I missed something, but I wasn't very patient and switched to Tomcat 8.<br />
Not only because of my push problem but Jetty didn't handle requests as expected:</p>
<p><a href="http://localhost/house/">http://localhost/house/</a> didn't redirect to <a href="http://localhost/house/index.html">http://localhost/house/index.html</a> automatically. I didn't have an index.html file in the public file area, anyway the request should be executed. Such requests work with Tomcat without additional configuration.</p>
<p>I'm not happy that my Jetty server didn't work but I'll retry it in the next days <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here's a simple screencast of my solution because it's easier to understand:</p>
<p><center><div class="wp-caption aligncenter nomargin" style="width: 570px"><iframe width="560" height="315" src="https://www.youtube.com/embed/9v1baK6MB4A" frameborder="0" allowfullscreen></iframe><p class="wp-caption-text">Window shutter web control</p></div><br />
</center></p>
<p>It took me less than one day to finish my GUI and the best: <strong>It's family safe</strong>.<br />
I tried the GUI with PS4 and WiiU integrated browser and it was great to see shutters moving.</p>
<h4 style="padding-top: 10px;">Summary</h4>
<p>I've used a RaspberryPi, installed Tomcat 8 with Java8 and deployed my application as war file. The GUI is responsive and supports push via websockets and runs on every device in my house. It wasn't planned using gaming consoles <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Oh, I forgot to mention: During my tests I found out that Android and iOS support custom Bookmark images for Desktop links but this needs additional tags in index.html (works without, but it's better to include the tags). Our VaadinUI now has built-in support for such images <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The switch component is available in the <a href="https://vaadin.com/directory#addon/switch">Vaadin Directory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2015/01/08/iot-window-shutter-control-with-jvx-vaadin-and-raspberrypi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NFC Reader with RaspberryPi GPIO</title>
		<link>https://blog.sibvisions.com/2013/01/04/nfc-reader-with-raspberrypi-gpio/</link>
		<comments>https://blog.sibvisions.com/2013/01/04/nfc-reader-with-raspberrypi-gpio/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 17:16:19 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[eNFC]]></category>
		<category><![CDATA[Raspberry Pi]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=1979</guid>
		<description><![CDATA[If you read my postings about NFC Reader, you know that I use an USB TTL module for the communication with my NFC Reader (UART mode). If you don't own such a module, it's not a big problem to connect the reader with GPIO pins of your RaspberryPi.
How?
Change /boot/cmdline.txt, from:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1
to
dwc_otg.lpm_enable=0 console=tty1
Change /etc/inittab, [...]]]></description>
			<content:encoded><![CDATA[<p>If you read my postings about <a href="http://blog.sibvisions.com/2012/11/26/nfcrfid-for-beagleboard-xm-with-java/">NFC Reader</a>, you know that I use an USB TTL module for the communication with my NFC Reader (UART mode). If you don't own such a module, it's not a big problem to connect the reader with GPIO pins of your RaspberryPi.</p>
<p><strong>How?</strong></p>
<p>Change /boot/cmdline.txt, from:</p>
<div class="codesnip-container" >dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1</div>
<p>to</p>
<div class="codesnip-container" >dwc_otg.lpm_enable=0 console=tty1</div>
<p>Change /etc/inittab, from:</p>
<div class="codesnip-container" >#Spawn a getty on Raspberry Pi serial line<br />
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</div>
<p>to</p>
<div class="codesnip-container" >#Spawn a getty on Raspberry Pi serial line<br />
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100</div>
<p>Reboot your Pi.</p>
<p>Connect the Reader with following PINs:</p>
<div class="codesnip-container" >GND -> PIN 6<br />
TxD -> PIN 10 (= GPIO 15)<br />
RxD -> PIN 8 (= GPIO 14)<br />
VCC -> PIN 1 (3,3V) or PIN2 (5,5V)</div>
<p>(<a href="http://elinux.org/RPi_Low-level_peripherals">GPIO PIN overview</a>)</p>
<p>Use serial port with the name <em>/dev/ttyAMA0</em> for RxTx and configure RxTx e.g. -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0.</p>
<p>Successfully tested with <a href="http://blog.sibvisions.com/2012/12/23/new-project-embedded-nfc/">eNFC</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/01/04/nfc-reader-with-raspberrypi-gpio/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Power control with RaspberryPi, JVx and Vert.x</title>
		<link>https://blog.sibvisions.com/2013/01/03/power-control-with-raspberrypi-jvx-and-vert-x/</link>
		<comments>https://blog.sibvisions.com/2013/01/03/power-control-with-raspberrypi-jvx-and-vert-x/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 15:59:05 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JVx]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[vert.x]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=1943</guid>
		<description><![CDATA[My idea was to create a programmable timer for some lamps at home. I wanted to control the timer via mobile phone (not only smartphone). I decided to use simple SMS'.
The timer app was not really a challenge and the SMS interface was also very straight forward, so I added a little bit network communication [...]]]></description>
			<content:encoded><![CDATA[<p>My idea was to create a programmable timer for some lamps at home. I wanted to control the timer via mobile phone (not only smartphone). I decided to use simple SMS'.</p>
<p>The timer app was not really a challenge and the SMS interface was also very straight forward, so I added a little bit network communication and complexity. The result:</p>
<div id="attachment_1945" class="wp-caption aligncenter nomargin" style="width: 265px"><a href="http://blog.sibvisions.com/wp-content/uploads/2013/01/power_control1.png" rel="lightbox[1943]"><img src="http://blog.sibvisions.com/wp-content/uploads/2013/01/power_control1-255x300.png" alt="Power control" title="Power control" width="255" height="300" class="size-medium wp-image-1945" /></a><p class="wp-caption-text">Power control</p></div>
<p>My Hardware:</p>
<ul>
<li>Raspberry Pi Model B</li>
<li>Cinterion TC65i</li>
<li>Standard table lamp</li>
<li>Solid State Relay (found <a href="https://blogs.oracle.com/speakjava/entry/the_power_to_control_power">here</a>)</li>
<li>Laptop as cluster client</li>
<li>Mobile Phone <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>My software:</p>
<ul>
<li><a href="http://jdk8.java.net/fxarmpreview/">JDK 8 ARM Preview with JavaFX</a></li>
<li><a href="http://smslib.org/">SMSlib</a></li>
<li><a href="http://pi4j.com/">Pi4J</a></li>
<li><a href="http://vertx.io/">Vertx</a></li>
<li><a href="http://rxtx.qbang.org">RxTx</a></li>
<li><a href="http://sourceforge.net/projects/jvx/">JVx</a></li>
</ul>
<p>My first question was - Which application server should I use for my Pi? I thought that JBoss or Tomcat would be overhead and I would save resources. I decided for Vert.x and a simple socket server. I wanted to show the integration of Vert.x with JVx and so my server got a JVx application with some business logic for publishing messages.</p>
<p>The server "thing" was clear and for reading SMS' I wrote a simple polling app. The app reads SMS from my hardware via RS232 and forwards received SMS via JVx APIs to my server (with Vert.x' NetClient).<br />
I didn't use the EventBus for sending messages becasue I wanted to show the seamless integration of JVx and Vert.x.</p>
<p>The code for forwarding messages:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;">MasterConnection macon <span class="sy0">=</span> <span class="kw1">new</span> MasterConnection<span class="br0">&#40;</span><span class="kw1">new</span> NetSocketConnection<span class="br0">&#40;</span><span class="st0">&quot;10.0.0.39&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
macon.<span class="me1">setApplicationName</span><span class="br0">&#40;</span><span class="st0">&quot;demo&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
macon.<span class="me1">setUserName</span><span class="br0">&#40;</span><span class="st0">&quot;user&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
macon.<span class="me1">setPassword</span><span class="br0">&#40;</span><span class="st0">&quot;password&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
macon.<span class="me1">setAliveInterval</span><span class="br0">&#40;</span><span class="sy0">-</span>1<span class="br0">&#41;</span><span class="sy0">;</span><br />
macon.<span class="me1">open</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>macon.<span class="me1">callAction</span><span class="br0">&#40;</span><span class="st0">&quot;publishMessage&quot;</span>, msg.<span class="me1">getOriginator</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, msg.<span class="me1">getText</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>The server application is a standard JVx application (only server-side). It uses a standard XmlSecurityManager without the need for a database. The "business logic" is very simple:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;"><span class="kw1">public</span> Vertx getVertx<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#40;</span>Vertx<span class="br0">&#41;</span>get<span class="br0">&#40;</span><span class="st0">&quot;vertx&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw4">void</span> publishMessage<span class="br0">&#40;</span><span class="kw3">String</span> pNr, <span class="kw3">String</span> pMessage<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw3">System</span>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;publishMessage (&quot;</span> <span class="sy0">+</span> pMessage <span class="sy0">+</span> <span class="st0">&quot;)&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw3">String</span> sNumber <span class="sy0">=</span> pNr<span class="sy0">;</span></p>
<p>&nbsp; &nbsp; sNumber <span class="sy0">=</span> sNumber.<span class="me1">substring</span><span class="br0">&#40;</span>0, 5<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="co1">//hide last characters</span><br />
&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">5</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> pNr.<span class="me1">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sNumber <span class="sy0">+=</span> <span class="st0">&quot;*&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; JsonObject jsobj <span class="sy0">=</span> <span class="kw1">new</span> JsonObject<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; jsobj.<span class="me1">putString</span><span class="br0">&#40;</span><span class="st0">&quot;number&quot;</span>, sNumber<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; jsobj.<span class="me1">putString</span><span class="br0">&#40;</span><span class="st0">&quot;message&quot;</span>, pMessage<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; getVertx<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">eventBus</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">publish</span><span class="br0">&#40;</span><span class="st0">&quot;sms.received&quot;</span>, jsobj<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>I made some tests with vert.x clustering and decided to implement a (very) simple JavaFX application that shows published SMS'. The application contains following code:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;">vertx <span class="sy0">=</span> Vertx.<span class="me1">newVertx</span><span class="br0">&#40;</span><span class="nu0">25502</span>, <span class="st0">&quot;10.0.0.11&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>EventBus ebus <span class="sy0">=</span> vertx.<span class="me1">eventBus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
ebus.<span class="me1">registerHandler</span><span class="br0">&#40;</span><span class="st0">&quot;sms.received&quot;</span>, <span class="kw1">new</span> Handler<span class="sy0">&lt;</span>Message<span class="sy0">&lt;</span>JsonObject<span class="sy0">&gt;&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> handle<span class="br0">&#40;</span><span class="kw1">final</span> Message<span class="sy0">&lt;</span>JsonObject<span class="sy0">&gt;</span> pMessage<span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Platform.<span class="me1">runLater</span><span class="br0">&#40;</span><span class="kw1">new</span> <span class="kw3">Runnable</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> run<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mdb.<span class="me1">insert</span><span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mdb.<span class="me1">setValues</span><span class="br0">&#40;</span><span class="kw1">new</span> <span class="kw3">String</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span><span class="st0">&quot;NUMBER&quot;</span>, <span class="st0">&quot;MESSAGE&quot;</span><span class="br0">&#125;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">new</span> <span class="kw3">String</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span>pMessage.<span class="me1">body</span>.<span class="me1">getString</span><span class="br0">&#40;</span><span class="st0">&quot;number&quot;</span><span class="br0">&#41;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pMessage.<span class="me1">body</span>.<span class="me1">getString</span><span class="br0">&#40;</span><span class="st0">&quot;message&quot;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mdb.<span class="me1">saveSelectedRow</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#40;</span>ModelException me<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">throw</span> <span class="kw1">new</span> <span class="kw3">RuntimeException</span><span class="br0">&#40;</span>me<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Finally, I created a short video that shows all in action. It shows three applications on the same laptop. The first is the JavaFX application that shows published SMS. The second is the Power control (includes SMS check), started via PuTTY. The third application is the server instance, started via PuTTY. You can see a table lamp that will be turned on and off with SMS, sent from a smartphone.</p>
<p>Enjoy it <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter nomargin" style="width: 430px"><iframe width="420" height="315" src="http://www.youtube.com/embed/P8nZ8bBXg64" frameborder="0" allowfullscreen></iframe><br />
<p class="wp-caption-text">Power Control with RaspberryPi</p></div>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2013/01/03/power-control-with-raspberrypi-jvx-and-vert-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome RaspberryPi</title>
		<link>https://blog.sibvisions.com/2012/12/19/welcome-raspberrypi/</link>
		<comments>https://blog.sibvisions.com/2012/12/19/welcome-raspberrypi/#comments</comments>
		<pubDate>Wed, 19 Dec 2012 22:38:01 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Raspberry Pi]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=1889</guid>
		<description><![CDATA[I ordered a Raspberry Pi model B two month ago from RS-Components... it arrived today. It was not a problem because I had a Beagleboard for tests and JavaFX for Pi is available since yesterday.
One of my friends received a (more expensive) Pi some weeks ago and we made some tests with JBossAS 7.1 and [...]]]></description>
			<content:encoded><![CDATA[<p>I ordered a Raspberry Pi model B two month ago from RS-Components... it arrived today. It was not a problem because I had a Beagleboard for tests and JavaFX for Pi is available since yesterday.</p>
<p>One of my friends received a (more expensive) Pi some weeks ago and we made some tests with JBossAS 7.1 and JavaSE 7 (without JavaFX). It worked like a charm and it's cool to have a JBossAS on a Pi. But without JavaFX it was not too funny.</p>
<p>So, back to my Pi. </p>
<p>The installation was very easy: Simply read the <a href="http://javafx.steveonjava.com/javafx-on-raspberry-pi-3-easy-steps/">short version of Stephen Chin</a> or the <a href="http://jdk8.java.net/fxarmpreview/javafx-arm-developer-preview.html">long version</a>.</p>
<p>I had some smaller problems:</p>
<ul>
<li>Win32DiskImager did not work with my Laptop and the builtin card-reader, and I had no external reader</li>
<li>I didn't know the username and password for login</li>
</ul>
<p>I solved the first problem with <a href="http://elinux.org/RPi_Easy_SD_Card_Setup">flashnul</a>:</p>
<div class="codesnip-container" >flashnul 2 -L 2012-12-16-wheezy-raspbian.img</div>
<p>My first attempt didn't work - Raspberry Pi didn't boot (no flashing lights on my Pi - only PWR, screen was black) .... Wrote the image once again and removed the device cleanly from my Laptop - worked.</p>
<p>The second problem was not really a problem, but I had no idea. Used <strong>pi</strong> as username and <strong>raspberry</strong> as password (see <a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&#038;t=20616">here</a>)</p>
<p>First actions after boot and setup:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="kw2">apt-get</span> update<br />
<span class="kw2">apt-get</span> <span class="kw2">install</span> librxtx-java mc <span class="kw2">locate</span></div>
</div>
<p>Pi is up and running, but the image is not comparable with my Angstrom image. Some modules/drivers are missing... but that's not too important now.</p>
<p>My <a href="http://blog.sibvisions.com/2012/12/17/time-tracking-in-action/">Time tracking</a> software works on my Pi without problems. Startup time is a little bit longer as on my Beagleboard.</p>
<p>The next steps are some performance tests...</p>
<p><strong>But Pi is definitely a MUST have.</strong><br />
Order your own one asap and enter the world of embedded systems with JavaFX.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2012/12/19/welcome-raspberrypi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
