This invention relates generally to hand held devices and, more particularly, relates to a hand held device having a browser application.
Home appliances continue to become more complex, and for many consumers, more difficult to fully understand and operate. The first consumer electronic devices, radios and, later, televisions, had no remote controls. The controls of these first consumer electronic devices were simple—a combination power switch and volume control and a tuning control. With the advent of the remote control, new capabilities to control were added to consumer electronic devices—one of the first being the volume “Mute” feature.
New, and eventually popular, consumer electronic devices were later introduced, including the VCR, CD player and more recently, the DVD player and PVR (personal video recorder). While the VCR was initially introduced without a remote control, remote controls were quickly added to the product offering. Early VCR remote controls simply controlled the power and the transport mechanism (“Play,” “Stop,” “Pause,” “Rewind,” “Fast Forward” and “Record”). Today, VCR remote controls have far more controls, for example, to control the adjustment of tape tracking, the selection of programs for future recording, direct channel access, frame-by-frame program viewing and the ability to set the VCR's clock. For use in controlling these features the VCR remote control has grown from seven or eight keys to twenty or more.
The CD player, when first introduced, came with a remote control. The first CD players held a single disk and were easy to control. Today, a consumer can buy a CD player that holds two hundred or more disks. This CD “jukebox” permits the consumer to painstakingly enter the title of each disk by remote control and control which disk and track of that disk will play next. This remote control has also grown from ten keys or so to over thirty with many keys performing two or more functions.
Not only have the consumer electronic devices and their remote controls become more complex, but there are now many more devices that consumers are adding to their home that can be controlled using a remote control. In addition to the TV, VCR, CD player, and DVD player, remote controls can be used in connection with personal computers, game consoles, etc. Remote controls can also be used to control the lighting, window fixtures, thermostats, home alarm system, etc. within the home.
Universal remote controls available today perform a valuable function, consolidating three, four, five, and more remote controls into one device. Typically, the universal remote control simplifies operation by reducing the number of keys and, therefore, the number of features available to the consumer. With the same number of keys as found on one remote control, the universal remote control can operate the basic functions of several home appliances.
For companies that provide remote controls, home appliances continue their march toward even greater complexity. As new and more complex home appliances emerge, a new form of easy-to-use remote control will be required to meet the needs of consumers. To appeal to the largest number of consumers, this new form of remote control must also be inexpensive. Furthermore, to accommodate the continuing growth in complexity of home appliances, this new form of remote control must possess new features and include the ability to stay flexible.
In accordance with these needs, the subject invention is directed to a hand-held device having a display and a browser application which supports functionality particularly suited for the hand-held device. For example, the browser application supports a full screen tag which allows information to be displayed as a full screen within the display. The browser application may also support a tag for use in displaying a link the activation of which will cause the hand-held device to transmit command codes to a consumer appliance. Still further, the browser application can support a tag which the hand-held device can use to issue reminders.
A better understanding of the objects, advantages, features, properties and relationships of the invention will be obtained from the following detailed description and accompanying drawings which set forth an illustrative embodiment which is indicative of the various ways in which the principles of the invention may be employed.
For a better understanding of the invention, reference may be had to a preferred embodiment shown in the following drawings in which:
a and 18b illustrate an exemplary method by which the remote control illustrated in
a and 19b illustrate a further exemplary method by which the remote control illustrated in
Referring now to
The upper housing 12 has openings through which keys 20, red light emitting diode (LED) 22 and a LCD 24 with a translucent touch sensitive overlay can be accessed. The keys 20 are illustrated as being arranged in a vertical line to the right of the LCD 24 and may comprise (from top to bottom) a “Backlight” key 30, “Volume Up” and “Volume Down” keys 32 and 34, “Mute” key 36, and “Channel Up” and “Channel Down” keys 38 and 40, respectively. The contrast control switch 42 can be located on the right side of the remote control 10 below the “Volume Up” and “Volume Down” keys, 38 and 40. The upper housing 12 may also include an opening for voice access to a microphone.
At the top or forward end of the remote control 10, there is illustrated an opening for two forward facing infrared LEDs 50 and two side facing LEDs 51. While the LEDs are provided for transmitting command signals to consumer devices, the forward facing LEDs 50 may also perform as an infrared light detector according to the teachings of co-pending U.S. patent application Ser. No. 09/080,125 which is incorporated herein by reference in its entirety. The opening in which the LEDs 50 and 51 are carried may be covered by an infrared-transparent lens 17. The forward end of the remote control 10 may also include an opening for an RF antenna 52. On the underneath portion of the remote control 10 are located openings for a battery compartment 58 and, optionally, a speaker, and/or battery charging contacts. On the left side of the remote control 10 can be placed a jack 61 reserved for serial data operations. In certain embodiments, a magnetic modem coupler 71, as described in U.S. Pat. No. 5,537,463 which is incorporated herein by reference in its entirety, can be included to permit transfer of data into the unit via a telephone handset or other source of magnetically encoded signal such as television or P.C. loudspeakers.
Referring now to
Also included in the operating circuitry 100 are shown a general purpose serial I/O circuit 108, an infrared controller 140 (e.g, comprising a Samsung KS88C01424 Microcontroller), an infrared transmitter circuit 150, an infrared receiver circuit 160, a Analog-to-Digital converter (ADC) and touch decoder circuit 170 (e.g., comprising a PIC16LC715 Microcontroller or other touch screen controller/decoder chip), a speaker or buzzer 102, a key pad 190 (the electrical diagram equivalent of the elastomeric keyboard 20 shown in
The main processor (e.g., a Sharp “System on a Chip,” the LU77790A) may be based on a 32-bit, ARM RISC (Reduced Instruction Set Computer) core. In this regard, the main processor would comprise the ARM processor core 300, LCD controller 310, general purpose I/O ports 320, and multiple serial UART ports 330. The main processor is provided to manage the entire process of interacting with the user through the backlit, graphical, touchscreen, LCD module 180, the speaker or buzzer 102, the key pad 190, the microphone and/or the red LED 235 (LED 22 of
The electronic configuration illustrated in block diagram 100 comprises a general purpose, multi-processor system. The operation of the multi-processor system is controlled by internal control software. The control software may include routines, programs, objects, components, and/or data structures that perform particular tasks that can be viewed as an operating system together with one or more applications. The operating system provides an underlying set of management and control functions which are utilized by the applications to offer user functions such as control of consumer appliances, access to Internet data, display of home automation controls, display of TV guide information, and the like. It should be understood that, while the term “remote control” is used herein to designate the physical unit, in terms of the internal software architecture the conventional “clicker” remote control user interface is but one of several possible applications which may co-exist within the unit.
Architecturally, the system is organized around the concept of Events and Resources. Events are occurrences which initiate an action. More specifically, an Event is an occurrence that requires a response from the remote control 10. Events include user-initiated activities such as pressing a physical key on the keypad 20, activating the touch screen LCD 24, speaking into a microphone, etc. Events can also be generated by the main processor 101, for example by an internal timer register. In addition, Events can be generated by external means such as, for example, a communication transmission.
In response to an Event, the remote control will typically access one or more of its Resources. A Resource is, in its broadest definition, a block of data. The data is often of a specific (i.e., defined) type. Within the memory 1110, each memory data block is preferably identified by its “Resource ID” or by another indication where the Resource is located in the memory structure. Examples of Resources are bitmaps, strings, and control and display definitions. Generally, Resources are used to configure the remote control 10 to be responsive to the needs of the user. Many Resources are loaded into the memory 110 of the remote control 10 by the manufacturer when the remote control 10 is built. Other Resources may be created or modified by the user and still other Resources can be remotely loaded into the memory 110 by a service center, via the Internet, etc. Resources allow the behavior, look and feel of the remote control 10 to be altered; even after it has been sold and is in the hands of the user thus permitting the user to personalize the remote control 10 to his or her own tastes.
For ease of development, Resources may be instantiated within the remote control 10 by use of a Resource Compiler running on a PC or equivalent. The Resource Compiler accepts a text description of graphic and control elements and compiles them into memory data structures suitable for use within the remote control 10. Although other mechanisms, e.g. manual compilation, self generation by the remote control operating system under user control, etc., are possible, a PC based Resource Compiler may provide the most efficient method for rapid development of Resources needed for a particular remote control application. To assist in a better understanding of the Resources used to construct the remote control user interface software described herein, examples of commands which are available in an exemplary Resource Compiler for use in generating the memory data structures for the remote control include:
BITMAP (BitMapName, BitsPerPixel, Width, Height, Radix)
The BITMAP command generates a black and white bitmap Resource. “BitMapName” is the bitmap Resource ID while the “Width” and “Height” size the bitmap. “BitsPerPixel” is set to ‘1’ and “Radix” is set to ‘2’ in the first generation of the remote control product.
FONT (FontName, StartAsciiIndex, EndAsciiIndex)
FONT generates a Resource Table that associates numeric values with bitmaps. This approach permits the use of an unordered set of bitmaps to be used as alphabetic characters or font. “FontName” is a SYMBOL. Its assigned value is the Resoure ID of the font. “StartAsciiIndex” is the index value associated with the first bitmap ID. “EndAsciiIndex” is the index value associated with the last bitmap ID. A list of bitmap Ids follows this Command. The bitmap IDs are typically expressions in the form of SYMBOL names.
STRING (StringName, StringCharacters)
STRING generates a String Resource. “StringName” is a SYMBOL. Its assigned value is the String Resource ID. “StringCharacters” comprise the text in the string.
DATA (DataName, [DataSpecifier, [Expr]], DataEnd)
DATA generates a Data Resource. “DataName” is a SYMBOL. Its assigned value is the Data Resource ID. “DataSpecifier” indicates the size of the expressions (“Expr”) that follow it. There can be multiple expressions following a DataSpecifier and there can be multiple DataSpecifiers in a Data Resource.
BITMAPBUTTONCONTROL (ControlName, ControlCode, UDBitMapID, DownBitMapID, InactiveBitMapID, SelectBitMapID)
BITMAPBUTTONCONTROL generates a bitmap push button control. “ControlName” is a SYMBOL. Its assigned value is the Resource ID for the control. “ControlCode” is the value generated when the control on the touchscreen display is pressed or released. “UpBitMapID” is the Resource ID of the bitmap that is drawn on the display when the control is active but not pressed. “DownBitMapID” is the Resource ID of the bitmap that is drawn on the display when the control is active and pressed by the user. “InactiveBitMapID” is the Resource ID of the bitmap that is drawn on the display when the control is inactive. “SelectedBitMapID” is the Resource ID of the bitmap that is drawn on the display when the control is active and visually highlighted.
STRINGBITMAPCONTROL (ControlName, ControlCode, StringID, FontID, UpBitMapID, DownBitMapID)
STRINGBITMAPCONTROL generates a bitmap push button control on the display with a string drawn over it. “ControlName” is a SYMBOL. Its assigned value is the Resource ID for the control. “ControlCode” is the value generated when the control on the touchscreen is pressed or released. “StringID” is the Resource ID of the string that is drawn when the control is pressed or unpressed. “FontID” is the Resource ID of the font with which the string is drawn. “UpBitMapID” is the ResourceID of the bitmap that is drawn on the display when the control is active but not pressed. “DownBitMapID” is the Resource ID of the bitmap that is drawn on the display when the control is active and pressed by the user.
COMPOSITECONTROL (ControlName, TopX, TopY, ControlCode, Parameters [below], End)
SCROLLCONTROL generates a bitmap control which displays a vertical scroll bar with top and bottom arrows. “ControlName” is a SYMBOL. Its assigned value is the Resource ID for the control. “ControlCode” is the value generated when the control on the touchscreen is pressed or released. “Left” is the left most X coordinate of the displayed control. “Top” is the upper most Y coordinate of the displayed control. “Right” is the right most X coordinate of the displayed control. “Bottom” is the lower most Y coordinate of the displayed control. “State” is the default settings for the state flags. “TopUpID” is the Resource ID of the top arrow bitmap that is drawn on the display when the control is active but not pressed. “TopDownID” is the Resource ID of the top arrow bitmap that is drawn on the display when the control is active and pressed by the user. “BottomUpID” is the Resource ID of the bottom arrow bitmap that is drawn on the display when the control is active but not pressed. “BottomDownID” is the Resource ID of the bottom arrow bitmap that is drawn on the display when the control is active and pressed by the user.
TEXTBOXRESOURCE (ControlName, ControlCode, Width, Height, Left, Top, Right, Bottom, ScrollID, StringID, FontID, Box, Type, Radius)
TEXTBOXRESOURCE generates an allowable area on the display for text and an optional scrollbar and fills the area with scrollable text. “ControlName” is a SYMBOL. Its assigned value is the Resource ID for the control. “ControlCode” is the value generated when the control on the touchscreen is pressed or released. “Width” and “Height” are the dimensions of the text box, including the scroll bar. “Left” is the left most X coordinate of the displayed control. “Top” is the upper most Y coordinate of the displayed control. “Right” is the right most X coordinate of the displayed control. “Bottom” is the lower most Y coordinate of the displayed control. “ScrollID” is the Resource ID of the scroll control used in the text box. “StringID” is the Resource ID of the string that is drawn when the display is first shown. “FontID” is the Resource ID of the font with which the string is drawn. “BoxID” specifies that the box will not be drawn or will be drawn with square or rounded corners. If rounded corners are specified, “Radius” defines the radius of the rounded corners.
Turning to
To communicate to systems beyond those devices conventionally found in a home entertainment system, the remote control 10 provides a two-way infrared or two-way RF system (or other communication technology). Using this communication technology, the remote control 10 can access, process, and/or display data from remote sources. The RF I/O manager 418 (or IR I/O manager in the event a two-way IR communications path is used instead) accepts data from Applications 430 running under the OS and prepares the data for communication by splitting the data into packets and adding packet header information. It also accepts received packets, ensures packet integrity and assembles the received packets into data to be sent to the Application(s) 430.
The RF I/O manager 418 interacts directly with the two-way RF hardware previously described (e.g., RF controller 120 and RF transceiver 130). Checksums are appended to outbound data and the packets are sent. Inbound data is received from the communications hardware. Error free packets are passed to the Application interface and a confirmation of successful reception is sent to the originator. Packets with errors are discarded and up to three retransmit requests can be sent to the originator.
In one preferred embodiment, the data communication protocol implemented by the RF I/O Manager 418 comprises communication packets which can carry data or commands. Each packet comprises a header and the attached command or data. Commands are transfers of non-data and are acted upon. A sequence is any number of packets that comprises an entire transfer of data, such as a complete text stream, a complete bitmap file, a Web page or any other complete data resource. A block is a series of data packets. A single block or multiple blocks may constitute a sequence. An exemplary Communication Packet format is illustrated in Table 1 below.
The Byte Count is the total number of bytes in the packet, including the header. The To Address is the address of the receiving station (usually a server or gateway). The From Address is the address of the remote control 10. The Packet Number is used to ensure every packet is sequential. The Most Significant Bit of the Packet Number indicates a command packet when set to a Logic 1. A unique Port Number can be assigned to each unique data sequence, so that packets of different sequences can be transmitted in an interleaved fashion. Each separate stream of data packets should have its own port number as well as its own packet number sequence.
In one embodiment, six commands are defined for use by the remote control 10. The payload data of each command comprises a one byte command code followed by a variable number of parameters, as:
To effect the transmission of IR codes, the IR controller 140 communicates with applications 430 resident in the remote control 10 using a pre-defined set of commands. Since the actual mechanisms and formats for transmitting such IR signals are well known in the art—see, for example, U.S. Pat. No. 4,959,810 which is incorporated herein by reference in its entirety—it will not be described further herein. In an exemplary embodiment, the SendIR command is issued to the IR Controller 140 to cause an IR code to be transmitted. The SendIR command may be a six byte packet including the fields RcdLength(1), 01h, DeviceTypeNum(2),KeyCode(1) and KeyFlag(1) where:
KeyFlag indicates if any special processing is required. For example, if KeyFlag bit 7 is “on” this can indicate that this IR command is part of a macro sequence playback, requiring that the IR data frame be repeated a certain minimum number of times. If bit 5 is “on” this can indicate that the IR Controller should use a learned IR code rather than its pre-programmed code.
It will be appreciated that there are many other commands that go back and forth between the processors and that the above description with respect to the SendIR command is not intended to be limiting.
As noted previously, the exemplary remote control hardware and operating system are capable of supporting multiple application programs. In a preferred embodiment, two application programs coexist in the unit: one which provides conventional remote control (“clicker”) functionality 432, and another associated with the two-way RF communication subsystem which provides general purpose text and graphics display capability in the form of a compact browser utility 434. The application which provides conventional consumer appliance remote control functionality is preferably the application that is launched by default upon power-up (i.e. insertion of batteries into the unit) and is the mode of operation most commonly used by the user.
Turning now to
Once all Applications and Resources have been initialized, the main menu sub-application 500 waits for an Event. One such Event is an internal main processor timeout which, in this specific case, turns off the display and system CPU to save battery power. Another such Event is a user key press. In this latter case, the user may press one of several types of keys, creating Events to which the main menu sub-Application 500 responds. One or more of the control keys shown on the display 24 generates an Event invoking a sub-application 503 that produces a new display. Typically this might be a second “page” (i.e. alternative device screen) of command keys for the current device under control (e.g. a TV) or for a different device (e.g. from TV to VCR) with a new page of keys. Activation of another group of keys (both the soft keys shown on the display and the hard keys in the keypad 20) will invoke a sub-application 504 that transmits an infrared code. The send IR sub-application 504 communicates with the IR controller 140 via the operating system's communication manager using the IR controller command structure described earlier to cause the appropriate device IR command signal to be transmitted.
Activation of other keys can invoke a sub-application 502 that will turn on the display backlighting. It will be appreciated that a motion sensor could also be used to turn on the display backlighting, for example, when the remote control 10 is picked up. Yet another key activation can invoke the setup sub-application 501 that permits the user to customize the remote control 10. Activation of still other keys can invoke a different application 508 and pass control of the unit to that application. By way of example, activation of a key 41 labeled “iMosiac” may invoke the Browser application 434 which is described in greater detail below.
For customizing the universal remote control 10, the setup Application 501 is invoked. Customization, as is shown in
To select control codes to be available for access to control consumer electronic devices by device type and manufacturer, the setup by brand sub-application 510 is utilized. This sub-application is based in part on technology disclosed in U.S. Pat. No. 5,614,906 entitled “Method for selecting a remote control command set” that is incorporated herein by reference in its entirety. The setup by search sub-application 516 permits the user to select control codes by linearly stepping through the data base of codes by device type, trying each one in turn. The setup by code sub-application 513 permits the user to simply enter a known code number to configure the remote control 10 to make accessible the control codes to control the device(s) corresponding to the known code number. The new code sub-application 519 allows the user to try new codes received during a prior download over the Internet or through customer service via the telephone. Selected/downloaded control codes may be made available for user access by using the add function 511 or used to replace currently accessible control codes using the replace function 512. The delete sub-application 522 can be used to erase all selected control codes, allowing the user to start over with a clean slate.
The personalization sub menu 505 of sub-applications shown in
To select a key from one device representing a specific infrared function and create a copy of it for use with another device, the move key sub-application 540 is utilized. For example, the move key sub-application 540 can be used to move the channel up function for the TV device such that it is accessible from the VCR device screen. This Sub-Application is based on technology disclosed in U.S. Pat. No. 6,014,092 entitled “Key mover” that is incorporated herein by reference in its entirety. In addition to moving a key 541 a user may delete all 542 keys that have been moved.
To teach the remote control a new function from another remote control, the learn sub-application 550 is utilized. The learn sub-application is based on technology disclosed in U.S. Pat. No. 6,097,309 entitled “Remote control learning system and method using signal envelope pattern recognition” that is incorporated herein by reference in its entirety. A new function can be learned 551 by the remote control and assigned to a pre-defined function key or to a blank key. All learned functions can be deleted 552.
To label new device keys 561, new function keys 562 or to edit existing key labels, the label keys sub-application 560 is utilized. The label key sub-application 562 makes available symbols and lower and upper case characters as well as the backspace, space, and shift for use in creating alphanumeric key labels. A caps lock function can also be provided.
To teach the remote control a new function by entering a code, the key magic sub-application 570 is utilized. The key magic sub-application 570 is based on technology disclosed in U.S. Pat. No. 5,515,052 entitled “Universal remote control with function synthesis” that is incorporated herein by reference in its entirety. A new function can be added 571 and assigned to a pre-defined function key or to a blank key. All added functions can be deleted 572.
Any key on any device page may be viewed and deleted by the view & delete function 595.
The volume lock sub-application 580 affords the user a means for controlling the volume for one device (the amplifier, for example) from another screen dedicated to controlling another device like the TV, for example. The user may institute the locking feature using the lock function 581 or may remove the feature using the unlock function 582.
The home theater sub-application 590 offers the user a means for creating on one or several screens a set of keys that are those most often used keys in a home theater system. The user may configure the feature using the configure function 591 or may remove the feature using the reset to default function 592.
The system sub menu 507 of sub-applications, illustrated in
The LCD sub-application 610 provides a means for the user to compensate for any drift in the calibration of the LCD 24 during long-term use. The user may invoke the calibrate function 611 to return the LCD 24 to factory-level settings.
While using the touchscreen 24, the user can receive audible feedback that a key has been selected. To this end, a soft clicking sound is issued by the speaker or by the buzzer 102. This sound may be turned on or off using the sound on/off sub-application 630.
After the user has fully personalized the subject remote control, those settings may be locked into place to avoid inadvertent changes. This feature is performed by the lock on/off sub-application 620. The user may return the remote control 10 to its original, factory settings by invoking the user reset/master reset sub-application 640.
To navigate and browse HTML-formatted data supplied from an external source (e.g., via a two-way RF or IR communications link) the remote control 10 includes a browser application 434 that supports a sub set of XHTML-Basic and Compact HTML as proposed and defined by the World Wide Web Consortium. In this manner, the remote control 10 provides for customized user interface and data display since, within the constraints of the remote control hardware (screen size, color, memory availability, etc.), any screen layout of text, images, and/or hyperlink buttons is possible. Thus, any external device equipped with a compatible RF or IR transceiver, such as a personal computer, cable or satellite set top box, home automation controller or security system, CD jukebox, TV set, and the like, can avail itself of the remote control 10 as a data display and interface device via a well-understood standardized set of HTML commands.
In addition to the subset of XHTML-Basic commands supported, the remote control browser can also offer extra META statements as special extensions of the standard to facilitate use in situations which are not classically Web-based. For example, the browser can support a “Full screen” META statement, <META NAME=“Any Names” CONTENT=“Full_Screen”>, that will cause the browser to go to full screen display mode (e.g., no navigation buttons or scroll bars are displayed). Similarly, the browser can support a “Refresh” META statement, <META HTTP-EQUIV=“Refresh” CONTENT=“xx; URL=http://www.name.com/anything.html”>, that will cause the Browser to count a given number of seconds, as specified in the “content field,” and then display the next html page specified, or if the “URL=” is not present, refresh the current page. Both of these extensions are useful for authoring displays in which the user is not necessarily aware that the interface presented to him is HTML based via a browser—for example, simple TV guide applications and the like. Additionally, the “Refresh” feature is useful in applications where the data content to be displayed on the remote control 10 needs to be synchronized with a TV or audio program, for example enhanced TV services or karaoke lyrics.
The browser application can also be adapted to support a special extended HTML tag type, “IROP.” With this ability, the remote control 10 can be used in connection with HTML pages that are authored to support “buttons” for use in sending IR commands. The general format of the IROP tag is <IROP KEY=“ 1-18, . . . ”, LABEL=“function name” IMG=“file path”> where the “KEY=xx,yy . . . ” field contains data indicative of an IR code to be transmitted. In this regard, the data could specify the IR code(s) to be transmitted upon activation of the button using the IR KeyCodes defined for the IR controller defined in Table 3 above. Alternatively, the field could contain data representative of the actual IR code to be transmitted using a formatting technology such as described in U.S. Pat. No. 5,515,052 which is incorporated herein by reference in its entirety. The “LABEL=” and “IMG=” fields respectively define a label and graphic (i.e. icon) associated with the button or link. For example <IROP KEY=“10, 7”, LABEL=“ABC”> would result in the display of “ABC” as a selectable area on the screen. User activation by pressing the “ABC” area on the touch screen would cause the browser to send to the IR Controller 140 a SendIR command containing KeyCode number 10 followed by a SendIR command containing KeyCode number 7, thus causing the IR Controller to transmit the IR codes for the digits “zero” and “seven,” i.e., selecting channel 7 on the current consumer electronic device used for channel changing (TV, Cable box, Satellite receiver, etc.).
As will be appreciated, this extended IROP tag is useful in situations where it is desired that a user be provided with the ability to interact with an HTML page to initiate the transmission of IR command codes to consumer appliances. Examples of such HTML pages include TV guides, CD jukebox managers, and the like. Furthermore, it is contemplated that the IROP tag could be used to present to a user a virtual remote control that has the key layout and appearance of a prepackaged remote control (e.g., a display presenting a key layout and appearance of a Sony remote that is prepackaged with a Sony TV). In this manner, activation of a link having an IROP tag on the virtually displayed remote control (i.e., selection of a virtually displayed control key) can cause the remote control 10 to transmit the same control code as if the user where actually activating the corresponding key on the prepackaged remote control.
The remote control can be further adapted to support another special extended HTML tag type “MREM.” With this ability, the remote control 10, if equipped with a date/time clock capability, can support a reminder/calendar feature used in connection with HTML pages that are authored to supply data regarding upcoming events. The general format of the MREM tag is <MREM TTR=“Time to Remind” LABEL=“Note/Memo” IMG=“file path” LINK=“URL”>. This tag will cause a calendar event to be registered with the Remote Control application where TTR represents the time at or after which a reminder message is to be displayed during normal operation of the remote, LABEL represents the message to be displayed at reminder time, IMG (optional) represents an image to be displayed at reminder time, and LINK (optional) specifies the URL of an HTML page to be automatically loaded at reminder time. Note that if the LINK option is specified, this will also cause the Remote Control application to automatically invoke the Browser application to load and process the specified URL. With the exception of TTR, any of the fields specified above for the MREM tag may be omitted, i.e. “null,” as required. For example <MREM TTR=“5-15-2001-14:45” LABEL=“Watch ‘Who wants to be a Millionaire’”> would result in the reminder text message “Watch ‘Who wants to be a Millionaire’” being displayed at or after 2:45 pm on May 15, 2001. Further examples of the application of this HTML tag are discussed later.
Turning to
Turning to
In one exemplary embodiment, internal priorities within the Browser Application are arranged such that, while in the process of loading and displaying a page of data via the RF link, it will ignore other inputs such as HTML Events. In other words, it is designed such that a user is required to wait until the current page is completely displayed before initiating any action such as a hyperlink selection. This is evident in
b depicts the processing of a KeyDown Event, specifically the action taken in response to each of the possible key press user inputs. As can be seen, these actions are used to effect page navigation and browser control in addition to providing a means to configure the Browser Application and to return the unit to the (default) Remote Control Application.
c depicts the processing of an HTML Event. In the HTML subset supported by the exemplary Browser Application, only four classes of HTML Events can occur: Activation of a hyperlink 1010; activation of a form control field 1012; expiration of a “refresh” META statement timer 1014 (a special extension to standard HTML which allows periodic reloading of a page); or activation of a IROP field 1016 (a special extension to standard HTML which allows IR commands to be transmitted to consumer appliances). Activation of a hyperlink results in a request for the contents of the specified URL to be issued via the communications link, after which the Browser Application returns to the “Get Next Event” waiting state shown at the top of
d depicts the processing of an RF I/O Event. All communications transactions are preferably timed in order to allow appropriate action to be taken by the Browser in the event the communications link is interrupted, for example by the user wandering out of RF range. Thus, the first I/O Event that is checked for is a timer expired status 1020. If there is a Port currently open (i.e. activity in progress) the timer expired event is handled as shown in
e shows the error processing invoked in the case of a timeout or a server initiated “CANCEL” request when the Browser application is not “idle,” i.e. it is loading HTML or image data via the RF link. If a given time, e.g., three seconds, has not elapsed since the last activity on this port 1030, timing continues without any action. If the given time has been reached or exceeded, the Browser issues a “CANCEL” request to the server 1032. It then determines if a given number of retries, e.g., three, have already occurred for this particular request 1034. If the number or retries has not been exceeded, the Browser reissues the request 1036. If all of the retries have been exhausted, the Browser takes error action as appropriate: in the case of a failed HTML page download it may display an error message to the user 1038 (
f shows the error processing that occurs in the event of a buffer overflow. As can be seen, the actions taken by the remote control 10 are similar to those described above in conjunction with an exhausted retry count.
g shows the processing steps that occur upon receipt of a buffer full of data Events from the RF I/O Manager. In this case, the Browser first checks its internal status to determine if it is currently expecting HTML or image data 1050. If expecting HTML data, the HTML page is sent to the HTML parser 1052, which processes the HTML data and breaks it down into individual elements for display (text strings and images), position coordinates for each hyperlink or control within the display, and a table of control-link relationships. The HTML parser also sets the appropriate timer if a “refresh” META statement is encountered. When the HTML parser has completed its analysis, the display information is passed to the Display Manager 1054 for rendering on the LCD screen. Once the basic HTML page is displayed (i.e., text, links, controls, etc. together with “place holder” icons for the locations of graphic images) the Browser may then issue requests for any graphic images called out in the HTML source, loading and displaying the graphic images one by one until all specified graphics have been displayed. This is achieved by issuing a request for the next graphic file 1056 via the RF communications link and then returning to the “Get Next Event” state (
When a response is received, the next RF buffer ready Event will find the Browser in an “expecting image data” state. This will cause the opposite branch to be taken at the top of
The “home page” URL first loaded by the Browser application need not be Web based in the classical sense. Rather, the “home page” may be an address pointing to a locally stored, HTML formatted interface to a home control system as illustrated in
By way of further example,
In the illustrative example, the PC application that provides the Internet access for the remote control 10 is called the server application. As illustrated in
Once the universal remote control 10 with two-way communication is suitably installed, many new and heretofore unavailable applications can be provided. For example, of particular advantage, the remote control 10 may be equipped to communicate with an electronic device to retrieve operating instructions for display on the LCD screen 24 of the remote control 10 as illustrated in
By way of illustration,
If multiple user instruction pages are stored in memory, the appliance may further set a pointer to indicate the next page in a sequence 1820. The availability of more information would be indicated to the user in the displayed user's manual by, for example, a “more” hyper-link or button as illustrated in
In an alternative embodiment, once the make (and also possibly the model) of the device has been entered into the remote control 10 (either by direct interaction with the device or by a process of deduction based on the setup number input by the user to control the device) the user manual could be obtained via an Internet connection (using a Web site specific to the manufacturer or a generic compilation maintained by a third party). For this purpose, the remote control 10 would use the browser functionality, in conjunction with Web access via a personal computer, set top box, or the like, as previously described. In this case, if the model of the consumer appliance were important to which user manual were to be displayed (i.e., multiple user manuals for multiple models of appliances), and only the make of the consumer appliance were provided, the Web site could offer a list of selectable model numbers and/or pose one or more questions to the user by which questions it could be deduced which user manual the Web site should provide to the user (e.g., does your TV support PIP, etc.).
By way of further example,
In yet another alternative embodiment, the Browser Application, starting with an internally stored HTML page, could present the user with a menu of devices 2000 for which instructions are available as illustrated in
Providing the remote control 10 with browser capabilities has further advantages. For example, the remote control 10 could access Web sites, via a set top box, an adapter connected to a PC (especially in homes where the PC is always connected to a network, for example, by way of a cable modem or DSL-based Internet connection), directly to an ISP (provided the remote is equipped with a modem) or other gateway device to gather information, such as, weather, stock quotes, movie reviews, etc., as illustrated in
In a further embodiment, the display 24 of the remote control 10 could be used to display television viewing guide information, with personalization and/or reminder capabilities. Such guide data may be obtained directly from an Internet server, using a local PC, set top box, home gateway or the like as a proxy server as described in conjunction with
Turning to
To effect rapid selection of a program of interest, the remote control 10 can be adapted such that selecting (touching) any of the broadcast station identifiers 2720 listed on the display 2710 will activate an IROP HTML tag, as described earlier, to cause the remote control to issue the command to switch the TV (or set top box in the case of cable or satellite subscribers) to the corresponding channel. For example, as illustrated in the exemplary embodiment shown in
The remote control 10 can be further adapted such that selection of the title of the program, for example “Clifford Big Red Dog” 2730, will result in the display of additional information regarding that particular program. In this illustrative embodiment, touching one of the program names activates an HTML tag which points to other HTML page(s) containing additional information regarding that program. Once again, such additional information page(s) may be resident locally or may be accessed via the Web. In the example shown, screen display 2750 is the result of selecting “Clifford Big Red Dog” 2730 on the initial display 2710. In this manner television viewing guide information can offer Web links to additional information about shows, for example movie reviews, that are accessible by an individual user using the Web browser without disturbing the TV screen display of the program currently being viewed by others.
The TV guide information displayed on the remote control can also be presented in differing forms to suit the preferences of individual users. By way of example,
Another feature also illustrated in
By way of further example, in cases where the remote control hardware supports a time-of-day clock, the remote control 10 could be used to issue a “missing program” reminder if it detects activity which indicates that the user is not currently watching TV (i.e., the remote is in a mode for controlling the operation of a CD player, audio equipment commands being issued, etc. and the user has programmed a reminder to watch a particular show). The remote control 10 could similarly be used to remind the user of “tonight's favorite programs” when it detects the user turning the TV on in the evening after a pre-determined “off” period which indicates that the user was away from home. The favorites could be entered by the user or determined from previous viewing habits (e.g., by tracking channel selections in time slots for a given day), etc.
For entering reminders into the remote control 10, an exemplary embodiment is illustrated in
To produce a reminder message 2790 on the standard remote control display 24 at an appropriate time, the steps illustrated in
If, however, an entry is found in the table of reminder data with a time value less than or equal to the current time, the Remote Control Application next checks 2810 if the entry in question contains a URL pointer value (as described earlier in connection with the MREM tag definition, URL and message fields may be null) and, if a URL pointer exists, the Remote Control Application immediately invokes and passes control to the Browser Application 2812 to load and act on the specified HTML page. Thus, in this implementation, existence of a URL pointer takes priority over both any reminder message text as well as any remote control action called for by the key press which initiated table scan. It will, however, be appreciated by those skilled in the art that other prioritizations are possible.
If no URL pointer is present, the Remote Control Application next checks 2814 if the reminder table entry is “stale,” i.e., reminders are scheduled for a time more than 30 minutes ago. If so, it simply ignores the message, deleting the table entry 2818 with no further action. Once again, those skilled in the art will recognize that other implementations are possible using a longer, shorter, or even no measure of “staleness.” The 30 minute value in this exemplary implementation was selected as appropriate for the TV guide reminder feature it is being described in connection with.
If the entry is determined to be “not stale” or valid, the Remote Control Application then checks for the existence of any reminder display data, text, or graphic and generates 2816 any reminder message display required, e.g. 2790. A reminder may also cause the buzzer 102 to emit a sound, providing emphasis to the display. Thereafter, the Remote Control Application can delete 2818 the reminder table entry it has just acted upon and continue to scan and process any further table entries which may also be eligible for action.
Of particular advantage to this implementation of a reminder feature is the fact that the remote control logic is able to detect when the unit is in use (e.g., the consumer is pressing buttons, moved the remote, etc.) and thus displays the reminder message when the unit is actually in the consumers hand, as opposed to a passive display system dependent only on a timer where a reminder message would be displayed regardless of whether anyone is there to see it or not.
Use of the MREM tag is not limited to TV show reminders. When the remote control is used in communication with a PC or home automation server as described in conjunction with
In still another embodiment, the display 24 of the remote control 10 could be used to present closed caption text. To this end, a TV or set top box equipped (or retrofitted) with closed caption capability can communicate with the remote control 10 to transmit the closed caption data stream to the remote control 10 instead of the TV screen. When closed captioning is displayed on the screen 24 of the remote control 10 it allows one person to utilize the caption feature without affecting the program display on the TV screen.
To effect the display of close captioning information, the system may be arranged as illustrated in
To request that the device 2510 transmit the closed captioning information to the remote 10 for display on the LCD 24, the user may activate a soft key which will result in the transmission of a closed captioning request command from the remote control 10 to the device 2510. The transmission of the command can be accomplished using either the IR transmitter or the RF transmitter. Upon receipt of the closed captioning request command, as illustrated in
To transmit the closed captioning information to the remote control 10 from the device 2510, the memory 2520 is accessed to load into the pre-formatted Web page the buffered closed captioning information 2650. The Web page containing the current closed caption information may then be transmitted 2660 to the remote control 10. When the device 2510 is in the transmit closed captioning information mode of operation, the steps of loading the current closed captioning information into the Web page and transmitting the Web page to the remote control 10 are repeated as requested by the remote control 10. This is accomplished by the remote control 10 issuing a closed captioning refresh request to the device 2510 which causes the device 2510, upon the receipt of the request 2670, to load the closed captioning information stored in the memory 2520 into the Web page and transmit the Web page to the remote control 10.
The rate at which the remote control issues such refresh requests is determined by the value contained in the special “Refresh” META statement in the HTML page loaded at step 2640. The value is preferably selected to adequately support the closed caption rate while taking into account the battery power consumption of the remote control. It will be appreciated that, in alternative applications where battery life is not a critical factor, for example, where the remote control unit is to be docked in a recharging base during closed caption display, the refresh interval can be made very small or even omitted entirely. In this manner, the remote control is continuously polling the device 2510 which can then refresh the display as often as is necessary to accommodate the streaming of information into memory 2520.
Using the above described procedure, the system can be further adapted to present “Fast news.” In this regard, a “headline summary” feature can be implemented by storing the closed caption frames during a news broadcast and then displaying the captured frames as a scrollable text file on the display 24 of the remote control 10. In this regard, the fast news information can be stored in the memory 2520 of the device and accessed on request. Alternatively, the information could be placed into one or more Web pages that are transmitted to the remote control 10 and locally stored for later viewing. Still further, if the set top box or TV is equipped to communicate bi-directionally with the remote control 10, additional information about a show or event in progress (e.g. athlete statistics, actor biographies, etc.) could be displayed on the LCD 24 of the remote control 10 without interfering with the main picture on the TV screen. The information could be in the form of text or links to Web pages having the content which is accessible via the Internet. Again, this information would be received from an external source and transmitted to the remote control 10 by way of the device 2510.
The capabilities described above can further be used to allow the remote control 10 to communicate with an electronic device, such as a DVD player, CD player, etc. to display individual movie subtitles, karaoke lyrics, etc. on the display 24. This information could be transmitted in real-time or down-loaded and displayed in a manner synchronized with the electronic media using the procedure above-described. The display can be in paragraphs/verses, line-by-line or word-by-word. Also, since this information is conveyed to the remote control in HTML form, the subtitles, lyrics, etc. may comprise plain text data, graphic images, or a mixture of both.
In yet another embodiment,
For displaying sub-titles for movies, etc. in a language that is not supported by the relevant media, the sub-titles etc. can be downloaded from a supporting Web site, kiosk, etc. In this regard, the information can be downloaded directly to the remote control 10, provided the memory is of sufficient size, or downloaded to a smart card or other releasable type of memory. It will be appreciated that, to support this latter described functionality, the remote control 10 can be adapted to include a releasable media reader or be adapted to communicate with releasable media reader. Synchronization of the playing of the media and the display of the sub-titles, etc. can be performed manually, e.g., by activating a key to initiate the reading and display of information from the memory at the time the movie, etc. Alternatively, a signal can be issued from the media player which will cause the remote control 10 to automatically initiate the reading and display of information from the memory at the time the movie, etc. Since a system and method for adapting a remote control to use a smart card is described in greater detail in U.S. Pat. No. 6,223,348 which is incorporated herein by reference in its entirety, it will not be discussed further for the sake of brevity.
Still further, the remote control 10 can be equipped with a bar code reader to facilitate the gathering of information related to programming the remote control 10, home appliances/consumer electronic devices, TV programming, etc. Alternatively, the bar code digits can be entered by the user. Use of a bar code to facilitate programming a remote control to match the consumer's equipment is disclosed in U.S. Pat. No. 6,225,938 entitled “Universal Remote Control System with Bar Code Setup” which is incorporated herein by reference in its entirety. In addition, use of a bar code reader allows the remote control 10 to retrieve information indicative of an item/article and, thereafter, display information relevant to the item/article (e.g., instructions, warnings, nutritional info, spare part lists, command codes for controlling its operation, etc.). Furthermore, the UPC/Bar code information could be used as a pointer to Web sites on the Internet. This bar code could be a standard Universal Product Code (UPC) or could be a special bar code format intended for use only with the remote control.
In an exemplary implementation, a bar code reader module with a serial interface, such as are available from Symbol Technologies Inc., can be attached through the general purpose serial I/O connection 108 and UART port 330. This bar code reader module may be physically incorporated into the housing 13 of the remote control, or may be in the form of a self contained external module connected via a cable to the serial I/O jack 61. When so equipped, the bar code reader can be used as an alternative to the keyboard for entry of data into input fields in HTML pages. By way of example,
To request information in this manner, the user would initially request an HTML page containing an input field 2910 into which a UPC code is entered, either via the keyboard or by scanning the product itself with the bar code reader. Preferably keyboard entry is provided as a backup in the event the UPC bar code label on the product is damaged, obscured, unreachable, or the like. An “EXIT” button 2915 is also provided on this and subsequent pages so that the user can return to the Browser Application start page or other designated beginning point at any time. After capture of the UPC code 2930 by scanning the product with the bar code reader, selecting the “SUBMIT” 2940 button causes the remote control Browser Application to transmit the UPC code data back to the URL from which the initial HTML page originated. At the originating site, this data can be used to directly index into a database of product information or, alternatively, may be used to index into a table of other URLs (corresponding to manufacturer Web pages, for example) to transfer the request to a specific site from which the appropriate information is available. In either event, the resulting response is the transmission of a page of HTML formatted data back to the remote control 10 to cause display of the desired product information 2960. This page of information can itself contain link(s) to additional page(s) of information as seen in this example where selecting “COOKING DIRECTIONS” 2970 results in the display of a secondary page of information 2980, which in turn can contain a link 2990 to yet another page, and so on. In this manner all needed product information can be made available to a consumer.
The bar code reader may also be used in many other Internet based applications implemented in a similar manner to that described above for example, grocery shopping, on line warranty registration, product and/or price comparisons, and the like. It may also be used as an alternative input means during the process of acquiring song lyrics or user manual information as described earlier, by swiping the UPC on the product packaging in place of manually entering text or setup data.
For use in facilitating interaction with the Internet and/or other modes of communication both wireless and wired, the remote control 10 can be adapted to dock to a keyboard. A view of the remote control 10 used in a landscape mode is illustrated in
While specific embodiments of the invention have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those details could be developed in light of the overall teachings of the disclosure. Accordingly, the particular arrangement disclosed is meant to be illustrative only and not limiting as to the scope of the invention which is to be given the full breadth of the appended claims and any equivalents thereof.
This application is a continuation of U.S. application Ser. No. 09/905,396 which, in turn, claims the benefit of U.S. Provisional Patent Application No. 60/264,767 filed on Jan. 29, 2001, both of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60264767 | Jan 2001 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09905396 | Jul 2001 | US |
Child | 11088694 | Mar 2005 | US |