Upload
lee-osborne
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
MobileRCWill Worden
Jackie HuynhChris Shrives
What does it do?Use your cell phone as a remote control for a
media control centerTwo sides – Computer Side application and
Phone Side application
Technologies involvedWLAN connection between phone and
computerPhone that can run J2ME application (We
tested on a Nokia e71/ Symbian S60 FP2)Computer side requires Python, VLC Player
(default player)
How do we do it?
Interpreter runs on computer, Phone connects to. Interpreter parses commands from phone and passes them to VLC for execution
INTERPERTERTCP
TCP
Phone SideJ2me applicationConnects over Wireless LAN rather than over
the air through cellular network No data costs associated with itTCP /UDP connection, predefined ports
Phone SideNetworking aspectsFinding Peers
Features both manual entry (history of previous connections stored locally on phone)
Automated peer detection on WLAN UDP broadcast on subnet to find listening peers
PeerfindingRegistrarService
Peerfinding
Broadcast AddressMessage hashed with md5
Peerfinding
Password matched, Connect
Phone SideTCP message commands after connection
establishedPredefined port on Computer Side, OS
assigns Phone side port
Problems Encountered on PhoneSide Problems found: Many wireless routers don’t allow
broadcast msg Nokia does not recognize 255.255.255.255 as valid
host Symbian does not allow phone to report its own IP
address (Security feature) Nokia phones cannot connect to an address with
port 80 (Midlet must be signed by trusted authority such as Verisign or Thawte)
Workaround: Connects to a registrar service that provides the IP information.
ComputerSide (Interpreter)Python 2.6Console Application (GUI feature, cut)Maps internal commands to VLC commandsAccepts TCP Connections from mobile
devices.Makes separate TCP connection to VLC
Connects to VLC’s Remote Control Interface
Why have interpreter? Why not connect mobile devices to VLC directly?
ComputerSide (Interpreter)Decoupling
You can build a different application to act as the remote control. (e.g. iPhone application)
You can control other media players as well, as long as they have some sort of remote control interface
INTERPERTER
ComputerSide (Interpreter)Usage:
Problems found on Computer SideVLC does not provide any playback
information that can be used to get status of the player.
Commands sent to VLC are limited (e.g. Pause/Resume)
Difficult to detect VLC installation location. Just assumed default.
CommandsLaunchPlayPauseStopNextRWDFFWPreviousVolume +/-Mute (VLC bugged)Full ScreenQuit
GUIKUIX library (
http://www.kalmeo.org/projects/kuix)Uses CSS to create dynamic UI
Outside sourceshttp://www.kalmeo.org/projects/kuixMd5 implementation for j2mehttp://mobilepit.com/10/compact-md5-class-
library-for-j2me-javame-app.html
Open Source!
This project is hosted by Google’s Project Hostinghttp://code.google.com/p/mobilerc/
MIT Licensed
Questions?