On Wed, Oct 08, 2008 at 06:32:42AM -0400, Rick Scott wrote: > I think we are on the same page here. My thought is to handle the socket > 0 stuff in the module and have a device file created for all the other > sockets that get opened. So far, "RIM Desktop" and "Usb_SerData". The > desktop socket would peal off the usb type header, socket and length, > and replace it with the serial header, 3 constant bytes and a checksum. > That would give a consistent interface to the device on usb, bluetooth, > and serial. Record parsing and a database "file system" would be better > left to a fuse implementation, I think. It would be cool though, just > cat a vCard into a file :)
This would be quite useful. > I've got a loadable module building outside of the kernel tree, so > control would still be outside of the kernel process. Is this available in CVS somewhere? How far have you gotten? > > But it *would* be very useful to do something like this: > > > > start a backup > > start a tethered modem connection > > end backup > > start a javaloader transfer > > start a restore > > end restore > > do a full sync of contacts and calendar > > end javaloader > > end modem > > > > There are some gotcha's in that list, I think. :-) Should be doable in > > theory though. > > Take out the javaloader part and it's doable now. Not quite. :-) The only way to do all of the above, in the same above sequence, is to have a kernel module or background daemon handling the shared USB traffic, as I understand it. Here are the conflicts: - the backup requires interface class 255, and the Desktop socket - the tethered modem requires interface class 255, for both the IPModem and Serial modes... if backup and tethered modem are separate programs, like Barry does it, this is a problem. If they are all handled in the same program, like XmBlackBerry, this is possible, but you run into a problem when syncing (see below) - javaloader... I'm assuming another interface class 255 conflict - doing a full sync requires a disconnect and reconnect of the Desktop mode, in order to update the database's dirty flags... if there is a smarter way of doing this, it would make things a lot cleaner. At the moment, due to a lack of a complete understanding of the Probe messages, it can be tricky to properly do this reconnect. This could use more testing, as I haven't touched it in a while, but Barry's opensync plugin currently does an entirely new probe to do this reconnect. With a thin kernel driver, or daemon, that could handle all these background conflicts, and also do the header strip/replace you talked about, this would make things a lot more flexible, and would make it easier to share the Blackberry across multiple programs. As I understand it, even RIM has to have its Desktop Manager running in the background on Windows for all this. :-) - Chris ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Barry-devel mailing list Barry-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/barry-devel