The invention relates to an apparatus for supplying codes for remotely controlling devices, and also relates to a remote control system comprising the apparatus, to a method for supplying codes for remotely controlling devices, to a computer program product to be run via a computer for performing the method, and to a medium for storing and comprising the computer program product.
Examples of such a remote control system are universal remote control units, and examples of such devices are consumer products and non-consumer products.
U.S. Pat. No. 6,008,735 discloses a method and system for programming a remote control unit to control the operation of a controllable device.
It is an object to provide an apparatus for supplying codes for remotely controlling devices.
Further objects are to provide a remote control system, a method, a computer program product and a medium.
A first aspect of the invention provides an apparatus for supplying codes for remotely controlling devices, the codes defining functions to be performed by the devices, a code-set comprising a function-code-combination for each one of two or more different functions, at least one of the different functions being a main-function and at least one other of the different functions being a sub-function, and the code-set forming part of a group of code-sets for a target device in case a code of a function-code-combination for the main-function is valid for the target device. So, under a condition that a code of a function-code-combination for a main-function is valid for the target device, a code-set is allocated to a group of one or more code-sets.
Examples of the functions to be performed by the devices are power on/off, digit, text, input, menu, back, mute, channel up/down, volume up/down etc. A valid code is a code that works for the target device (in other words a valid code is a code that results in the main-function being performed) and a non-valid code is a code that does not work for the target device (in other words a non-valid code is a code that does not result in the main-function being performed). By distinguishing between a main-function and sub-functions, different first and second functions are distinguished from each other. The different first and second functions are for example more and less important functions or more and less discriminating functions or other kinds of different functions. Code-sets each comprising two or more function-code combinations are grouped in dependence of their codes that define the main-function. So, in dependence of these main-codes being valid for the target device or not, a large number of function-code-combinations is divided into several groups. Each one of these groups comprises a smaller number of function-code-combinations. A first group for example comprises all function-code-combinations of all code-sets comprising a valid code that defines the main-function. A second group for example comprises all function-code-combinations of all code-sets comprising a non-valid code that defines the main-function. Owing to the fact that the first group comprises the code that allows the main-function to be performed by the target device and that the second group comprises a code that does not allow the main-function to be performed by the target device, the first group is more interesting for the target device. As a result, the large number of function-code-combinations available for the target device has been reduced, and the apparatus can supply those codes, that are possibly interesting for the target device, more efficiently.
It is not to be excluded that different codes each defining one and the same main-function are valid for the target device. So, these codes do for example not need to be identical bit by bit, fuzzy matches are allowed, what's important is that each one of these codes works for the target device. Instead of using one of the different functions as a main-function and using all others of the different functions as sub-functions, it is not to be excluded that two or more of the different functions are used as main-functions and all others of the different functions are used as sub-functions. Different code-sets may comprise a function-code-combination for different numbers of different functions.
According to an embodiment, an apparatus is defined by the group of code-sets forming a tree, the main-function and a code or codes defining the main-function forming a root of the tree, the sub-function forming a branch of the tree and a code or codes defining the sub-function forming a leaf of the branch. Usually, a tree comprises a root with several branches and with several leaves per branch. Other constructions than trees are however not to be excluded, such as a pyramid and a river bedding (a river delta).
According to an embodiment, an apparatus is defined by the group of code-sets being defined for a particular device-type and/or a particular device-brand. This way, the group of code-sets can be further reduced, and the apparatus can supply those codes, that are possibly interesting for the target device, even more efficiently.
According to an embodiment, an apparatus is defined by the apparatus comprising a database, and the group of code-sets being stored in a group of mutually linked fields in the database. This group of mutually linked fields for example defines the root of the tree and its branches and its leaves per branch.
According to an embodiment, an apparatus is defined by the apparatus comprising a processor for creating the group of code-sets and further comprising a memory for storing the group of code-sets. This processor for example groups the code-sets in dependence of their codes that define the main-function. So, in dependence of these main-codes being valid for the target device or not, a large number of function-code-combinations is divided into several groups etc.
According to an embodiment, an apparatus is defined by the main-function being pre-stored and/or being selectable by a user. According to a first option, the main-function may be pre-defined and pre-stored. According to a second option, a user may select which function(s) is(are) considered to be the main-function(s).
According to an embodiment, an apparatus is defined by the main-function being a power on/off function for switching the power on/off of the target device. The power on/off function is one of the functions that cannot be spared easily. Such a power on/off function may be a discrete function or a toggle function or another function.
According to an embodiment, an apparatus is defined by the codes being infrared codes destined for the devices. Other kinds of codes such as radio frequency codes are not to be excluded.
A second aspect of the invention provides a remote control system comprising the apparatus as defined above, the remote control system further comprising a transmitter for transmitting the codes to the devices. Such a remote control system may be a single remote control unit or may comprise two or more interacting remote control parts.
According to an embodiment, a remote control system is defined by the remote control unit further comprising a controller for controlling the transmitter for automatically transmitting the codes of the group of code-sets to the target device and further comprising a receiver for receiving a signal from a user or from the target device, the signal indicating one or more of the codes being valid for the target device. This way, the remote control system is programmed to control the target device.
According to an embodiment, a remote control system is defined by the remote control system further comprising a programmable part for mapping a key or another input to a particular function-code combination. This key or other kind of input does not necessarily need to be pre-destined for a particular function. So, it is not to be excluded that a key or another input destined for a first function is mapped to a function-code combination defining a completely different second function.
According to an embodiment, a remote control system is defined by the controller having a first generation mode for generating the codes at a first speed and having a jump back mode for jumping back a number of generated codes in response to a reception of the signal and having a second generation mode for generating the codes at a second speed that is more slowly than the first speed. These modes will further increase an efficiency of the remote control system.
It should be noted that a remote control system comprising a controller with generation and jump back modes may be realized independently from the apparatus as defined above. In other words, a remote control system comprising a controller with generation and jump back modes does not necessarily require a code-set to be allocated to a group of code-sets for a target device under the condition that a code of a function-code-combination for a main-function is valid for a target device.
A third aspect of the invention provides a method for supplying codes for remotely controlling devices, the codes defining functions to be performed by the devices, a code-set comprising a function-code-combination for each one of two or more different functions, one of the different functions being a main-function and the other ones of the different functions being sub-functions, the method comprising a step of allocating a code-set to a group of code-sets for a target device in case a code of a function-code-combination for the main-function is valid for the target device.
A fourth aspect of the invention provides a computer program product to be run via a computer for performing a method as defined above.
A fifth aspect of the invention provides a medium for storing and comprising the computer program product as defined above.
Embodiments of the remote control system and of the method and of the computer program product and of the medium correspond with the embodiments of the apparatus.
An insight might be that one or more of the functions to be performed by the devices to be controlled are more important or more discriminating than other functions or are otherwise different from the other functions. A basic idea might be that main-functions and sub-functions are to be distinguished from each other and might further be that code-sets each comprising two or more function-code combinations are to be grouped in dependence of their codes that define the main-function(s).
The invention solves a problem to provide an apparatus for supplying codes for remotely controlling devices. The invention is advantageous in that the apparatus can supply the codes more efficiently.
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiment(s) described hereinafter.
In the drawings:
A remote control system such as a universal remote control unit for example comprises the following five code-collections, each code-collection defining a code C per function F1-F10 (first table):
The function F1 is for example a power on/off function, the function F2 is for example a digit function, the function F3 is for example a text function, the function F4 is for example an input function, the function F5 is for example a menu function, the function F6 is for example a back function, the function F7 is for example a mute function, the function F8 is for example a channel up/down function etc. These functions are to be performed by devices to be controlled by the universal remote control unit in response to receptions of (infrared or other kinds of) codes transmitted by the universal remote control unit.
Owing to the fact that there are many devices of different types and brands, a universal remote control unit comprises many different code-collections. A user of the universal remote control unit has to find out which code-collection offers the best control per device.
According to the example disclosed in the first table, five different code-collections comprising fifty function-code-combinations have to be checked. This is a relatively inefficient solution, owing to the fact that for a target device that accepts the function-code-combination F1-C1, the function-code-combination F1-C21 will probably not be accepted. In other words, the first, fourth and fifth code-collections might be suitable for the target device, and the second and third code-collections are probably not.
According to the invention, a relatively efficient solution is offered, in that code-sets are grouped that comprise a function-code-combination for each one of two or more different functions. Thereby, at least one of the different functions is defined to be a main-function and at least one other of the different functions is defined to be a sub-function. A code-set forms part of a group of code-sets for a target device in case a code of a function-code-combination for the main-function is valid for the target device. The example disclosed in the first table then becomes (second table):
The example disclosed in the second table only comprises seventeen function-code-combinations that need to be checked. The reduction from fifty to seventeen function-code-combinations is a great improvement of the efficiency. In this example as disclosed in the second table, the function F1 being a power on/off function has been defined to be a main-function and all other functions F2-F10 are considered to be sub-functions, but an other function and/or more than one function may be defined to be a main-function.
Another way of looking at the example disclosed in the second table is that the group of code-sets forms a tree. The main-function F1 and a code C1 defining the main-function F1 form a root of the tree. The sub-functions F2-F10 form branches of the tree, and a code or codes defining a sub-function form a leaf of this branch (C2 for F2, C3 and C13 for F3, C4 and C14 for F4, C5 and C15 for F5, C6 and C16 for F6, C7 and C17 for F7, C8 and C18 for F8, C9 for F9, and C10 and C20 for F10).
To further improve the efficiency, the group of code-sets may be defined for a particular device-type and/or a particular device-brand. Thereto, a user might need to select and/or enter the device-type and/or the device-brand of the target device.
A first possible realization of an apparatus that forms part of a remote control system is shown in the
In the first row, in a second column, a second field 102 defines a second function-code-combination (for example F2-C2) comprising a second function (a sub-function, for example F2). Thereto, for example the entire second function-code-combination is stored in the second field 102, or only the code of the second function-code-combination is stored in this second field 102, whereby the second column is indicating the second function of the second function-code-combination.
In the first row, in a third column, a third field 103 defines a third function-code-combination (for example F3-C3) comprising a third function (a sub-function, for example F3) and a fourth field 104 defines a fourth function-code-combination (for example F3-C13) comprising the third function (a sub-function, for example F3). Thereto, for example the entire third (fourth) function-code-combination is stored in the third (fourth) field 103 (104), or only the code of the third (fourth) function-code-combination is stored in this third (fourth) field 103 (104), whereby the third column is indicating the third function of the third (fourth) function-code-combination.
In the first row, in a last column, a sixteenth field 105 defines a sixteenth function-code-combination (for example F10-C10) comprising a tenth function (a sub-function, for example F10) and a seventeenth field 106 defines a seventeenth function-code-combination (for example F10-C20) comprising the tenth function (a sub-function, for example F10). Thereto, for example the entire sixteenth (seventeenth) function-code-combination is stored in the sixteenth (seventeenth) field 105 (106), or only the code of the sixteenth (seventeenth) function-code-combination is stored in this sixteenth (seventeenth) field 105 (106), whereby the last column is indicating the tenth function of the sixteenth (seventeenth) function-code-combination.
Similarly, in a second row, in a first column, a field 111 defines a further first function-code-combination of another tree (for example F1-C21) comprising a first function (the main-function, for example F1). Thereto, for example the entire further first function-code-combination is stored in the field 111, or only the code of the further first function-code-combination is stored in this first field 111, whereby the first column is indicating the first function of the further first function-code-combination.
In the second row, in a second column, a field 112 defines a further second function-code-combination of the other tree (for example F2-C22) comprising a second function (a sub-function, for example F2) and a field 113 defines a further third function-code-combination of the other tree (for example F2-C32) comprising the second function (a sub-function, for example F2). In the second row, in a third column, a field 114 (115, 116) defines a further fourth (fifth, sixth) function-code-combination of the other tree comprising a fourth function. In the second row, in a last column, a field 117 (118, 119) defines yet further function-code-combinations of the other tree etc.
A second possible realization of an apparatus that forms part of a remote control system is shown in the
In the first row, after the first field separation, a second field 102 defines a second function-code-combination (for example F2-C2) comprising a second function (a sub-function, for example F2). Thereto, for example the entire second function-code-combination is stored in the second field 102, or only the code of the second function-code-combination is stored in this second field 102, whereby the first field separation following the first field 101 or the second field separation following the second field 102 is indicating that this function is the second function of the second function-code-combination.
In the first row, after the second field separation, a third field 103 defines a third function-code-combination (for example F3-C3) comprising a third function (a sub-function, for example F3) and a fourth field 104 defines a fourth function-code-combination (for example F3-C13) comprising the third function (a sub-function, for example F3). Thereto, for example the entire third (fourth) function-code-combination is stored in the third (fourth) field 103 (104), or only the code of the third (fourth) function-code-combination is stored in this third (fourth) field 103 (104), whereby the previous or coming field separation is indicating that this function is the third function of the third (fourth) function-code-combination.
In the first row, a sixteenth field 105 defines a sixteenth function-code-combination (for example F10-C10) comprising a tenth function (a sub-function, for example F10) and a seventeenth field 106 defines a seventeenth function-code-combination (for example F10-C20) comprising the tenth function (a sub-function, for example F10). Thereto, for example the entire sixteenth (seventeenth) function-code-combination is stored in the sixteenth (seventeenth) field 105 (106), or only the code of the sixteenth (seventeenth) function-code-combination is stored in this sixteenth (seventeenth) field 105 (106), whereby the previous field separation is indicating that this function is the tenth function of the sixteenth (seventeenth) function-code-combination. Similarly, in a second row, fields 111-119 etc.
Mutually linked fields are for example sub-fields of a larger field or are for example subsequent fields with subsequent field numbers or are for example fields with mutually linked field numbers or are for example fields whereby another mechanism takes care of mutually linking these fields.
A third possible realization of an apparatus 1 that forms part of a remote control system is shown in the
In the
The main-function may be pre-stored and/or may be selectable by the user. In the
The code-collections disclosed in the first table do often not allow an optimum solution to be found, owing to the fact that per code-collection one or more of the function-code-combinations will often not work for the target device. Compared to these code-collections, the creation of a group of code-sets for a target device for which group the main-code defining the main-function is valid for the target device will at least offer a larger chance to find an optimum solution, owing to the fact that several code-sets are combined.
A tree-based database or processor/memory combination or remote control unit can be built from scratch, created from any existing database, or generated from a traditional code-collection-based database. This can be done design-time or run-time.
Firstly, one or multiple main-functions that are to be used as a root or roots of the tree are to be selected and/or generated. Then the tree or trees are to be computed for a brand/device combination, for a device, for a brand, or over a full database. For example an algorithm iterates over all code-collections for the brand/device combination, for the device, for the brand, or over the full database. For each unique main-code for the main-function, a tree is computed. Thereby it must be noted that two codes are considered to be equal if they have the same effect on the target device. So although, they aren't bit-wise the same, they still can be ‘the same’ (‘fuzzy match’). One or multiple code-collections will be mapped onto a tree. When multiple trees exist, an order may be given to these trees. This could be based on the order of the code-collections that have been used or on another kind of priority.
Then for example an algorithm iterates over all these code-collections that will be mapped into the single tree. Each sub-function is a branch of the tree. For each sub-function, its code is added as a leaf to the branch. If two codes are similar (bit-wise or fuzzy), only one code will be added to the branch in the tree. If they are different each unique one will be added. A weighing algorithm may be used to give weight to the multiple codes. For example, the code that comes out of the highest-priority code-collection may get the highest weight, or the numbers of prevalence of each unique code may be counted and the counting results may be weighted. This all may be repeated for all different trees for the brand/device combination.
To set-up a universal remote control unit, a user may switch this control unit into a programming mode. This can be done by pressing a key (combination), using the menu on a screen, etc. Then the user may for example select for what device and brand the control unit is to be configured. Depending on the form-factor of the control unit there can be different ways of doing this. For example an algorithm iterates over all trees for the chosen brand/device combination, and the main-code defining the main-function is sent out. Either the user or the control unit has to check whether the target device has reacted to the transmission of the main-code. Then this tree may be installed into the control unit. The key corresponding to the tree's main-code (main-function for example power on/off) will now certainly work. Consequently, all other sub-functions of the tree have to be checked. If there is only one code as a leaf, this code has to be installed. If a certain sub-function has multiple codes as leaves, either one with the highest priority is to be installed or one or more with a higher priority than others may be installed (for example in case the control unit is capable of transmitting two or more codes per function shortly after one another).
It may need to be tested if all keys work or not. If they don't work, this may be indicated. There can be different ways to indicate this. On a control unit having a liquid crystal display screen, this screen can be used. Another way of indicating this is pressing-and-holding the non-working (or incorrectly working) key. Then, for example an algorithm iterates over all possible codes of the function corresponding to the user-indicated key (this can be a hard-key or soft-key), and the code is sent. When the user has indicated that the code worked, that code is installed under this key.
Alternatively, for example an algorithm can not only iterate over codes for a given (sub-) function, but can also iterate over codes for related (sub-) functions. For example, in case the user cannot find a satisfying code, it might be that a code from a different (sub-) function would be a better. To do so, the control unit may implement what different (sub-) functions may be mapped to a specific key. For example functions like ‘Program’, ‘Show-view’ and ‘Timer’ are different functions with a similar effect. If there is just one ‘Program’ key on a control unit, the user might expect any of these to work. Sometimes there is no key for an important function, and at the same time there are keys that won't work for a specific device. For example in case the user's TV has “Ambilight”, it might be allowed to put the “Ambilight” function under for example the ‘Tele-text OFF’ key.
Summarizing, according to an embodiment and without excluding further embodiments, in an apparatus 1, such as a database or a processor/memory combination of a remote control unit 10, for supplying for example infrared codes defining functions for remotely controlling devices, code-sets comprise function-code-combinations for each one of two/more different functions. By distinguishing main-functions such as power on/off and sub-functions such as channel up/down and volume up/down, code-sets can be allocated to a group of code-sets for a target device in case a code of a function-code-combination for the main-function is valid for the target device. This increases an efficiency of the apparatus 1. The group of code-sets may form a tree, whereby the main-function and its code(s) form a root of the tree, whereby a sub-function forms a branch of the tree and a code or codes defining this sub-function form a leaf or leaves of the branch. The group of code-sets may be defined for device-types and/or device-brands.
While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive; the invention is not limited to the disclosed embodiments. For example, it is possible to operate the invention in an embodiment wherein different parts of the different disclosed embodiments are combined into a new embodiment.
Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measured cannot be used to advantage. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems. Any reference signs in the claims should not be construed as limiting the scope.
Number | Date | Country | Kind |
---|---|---|---|
08151871 | Feb 2008 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2009/050636 | 2/17/2009 | WO | 00 | 8/18/2010 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2009/107029 | 9/3/2009 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5691710 | Pietraszak et al. | Nov 1997 | A |
6008735 | Chiloyan et al. | Dec 1999 | A |
7170422 | Nelson et al. | Jan 2007 | B2 |
8031270 | Wisniewski et al. | Oct 2011 | B1 |
20030234737 | Nelson et al. | Dec 2003 | A1 |
Number | Date | Country |
---|---|---|
03083801 | Oct 2003 | WO |
03100534 | Dec 2003 | WO |
2007105142 | Sep 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20100328134 A1 | Dec 2010 | US |