System and method for resolving a sink data amalgamation during the programming of controller devices

TWI935309BActive Publication Date: 2026-08-11HOME CONTROL SINGAPORE
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
TW112126497
Authority / Receiving Office
TW · TW
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2023-07-17
Publication Date
2026-08-11
Estimated Expiration
2043-07-16

AI Technical Summary

Technical Problem

Existing controller device programming systems face inaccuracies in identifying connected display devices due to merged or scrambled Enhanced Extended Display Identification Data (E-EDID) data, leading to incorrect function code uploads and user control failures.

Method used

A system and method for controller device programming that evaluates received E-EDID data through a content management device, using whitelists and blacklists to identify priority display devices, and applies appropriate function codes based on manufacturer names, device names, and serial numbers, ensuring accurate device control.

Benefits of technology

Ensures accurate identification and control of connected display devices by filtering out merged data, thereby improving the reliability and effectiveness of controller device operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure TWG2TB001905244_001
    Figure TWG2TB001905244_001
  • Figure TWG2TB001905244_002
    Figure TWG2TB001905244_002
  • Figure TWG2TB001905244_003
    Figure TWG2TB001905244_003
Patent Text Reader

Abstract

This invention discloses a programming system and method for identifying a controller device programming system for a connected display device 30 connected to a content management device 20 via at least one connected intermediate device 40. The system and method evaluate details contained in a received data merge, which includes received identification data from both the connected display device 30 and at least one of the connected intermediate devices 40. Keywords, whitelists, and blacklists can be used to evaluate the content of the received data merge and determine one or more priority display device matches, thereby improving the selection of a function code set for controlling the connected display device 30 using a controller device 50 paired with the content management device 20.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to controller device programming. More particularly, the present invention relates to a system and method for addressing the merging of received data during controller device programming. Prior Art

[0002] Programmable controller devices are often referred to as universal controller devices because they are designed to work with a wide variety of devices rather than just a single device model.

[0003] In recent years, set-top boxes have been paired and / or shipped with a controller device that can control both the set-top box and the television connected to the set-top box. To assist in programming the controller device, the set-top box may attempt to determine the manufacturer name and / or display product name of the television connected to the set-top box, and then use this identification information to determine the appropriate set of function codes that can be loaded onto the controller device to control the television. These efforts are affected by any inaccuracies in the identification information received by the set-top box.

[0004] Common published standards for communication protocols between set-top boxes and televisions include the HDMI specification, the VESA E-EDID standard, and the CEA standard. This application incorporates tables and other details from the following documents: (1) References to the HDMI specification refer to the "High-Definition Multimedia Interface Specification," Version 1.3a, published by HDMI Licensing LLC on November 10, 2006; (2) References to the VESA E-EDID standard refer to the "VESA Enhanced Extended Display Identification Data Standard," Structure Version 1, Revision 4, Version A, Revision 2, published by the Video Electronics Standards Association on September 25, 2006; and (3) References to the CEA standard refer to the "CEA Standard, A DTV Profile for Uncompressed High Speed ​​Digital Interfaces," Version CEA-861-D, published by the Consumer Electronics Association on July 2006.

[0005] Common abbreviations used in background documents and related art include: ASCII American Standard Code for Information Interchange AV Audio / Video BLE Bluetooth Low Energy CD controller unit CEA Consumer Electronics Association CEC Consumer Electronics Control DDC Display Data Channel DTV Digital Television DVD Digital Versatile Disc D-VHS Digital Video Home System DVI Digital Visual Interface E-EDID Enhanced Display Identification Data EDID Extended Display Identification Data HDMI High Definition Multimedia Interface IEEE Institute of Electrical and Electronics Engineers IR infrared ISA Industry Standard Architecture PNPID Plug and Play Device Identifier PROM Programmable Read-Only Memory PVR Personal Video Recorder RF ROM Read-Only Memory STB Set-Top Box TMDS Transition Minimized Differential Signaling VESA Video Electronics Standards Association

[0006] Figure 1 is a block diagram detailing wired communication between an HDMI source 11 and an HDMI sink 12 in the prior art of the HDMI communication protocol. This block diagram is taken from Figure 3-1 of the HDMI specification. As an overview, the HDMI system architecture is defined as consisting of an HDMI source 11 and an HDMI sink 12. A given device may have one or more HDMI inputs and one or more HDMI outputs. To comply with the HDMI specification, each HDMI input on such a device must follow all the rules of an HDMI sink 12. Similarly, each HDMI output must follow all the rules of an HDMI source 11. An HDMI cable 23C (see Figure 5) between the HDMI source 11 and the HDMI sink 12 transmits transition-minimized differential signaling (TMDS) channels 14, a display data channel (DDC) 15, and a consumer electronics control (CEC) line 16. As shown in Figure 1, the enhanced extended display identification data (E-EDID) may be stored in a ROM 13, although this memory could also be a programmable read-only memory or dynamic random access memory. The HDMI source 11 includes an HDMI transmitter and the HDMI sink 12 includes an HDMI receiver.

[0007] Figure 2 is a fragmented diagram 2-00 from Table 3.1 of the VESA E-EDID standard, detailing the prior art E-EDID structure. All sinks must contain a CEA-861-D compliant E-EDID structure accessible through the DDC 15. An HDMI source 11 reads the E-EDID and a first CEA extension to determine the capabilities supported by the HDMI sink 12. Additional extensions can be read to discover additional capabilities. The HDMI source 11 is responsible for any format conversion required to deliver audio and video in an understandable form to the HDMI sink 12. The overall structure of the E-EDID for the HDMI sink 12 must conform to the E-EDID structure defined in the VESA E-EDID standard. The first 128 bytes of the E-EDID contain an E-EDID structure that also meets the requirements of the CEA standard. The first E-EDID extension must contain a CEA extension defined in the CEA standard, including a 2-byte source physical address field (see Figures 4A and 4B for a detailed discussion).

[0008] For the purposes of this application, asterisks have been added to Figure 2-00 of Figure 2 to highlight the fields most important to the present invention: the ID Manufacturer Name, ID Product Code, ID Serial Number, and Display Descriptor (see Figures 3A and 3B below). The ID Manufacturer Name field is a required element in the E-EDID structure. The ID Manufacturer Name field contains a 2-byte representation of the device manufacturer's ISA 3-character ID code. These codes are also known as ISA (Industry Standard Architecture) Plug and Play Device Identifiers (PNPIDs) published by Microsoft Corporation. The ID Product Code field is a required element in the E-EDID structure. The ID Product Code field contains a 2-byte manufacturer-assigned product code; the ID Product Code is used, for example, to distinguish different models from the same manufacturer using a model number. The ID Serial Number is a 32-bit serial number used to distinguish individual instances of the same display model; its use is optional. The Display Descriptor is described in detail in Figures 3A and 3B below. As discussed below in this application, the ID manufacturer name is a field that is crucial to the present invention (along with the displayed product name listed in Chart 3A-00 of FIG. 3A discussed below). According to section 3.10.3.4 of the VESA E-EDID standard, it is recommended that the displayed product name include the model name. Therefore, as used in this specification, the term "displayed product name" may include, but is not limited to, the model name.

[0009] FIG3A is a diagram 3A-00 from Table 3.23 of the VESA E-EDID standard, detailing a prior art display descriptor overview. For the purposes of this application, asterisks have been added to FIG3A-00 to emphasize the fields most important to the present invention: the display product serial number, the ASCII data string, and the display product name.

[0010] The diagram in FIG3B provides additional details regarding these asterisked fields. FIG3B-01 provides details on the definition of the Display Product Serial Number, FIG3B-02 provides details on the definition of the alphanumeric data string, and FIG3B-03 provides details on the definition of the Display Product Name in the prior art. FIG3B-01, 3B-02, and 3B-03 are derived from VESA E-EDID Standard Tables 3.24, 3.25, and 3.29, respectively. As discussed below in this application, the Display Product Name is a field that is crucial to the present invention (along with the ID Manufacturer Name listed in FIG2-00, see above).

[0011] FIG4A is a truncated diagram 4A-00 of the first E-EDID extension with a CEA extension, detailing the source physical address from Table 8-6 of the prior art HDMI specification. The first E-EDID extension includes a 2-byte source physical address field. The source physical address is received by HDMI source 11 in wired communication with HDMI sink 12, as shown in cluster 60 of FIG4B , as part of the E-EDID extension. Cluster 60 shown in FIG4B is adapted from FIG8-3 of the prior art HDMI specification.

[0012] The CEC line 16 connects directly to all devices in cluster 60. After discovering its physical address, each device transmits its physical and logical addresses to all other devices, allowing any device in cluster 60 to generate a map of cluster 60. Each device's physical address is determined through a physical address discovery process. This process is dynamic, automatically adjusting physical addresses as needed as devices are physically or electrically added or removed from cluster 60. All physical addresses are four digits long, allowing for a five-device hierarchy, and will appear in the form nnnn in the following description. An HDMI sink 12 or a repeater acting as a CEC root device will generate its own physical address: 0.0.0.0. An HDMI source 11 or a repeater reads its physical address from the E-EDID of the connected HDMI sink 12. Each HDMI sink 12 (or repeater) is responsible for generating the physical addresses of all HDMI sources 11 connected to that HDMI sink 12 (or repeater) by appending a port number to its own physical address and placing that value in the port's E-EDID so that it can be read by connected HDMI sources 11. As discussed above with respect to Chart 4A-00 of FIG. 4A , the Source Physical Address field of the HDMI specification contains a 4-digit source physical address that is read by the HDMI source 11.

[0013] As background for this invention, the devices of key importance in FIG4B are the connected display device (CDD) 30, the connected intermediary device (CID) 40, and the content management device (CMD) 20. In this cluster 60, the connected display device 30 is the CEC root device and has a physical address of 0.0.0.0. An exploded view of the connected display device (CDD) 30 (see the lower right corner of FIG4B ) shows two E-EDIDs, one for each input to this CEC root device, with the top E-EDID containing a source physical address of 1.0.0.0 and the bottom E-EDID containing a source physical address of 2.0.0.0. When reading the E-EDID of the connected display device 30, the connected intermediary device receives its physical address of 2.0.0.0. Subsequently, the content management device 20 receives its physical address of 2.3.0.0 from the E-EDID of the connected intermediary device 40. It should be noted that the nnnn values ​​shown for each device in cluster 60 in FIG4B represent the physical address of the device itself, not the source physical address stored in the E-EDID within the device. Therefore, as implemented by the HDMI specification and the VESA E-EDID standard, a content management device 20 can detect the presence of a connected intermediate device 40 located between the content management device 20 and a connected display device 30. As shown, cluster 60 in FIG4B also includes a DVD with physical address 2.1.0.0, a D-VHS with physical address 2.2.0.0, and a PVR with physical address 2.3.1.0.

[0014] FIG5 is a block diagram illustrating an HDMI connection between a content management device 20 and a connected display device 30 in the prior art. In this block diagram, there is no connected intermediate device 40 positioned between the content management device 20 and the connected display device 30. An HDMI cable 23C connects the CMD audio / visual output 23A to the CDD audio / visual input 23B to implement the HDMI communication protocol. The connected display device 30 includes a CDD radio frequency (RF) transceiver 24B and a CDD infrared receiver 25B. The content management device 20 of FIG5 further includes a CMD audio / visual input 21A (depicted as a coaxial input 21A in FIG5 ), an Ethernet input 22, a CMD radio frequency (RF) transceiver 24A, a CMD infrared receiver 25A, and a power input 26A. The CMD audio / visual input 21A communicates with the coaxial cable outlet 21C via a coaxial cable 21B. Power input 26A is electrically connected to power output 26C via a power cable 26B. Connected display device 30 includes a CDD radio frequency (RF) transceiver 24B and a CDD infrared receiver 25B. CDD RF transceiver 24B and CMD RF transceiver 24A are depicted as Bluetooth Low Energy (BLE) transceivers, but may be any type of radio frequency (RF) transceiver. For example, a BLE transceiver is one type of RF transceiver. Bluetooth is a registered trademark of the Bluetooth Special Interest Group (SIG).

[0015] It should be noted that although FIG. 5 depicts a system having a single connected intermediary device 40 , a hierarchy of two or more connected intermediary devices 40 may also be connected in series between the content management device 20 and the connected display device 30 .

[0016] As will become apparent from the detailed description of the present invention throughout this application, the addition of a connected intermediary device 40 between a content management device 20 and a connected display device 30 increases the difficulty of accurately identifying the brand and model of the connected display device 30. One reason for this difficulty is apparent in the glossary and Appendix A of the HDMI Specification. Section 2.2 of the HDMI Specification's glossary defines: (a) an HDMI source 11 as a device with one HDMI output; (b) an HDMI sink 12 as a device with one HDMI input; and (c) an HDMI repeater as a device with one or more HDMI inputs and one or more HDMI outputs. Thus, a repeater simultaneously appears as both an HDMI sink 12 and an HDMI source 11. Appendix A of the HDMI Specification states that the E-EDID presented by a repeater should reflect the "capabilities" of the downstream HDMI Sink 12 and that in terms of E-EDID handling, repeaters generally fall into one of two categories: (a) a "stored E-EDID type" repeater, in which the repeater stores an E-EDID structure that is generally composed by the downstream HDMI Sink 12; and (b) a "forwarded E-EDID type" repeater, in which the repeater does not store an E-EDID structure, but when an E-EDID read is requested from an HDMI Source 11, the repeater forwards the read request to an HDMI Sink 12, and the E-EDID data from the HDMI Sink 12 is then forwarded back to the HDMI Source 11 by the repeater in an unchanged form.

[0017] Therefore, the HDMI specification introduces the potential for a connected intermediary device 40, in its role as a repeater, to handle E-EDID data differently when communicating with the content management device 20, instead communicating interpreted "capabilities" or an exact forwarded E-EDID. If communicating "capabilities," the connected intermediary device 40 may modify the E-EDID of the connected display device 30 and then pass the connected display device 30's interpreted "capabilities" in the E-EDID field sent to the content management device 20. If communicating an exact forwarded E-EDID, the connected intermediary device 40 may pass only the connected display device 30's E-EDID without modification in a "forwarded E-EDID type" transmission.

[0018] The difference between interpreted "capabilities" and accurately transmitted E-EDID affects how content management device 20 (such as a set-top box paired with a controller device 50) accurately identifies the capabilities of a connected display device 30 when connected through a connected intermediary device 40 (acting as a repeater). For example, content management device 20 may receive an E-EDID from connected intermediary device 40 that is a data merge containing some fields from the E-EDID of connected display device 30 and other fields from the E-EDID of connected intermediary device 40. As an example, the data merge received by a set-top box may include the manufacturer's ID of an audio device connected between the set-top box and a television, as well as the television's displayed product name (which may or may not include a model name, as discussed above). This merged or scrambled E-EDID makes it challenging for the set-top box and a controller device 50 to correctly identify the applicable function code set for controlling the television using controller device 50.

[0019] An audio device can intentionally insert its own audio capabilities into the E-EDID, allowing the set-top box to transmit audio in a format most suitable for the audio device (especially when the connected display device 30 does not support the audio format used by the audio device). As an example, according to Section 3 of the HDMI specification, basic audio functionality consists of a single IEC 60958 L-PCM audio stream at a sampling rate of 32 kHz, 44.1 kHz, or 48 kHz. This can accommodate any normal stereo stream. HDMI can optionally carry this audio at sampling rates up to 192 kHz and using 3 to 8 audio channels. HDMI can also carry IEC 61937 compressed (e.g., surround sound) audio streams at bit rates up to 24.576 Mbps. HDMI can also carry from 2 to 8 channels of single-bit audio and a compressed form of single-bit audio called DST. Therefore, if both the content management device 20 and the audio device support surround sound, the audio device can provide surround sound to a user if the content management device 20 delivers the audio to the audio device in a surround sound format. This audio format delivered via the HDMI communication protocol is specified by data in fields within the E-EDID. It should also be noted that the Glossary section 2.2 of the HDMI specification details the use of a CEA extension block to allow the declaration of audio formats beyond those defined in the base E-EDID structure of the HDMI receiver 12.

[0020] During the design of a repeater, the reliability of the data within the E-EDID fields may be a lower priority. For example, when designing firmware for an audio device used as a repeater for a specific TV, an audio device manufacturer (perhaps under the guidance of the HDMI specification) may intentionally modify the data within the E-EDID fields for the specific TV to instead identify a different TV with the necessary audio capabilities preferred by the audio device. In this way, the audio device manufacturer prioritizes the details within the E-EDID fields that best showcase the audio capabilities of the company's products. Similarly, repeaters used for HDMI switching and HDMI emulation may be intentionally designed to swap or otherwise modify the data within the E-EDID fields. This editing of the data within the E-EDID fields results in a receive data merge (or scrambling of the E-EDID) that affects a set-top box's ability to properly identify the brand and model of the specific TV. Improper identification of the specific TV may then result in an incorrectly identified function code set being uploaded to the controller device 50 for user control of the specific TV.

[0021] When a controller device 50 fails to properly control a TV, a user may blame the manufacturer of the controller device 50 because the failure occurred during the use of the controller device 50. To maintain a positive business reputation and reduce customer support inquiries, it is valuable to eliminate the effects of any received data merges. Therefore, a system is needed for evaluating each E-EDID received by a set-top box to determine whether the E-EDID field represents a received data merge, and if so, still determining a priority display device match for the TV. This priority display device match for the TV can then be used to properly identify a function code set operable with the TV and upload that function code set to the controller device 50. Summary of the Invention

[0022] A general embodiment of the present invention is a controller device programming system and method for identifying a connected display device connected to a content management device via at least one connected intermediary device. The system and method evaluate details contained in a received data set, which includes received identification data from both the connected display device and at least one of the connected intermediary devices. Keywords, whitelists, and blacklists may be employed to evaluate the contents of the received data set and determine one or more priority display device matches to refine the selection of a function code set for controlling the connected display device using a controller device paired with the content management device.

[0023] A primary embodiment of the present invention is a controller device programming system for executing at least one programming request for a controller device (CD), the controller device being paired with a content management device (CMD), the CMD being in indirect data communication with a connected display device (CDD) via at least one connected intermediate device (CID). The controller device comprises: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module. The content management device comprises: (1) a CMD audio / visual input configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output configured to send second audio / visual content directly or indirectly to the at least one connected intermediate device according to a second communication protocol; (3) a CMD RF transceiver configured for wireless communication with the controller device according to a third communication protocol; and (4) a discovery module, a detection module, and a CD programmer. The content management device stores or is linked to: (1) a code set database having a plurality of code set records; and (2) a receiving database having a plurality of receiving records. Each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a function code set associated with the at least one code set identifier of the code set record. Each receiving record includes or is linked to: (i) at least one receiving identifier of a plurality of receiving identifiers, each receiving identifier being associated with at least one of a plurality of receiving devices; (ii) at least one of the code set identifiers, the at least one code set identifier specifying the function code set for the at least one receiving device associated with the receiving record; and (iii) a keyword set for the at least one receiving device associated with the receiving record. The keyword set for each reception record includes at least one of the following: (1) a manufacturer name of the at least one reception device associated with the reception record; (2) a device name of the at least one reception device associated with the reception record; and (3) a serial number of the at least one reception device associated with the reception record. Each of the at least one connected intermediate device includes: (i) a CID audio / visual input configured to directly or indirectly receive the second audio / visual content from the content management device according to the second communication protocol; and (ii) a CID audio / visual output configured to directly or indirectly send third audio / visual content from the connected intermediate device to the connected display device according to the second communication protocol. The connected display device includes: (i) a CDD audio / visual input configured to receive the third audio / visual content from the content management device according to the second communication protocol; and (ii) at least one of a CDD RF transceiver and a CDD infrared receiver.

[0024] As used in this specification, the term "device name" is intended to include any of the following: (i) a device's display product name, as identified under the VESA E-EDID standard; (ii) a model name, as included within a device's display product name in the VESA E-EDID standard; and (iii) a commonly used name given to a device by its marketer or manufacturer. The terms "device" and "device name" are not limited to display products. For example, a device may include products other than a connected display device.

[0025] In a primary embodiment of the present invention, for each programming request, the discovery module of the content management device is configured to: (1) receive physical address data of a cluster comprising the connected display device, the at least one connected intermediate device, and the content management device; (2) confirm the existence of indirect data communication between the content management device and the connected display device based on the physical address data; and (3) request and receive receive identification data via the second communication protocol. For each programming request, the receive identification data is: (1) organized according to a device identification data structure; and (2) includes a receive data merge. The receive data merge includes at least two of the following: (a) a manufacturer name of at least one of the connected intermediate devices; (b) a manufacturer name of the connected display device; (c) a device name of at least one of the connected intermediate devices; (d) a device name of the connected display device; (e) a serial number of at least one of the connected intermediate devices; and (f) a serial number of the connected display device. For each programming request, the detection module of the content management device is configured to: (i) access the reception identification data received by the discovery module; (ii) access the reception records of the reception database; (iii) perform a keyword search of the keyword sets of the reception records of the reception database using at least a portion of the reception identification data; (iv) identify at least one priority-indicating device match; and (v) cross-reference each priority-indicating device match with at least one code set identifier in the reception records of the reception database. A priority of each priority-indicating device match is calculated based on at least one of: (1) a first reliability score of the manufacturer name; (2) a second reliability score of the device name; and (3) a third reliability score of the serial number. For each programming request, the CD programmer is configured to: (i) access the code set database; (ii) initiate communication with the controller device via the third communication protocol; and (iii) for each code set identifier cross-referenced by the detection module and matched with at least one priority display device, transmit at least a portion of the function code set associated with the code set identifier to the controller device via the third communication protocol. For each programming request, the controller device is configured to: (i) test the functionality of at least a subset of each function code set received by the controller device from the CD programmer of the content management device to identify at least one function code set; (ii) store the at least one function code set in the CD memory of the controller device; and (iii) employ the at least one function code set to control the operation of the connected display device based on user input.

[0026] In an alternative embodiment of the present invention, the reception records in the reception database are categorized into at least one of the following: (i) a whitelist of manufacturer names associated with a plurality of confirmed display manufacturers; and (ii) a blacklist of manufacturer names associated with at least one of a plurality of audio device manufacturers, a plurality of non-display device manufacturers, and a plurality of repeater device manufacturers. For each programming request, the detection module: (i) locates the manufacturer name identified by the reception identification data as mapped by the device identification data structure; and (ii) searches the reception database for the identified manufacturer name. For each programming request, the detection module may also, as appropriate: (i) increase a reliability score for the manufacturer name in the programming request if the manufacturer name included in the reception identification data of the programming request is included in the manufacturer name whitelist; and (ii) decrease the reliability score for the manufacturer name in the programming request if the manufacturer name included in the reception identification data of the programming request is included in the manufacturer name blacklist.

[0027] In an alternative embodiment of the present invention, the reception records in the reception database are categorized into at least one of the following: (i) a device name whitelist associated with a plurality of confirmed display device names; and (ii) a device name blacklist associated with at least one of a plurality of audio device names, a plurality of non-display device names, and a plurality of repeater device names. For each programming request, the detection module: (i) locates the device name identified by the reception identification data as mapped by the device identification data structure; and (ii) searches the reception database for the identified device name. For each programming request, the detection module may also, as appropriate: (i) increase a reliability score for the device name in the programming request if the device name in the programming request is included in the device name whitelist; and (ii) decrease the reliability score for the device name in the programming request if the device name in the programming request is included in the device name blacklist.

[0028] In an alternative embodiment of the present invention, the device identification data structure is an Enhanced Extended Display Identification Data (E-EDID) structure, comprising: (a) a set of vendor and product identification fields; and (b) a set of display descriptor fields. The set of vendor and product identification fields comprises at least one of the following: (i) a manufacturer ID; (ii) a product ID code; (iii) a serial ID number; (iv) a week of manufacture; and (v) a year of manufacture. The set of display descriptor fields comprises at least one of the following: (i) a display product serial number; (ii) an ASCII-formatted alphanumeric data string; and (iii) a display product name. In this alternative embodiment of the present invention, the received data may also include: (a) the manufacturer ID name of at least one of the connected intermediate devices; and (b) the display product name of the connected display device. In this alternative embodiment of the present invention, the keyword set for each reception record: (a) can be assembled from at least one of a data table specification of the at least one receiving device associated with the reception record and empirical information within the fields of the E-EDID received from the at least one receiving device associated with the reception record via the second communication protocol; and (b) can include the ID manufacturer name of the at least one receiving device associated with the reception record, the ID product code of the at least one receiving device associated with the reception record, the ID serial number of the at least one receiving device associated with the reception record, the ID ... At least one of the week of manufacture of at least one receiving device, the year of manufacture of at least one receiving device associated with the receiving record, the displayed product serial number of at least one receiving device associated with the receiving record, an alphanumeric data string in ASCII format of the at least one receiving device associated with the receiving record and the displayed product name of the at least one receiving device associated with the receiving record, a device type of the at least one receiving device associated with the receiving record, a brand identifier of the at least one receiving device associated with the receiving record, and a keyword of the at least one receiving device associated with the receiving record. In this alternative embodiment of the present invention, with respect to the calculation of the priority matched by the detection module for each priority display device: (a) the manufacturer name may be the ID manufacturer name within the receiving identification data as mapped from the E-EDID structure; (b) the device name may be the ID displayed product name within the receiving identification data as mapped from the E-EDID structure; and (c) the serial number may be the ID serial number within the receiving identification data as mapped from the E-EDID structure.

[0029] In an alternative embodiment of the present invention, the content management device further includes: (i) an Ethernet connection connectable to a remote server via a network; and (ii) an update module. The remote server includes: (i) a currently received database; and (ii) a current code set database. The update module of the content management device is configured to perform at least one of the following: (i) download at least a portion of the currently received database and at least a portion of the current code set database from the remote server and store them in the content management device; and (ii) connect to the currently received database and to the current code set database.

[0030] A secondary embodiment of the present invention is a controller device programming method for executing at least one programming request for a controller device (CD), the controller device being paired with a content management device (CMD), the CMD being in indirect data communication with a connected display device (CDD) via at least one connected intermediate device (CID). The controller device comprises: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module. The content management device comprises: (1) a CMD audio / visual input configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output configured to send second audio / visual content directly or indirectly to the at least one connected intermediate device according to a second communication protocol; (3) a CMD RF transceiver configured for wireless communication with the controller device according to a third communication protocol; and (4) a discovery module, a detection module, and a CD programmer. The content management device stores or is linked to: (1) a code set database having a plurality of code set records; and (2) a receiving database having a plurality of receiving records. Each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a function code set associated with the at least one code set identifier of the code set record. Each receiving record includes or is linked to: (i) at least one receiving identifier of a plurality of receiving identifiers, each receiving identifier being associated with at least one of a plurality of receiving devices; (ii) at least one of the code set identifiers, the at least one code set identifier specifying the function code set for the at least one receiving device associated with the receiving record; and (iii) a keyword set for the at least one receiving device associated with the receiving record. The keyword set for each reception record includes at least one of the following: (1) a manufacturer name of the at least one reception device associated with the reception record; (2) a device name of the at least one reception device associated with the reception record; and (3) a serial number of the at least one reception device associated with the reception record. Each of the at least one connected intermediate device includes: (i) a CID audio / visual input configured to directly or indirectly receive the second audio / visual content from the content management device according to the second communication protocol; and (ii) a CID audio / visual output configured to directly or indirectly send third audio / visual content from the connected intermediate device to the connected display device according to the second communication protocol. The connected display device includes: (i) a CDD audio / visual input configured to receive the third audio / visual content from the content management device according to the second communication protocol; and (ii) at least one of a CDD RF transceiver and a CDD infrared receiver.

[0031] In a secondary embodiment of the present invention, for each programming request, the discovery module of the content management device performs the following steps: (1) receiving physical address data of a cluster including the connected display device, the at least one connected intermediate device, and the content management device; (2) confirming the existence of indirect data communication between the content management device and the connected display device based on the physical address data; and (3) requesting and receiving received identification data via the second communication protocol. For each programming request, the received identification data is: (1) organized according to a device identification data structure; and (2) includes a received data merge. The received data merge includes at least two of the following: (a) a manufacturer name of at least one of the connected intermediate devices; (b) a manufacturer name of the connected display device; (c) a device name of at least one of the connected intermediate devices; (d) a device name of the connected display device; (e) a serial number of at least one of the connected intermediate devices; and (f) a serial number of the connected display device. For each programming request, the detection module of the content management device performs the following steps: (i) accessing the reception identification data received by the discovery module; (ii) accessing the reception records of the reception database; (iii) performing a keyword search of the keyword sets of the reception records of the reception database using at least a portion of the reception identification data; (iv) identifying at least one priority-indicating device match; and (v) cross-referencing each priority-indicating device match with at least one code set identifier in the reception records of the reception database. A priority of each priority-indicating device match is calculated based on at least one of: (1) a first reliability score of the manufacturer name; (2) a second reliability score of the device name; and (3) a third reliability score of the serial number. For each programming request, the CD programmer performs the following steps: (i) accesses the code set database; (ii) initiates communication with the controller device via the third communication protocol; and (iii) for each code set identifier cross-referenced by the detection module with at least one priority display device, transmits at least a portion of the function code set associated with the code set identifier to the controller device via the third communication protocol. For each programming request, the controller device performs the following steps: (i) tests the functionality of at least a subset of each function code set received by the controller device from the CD programmer of the content management device to identify at least one function code set; (ii) stores at least one function code set in the CD memory of the controller device; and (iii) employs the at least one function code set to control the operation of the connected display device based on user input. Simple diagram description

[0032] Embodiments of the present invention are described herein with reference to the accompanying drawings, in which: FIG. 1 is a block diagram detailing wired communication between an HDMI source and an HDMI sink from the HDMI specification, as detailed in the prior art. FIG. 2 is a diagram detailing a truncated version of the E-EDID structure from the VESA E-EDID standard, as described in detail in the prior art. FIG. 3A is a diagram detailing an overview of a display descriptor from the VESA E-EDID standard, as detailed in the prior art. FIG. 3B provides additional details of the Display Descriptor Summary fields from the VESA E-EDID standard, as detailed in the prior art. FIG. 4A is a truncated diagram detailing a first E-EDID extension with a CEA extension for a source physical address from the HDMI specification, as detailed in the prior art. FIG. 4B is an adapted block representation of a cluster with physical addresses from the HDMI specification, as detailed in the prior art. FIG. 5 is a block diagram illustrating an HDMI connection between a content management device and a connected display device, as known in the art. FIG. 6 is a block diagram illustrating an HDMI connection between a content management device and a connected display device via a connected intermediate device, in one embodiment of the present invention. FIG. 7 is a block diagram illustrating a controller device paired with a content management device in accordance with an embodiment of the present invention. Implementation Method

[0033] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. The illustrative embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. Unless otherwise specified, as used herein, the terms "comprising," "comprise," "including," and "include," and their grammatical variations, are intended to represent "open" or "inclusive" language, such that they encompass the recited elements but also permit the inclusion of additional, unrecited elements.

[0034] As used herein, the term "controller device" may be implemented using: (i) a conventional remote control device; (ii) a universal remote control device; and (iii) a computing device with a native or downloaded remote control software application. The computing device may be a laptop, a desktop computer, a notebook computer, a smartphone, a game console, or a desktop device. Example desktop devices include virtual assistant products sold under the brand names Amazon Alexa, Amazon Echo, Echo Dot, Echo Studio, and Amazon Tap. Each controller device is programmable, wherein it can select and / or receive specific function codes. The controller device can transmit the function codes to a connected display device (CDD) via a wireless transmission protocol, such as radio frequency transmission (e.g., BLE, Wi-Fi, or other RF transmission protocols) and / or infrared transmission protocol.

[0035] As used herein, a "user input" may be implemented by a display, a keyboard, a mouse, a touchscreen, a touchpad, a voice recognition function, and / or similar directional means for receiving commands from a user. On a conventional or universal remote control, the user display will most likely be the device's physical keys. On a computing device, the user display may be a capacitive touchscreen and / or a voice recognition function.

[0036] As used herein, the software and hardware of a "server" may be implemented on a single standalone computer, a standalone server, multiple dedicated servers, and / or a virtual server running on a larger server network and / or a cloud-based service.

[0037] As used herein, a "database" can store data in and access data from: a compact disc (CD) memory with small storage capacity, a single standalone computer, a laptop, a tablet, a data server, multiple dedicated data servers, a cloud-based service, and / or a virtual server running on a server network. As discussed in the description, the term "database" refers to a collection of tables, records, and / or linked information of data records. As depicted in the description and figures, databases can be maintained separately and / or maintained together in a single database or maintained through links to other databases. The databases depicted in the description and figures can be on the same server or on separate servers. Data links between tables can be links within a database or between separate databases.

[0038] 1 , 2 , 3A, 3B, 4A, 4B, and 5 represent the prior art and are described in the prior art section of this application.

[0039] For convenience, the following table identifies reference element numbers used in the drawings of the application.

[0040] FIG6 is a block diagram illustrating an HDMI connection between a content management device 20 and a connected display device 30 via a connected intermediate device 40, according to one embodiment of the present invention. FIG6 differs from the block diagram of FIG5 in that it includes a connected intermediate device 40 positioned between the content management device 20 and the connected display device 30. First audio / visual content is received by the content management device 20, second audio / visual content is transmitted from the content management device 20 to the connected intermediate device 40 via a first HDMI cable 23C-1 using the HDMI communication protocol, and third audio / visual content is transmitted from the connected intermediate device 40 to the connected display device 30 via a second HDMI cable 23C-2 using the HDMI communication protocol.

[0041] The first audio / visual content may include one or more content channels. The content management device 20 may select a single content channel from the second audio / visual content for delivery to the connected intermediate device 40. For example, the second audio / visual content may be a subset and / or a specifically formatted version of the first audio / visual content. The second audio / visual content and the third audio / visual content may be identical or substantially similar. For example, the connected intermediate device 40 may act as a relay and forward the audio / visual content unchanged.

[0042] As shown in FIG5 , the content management device 20 of FIG6 includes a CMD audio / visual input 21A (depicted as a coaxial input 21A in FIG5 ), an Ethernet input 22, a CMD radio frequency (RF) transceiver 24A, a CMD infrared receiver 25A, and a power input 26A. As shown in FIG5 , the connected display device 30 includes a CDD RF transceiver 24B and a CDD infrared receiver 25B. Although not shown in FIG5 and FIG6 , the content management device 20 may also include a Wi-Fi transceiver for receiving audio / visual content instead of the coaxial cable 21B or alternatively receive audio / visual content via the Ethernet input 22.

[0043] In Figures 5 and 6 , the CMD RF transceiver 24A and CDD RF transceiver 24B are depicted as Bluetooth Low Energy (BLE) transceivers, but may be any type of radio frequency (RF) transceiver. For example, a BLE transceiver is one type of RF transceiver. Bluetooth is a registered trademark of the Bluetooth Special Interest Group (SIG).

[0044] Infrared communication protocols require line of sight and are most often unidirectional. Thus, a CD infrared transmitter 25C on a controller device 50 can transmit function codes from the controller device 50 to a CDD infrared receiver 25B on a connected display device 30 (such as a television) or a CMD infrared receiver 25A on a content management device 20 (such as a set-top box). Common modulation techniques used for infrared transmitters include pulse distance coding and Manchester encoding. The infrared communication protocol is transmitted by the infrared transmitter and received by the infrared receiver.

[0045] To facilitate programming updates for a controller device 50, radio frequency transmission can be used. Function codes are then transmitted to the connected display device 30 via a CD infrared transmitter 25C and received by a CDD infrared receiver 25B via an infrared communication protocol. A controller device (CD) radio frequency (RF) transceiver 24C provides both higher data bandwidth and two-way communication. A Bluetooth Low Energy (BLE) transceiver is a type of RF wireless transceiver. BLE offers the benefit of a published, standardized protocol, enabling different companies to align their communication protocols between various controller devices 50, set-top boxes, and televisions. However, the BLE protocol includes a broader command set and, therefore, requires greater firmware and memory overhead to support its use. An RF transceiver operating with a reduced, simplified command set can reduce the complexity, energy usage, and cost of a controller device 50.

[0046] 6 illustrates a system with a single connected intermediary device 40, the present invention is not limited to use with only one connected intermediary device 40. As an example, the system may include a hierarchy of two or more connected intermediary devices 40 connected in series between the content management device 20 and the connected display device 30.

[0047] FIG7 is a block diagram illustrating a controller device 50 paired with a content management device 20 in one embodiment of the present invention. The controller device 50 includes a CD radio frequency (RF) transceiver 24C, a CD infrared transmitter 25C, a CD memory 51, and a code set test module 52. As shown in FIG5 and FIG6, the content management device 20 includes a CMD audio / visual input 21A (depicted as a coaxial input 21A in FIG5), an Ethernet input 22, a CMD radio frequency (RF) transceiver 24A, a CMD infrared receiver 25A, and a power input 26A. As shown in FIG7, the content management device 20 further includes a discovery module 27A, a detection module 27B, a CD programmer 27C, an update module 27D, a code set database 27E, and a received database 27F.

[0048] A general embodiment of the present invention is a system and method for programming a controller device for identifying a connected display device 30 connected to a content management device 20 via at least one connected intermediary device 40. The system and method evaluate details contained in a received data merge, which includes received identification data from at least one of the connected display device 30 and the connected intermediary device 40. Keywords, whitelists, and blacklists may be employed to evaluate the contents of the received data merge and determine one or more priority display device matches to refine the selection of a function code set for controlling the connected display device 30 using a controller device 50 paired with the content management device 20.

[0049] A primary embodiment of the present invention is a controller device programming system for executing at least one programming request for a controller device (CD) 50. The controller device 50 is paired with a content management device (CMD) 20, which is in indirect data communication with a connected display device (CDD) 30 via at least one connected intermediate device (CID) 40. The controller device 50 includes: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module 52. The content management device 20 includes: (1) a CMD audio / visual input 21A configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output 23A configured to send second audio / visual content directly or indirectly to at least one connected intermediate device 40 according to a second communication protocol; (3) a CMD RF transceiver 24A configured for wireless communication with the controller device 50 according to a third communication protocol; and (4) a discovery module 27A, a detection module 27B, and a CD programmer 27C. The content management device 20 stores or is connected to: (1) a code set database 27E having a plurality of code set records; and (2) a reception database 27F having a plurality of reception records. Each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a function code set associated with the at least one code set identifier of the code set record. Each reception record includes or is linked to: (i) at least one reception identifier of a plurality of reception identifiers, each reception identifier being associated with at least one of a plurality of reception devices; (ii) at least one code set identifier, the at least one code set identifier specifying a function code set for the at least one reception device associated with the reception record; and (iii) a keyword set for the at least one reception device associated with the reception record. The keyword set of each reception record includes at least one of the following: (1) a manufacturer name of the at least one reception device associated with the reception record; (2) a device name of the at least one reception device associated with the reception record; and (3) a serial number of the at least one reception device associated with the reception record. Each of the at least one connected intermediate device 40 includes: (i) a CID audio / visual input 41B configured to directly or indirectly receive second audio / visual content from the content management device 20 according to the second communication protocol; and (ii) a CID audio / visual output 41A configured to directly or indirectly send third audio / visual content from the connected intermediate device 40 to the connected display device 30 according to the second communication protocol. The connected display device 30 includes: (i) a CDD audio / visual input 23B configured to receive third audio / visual content from the content management device 20 according to the second communication protocol; and (ii) at least one of a CDD RF transceiver 24B and a CDD infrared receiver 25B.

[0050] As used in this specification, the term "device name" is intended to include any of the following: (i) a device's display product name, as identified under the VESA E-EDID standard; (ii) a model name, as included within a device's display product name in the VESA E-EDID standard; and (iii) a commonly used name given to a device by its marketer or manufacturer. The terms "device" and "device name" are not limited to display products. For example, a device may include products other than a connected display device.

[0051] In a primary embodiment of the present invention, for each programming request, the discovery module 27A of the content management device 20 is configured to: (1) receive physical address data of a cluster 60 comprising a connected display device 30, at least one connected intermediary device 40, and a content management device 20; (2) confirm the existence of indirect data communication between the content management device 20 and the connected display device 30 based on the physical address data; and (3) request and receive receive identification data via a second communication protocol. For each coding request, the receive identification data is: (1) organized according to a device identification data structure; and (2) includes a receive data combination. The receive data combination includes at least two of the following: (a) a manufacturer name of at least one of the connected intermediary devices 40; (b) a manufacturer name of the connected display device 30; (c) a device name of at least one of the connected intermediary devices 40; (d) a device name of the connected display device 30; (e) a serial number of at least one of the connected intermediary devices 40; and (f) a serial number of the connected display device 30. For each programming request, the detection module 27B of the content management device 20 is configured to: (i) access the reception identification data received by the discovery module 27A; (ii) access the reception records of the reception database 27F; (iii) perform a keyword search of a keyword set of the reception records of the reception database 27F using at least a portion of the reception identification data; (iv) identify at least one priority-indicating device match; and (v) cross-reference each priority-indicating device match with at least one code set identifier in the reception records of the reception database 27F. A priority of each priority-indicating device match is calculated based on at least one of: (1) a first reliability score of the manufacturer name; (2) a second reliability score of the device name; and (3) a third reliability score of the serial number. For each programming request, the CD programmer 27C is configured to: (i) access the code set database 27E; (ii) initiate communication with the controller device 50 via a third communication protocol; and (iii) for each code set identifier cross-referenced with at least one priority display device by the detection module 27B, transmit at least a portion of the function code set associated with the code set identifier to the controller device 50 via the third communication protocol. For each programming request, the controller device 50 is configured to: (i) test the functionality of at least a subset of each function code set received by the controller device 50 from the CD programmer 27C of the content management device 20 to identify at least one function code set; (ii) store the at least one function code set in the CD memory 51 of the controller device 50; and (iii) employ the at least one function code set to control the operation of the connected display device 30 based on user input.

[0052] In an alternative embodiment of the present invention, reception records in reception database 27F are categorized into at least one of the following: (i) a whitelist of manufacturer names associated with a plurality of confirmed display manufacturers; and (ii) a blacklist of manufacturer names associated with at least one of a plurality of audio device manufacturers, a plurality of non-display device manufacturers, and a plurality of repeater device manufacturers. For each programming request, detection module 27B: (i) locates the manufacturer name identified by the received identification data as mapped by the device identification data structure; and (ii) searches reception database 27F for the identified manufacturer name. For each programming request, detection module 27B may also, as appropriate: (i) increase a reliability score for the manufacturer name in the programming request if the manufacturer name included in the received identification data is included in the manufacturer name whitelist; and (ii) decrease the reliability score for the manufacturer name in the programming request if the manufacturer name included in the received identification data is included in the manufacturer name blacklist.

[0053] As new HDMI devices are introduced to the market, the reasons and effects of receiving data merges can change over time. A key initial technical issue identified during the research leading to this invention involved the example of receiving data merges containing the manufacturer ID of an audio device (connected as a repeater) and the display product name of a television (connected as a CEC root device). In this example, the manufacturer ID name can generally be disregarded during the selection or prioritization of a priority display device match. Furthermore, in this example, the keyword set of the receiving database 27F facilitates the identification of phrases or terms within a receiving data merge that identify a specific manufacturer and / or device name of the television.

[0054] In an alternative embodiment of the present invention, reception records in the reception database are categorized into at least one of the following: (i) a device name whitelist associated with a plurality of confirmed display device names; and (ii) a device name blacklist associated with at least one of a plurality of audio device names, a plurality of non-display device names, and a plurality of repeater device names. For each programming request, detection module 27B: (i) locates the device name identified by the received identification data as mapped by the device identification data structure; and (ii) searches the reception database for the identified device name. For each programming request, detection module 27B may also, as appropriate: (i) increase a reliability score for the device name of the programming request if the device name of the programming request is included in the device name whitelist; and (ii) decrease the reliability score for the device name of the programming request if the device name of the programming request is included in the device name blacklist.

[0055] In an alternative embodiment of the present invention, the device identification data structure is an Enhanced Extended Display Identification Data (E-EDID) structure, comprising: (a) a set of vendor and product identification fields; and (b) a set of display descriptor fields. The set of vendor and product identification fields includes at least one of the following: (i) a manufacturer ID; (ii) a product ID; (iii) a serial ID; (iv) a week of manufacture; and (v) a year of manufacture. The set of display descriptor fields includes at least one of the following: (i) a display product serial number; (ii) an ASCII-formatted alphanumeric data string; and (iii) a display product name. In this alternative embodiment of the present invention, the received data may include: (a) the manufacturer ID of at least one of the connected intermediate devices 40; and (b) the display product name of the connected display device 30. In this alternative embodiment of the present invention, the keyword set for each reception record: (a) may be assembled from at least one of a data table specification of at least one reception device associated with the reception record and an empirical E-EDID received from at least one reception device associated with the reception record via a second communication protocol; and (b) may include at least one of an ID manufacturer name of at least one reception device associated with the reception record, an ID product code of at least one reception device associated with the reception record, an ID serial number of at least one reception device associated with the reception record, a manufacturing week of at least one reception device associated with the reception record, a manufacturing year of at least one reception device associated with the reception record, a displayed product serial number of at least one reception device associated with the reception record, an alphanumeric data string in ASCII format of at least one reception device associated with the reception record, and a displayed product name of at least one reception device associated with the reception record. In this alternative embodiment of the present invention, for the calculation of the priority matched to each priority display device by detection module 27B: (a) the manufacturer name may be the ID manufacturer name as in the received identification data mapped from the E-EDID structure; (b) the device name may be the ID display product name as in the received identification data mapped from the E-EDID structure; and (c) the serial number may be the ID serial number as in the received identification data mapped from the E-EDID structure.

[0056] In an alternative embodiment of the present invention, the content management device 20 further includes: (i) an Ethernet connection connectable to a remote server via a network; and (ii) an update module 27D. The remote server includes: (i) a currently received database; and (ii) a current code set database. The update module 27D of the content management device 20 is configured to perform at least one of the following: (i) download at least a portion of the currently received database and at least a portion of the current code set database from the remote server and store them in the content management device 20; and (ii) connect to the currently received database and to the current code set database.

[0057] Update module 27D provides post-sale access to reception records for new TV models, updated keyword sets for existing reception records, and updated whitelists and blacklists. These updates have the potential to serve as "bug fixes" for compatibility issues previously identified by the end customer in the field or during ongoing conformity testing by the manufacturer of the set-top box and / or controller device 50. For example, specific patterns (e.g., a specific combination of ID manufacturer and display product name) can be cataloged, downloaded, or accessed by content management device 20 and used in future programming requests to resolve reception data merges.

[0058] In an alternative embodiment of the present invention, the second communication protocol is an HDMI communication protocol.

[0059] In an alternative embodiment of the present invention, the third communication protocol is one of: (a) a Bluetooth Low Energy protocol; and (ii) an RF protocol other than the Bluetooth Low Energy protocol. An exemplary, non-limiting list of RF protocols other than the Bluetooth Low Energy protocol includes a Wi-Fi protocol, an RF4CE protocol, and a Matter protocol.

[0060] In an alternative embodiment of the present invention, at least one of the connected intermediate devices 40 is an audio device.

[0061] In an alternative embodiment of the present invention, the connected display device 30 includes a CDD RF transceiver 24B. Based on user input, the controller device 50 transmits at least one function code of at least one function code set from the CDD RF transceiver 24C of the controller device 50 to the CDD RF transceiver 24B of the connected display device 30 via a third communication protocol.

[0062] In an alternative embodiment of the present invention, the controller device 50 further includes a CDD infrared transmitter 25C, and the connected display device 30 includes a CDD infrared receiver 25B. Based on user input, the controller device 50 transmits at least one function code from the CDD infrared transmitter 25C of the controller device 50 to the CDD infrared receiver 25B of the connected display device 30 via a fourth communication protocol. It should be noted that the fourth communication protocol may also be one of: (a) a Bluetooth low energy protocol; and (ii) an RF protocol other than the Bluetooth low energy protocol. An exemplary, non-limiting list of RF protocols other than the Bluetooth low energy protocol includes a Wi-Fi protocol, an RF4CE protocol, and a Matter protocol.

[0063] In an alternative embodiment of the present invention, the content management device 20 is one of: (a) a set-top box, wherein the CMD audio / visual input 21A is a coaxial cable input; (b) a digital media player, wherein the CMD audio / visual input 21A is at least one of a first Ethernet input and a first Wi-Fi transceiver; and (c) a desktop or laptop computer, wherein the CMD audio / visual input 21A is at least one of a second Ethernet input and a second Wi-Fi transceiver.

[0064] In an alternative embodiment of the present invention, at least one of the connected intermediate devices 40 comprises a hierarchy of connected intermediate devices. The hierarchy of connected intermediate devices 40 can be connected in series.

[0065] A secondary embodiment of the present invention is a controller device programming method for executing at least one programming request for a controller device (CD) 50. The controller device 50 is paired with a content management device (CMD) 20, which is in indirect data communication with a connected display device (CDD) 30 via at least one connected intermediate device (CID) 40. The controller device 50 includes: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module 52. The content management device 20 includes: (1) a CMD audio / visual input 21A configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output 23A configured to send second audio / visual content directly or indirectly to at least one connected intermediate device 40 according to a second communication protocol; (3) a CMD RF transceiver 24A configured for wireless communication with the controller device 50 according to a third communication protocol; and (4) a discovery module 27A, a detection module 27B, and a CD programmer 27C. The content management device 20 stores or is connected to: (1) a code set database 27E having a plurality of code set records; and (2) a reception database 27F having a plurality of reception records. Each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a function code set associated with the at least one code set identifier of the code set record. Each reception record includes or is linked to: (i) at least one reception identifier of a plurality of reception identifiers, each reception identifier being associated with at least one of a plurality of reception devices; (ii) at least one code set identifier, the at least one code set identifier specifying a function code set for the at least one reception device associated with the reception record; and (iii) a keyword set for the at least one reception device associated with the reception record. The keyword set of each reception record includes at least one of the following: (1) a manufacturer name of the at least one reception device associated with the reception record; (2) a device name of the at least one reception device associated with the reception record; and (3) a serial number of the at least one reception device associated with the reception record. Each of the at least one connected intermediate device 40 includes: (i) a CID audio / visual input 41B configured to directly or indirectly receive second audio / visual content from the content management device 20 according to the second communication protocol; and (ii) a CID audio / visual output 41A configured to directly or indirectly send third audio / visual content from the connected intermediate device 40 to the connected display device 30 according to the second communication protocol. The connected display device 30 includes: (i) a CDD audio / visual input 23B configured to receive third audio / visual content from the content management device 20 according to the second communication protocol; and (ii) at least one of a CDD RF transceiver 24B and a CDD infrared receiver 25B.

[0066] In a secondary embodiment of the present invention, for each programming request, the discovery module 27A of the content management device 20 performs the following steps: (1) receives physical address data of a cluster 60 including a connected display device 30, at least one connected intermediate device 40, and a content management device 20; (2) confirms the existence of indirect data communication between the content management device 20 and the connected display device 30 based on the physical address data; and (3) requests and receives received identification data via a second communication protocol. For each programming request, the received identification data is: (1) organized according to a device identification data structure; and (2) includes a received data merge. The received data merge includes at least two of the following: (a) a manufacturer name of at least one of the connected intermediate devices 40; (b) a manufacturer name of the connected display device 30; (c) a device name of at least one of the connected intermediate devices 40; (d) a device name of the connected display device 30; (e) a serial number of at least one of the connected intermediate devices 40; and (f) a serial number of the connected display device 30. For each programming request, the detection module 27B of the content management device 20 performs the following steps: (i) accesses the reception identification data received by the discovery module 27A; (ii) accesses the reception records of the reception database 27F; (iii) performs a keyword search of a keyword set of the reception records of the reception database 27F using at least a portion of the reception identification data; (iv) identifies at least one priority-indicating device match; and (v) cross-references each priority-indicating device match with at least one code set identifier in the reception records of the reception database 27F. A priority is calculated for each priority-indicating device match based on at least one of: (1) a first reliability score of the manufacturer name; (2) a second reliability score of the device name; and (3) a third reliability score of the serial number. For each programming request, the CD programmer 27C performs the following steps: (i) accesses the code set database 27E; (ii) initiates communication with the controller device 50 via a third communication protocol; and (iii) for each code set identifier cross-referenced with at least one priority display device by the detection module 27B, transmits at least a portion of the function code set associated with the code set identifier to the controller device 50 via the third communication protocol. For each programming request, the controller device 50 performs the following steps: (i) tests the functionality of at least a subset of each function code set received by the controller device 50 from the CD programmer 27C of the content management device 20 to identify at least one function code set; (ii) stores the at least one function code set in the CD memory 51 of the controller device 50; and (iii) employs the at least one function code set to control the operation of the connected display device 30 based on user input.

[0067] Although various aspects and embodiments have been disclosed herein, it should be understood that after reading the foregoing disclosure, those skilled in the art will appreciate various other modifications and adaptations of the present invention without departing from the spirit and scope of the present invention, and all such modifications and adaptations are intended to fall within the scope of the appended claims. The various aspects and embodiments disclosed herein are for illustrative purposes only and are not intended to be limiting, with the true scope and spirit of the present invention being indicated by the appended claims.

[0068] 2-00: Truncated chart 3A-00: Chart 3B-01: Chart 3B-02: Chart 3B-03: Chart 4A-00: Truncated chart 11: High-Definition Multimedia Interface (HDMI) source 12: High Definition Multimedia Interface (HDMI) receiver 13: Read-only memory (ROM) 14: Transition Minimized Differential Signaling (TMDS) channel 15: Display Data Channel (DDC) 16: Consumer Electronics Control (CEC) line 20: Content Management Device (CMD) 21A: Content Management Device (CMD) Audio / Visual Input 21B: coaxial cable 21C: coaxial cable output 22: Ethernet input 23A: Content Management Device (CMD) Audio / Visual Output 23B: Audio / visual input via connected display device (CDD) 23C: High-Definition Multimedia Interface (HDMI) cable 23C-1: The first High-Definition Multimedia Interface (HDMI) cable 23C-2: Second High-Definition Multimedia Interface (HDMI) Cable 24A: Content Management Device (CMD) Radio Frequency (RF) Transceiver 24B: Connected Display Device (CDD) Radio Frequency (RF) Transceiver 24C: Controller Device (CD) Radio Frequency (RF) Transceiver 25A: Content Management Device (CMD) infrared receiver 25B: Connected Display Device (CDD) infrared receiver 25C: Controller unit (CD) infrared transmitter 26A: Power input 26B: Power cable 26C: Power output 27A: Discovery Module 27B: Detection module 27C: Controller Device (CD) Programmer 27D: Update module 27E: Code Set Database 27F: Receiving Database 30: Connected Display Device (CDD) 40: Connected Intermediate Device (CID) 41A: Audio / visual output via connected intermediate device (CID) 41B: Audio / visual input via connected intermediate device (CID) 50: Controller device (CD) 51: Controller device (CD) memory 52: Code set test module 60: Cluster

Claims

1. A controller device programming system for executing at least one programming request for a controller device (CD), the controller device being paired with a content management device (CMD), the content management device (CMD) indirectly communicating with a connected display device (CDD) via at least one connected intermediate device (CID), (a) wherein the controller device comprises: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module; (b) wherein the content management device: (i) comprises: (1) a CMD audio / visual input configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output configured to transmit second audio / visual content directly or indirectly to the at least one connected intermediate device according to a second communication protocol; (3) a CMD RF transceiver configured to wirelessly communicate with the controller device according to a third communication protocol; and (4) a discovery module, a detection module and a CD programmer; and (ii) stored or linked to: (1) a code set database having a plurality of code set records; and (2) a reception database having a plurality of reception records; (c) wherein each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a functional code set associated with the at least one code set identifier of the code set record; and (d) wherein each reception record includes or is linked to: (i) at least one reception identifier of a plurality of reception identifiers, each reception identifier being associated with at least one of a plurality of receiving devices; (ii) at least one of the code set identifiers, the at least one code set identifier specifying the function code set for the at least one receiving device associated with the receiving record; and (iii) a keyword set of the at least one receiving device associated with the receiving record, the keyword set including at least one of: (1) the manufacturer name of the at least one receiving device associated with the receiving record; (2) the device name of the at least one receiving device associated with the receiving record; and (3) the serial number of the at least one receiving device associated with the receiving record; (e) wherein each of the at least one connected intermediate device includes: (i) a CID audio / visual input configured to receive the second audio / visual content directly or indirectly from the content management device according to the second communication protocol; and (ii) a CID audio / visual output configured to transmit the third audio / visual content from the connected intermediate device directly or indirectly to the connected display device according to the second communication protocol; (f) wherein the connected display device includes: (i) A CDD audio / visual input configured to receive the third audio / visual content from the content management device in accordance with the second communication protocol;and (ii) at least one of a CDD RF transceiver and a CDD infrared receiver; (g) wherein, for each programming request: (i) the discovery module of the content management device is configured to: (1) receive entity address data comprising a cluster of the connected display device, the at least one connected intermediate device and the content management device; (2) confirm the existence of indirect data communication between the content management device and the connected display device based on the entity address data; and (3) request and receive reception identification data via the second communication protocol; and (ii) the reception identification data is: (1) organized according to a device identification data structure; and (2) includes at least one of the following reception data: (a) the manufacturer name of at least one of the connected intermediate devices; (b) the manufacturer name of the connected display device; (c) the device name of at least one of the connected intermediate devices; (d) the device name of the connected display device; (e) the serial number of at least one of the connected intermediate devices; and (f) the serial number of the connected display device; (h) wherein, for each programming request, the detection module of the content management device is configured to: (i) access the reception identification data received by the discovery module; (ii) access the reception records of the reception database; (iii) perform a keyword search of one of the keyword sets of the reception records of the reception database using at least a portion of the reception identification data; (iv) identify at least one priority display device match, wherein a priority of each priority display device match is calculated based on at least one of: (1) a first reliability score of one of the manufacturer names; (2) a second reliability score of one of the device names; and (3) a third reliability score of one of the serial numbers; and (v) cross-reference each priority display device match with at least one code set identifier in the reception records of the reception database; (i) wherein, for each programming request, the CD programmer is configured to: (i) access the code set database; (ii) Initialize communication with the controller device via the third communication protocol; and (iii) For each code set identifier that is cross-referenced by the detection module and at least one priority display device, transmit at least a portion of the function code set associated with the code set identifier to the controller device via the third communication protocol; and (j) wherein, for each programming request, the controller device is configured to: (i) test the functionality of at least a subset of each function code set received by the controller device from the CD programmer of the content management device to identify at least one function code set; (ii) store at least one function code set in the CD memory of the controller device; and (iii) control the operation of the connected display device using the at least one function code set based on user input.

2. The system of claim 1, (a) wherein the received records in the received database are classified into at least one of the following: (i) a whitelist of manufacturer names associated with one of a plurality of confirmed display manufacturers; and (ii) a blacklist of manufacturer names associated with at least one of the following: (1) a plurality of audio device manufacturers; (2) a plurality of non-display device manufacturers; and (3) a plurality of repeater device manufacturers; and (b) wherein, for each programming request, the detection module: (i) locates the manufacturer name identified by the received identification data as mapped by the device identification data structure; and (ii) searches the received database for the identified manufacturer name.

3. The system of request 2, wherein for each programming request, the detection module further (a) increases the reliability score of the manufacturer name in the programming request if the manufacturer name in the received identification data included in the programming request is included in the manufacturer name whitelist; and (b) decreases the reliability score of the manufacturer name in the programming request if the manufacturer name in the received identification data included in the programming request is included in the manufacturer name blacklist.

4. The system of request item 1, (a) wherein the received records in the received database are classified into at least one of the following: (i) a whitelist of device names associated with a plurality of confirmed display device names; and (ii) a blacklist of device names associated with at least one of the following: (1) a plurality of audio device names; (2) a plurality of non-display device names; and (3) a plurality of repeater device names; and (b) wherein, for each programming request, the detection module: (i) locates the device name identified by the received identification data as mapped by the device identification data structure; and (ii) searches the received database for the identified device name.

5. The system of request 4, wherein for each programming request, the detection module further: (a) if the device name of the programming request is included in the device name whitelist, then increases the reliability score of the device name of the programming request; and (b) if the device name of the programming request is included in the device name blacklist, then decreases the reliability score of the device name of the programming request.

6. The system of claim 1, wherein the device identification data structure is an enhanced extended display identification data (E-EDID) structure, comprising: (a) a set of supplier and product identification fields, comprising at least one of: (i) an ID manufacturer name; (ii) an ID product code; (iii) an ID serial number; (iv) a manufacturing week; and (v) a manufacturing year; and (b) a set of display descriptor fields, comprising at least one of: (i) a display product serial number; (ii) a string of ASCII-formatted numeric data; and (iii) a display product name.

7. The system of request item 6, wherein the received data includes: (a) the ID manufacturer name of at least one of the connected intermediate devices; and (b) the display product name of the connected display device.

8. The system of claim 6, wherein the keyword set of each received record is assembled from at least one of: (a) a datasheet specification of the at least one receiving device associated with the received record; and (ii) an experienced E-EDID received from the at least one receiving device associated with the received record via the second communication protocol; and (b) includes at least one of: (i) the ID manufacturer name of the at least one receiving device associated with the received record; (ii) the ID product code of the at least one receiving device associated with the received record; (iii) the ID serial number of the at least one receiving device associated with the received record; (iv) the manufacturing week of the at least one receiving device associated with the received record; (v) the manufacturing year of the at least one receiving device associated with the received record; (vi) the display product serial number of the at least one receiving device associated with the received record; (vii) a string of alphanumeric data in ASCII format of the at least one receiving device associated with the received record; and (viii) the display product name of the at least one receiving device associated with the received record. (ix) the device type of the at least one receiving device associated with the receiving record; (x) the brand identifier of the at least one receiving device associated with the receiving record; and (xi) the keyword of the at least one receiving device associated with the receiving record.

9. The system of claim 6, wherein the calculation of the priority for matching each priority display device by the detection module is as follows: (a) the manufacturer name is the ID manufacturer name in the received identification data as mapped by the E-EDID structure; (b) the device name is the ID display product name in the received identification data as mapped by the E-EDID structure; (c) the device name is a model name included in the received identification data as mapped by the E-EDID structure; and (d) the serial number is the ID serial number in the received identification data as mapped by the E-EDID structure.

10. The system of claim 1, (a) wherein the content management device further comprises: (i) an Ethernet connection that can be connected to a remote server via a network; and (ii) an update module; (b) wherein the remote server comprises: (i) a current received database; and (ii) a current code set database; and (c) wherein the update module of the content management device is configured to perform at least one of the following: (i) downloading from the remote server and storing in the content management device: (1) at least a portion of the current received database; and (2) at least a portion of the current code set database; and (ii) connecting to the current received database and connecting to the current code set database.

11. The system of claim 1, wherein the second communication protocol is an HDMI communication protocol.

12. The system of claim 1, wherein the third communication protocol is one of the following: (a) a Bluetooth Low Energy protocol; and (b) an RF protocol other than the Bluetooth Low Energy protocol.

13. The system of claim 1, wherein at least one of the connected intermediate devices is an audio device.

14. The system of claim 1, (a) wherein the connected display device includes the CDD RF transceiver; and (b) wherein, based on the user input, the controller device transmits at least one of the function codes of the at least one function code set via the third communication protocol: (i) from the CD RF transceiver of the controller device; (ii) to the CDD RF transceiver of the connected display device.

15. The system of claim 1, (a) wherein the controller device further includes a CD infrared transmitter and the connected display device includes the CD infrared receiver; and (b) wherein, based on the user input, the controller device transmits at least one of the function codes of the at least one function code set via a fourth communication protocol: (i) from the CD infrared transmitter of the controller device; (ii) to the CD infrared receiver of the connected display device.

16. The system of claim 1, wherein the content management device is one of: (a) a set-top box, wherein the CMD audio / visual input is a coaxial cable input; (b) a digital media player, wherein the CMD audio / visual input is at least one of a first Ethernet input and a first Wi-Fi transceiver; and (c) a desktop or laptop computer, wherein the CMD audio / visual input is at least one of a second Ethernet input and a second Wi-Fi transceiver.

17. The system of request item 1, wherein the device name is a model name.

18. The system of claim 1, wherein the at least one connected intermediate device includes a hierarchical architecture of connected intermediate devices.

19. A method for programming a controller device (CD) for executing at least one programming request for a controller device (CD), the controller device being paired with a content management device (CMD), the CMD indirectly communicating with a connected display device (CDD) via at least one connected intermediate device (CID), (a) wherein the controller device comprises: (i) a CD radio frequency (RF) transceiver; (ii) a CD memory; and (iii) a code set test module; (b) wherein the content management device comprises: (i) a CMD audio / visual input configured to receive first audio / visual content according to a first communication protocol; (2) a CMD audio / visual output configured to transmit second audio / visual content to the at least one connected intermediate device according to a second communication protocol; (3) a CMD RF transceiver configured to wirelessly communicate with the controller device according to a third communication protocol; and (4) a discovery module, a detection module, and a CD programmer; and (ii) storing or linking to: (1) a code set database having a plurality of code set records; and (2) a reception database having a plurality of reception records; (c) wherein each code set record includes or is linked to: (i) at least one code set identifier of a plurality of code set identifiers; and (ii) a function code set associated with the at least one code set identifier of the code set record; (d) wherein each reception record includes or is linked to: (i) at least one reception identifier of a plurality of reception identifiers, each reception identifier being associated with at least one of a plurality of reception devices; (ii) at least one of the code set identifiers, the at least one code set identifier specifying the function code set for the at least one reception device associated with the reception record; and (iii) a keyword set of the at least one reception device associated with the reception record, the keyword set including at least one of: (1) the manufacturer name of the at least one reception device associated with the reception record; (2) The device name of the at least one receiving device associated with the receiving record; and (3) The serial number of the at least one receiving device associated with the receiving record; (e) wherein each of the at least one connected intermediate device comprises: (i) a CID audio / visual input configured to receive the second audio / visual content directly or indirectly from the content management device in accordance with the second communication protocol; and (ii) a CID audio / visual output configured to transmit the third audio / visual content from the connected intermediate device directly or indirectly to the connected display device in accordance with the second communication protocol; (f) wherein the connected display device comprises: (i) a CDD audio / visual input configured to receive the third audio / visual content from the content management device in accordance with the second communication protocol; and (ii) at least one of a CDD RF transceiver and a CDD infrared receiver;(g) Wherein, for each programming request: (i) the discovery module of the content management device performs the following steps: (1) receiving entity address data comprising a cluster of the connected display device, the at least one connected intermediate device and the content management device; (2) confirming the existence of indirect data communication between the content management device and the connected display device based on the entity address data; and (3) requesting and receiving reception identification data via the second communication protocol; and (ii) the reception identification data is: (1) organized according to a device identification data structure; and (2) comprising at least one of the following received data: (a) the manufacturer name of at least one of the connected intermediate devices; (b) the manufacturer name of the connected display device; (c) the device name of at least one of the connected intermediate devices; (d) the device name of the connected display device; (e) the serial number of at least one of the connected intermediate devices; and (f) the serial number of the connected display device; (h) Wherein, for each programming request, the detection module of the content management device performs the following steps: (i) Accessing the reception identification data received by the discovery module; (ii) Accessing the reception records in the reception database; (iii) Performing a keyword search of one of the keyword sets of the reception records in the reception database using at least a portion of the reception identification data; (iv) Identifying at least one priority display device match, wherein a priority of each priority display device match is calculated based on at least one of the following: (1) a first reliability score of one of the manufacturer names; (2) a second reliability score of one of the device names; and (3) a third reliability score of one of the serial numbers; and (v) cross-referencing each priority display device match with at least one code set identifier in the reception records of the reception database; (i) wherein, for each programming request, the CD programmer performs the following steps: (i) Accessing the code set database; (ii) Initialize communication with the controller device via the third communication protocol; and (iii) For each code set identifier that is cross-referenced with at least one priority display device via the detection module, transmit at least a portion of the function code set associated with the code set identifier to the controller device via the third communication protocol; and (j) wherein, for each programming request, the controller device performs the following steps: (i) Test the functionality of at least a subset of each function code set received by the controller device from the CD programmer of the content management device to identify at least one function code set; (ii) Store at least one function code set in the CD memory of the controller device; and (iii) Use the at least one function code set to control the operation of the connected display device based on user input.

Citation Information

Patent Citations

  • System for enabling secure remote switching, robotic operation and monitoring of multi-vendor equipment

    TW200516411A

  • Tracking and recognition of faces using selected region classification

    TW201305918A

  • Method for programming a remote control

    US20170034563A1