Universal remote control
09842491 · 2017-12-12
Assignee
Inventors
- Viktor Ariel (Modiin, IL)
- Vadim Lanzman (Petah Tikva, IL)
- Michael Kanzieper (Modiin, IL)
- Alon Buchnik (Yokneam, IL)
Cpc classification
H04W4/80
ELECTRICITY
G08C2201/93
PHYSICS
H04L67/131
ELECTRICITY
H04L65/61
ELECTRICITY
International classification
H04W4/00
ELECTRICITY
Abstract
Disclosed is a universal remote control device including a display to provide a graphical unit interface (GUI), a controller configured to process registration requests from state machines associated with remotely controllable appliances and to manage control data transfer to and from the state machines responsive to the registration requests, and a communication module to enable communications between the device and the state machines. Additionally disclosed is a graphics interface unit (GUI) implementable on a display of a computing device operable to remotely control a plurality of appliances. The GUI includes a screen area on the display to display output information, and a plurality of sections on the display to simultaneously display input selection functions associated with different levels of a hierarchical arrangement of control functions for the plurality of appliances.
Claims
1. A mobile device comprising a processor and a memory holding instructions executed by the processor, the mobile device comprising a display area and a graphics interface unit (GUI) operable to remotely control a plurality of appliances, said GUI comprising: a screen area on said display to display output information; an appliance selector unit to receive an appliance selection from a user of an appliance to be remotely controlled by said GUI from among said plurality of appliances; a panel selector unit to receive a selection from said user of one panel from among a multiplicity of control panels into which control buttons of said selected appliance are organized; and a control panel unit having a panel of multiple buttons associated therewith to receive a button selection from said user to control the operation of said selected appliance, said control panel unit to transmit a code associated with said selected button to said selected appliance to instruct said appliance to perform an action, said screen to display output information of said selected appliance at least responsive to said transmitted code, wherein said control panel unit is located on said display below said screen area, said panel selector unit is located below said control panel section, and said appliance selector unit is located to the side of said control panel.
2. A GUI according to claim 1 wherein said appliance selector unit and said panel selector unit comprise slider bars.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18) It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
(19) In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
(20) Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that, throughout the specification, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer, computing system, or similar electronic computing device that manipulates and/or transforms data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
(21) Embodiments of the present invention may include apparatus for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk, including floppy disks, optical disks, magnetic-optical disks, read-only memories (ROMs), compact disc read-only memories (CD-ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, Flash memory, or any other type of media suitable for storing electronic instructions and capable of being coupled to a computer system bus.
(22) The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
(23) Applicants have realized that one of the major drawbacks with known universal remote control devices is that they generally require configuring the device and the appliance to be controlled, to make them compatible for most, if not all, modes of operation. This compatibility issue generally applies both to the older handheld dedicated universal remote control devices as well as to the newer, Internet-connectable mobile devices, including smartphones (the Internet-connectable mobile devices may also be referred to hereinafter as “remote control device”, “universal remote control device” or “device”). This typically requires that a user search for the identification code of each appliance which is to be controlled, and may additionally require that the user configure a set of parameters in each appliance and/or in the remote control device to pair the devices for each mode of operation. Performing these tasks may require that the user have some technical understanding of each appliance's operation, and frequently may result in user failure to successfully configure the remote control device and/or the appliance with the correct parameters. Not only may this be very frustrating for the user, but many times, the user may be faced with little choice but to call a technician to come to perform the configuring (which may be expensive and time consuming).
(24) Applicants have further realized that a universal remote control system which is based on using an event-driven architecture substantially overcomes the previously described drawback of requiring the user (or somebody on his behalf) to configure the remote control device and/or the appliances. Therefore, disclosed herein is a universal remote control system based on an event-driven architecture (EDA) which may individually and/or collectively control different types of electronic and electrical appliances. In the EDA, each application in an appliance is associated with a state machine configured to send messages to, and receive messages from, other state machines. The state machines may also be configured to monitor message transmissions between other state machines. The EDA may include an event and message handler (hereinafter referred to as “switch”) which may act as a message broker to automatically handle the transfer of messages between state machines, and a conflict manager to automatically resolve conflicts in transmitted messages between state machines.
(25) The state machines may all be associated with a particular appliance, or with several appliances whose operation may be interrelated. Consequently, it may be appreciated, the remote control system may allow use of a single remote controller to individually control different types of appliances, and may additionally allow jointly controlling different appliance and types of appliances as a single appliance set.
(26) Reference is now made to
(27) Computing device 102 may include a controller module 114, a communication module 116, a memory storage module 118, and a display 120. Computing device 102 may serve as a universal remote control device and may preferably be, although not limited to, a handheld computing device and may include, for example, a smartphone, a tablet, or a dedicated Internet-connectable handheld remote control device. Computing device 102 may discover and pair with any one or more of WIFI appliances 104, IR appliances 106, and optional RF appliances 108, to remotely control their operation.
(28) Computing device 102 may additionally be configured to download content from the Internet 122 and to stream the content to any of the paired appliances suitably configured to receive streaming content. Additionally or alternatively, the content may be stored in computing device 102 and may be streamed to any of the suitably configured appliances as desired by a user of the computing device.
(29) Computing device 102 may connect through the Internet 122 to appliance data server 111 to download identification codes for WIFI appliances 104, IR appliances 106, and RF appliances 108, which may be stored in a database in the server. Computing device 102 may additionally download from appliance data server 111 data which may be used for the operation of the computing device as a universal remote control device and for use in the operation of universal remote control system 100, including data associated with the operation of the EDA, and which may include, aside from the information codes for the different types of appliances, data associated with the application programs of the appliances and with the operation of the switch and the conflict manager, including update information. Additionally or alternatively to connecting to appliance data server 111 through the Internet 122, computing device may connect to the server through other connection means well known in the art for server/user data transfer.
(30) Computing device 102 may upload data through the Internet 122 to usage data server 110 which may be associated with identification data associated with the computing device itself or with a user of the computing device. The uploaded data may additionally include information which may be processed by usage data server 110 to determine computing device 102 usage characteristics, for example, frequency of usage or hours of usage of the different types of appliances included in WIFI appliances 104, IR appliance 106, and RF appliances 108, among many other types of data which may be uploaded and may be associated with computing device 102 usage characteristics. Additional data which may be uploaded to usage data server 110 may include data input by a user or automatically generated by the device such as, for example, new identification codes for remotely controlled appliances, results of conflict management functions as described further on herein, among all types of different data which may be uploaded from the computing device 102 to enhance system 100 operation.
(31) It may be appreciated by the skilled person that the functions performed by usage data server 110 and appliance data server 111, although described herein as two separate servers, may be functionally performed by one server which may integrate the functions performed by both servers. It may be further appreciated, that the distribution of functions as described above are not intended to be limiting, and that some of the functions described as being performed by one server may be performed by the other server, and vice versa. It may be additionally appreciated that usage data server 110 and appliance data server 111 may communicate with one another over the Internet 122, or through other means known in the art, to exchange data between them, including data which may be processed by one server and stored in the other server.
(32) Communication module 116 may include a WIFI connection unit 130 to allow communication between computing device 102 and WIFI appliances 104. WIFI connection unit 130 may optionally communicate with WIFI/IR converter 112 to enable WIFI communication between computing device 102 and IR appliances 106 fitted with the WIFI/IR converter. Communication module 116 may additionally include an IR connection unit 132 to allow communication between computing device 102 and IR appliances 106. Communication module 116 may additionally include a RF connection unit 134 to allow communication between computing device 102 and RF appliances 108. Communication module 116 may additionally include an Internet connection unit 136 to allow Internet connections between computing device 102 over the Internet 122, including with usage data server 110 and appliance data server 111.
(33) Controller module 114 may include a state machine module 123, a selection wizard module 124, a control panel hierarchy module 126, and a tester module 128. State machine module 123 may serve as the core of the EDA architecture and may monitor the state of the state machines associated with each appliance and may additionally trigger changes in the states. The changes in the states may be triggered responsive to user initiated operations or responsive to the monitoring, and may include use of a switch and a conflict manager, as will be described further on below in greater detail with reference to
(34) Selection wizard module 124 may serve to guide a user operating computing device 102 to facilitate automatic discovery and pairing with WIFI appliances 104, IR appliances 106, RF appliances 108, and to facilitate automatic downloading and uploading of data to and from usage data server 110 and appliance data server 111. It may also guide a user to facilitate controlling the various appliances. Selection wizard module 124 may interface with memory 118 to store data into, and access data from, an optional IR appliance database 138, an optional WIFI/RF appliance database 140, and an optional USER appliance database 142, which may be included in the memory. Associated with selection wizard module 124 may be tester module 128 which may serve to test the user's selection of control buttons for new appliances and may provide the user with performance feedback to allow the user to potentially select the most suitable control buttons.
(35) Control panel hierarchy module 126 may control the arrangement of a display 120 as a graphical user interface (GUI) to allow hierarchical navigation through the various input and output panels displayed on the display. Display panel 120 may include four general areas where the input and output panels of the GUI may be hierarchically displayed, a control panel 144, a screen 148, an appliance selector 147, and a panel selector 146. Appliance selector 147 may include a slider bar with selector buttons to allow selection of an appliance from different appliances which may be controlled and are associated with a selected appliance type. Panel selector 146 may include a slider bar with selector buttons to allow selection of a panel from a number of different panels which may be used for control and are associated with a selected appliance. Control panel 144 may include selector buttons to allow selection of a feature (element) from the different features which may be controllable in an appliance and are associated with a selected panel. Screen 148 may serve for information display responsive to selections made for appliance control, but may display other type of information, which may include advertising and user information. A more detailed description of the GUI is provided further on below with reference to
(36) Reference is now made to
(37) Each state machine 206 may represent a logical unit which may be used to process a set of scenarios based on a set of autonomic states (i.e. an event handler) associated with each appliance, and may be capable of receiving messages from other state machines and sending messages to other state machines. The messages may include a message code associated with each state machine which may be used for identification purposes and which may be used for discovery and pairing state machines with one another.
(38) Communications between state machines 206 may be through switch 202 which may act as a message broker. Conflict manager 204 may serve to interrupt messages sent from switch 202 to targeted state machines and may process the “interrupted” message and decide whether or not to block the message, to send as is, or to create and send another message instead.
(39) In EDA 200, each state machine 206 may support a logical unit which may be created to handle message logics and to optionally transmit messages to other state machines via switch 202. Generally, each state machine 206 may register itself in switch 202 by registering relevant message codes it may be interested in receiving from the switch (stored in state machine register 125), and may then implement an event handler for each message code which is registered when a message arrives from the switch. Similarly, each state machine 206 may register itself in conflict manager 204 to monitor and report any messages with message codes which may be of conflict (stored in state machine register 125).
(40) Reference is made to
(41) State machines 3 and 4 are registered with conflict manager 204 to monitor message with message codes A and B, respectively. Similarly to switch 202, registration of each state machine 206 associated with each particular code may be stored in conflict manager 204 in a message code database 216 (see
(42) Reference is now also made to
(43) At 301, state machine 1 may send a message with a message code A to switch 202;
(44) At 302, switch 202 may transfer the message to conflict manager 204 for conflict checking (to determine whether or not there is conflict);
(45) At 303, conflict manager 204 may transfer the message to state machine 3 who is registered with the conflict manager to monitor messages with message code A. Based on the response received from state machine 3, conflict manager 204 may prevent switch 202 from transferring the message, may alter the message prior to transferring by the switch, or may instruct the switch to transfer the message as is;
(46) At 304, state machine 3 may return an OK message to conflict manager 204 indicative that there is no conflict;
(47) At 305, conflict manager 204 may instruct the switch 202 to send the message as is. Alternatively, should state machine 3 return an indication of conflict, conflict manager 204 may alter the message and send the altered message to switch 202 for transfer to the target state machines, or may cancel sending the received message completely;
(48) At 306, switch 202 may transfer the message with message code A to state machine 2 which is registered with the switch to receive message code A; and
(49) At 307, switch 202 may transfer the message with message code A to state machine 1 which is also registered with the switch to receive message code A.
(50) Reference is now made to
(51) At 401, state machine 206 may send a message to switch 202;
(52) At 402, a message processor 212 in switch 202 may check in message code data base 208 for all state machines registered in registration list 210 to receive a message with the message code of the message received from state machine 206;
(53) At 403, message processor 212 may generate one or more messages 214 responsive to the received message for sending to all state machines listed in the associated registration list 210; and
(54) At 404, message processor 212 may send message 214 to conflict manager 204 for conflict checking.
(55) Reference is now made to
(56) At 501, conflict manager 204 may receive a message from switch 202;
(57) At 502, a message processor 220 in conflict manager 204 may check in message code data base 216 for all state machines registered in registration list 218 to monitor messages with the message code of the received message from switch 202. In some embodiments, message processor 220 may be functionally replaced by message processor 212 in switch 202 so that message processor 212 also may access message code database 216;
(58) At 503, message processor 220 may send the message to be checked to all monitoring state machines 222 listed in registration list 218 for the particular message code. The message may be sent to state machines 222 either asynchronously or alternatively, synchronously;
(59) At 504, monitoring state machines 222 may send the results of the conflict monitoring check to message processor 220 for processing by the message processor;
(60) At 505, message processor 220 may send instructions to switch 202 which may include terminating the message (at 506), sending an alternative message to one or more target state machines 224 (at 507 to target state machine 1), or sending the originally received message to the target state machines (at 508 to target state machine 2);
(61) At 507, the modified message may be sent through switch 202 to target state machine 1; and
(62) At 508, the original message may be sent through switch 202 to target state machine 2.
(63) Reference is now made to
(64) At 601, on initiation, state machine 206 may create a group of processing threads (state machine threads) 236 which may be handled by event handlers. The threads may include synchronous and/or asynchronous threads;
(65) At 602, state machine 206 may receive a message with a message code from switch 202 or from conflict manager 204 if the message is for conflict check, into a message queue 227;
(66) At 603, a message processor 226 in state machine 206 may receive a notification from message que 227, and may change the state of the state machine responsive to the message code in the received message. The message may be prepared by message processor 226 for processing in a synchronous or asynchronous thread;
(67) At 604, message processor 226 may transfer the received message for execution by an event handler 228, which may include synchronous and/or asynchronous event handlers.
(68) At 605, event handler 228 may submit a new message to switch 202 or alternatively;
(69) At 606, event handler 22 may submit a message internally in state machine 206 by pushing the message to message queue 227;
(70) Examples of state machines which may be used in EDA 200 may include a GUI General State Machine, an Appliance State Machine including an Appliance GUI State Machine, a Platform State Machine and an Infra State Machine including an Infra GUI State Machine, and a Feature State Machine including a Feature GUI State Machine.
(71) a. GUI General State machine: this state machine may be used to load the first activity and to manage the behavior of activities which are not related to any specific feature. As an example, this state machine may implement an activity including an appliance's manufacturer's logo such as may appear in a first screen displayed at the start of an execution of an application on screen 148.
(72) b. Appliance State machines: these state machines may manage the background tasks which may be relevant to a specific Appliance Type or to a specific Appliance Element, and may be subject oriented with specific Appliance types potentially implementing some state machines. Examples of some background tasks may include discovery functions, pairing functions, control commands, among others.
(73) c. Appliance GUI State machines: these state machines may manage the GUI to allow the user to operate the Appliances. The Appliance GUI State machines may optionally be implemented in the Appliance State machines. Examples of some types of operations which may be carried out are pairing, control commands, and activation commands, among others.
(74) d. Platform State machine: this state machine may manage the computing device's functionality. An example may include the detection of the existence of IR or of WIFI availability, among others.
(75) e. Infra State machines: these state machines may be used by other state machines as utility or tools. An example of an Infra State Machine may be a Persistency State Machine which is a state machine which may be used by all state machines to store and retrieve persistent information.
(76) f. Infra GUI State machines: these state machines may be used by other state machines (i.e. background state machines) but may include a GUI User Interface. An example of such a state machine may be a Settings GUI State Machine which may be used by all state machines to configure the system. Each state machine which registers to the Settings State Machine may have a section in the settings layout allowing it to be configured.
(77) g. Feature State machine: this state machine may implement a specific feature that may be used in more than one Appliance. For example, a monetary state machine may be used as a controller over the other state machines to monitor whether a specific functionality is authorized from a monetary perspective. Another example may be an IR state machine which may be used as an IR controller to send IR commands to an Appliance.
(78) h. Feature GUI State machines: these state machines may be used by other state machines (i.e. background state machines) but may include a GUI User Interface, and may be included in their background state machines. For example, a Monetary GUI State Machine may be used to interface the user to enable operating the monetary aspects of an application.
(79) Applicants have realized that GUIs used in computing devices used to remotely control appliances are generally limited in their functionality. The GUI is typically designed to control a specific appliance or a specific type of appliance, for example TVs, and therefore many different GUIs may be required to control different appliances or types of appliances. As a result, a user wishing to control a number of different appliances or types of appliances may find him or herself working with a number of different GUIs on his or her computing device. As may be clearly appreciated, this may tend to be very cumbersome and confusing. Some attempts have been made to solve the above problem using a single GUI with control functions hierarchically arranged, but these require that the user continuously move back and forth between screens in order to access all the control buttons, again making the remote controller cumbersome and confusing. Furthermore, these remote controllers are generally suitable for controlling a single type of appliance (e.g. TV), and not for different types of appliances.
(80) Applicants have realized that the flexibility provided by combining the use of selection wizard module 124 and control panel hierarchy module 126 in an EDA of the present invention may provide for a GUI which may allow controlling different appliances and different types of appliances with the same GUI. Furthermore, the same GUI may be used with most, if not all, the computing devices configurable with the selection wizard module and control panel hierarchy module and suitable to operate using the EDA of the present invention.
(81) Reference is made to
(82) GUI 700 may be divided in display 120 into sections to allow selector buttons associated with control functions corresponding to one or more hierarchical levels to be simultaneously displayed on display 120, allowing a user to access the control functions at all levels without having to move back and forth between screens or menus as is typically done in the art with hierarchically-arranged GUIs. For example, appliance type selector buttons 702 may be allocated a portion of display 120 to allow selection of an appliance type from different types of appliances or to allow selection of an appliance set from a group of different appliances (APPLIANCE GROUP 1-4). Appliance selector buttons 704 may be allocated another portion of the display to allow selection of an appliance from different appliances (APPLIANCE 20-23) which may be controlled and are associated with a selected appliance type. Panel selector buttons 706 may be allocated another portion of the display to allow selection of a panel from the different panels (PANEL 210-213) which may be controlled and are associated with a selected appliance. Element selector buttons 708 may be allocated another portion of the display to allow selection of an element from the different elements (ELEMENT 2110-2113) which may be controlled and are associated with a selected panel.
(83) In an exemplary mode of operation and referring to
(84) It may be appreciated, as previously described, that GUI 700 may also be used to allow a user to control appliance sets and not only appliances. GUI 700 may allow the user to build appliance sets (which may be based on instructions generated by selection wizard module 124) which may be included as an APPLIANCE GROUP, for example, APPLIANCE GROUP 3. The appliance set may include, for example, a cinema set, which may integrate joint control of a stereo system, a television, room illumination, and room temperature.
(85) As may be appreciated from the above description, GUI 700 allows a user of computing device 100 to essentially control any appliance of any type or any appliance set, once paired with the appliance or appliances, without having to move through a number of screens and menus. It may be further appreciated that GUI 700 may be used to control discovery and pairing of computing device 100 with appliances and appliance sets whose codes and other discovery and pairing data have been downloaded from appliance data server 111, or which have been manually input by the user. It may be further appreciated that GUI 700 may allow a user to add and/or to edit any one of the levels by adding and/or removing selector buttons which may be associated with any one of the appliance types or appliance sets, appliances, panels, and elements.
(86) It may be appreciated that GUI 700 may not be limited to including the selector buttons previously described and that it may include many other types of selector buttons which may functionally support the operation of computing device 100 as a universal remote controller. For example, some of these selector buttons may include communication selector buttons to select Wi-Fi communications, IR communications, and other RF communications (e.g. Bluetooth). Other types of selector buttons in GUI 700 may include ON/OFF selector buttons, Return Home selector buttons, Settings buttons, among many other selector buttons whose functionality are known in the art and which the skilled person may readily appreciate may contribute to the functionality of the computing device as a remote control device.
(87) Reference is now made to
(88) Reference is now made to
(89) Reference is now made to
(90) Reference is now made to
(91) Reference is now made to
(92) Reference is now made to
(93) Reference is now made to
(94) While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.