The present invention relates to the field of networking, and, more particularly to Universal Plug and Play (“UPnP”) systems.
Universal Plug and Play (“UPnP”) systems provide an architecture for peer-to-peer network connectivity. UPnP-compliant devices may dynamically join a network, obtain a network address, convey their capabilities to the network and learn about the presence and capabilities of other devices on the network. UPnP control points control UPnP devices by requesting the devices to perform specified actions (“services”).
UPnP services are defined for specific types of devices such as printers or Audio-Visual (AV) equipment and the defined service interfaces enable actions to be invoked by a control point and events to be returned to a control point. For example, a UPnP AV service for rendering devices addresses rendering control actions such as setting volume, mute, display contrast, etc.
Many use cases for controlling UPnP devices via portable devices such as laptops and PDAs involve first powering equipment up and invoking the UPnP actions supported by the UPnP device and services implemented by the equipment. Before a UPnP device can be controlled, it must be discovered on the home network. If a UPnP device is not powered up, it cannot be discovered. Therefore, the simple operation of powering up a device cannot be supported for UPnP devices. A user will not understand why control of various operations on a UPnP device are possible such as volume, while others such as the simple operation of powering a device up are not available.
The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention. The drawings, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
A mechanism to control infrared devices via the UPnP device architecture is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that embodiments of the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
Reference in the specification to “one embodiment” or “an embodiment” of the present invention means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment,” “according to one embodiment” or the like appearing in various places throughout the specification are not necessarily all referring to the same.
As shown in apparatuses 120, 130 and 190, an apparatus may include one or more device(s), and each device may include several services. In one embodiment, apparatus 120 is implemented in a Digital Media Adapter. In another embodiment, apparatus 120 is a stand-alone device that is used to blast IR signals to devices in its vicinity.
According to one embodiment, apparatus 120 enables the ability to power up/down and the general control of both UPnP and non-UPnP devices that support IR remote control. Device 121 is an infrared (IR) discovery device having services 123 and 125. In one embodiment, service 123 is an IR blaster service, and service 125 is an IR discovery service, both of which will be discussed in more detail below. In contrast, apparatus 130 may be a handheld device that includes remote control service 135, while apparatus 190 may be a digital video disk (DVD) apparatus that includes playback service 195. Note that in other embodiments, apparatus 130 may be implemented with any device capable of transmitting IR codes (e.g., a laptop).
Apparatus 120 also includes ports 127 and 128. In one embodiment, ports 127 and 128 enable apparatus 120 to control the operations of the devices 170 and 180, which are not associated with network 100, via IR. In a further embodiment, either port 127 or 128, or both, may be a two-way IR port. Port 129 is associated with apparatus 190. Port 129 may be used to power up and control apparatus 190 even though apparatus 190 is on network 100.
The services provided by a particular type of device differ among device types. Accordingly, a device may maintain and selectively provide a listing of the service(s) and/or other information pertaining to the individual device. According to one embodiment, a device hosts an extensible Markup Language (XML) description document that describes the services provided by the device as well as other associated information.
Control point 110 includes a management application 115 that is implemented to manage the various services. In one embodiment, control point 110 invokes actions of services that are embedded in disparate devices (and apparatuses). Control point 110 may be used to discover and control UPnP devices in network 100.
In one embodiment, control point 110 may discover a device (e.g., device 130 or 121), receive an XML description associated with the device, retrieve descriptions of services associated with the device based on pointers located in the description, invoke actions specified in the service descriptions, and subscribe to events issued by the services.
In the latter regard, a service will send an event to the control point when a state of the service changes. A service description may also include a list of variables that model the state of the service at run time. UPnP messages may be delivered via Hyper Text Transport Protocol (“HTTP”) or User Datagram Protocol (“UDP”) or any other of a number of protocols, possibly running over Internet Protocol (“IP”).
According to one embodiment, control point 110 includes an IR blaster management application 117 that manages blaster service 123 at apparatus 120. Blaster service 123 issues IR commands to a device via one or more output ports (e.g., port 129) associated with IR controlled UpnP devices, or via ports 127 and 128 interface services associated with non-UPnP devices.
In one embodiment, blaster service 123 stores data corresponding to the existence of one or more UPnP devices, even when those devices are powered down. In addition, blaster service 123 stores data corresponding to the existence of one or more non-UPnP devices.
In a further embodiment, IR blaster service 123 offers information on the room in which it is located, and actions that allow that information to be changed. Further, IR blaster service 123 may use the normal UPnP discovery mechanisms to find a UPnP device (e.g., apparatus 190) when a device is first powered up by a user (via the local power on/off switch on a device's front panel) and remembers the device description information (also discoverable by UPnP mechanisms).
If a given UPnP device is subsequently powered down, blaster service 123 may proxy for the device to enable discovery of the device by blaster management application 117. IR blaster service 123 may then subsequently power up such devices via IR, upon which a newly powered up UPnP device would then be able to respond over the network to the normal UPnP actions it supports.
Some time after storing the description information, the device is powered down, processing block 240. At processing block 250, a command is received at blaster service 123 for the device. At processing block 260, blaster service 123 proxies for the device to enable the device to be discovered. At processing block 270 blaster service 123 powers up the device by IR via the corresponding output port.
Referring back to
In a further embodiment, the user enters other information such as an associated device manufacturer, model number, the location of the device in the home, etc. If the control point 110 blaster management application 117 runs on a platform such as a PC, the product information enables blaster management application 117 to consult an IR code database within control point 110 to determine a specific IR code needed to power up/down a device, and any other specific controlling functions that may go beyond the level of control allowed via defined UPnP device services and actions.
As discussed above, IR blaster service 123 also supports non-UPnP devices that support IR remote control. According to one embodiment, the IR code database represents such devices as appropriate UPnP devices and proxy the devices on to the network 100 as UPnP devices.
In another embodiment, IR controllable devices are defined as another form of UPnP device where the mapping between IR codes and the specific operations supported by a device are discoverable. In such an embodiment, blaster management application 117 directly presents the information discovered through UPnP to a user at apparatus 120 for control purposes.
For example, the information presented to the user at apparatus 120 may be presented to a user in menu form indicating various devices that are listed by home location. Consequently, the user may select a device based upon which room in the home the user is currently located. Once the user selects a particular device to control, the user may be presented with further menu options in the form of the discovered names for each controlling operation such as volume up, volume down, channel up, channel down, etc.
According to one embodiment, an IR device supports two-way IR, which would enable the state of the device to also be retrieved via a defined UPnP service interface (e.g., ports 127 or 128). IR blaster service 123 in such an embodiment would operate as an IR receiver to detect changes of state and forward them on to network 100 as UPnP events or allow the state to be retrieved via UPnP actions. If IR blaster service 123 supports two-way IR communication, the IR receive portion may be shutoff using a UPnP action in the blaster service 123 (e.g., power saving feature). The IR power setting could be set using an action in blaster service 123.
According to a further embodiment UPnP Security can be used to add privacy and authentication to IR blaster service 123. In such an embodiment, UPnP Security may be implemented to control access of IR blaster management application 117 to actions that may be invoked for each IR device. Security may be set so that control points other than control point 110 may use blaster service 123 but not configure blaster service 123. For instance, UPnP security allows device 121 to determine which instances control point 110 may use services 123 and 125. If control point 110 is allowed to use service 123 or service 125, services 123 and 125 may prescribe limitations on what actions can be called.
In a further embodiment, apparatus 120 features the automatic discovery of device IR codes. Referring back to
In one embodiment, discovery service 125 may discover devices 170 and 180 after a network user verifies the existence of the devices. In addition, devices 170 and 180 may directly report their existing by responding over 2-way IR. Similarly, device 190 may report its existence via UPnP. The discovered codes may be used by blaster service 123 to control devices as described above. However in one embodiment, apparatus 130 may use the codes to control IR devices.
As discussed above, apparatus 130 may be a handheld device (e.g., a pocket PC, wireless laptop or PDA) that can discover the IR codes associated with each IR device in any room. Once the correct IR codes are discovered and saved, apparatus 130 may be moved between rooms and used to control each device.
According to one embodiment, discovery service 125 exposes discoverable UPnP devices on network 100. Discovery service 125 includes an action (“GetAllIrDevices”) that when invoked by management application 115 returns an XML list of all IR devices. The list is stored in a discovery database at control point 110. In one embodiment, control point 110 may retrieve only a certain number of devices for each call to the GetAllIrDevices action. For example, the retrieval processes may start at listed device number twenty and retrieve the next ten devices.
According to one embodiment, each node in the XML list includes the name, manufacturer, and IR code identifier for that device. In a further embodiment, the XML list includes the name and IR code for each device key, and a key layout grid. In yet a further embodiment, the XML document also includes a URL to a small picture or the IR device (e.g., an icon in Windows or PNG format). In addition, the IR XML device list may also include an icon for the device manufacturer name and a layout bitmap that can be shown to make the handheld device screen resemble the remote control normally used by a particular IR device.
Further, the XML list may include the UPnP unique identifier and UPnP device type of an IR device if the particular device is also discoverable using UPnP. For instance, if a projector on network 100 can accept both UPnP and IR commands, the unique UPnP device identifier for the projector is retrieved from the discovery database. If apparatus 130 is later using that projector and is also connected to network 100, apparatus 130 can match the IR device it is currently using with the UPnP device on network 100.
In one embodiment, management application 115 implements (“CreateNewIrDevice”) and (“DeleteIrDevice” actions) to enable control point 110 to manage the list of IR devices provided by discovery service 126. In such an embodiment, control point 110 can read the device list and add/remove IR devices. Note that the GetAllIrDevices action may have different access privileges than the CreateNewIrDevice or DeleteIrDevice actions.
Moreover, each IR device that is also a UPnP device, such as a network projector, can directly provide its own UPnP IR service in addition to listing itself in the discovery service 125. This device may also provide the information to service 125 by invoking CreateNewIrDevice. However, such a device would generally not implement the CreateNewIrDevice and DeleteIrDevice actions, since the device only provides its own IR codes, layout and icon. In such an embodiment, a user may configure the IR device list manually or by using information available on the Internet. With Internet assistance, icons and key layout templates are easily downloaded.
The above-described blaster service makes it possible to discover the existence of UPnP devices regardless of their power states, and features the ability to power up the devices in the instances in which a device is powered down. In addition, the blaster service enables the control of non-networked IR controllable devices via UPnP, and provides finer grained control of IR controllable UPnP devices.
The IR discovery service facilitates the automation of IR code configuration without having to be manually entered by a user or learned by an IR capable handheld device. Further, the discovery service provides information about an IR device (e.g., manufacturer, icon and button layout) that is typically not collected since it is time consuming.
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims which in themselves recite only those features regarded as the invention.