I did some research last night and it shouldn't be too tough to write a data provider that lets any Droid app access Voyager data. It's all done through cursors/recordsets.
* DONE! Write a thread that provides "awareness" of overall system state up to the second
* Finish making Voyager a fully autonomous background service
* Expose a data provider to Voyager for controlling it.
* Write a simple control interface that uses that provider
* Expose other data providers for access to the data.
* Finish making powerpoint presentation that explains everything about Voyager
This morning I remote started my car while I was getting ready. I started up Voyager and turned on the autoscan. Even though I was walking around the house, it never lost the connection! It continuously scanned 45 active PIDs (It disables unsupported pids if they fail) and never had to reconnect. At some points there were 3-5 second delays between responses but it always picked back up.
Average scan rate is 5 pids per second, and I haven't done any work on optimization yet!
I was up late writing a new thread function that monitors the overall system status and runs various hooks based on what state the OBD system was in, and is currently in. This will let me do things like keep track of trips (trip starts on engine start, trip ends on engine stop)... This plays into making Voyager a fully autonomous background service. It can be commanded by UI but I want it to be fully self-supporting if the user doesn't want to interact.