IP Library Granted Patent US 9,407,950
Granted Patent B2
US 9,407,950 · App. 13/949,077 · Granted Aug 2, 2016

Controlling devices in entertainment environment

Inventors: Ripin Natani (Bellevue, WA); Eliezer Payzer (Seattle, WA); Brian Joseph Ewanchuk (Redmond, WA); John Thomas Kimbell (Kirkland, WA); Brent Campbell (Bothell, WA); Paul Heidelman (Redmond, WA); Philip J. Nachreiner (Duvall, WA); Luis Delgado de Mendoza Garcia (Seattle, WA); Alexander Gurzhi (Cupertino, CA); Yuriy Tarasov (Santa Clara, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04N21/42225G08C19/00H04N21/4113H04N21/4131H04N21/42204H04N21/42221H04N21/43615H04N21/43635H04N21/43637H04N21/65H04N21/6543
View Patent ↗
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 9,407,950
App. No.
13/949,077
Granted
Aug 2, 2016
Kind
B2
Abstract

Embodiments for controlling one or more external audio-visual devices are provided. In one example, a method comprises receiving a device command and determining an intent of the device command. The intent includes an action and an external device to perform the action. The method further comprises selecting a selected protocol for communicating the device command to the external device, where the selected protocol is selected from a plurality of supported protocols, and communicating the device command to the external device according to the selected protocol.

Claims (67)

1. On a computing device, a method for controlling one or more external audio-visual devices, the method comprising:

receiving a device command;

determining an intent of the device command, the intent including an action and an external device to perform the action;

selecting a first selected protocol for communicating the device command to the external device, the selected protocol selected from a plurality of supported protocols;

communicating the device command to the external device according to the selected protocol;

detecting a state of the external device;

determining that the device command was received by the external device when a change of state of the external device is detected;

determining that the device command was not received by the external device when a change of state of the external device is not detected; and

when it is determined that the device command was not received by the external device, then select a second selected protocol, different from the first, to communicate the device command to the external device, the selected protocol selected from the plurality of supported protocols.

2. The method of claim 1 , wherein determining if the device command was received by the external device further comprises receiving confirmation that the device command was received by the external device.

3. The method of claim 2 , further comprising, if the confirmation is not received within a threshold time, then communicating the device command to the external device according to a second protocol selected from the plurality of supported protocols.

4. The method of claim 1 , wherein receiving the device command further comprises receiving the device command from one or more of a remote control device, a mobile device, a computing device, and a sensor system.

5. The method of claim 1 , wherein the plurality of protocols comprises one or more of an infrared signaling protocol, an HDMI CEC protocol, an Internet protocol, a Wi-Fi direct protocol, and a BLUETOOTH protocol.

6. The method of claim 1 , wherein the external device is a first external device and further comprising:

determining a state of the first external device;

detecting a change of the state of the first external device; and

notifying a second external device of the change of the state of the first external device.

7. The method of claim 1 , further comprising:

sending a request for device capabilities of the external device to a remote computing device;

receiving the device capabilities from the remote computing device; and

selecting the selected protocol from the plurality of supported protocols based on the device capabilities received.

8. The method of claim 1 , wherein communicating the device command to the external device according to the selected protocol further comprises communicating the device command via a pluggable communication module corresponding to the selected protocol.

9. The method of claim 8 , further comprising:

detecting a connection of a new external device;

obtaining a new pluggable communication module corresponding to a protocol supported by the new external device; and

communicating with the new external device via the new communication module.

10. A computing device comprising instructions executable to:

receive a device command;

determine an intent of the device command, the intent including an action and an external device to perform the action;

select a first selected protocol for communicating the device command to the external device, the selected protocol selected from a plurality of supported protocols;

communicate the device command to the external device according to the selected protocol;

detect a state of the external device;

determine that the device command was received by the external device when a change of state of the external device is detected;

determine that the device command was not received by the external device when a change of state of the external device is not detected; and

when it is determined that the device command was not received by the external device, then select a second selected protocol, different from the first, to communicate the device command to the external device, the selected protocol selected from a plurality of supported protocols.

11. The computing device of claim 10 , wherein the device command is a first device command and the action is a first action, and wherein the instructions are further executable to:

receive a second device command;

determine an intent of the second device command, the intent of the second device command including a second action performable by the external device;

select a second, different protocol from the plurality of supported protocols for communicating the second device command to the external device; and

communicate the second device command to the external device according to the second protocol, wherein the second protocol is selected based on the second action.

12. The computing device of claim 10 , wherein the instructions are executable to receive the device command from one or more of a remote control device, a mobile device, a computing device, and a sensor system, and to communicate the device command via one or more an infrared signaling protocol, an HDMI CEC protocol, and a wireless networking protocol.

13. The computing device of claim 10 , wherein the instructions are further executable to:

send a request to a remote computing device for device capabilities information for the external device;

receive the device capabilities for the external device from the remote computing device; and

select the selected protocol from the plurality of supported protocols based on the device capabilities received.

14. The computing device of claim 10 , wherein the instructions are further executable to:

detect a change of the state of the external device; and

notify one or more additional devices of the change of the state of the external device.

15. A computer readable memory comprising instructions executable by a computing device to operate a command and control engine configured to:

communicate with a plurality of communication modules, each communication module configured to control one or more external devices of a plurality of external devices according to a particular protocol,

receive a device command,

select a first communication module from among the plurality of communication modules to communicate the device command to a first external device of the plurality of external devices, and

communicate the device command to the first external device via the first communication module, wherein the first communication module is configured to communicate with the first external device according to a first protocol; and

wherein the instructions are further executable by the computing device to operate a state detection module configured to

detect a state of each of the plurality of external devices,

responsive to the command and control engine communicating the device command to the first external device, determine if the device command is received by the first external device based on a detected change of state of the first external device, and

if the device command is not received, then instruct the command and control engine to select a second communication module to communicate the device command to the first external device.

16. The computer readable memory of claim 15 , wherein the command and control engine is further configured to:

receive a second device command,

select a third communication module from among the plurality of control modules to communicate the second device command to a second external device of the plurality of external devices, and

communicate the second device command to the second external device via the third communication module, wherein the third communication module is configured to communicate with the second external device according to a second protocol that is different than the first protocol.

17. The computer readable memory of claim 15 , wherein the command and control engine is further configured to:

send a request for device capabilities of the first external device to a remote computing device;

receive the device capabilities from the remote computing device; and

select the first communication module based on the device capabilities received.

18. The computer readable memory of claim 15 , wherein the command and control engine is configured to receive the device command from one or more of a remote control device, a mobile device, a computing device, and a sensor system.

19. The computer readable memory of claim 15 , wherein the plurality of communication modules comprises one or more of an infrared signaling module, an HDMI CEC module, and a wireless networking protocol.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2013
From: NATANI, RIPIN; PAYZER, ELIEZER; EWANCHUK, BRIAN JOSEPH; KIMBELL, JOHN THOMAS; CAMPBELL, BRENT; HEIDELMAN, PAUL; NACHREINER, PHILIP J.; DELGADO DE MENDOZA GARCIA, LUIS; GURZHI, ALEXANDER; TARASOV, YURIY
To: MICROSOFT CORPORATION
Reel/Frame 030871/0443 →
Continuity (1)
Related Publication 20150033275A1 · Jan 29, 2015