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
