A friend and I are embarking on a project where we want to explore how to provide Droid's hardware capabilities and hardware - via USB - to a PC application.
We're starting with the actual radio itself. I've done a fair amount of research on how the Radio Daemon works, how it interacts with Vendor RIL, solicited and unsolicited actions, things of that nature. I'm fairly certain that this can be done, granted sufficient time is spent hacking on the internals of rild - that's not the part that scares us. We figure the same types of interfaces will be provided for the GPS and accelerometer, as well.
What we are stumped on, however, is how to provide these functions via USB data to a PC that, of course, runs as the USB host. We anticipate providing the functionality of these components to the host PC via some application interface - again, something we're not terribly concerned with right now. We're trying to figure out how to transfer data in an actual stream, such as that which would accompany a phone call being made from a PC via USB using the Droid's radio, or using the Droid's GPS etc etc. There are applications like PDANet that demonstrate the kind of data manipulation that we're after, but after some research it looks like that is simply done through the same mechanism that enables adb to do port forwarding - its all TCP.
Well, we want to use USB through and through. I want an application on both the Droid and a PC to talk synchronously and not through some bastardized implementation of TCP.
Android's documentation is downright fantastic - and it might just very well be because I'm new to it - but for the life of me I cannot find any information on how to commit this kind of data transfer via USB for applications.
Any pointers or tips or links on the subject would be greatly appreciated.