Touch Orbiter - for the CUWIN3500 in-wall Touch Panel

From LinuxMCE
Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information

Touch Orbiter - Preview

Touch Orbiter is a simple light weight new way to build Orbiters for any type of Touch Driven device. It requires the minimum of resources from the target device and presents a very simple easy to understand codebase for anyone wishing to port Touch Orbiter to new hardware devices. This page has been setup to preview what Touch Orbiter is and the concepts behind its design and will be expanded over time to include full documentation for both user setup & configuration and also importantly details of the reference implementation for the CUWIN-3500 WinCE in-wall Touch Panel. This will include the source code for those that would like to try their hand at porting Touch Orbiter to a new device.

Touch Orbiter uses a new approach to building Orbiters for touch based devices that builds off many of the concepts embodied in the new Web Orbiter 2.0. Touch Orbiter is a lightweight simple application that runs on the target device that in turn communicates with a proxy_orbiter (see below for an explanation of what a proxy_orbiter is) process running on the Core. The concept of using a proxy_orbiter process running on the Core to do all of the 'heavy-lifting' graphical processing is borrowed from Web Orbiter 2.0 & the JavaMO too. Touch Orbiter also uses the new proxy_orbiter released with Web Orbiter 2.0 that supports the 'ANYNEWS' flag to provide a mechanism for the Touch Orbiter to find out if any screen updates have occurred.

In use the Touch Orbiter is indistinguishable from implementations that use a full Orbiter eg Pad Orbiter or the Nokia Orbiter but by comparison is a very light simple application that needs far fewer resources on the target machine and is massively simpler to implement too. This simplicity makes it a very simple process to port Touch Orbiter to new devices because the application only has to be able to receive and display png's or jpeg's, interact with a touch screen and communicate over a socket with an instance of the proxy_orbiter running on the Core. The proxy_orbiter abstracts all the functions of a full Orbiter and hands back screens or updates to screens as and when necessary.

The new Web Orbiter 2.0 has been re-written from the ground up to make sure it has a much smoother performance overall but especially on slower lower powered devices and devices that are connected over slow LAN connections or even slower external connections...such as a Mobile 3G network or slow WiFi connection.

What is a proxy_orbiter? Proxy_orbiter is built form the 'guts' of the full Orbiter you see on MD's but in this case its a UI'less piece of softare that runs on the Core and its job is to render the UI for the Touch Orbiter that is running remotely on the target device. Each Touch Orbiter has an associated instance of proxy_orbiter and the two work in partnership. Proxy_orbiters do all the 'heavy lifting' rendering the UI and this allows the remote device that is running the Touch Orbiter to be a much less powerful and very simple device indeed if needed.

Reference Implementation for the CUWIN-3500 WinCE in-wall Touch Panel