IP Library Patent Application 11844999
Patent Application
App. No. 11/844,999

Platform Independent Communication Protocol

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/844,999
Abstract

Among other things, techniques for enabling platform independent bidirectional communications between a mobile controller device and a host device over a communication protocol is disclosed. Enabling the communications includes delivering an array of bytes from the mobile controller device to the host device. The array of bytes describes one or more data packets of the mobile controller device. When detected that the host device includes a native device driver, the native device driver is used to parse the delivered array of bytes. Alternatively, when detected that the host device does not include a native device driver, a device driver is provided to parse the delivered array of bytes.

Claims (41)

1 . A method comprising:

providing platform independent bidirectional communications between a mobile controller device and a host device over a communication protocol, wherein providing includes

delivering an array of bytes from the mobile controller device to the host device, wherein the array of bytes describes one or more data packets of the mobile controller device;

when detected that the host device includes a native device driver, using the native device driver to parse the delivered array of bytes; and

when detected that the host device does not include a native device driver, providing a device driver to parse the delivered array of bytes.

2 . The method of claim 1 , wherein providing the device driver comprises providing a customized human interface device driver based on the delivered array of bytes.

3 . The method of claim 1 , wherein providing the platform independent bidirectional communications comprises providing bidirectional communications compatible with Java platform.

4 . The method of claim 1 , wherein delivering the array of bytes comprises using a fixed number of bytes from the array of bytes to generate one or more device specific descriptors that support one or more sensors not supported by a native human interface device descriptor.

5 . The method of claim 4 , wherein generating the one or more device specific descriptors that support one or more sensors comprises generating one or more device specific descriptors that support at least one selected from a group of a joystick, a linear potentiometer, a trackball, an encoder, a force sensitive resistor, a strain gauge, a series of digital switches, an accelerometer, a gyro, an inertial sensor, and an electromagnetic sensor.

6 . The method of claim 1 , wherein providing the platform independent bidirectional communications comprises providing at least two communication channels that are accessible by a Java platform driver.

7 . The method of claim 1 , wherein delivering an array of bytes comprises delivering a variable sequence of bytes customized for the mobile controller device.

8 . The method of claim 7 , wherein delivering a variable sequence of bytes comprises:

mapping each byte in the sequence of bytes to one or more input elements on the mobile controller device; and

changing a value assigned to each byte based on a state of the input element.

9 . A computer program product, embodied on a computer-readable medium, operable to cause a data processing apparatus to perform operations comprising:

providing platform independent bidirectional communications between a mobile controller device and a host device over a communication protocol, wherein providing includes

delivering an array of bytes from the mobile controller device to the host device, wherein the array of bytes describes one or more data packets of the mobile controller device;

when detected that the host device includes a native device driver, using the native device driver to parse the delivered array of bytes; and

when detected that the host device does not include a native device driver, providing a device driver to parse the delivered array of bytes.

10 . The computer program product of claim 9 , operable to cause the data processing apparatus to perform operations further comprising providing a customized human interface device driver based on the delivered array of bytes.

11 . The computer program product of claim 9 , operable to cause the data processing apparatus to perform operations further comprising providing platform independent bidirectional communications by at least providing bidirectional communications compatible with Java platform.

12 . The computer program product of claim 9 , operable to cause the data processing apparatus to perform operations further comprising delivering an array of bytes by at least using a fixed number of bytes from the array of bytes to generate one or more device specific descriptors that support one or more sensors not supported by a native human interface device descriptor.

13 . The computer program product of claim 12 , operable to cause the data processing apparatus to perform operations further comprising generating one or more device specific descriptors that support one or more sensors by at least generating one or more device specific descriptors that support at least one selected from a group of a joystick, a linear potentiometer, a trackball, an encoder, a force sensitive resistor, a strain gauge, a series of digital switches, an accelerometer, a gyro, an inertial sensor, and an electromagnetic sensor.

14 . The computer program product of claim 9 , operable to cause the data processing apparatus to perform operations further comprising providing platform independent bidirectional communication having at least two communication channels that are accessible by a Java platform driver.

15 . The computer program product of claim 9 , further operable to cause the data processing apparatus to perform operations further comprising delivering an array of bytes having a variable sequence of bytes customized for the mobile controller device.

16 . The computer program product of claim 15 , further operable to cause the data processing apparatus to perform operations further comprising delivering a variable sequence of bytes comprising:

mapping each byte in the sequence of bytes to one or more input elements on the mobile controller device; and

changing a value assigned to each byte based on a state of the input element.

17 . A mobile controller device comprising:

a communication mechanism configured to operate a communication stack including

a baseband protocol configured to connect the mobile controller device to a host device,

a bidirectional serial communication protocol configured to operate over the baseband protocol to send one or more messages to the host device, wherein each message comprises a sequence of bytes; and

a controller firmware configured to

monitor input signals provided by various input mechanisms available to the mobile controller device, and

generate the one or more messages;

wherein the bidirectional serial communication protocol enables platform independent bidirectional communications between the mobile controller device and a host device over the baseband protocol.

18 . The system of claim 17 , wherein the bidirectional serial communication protocol enables platform independent bidirectional communications comprising a bidirectional communication compatible with Java platform.

19 . The system of claim 17 , wherein the controller firmware is further configured to take a fixed number of bytes from the sequence of bytes to generate one or more device specific descriptors that support one or more sensors not supported by a native human interface device descriptor.

20 . The system of claim 19 , wherein the controller firmware is further configured to generate one or more device specific descriptors that support at least one selected from a group of a joystick, a linear potentiometer, a trackball, an encoder, a force sensitive resistor, a strain gauge, a series of digital switches, an accelerometer, a gyro, an inertial sensor, and an electromagnetic sensor.

21 . The system of claim 17 , wherein the controller firmware is further configured to generate the one or more messages, each generated message comprising a variable sequence of bytes customized for the mobile controller device.

22 . The system of claim 22 , wherein the controller firmware is further configured to map each byte in the sequence of bytes to one or more input elements of the various input mechanisms available to the mobile controller device and change a value assigned to each byte based on a state of the mapped one or more input elements.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2010
From: ZEEMOTE LLC
To: ZEEMOTE TECHNOLOGY INC.
Reel/Frame 025137/0714 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE FROM ZEE HOLDING LLC TO ZEEMOTE LLC. PREVIOUSLY RECORDED ON REEL 023778 FRAME 0132. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 5, 2010
From: ZEEMOTE, INC.
To: ZEEMOTE, LLC
Reel/Frame 023905/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2010
From: ZEEMOTE, INC.
To: ZEE HOLDING LLC
Reel/Frame 023778/0132 →
REMOVAL OF LIEN Recorded Jan 12, 2010
From: FISH & RICHARDSON, P.C.
To: ZEEMOTE, INC.
Reel/Frame 023768/0631 →
LIEN Recorded Nov 4, 2009
From: ZEEMOTE, INC.
To: FISH & RICHARDSON, P.C.
Reel/Frame 023472/0483 →
CHANGE OF NAME Recorded Sep 22, 2008
From: ZEETOO, INC.
To: ZEEMOTE, INC.
Reel/Frame 021574/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2007
From: CALNAN, PAUL WILLIAM; VOSSELLER, MICHAEL; WHEELER, LORRAINE
To: ZEETOO, INC.
Reel/Frame 020192/0391 →