Hi All,

The $subject for digital displays is depicted in image[2]. These displays
are currently deployed in the lunch area and near the elevator in #20
PalmGrove. All digital displays are connected into a WiFi enabled Raspberry
Pi. Following write up explains some of the key concepts.

[image 1]


How it works

Raspberry Pi “Digital Display Agent” is currently written in Python and the
source code can be found on link[1]. This Display Agent initiates a python
HTTP server to serve web applications and to load URLs into the web
browser. The browser display sequence is managed by the Display Agent and
browser is navigated into the localhost or remote URLs based on its current
config.xml.



[image 2]


How you can extend or publish new content?

The Raspberry Pi Display Agent periodically checks for revision updates on
a given VCS such as GitHub, SVN or any custom type. The agent supports
updating itself and the web content. Currently these files are updated
through a BitBucket repository.

How to convert a HDMI Display + RaspberryPi into a digital display?

   1.

   Connect your Digital Display into the Raspberry Pi
   2.

   Copy the Raspberry Agent python app into Raspberry Pi
   3.

   Run the bash script on the agent using “./wso2agent.sh”


Issues

Since all display sequence rotation is managed by the Display Agent; it is
tightly coupled with a web browser (i.e. Midori web browser). Midori allows
browser process communication to load a URL on the same tab. Still we are
facing some issues with Midori; since it doesn’t fully support complex JS,
CSS rendering. This issue can be resolved once agent is moved into Java.

One of major app running on the Display Agent is Events App. The event app
displays calendar events through a google calendar.  When reading events
from google calendar, Google OAuth 2.0 API is utilized, or else it reads
events as free-busy reader mode. The cookies for OAuth expires every 30
days. One possible solution is to use a central carbon server such as DSS
to retrieve calendar events.

Future enhancements

Currently we are rewriting the raspberry agent in Java. JavaFX WebView[2]
can be utilized as the web browser.

We are hoping to integrate raspberry pi agents with Eclipse Kura[3] - Open
Source framework for IoT and runs on top of the Java Virtual Machine (JVM)
and leverages OSGi to simplify the process of writing reusable software
building blocks. This will allow us to communicate with larger systems like
ESB or any other server.

[1]
https://github.com/wso2-dev/device-cloud-appliances/tree/master/DigitalDisplay

[2] http://docs.oracle.com/javafx/2/webview/WebViewSample.java.htm

[3] http://www.eclipse.org/kura/

-- 
With Regards,

*Rasika Perera*
Software Engineer
M: +94 71 680 9060 E: [email protected]
LinkedIn: http://lk.linkedin.com/in/rasika90

WSO2 Inc. www.wso2.com
lean.enterprise.middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to