Method and system for displaying content using matrix code

By receiving the content description and matrix code, it was determined that the device could not display the maintenance information video. By utilizing the network connection or output link of the second device, the difficulty of displaying maintenance information under poor network conditions was solved, and effective information display was achieved.

CN119299808APending Publication Date: 2025-01-10SNAP ON INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411412985.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-02-08
Filing Date
2019-11-22
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

In poor network conditions, technicians using unconfigured or insufficiently configured computing devices may find it difficult to effectively display external maintenance information videos, resulting in long download times, slow speeds, or inability to display continuously.

Method used

By receiving the content description and matrix code, it is determined that the device cannot display the file at the lowest quality level, and the matrix code is output to the display, or the file is displayed using a better network connection of a second computing device, or the output is directly linked to the second device.

Benefits of technology

It enables the effective display of maintenance information even under poor network conditions, improving the device's display capabilities and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119299808A_ABST
    Figure CN119299808A_ABST
Patent Text Reader

Abstract

A method includes receiving, at one or more processors, a content description and matrix code. The content description includes data describing one or more computer-readable files. The matrix code is encoded with links to the one or more files. The method includes the one or more processors determining an instance indicating that the first computing device is unable to display the file at at least the lowest level of quality. The determination is based at least in part on the content description. The method includes a processor outputting a matrix code to a first display operably coupled with the one or more processors. A matrix code is output in response to determining that the first computing device is unable to display the one or more files at at least the lowest level of quality. Further, the method includes displaying the matrix code on the first display.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with the application date of November 22, 2019, application number 201980094766.1, and invention name “Method and system for displaying content using matrix code”. Background Art

[0002] A technician servicing a vehicle may reference the maintenance information in order to properly and more efficiently maintain the vehicle than a technician who does not reference the maintenance information. The maintenance information may be provided in various forms, such as maintenance information printed on paper or maintenance information electronically displayed on a display. Various problems may arise when a technician attempts to electronically display the maintenance information on a display, particularly when the maintenance information is stored in a video format outside of a computing device that the technician uses to search for the maintenance information or access the maintenance information through a link within a web page. As an example, a technician may use a computing device that is not configured to display videos and / or is not configured to traverse links within a web page to search for off-board maintenance information. As another example, a technician may use a computing device to search for off-board maintenance information under poor network conditions. Poor network conditions may cause an unexpectedly long time to download an off-board maintenance information video, multiple attempts to download an off-board maintenance information video, or streaming of an off-board maintenance information video at a speed that is too slow for continuous display of the off-board maintenance information video. Summary of the invention

[0003] In a first embodiment, a method is provided. The method includes receiving a content description and a matrix code at one or more processors. The content description includes data describing one or more files. Each of the one or more files includes a computer-readable file. The matrix code is encoded with a link to the one or more files. The method also includes determining, at least in part based on the content description, at the one or more processors to indicate that a first computing device cannot display the one or more files at least at a minimum quality level. In addition, the method includes outputting the matrix code to a first display operably coupled to the one or more processors in response to determining that the first computing device cannot display the one or more files at least at a minimum quality level. In addition, the method also includes displaying the matrix code on the first display.

[0004] In a second embodiment, a computing device is provided. The computing device includes one or more processors, and a non-transitory computer-readable medium having at least executable instructions stored thereon. The executable instructions cause the computing device to perform various functions when executed by the one or more processors. Each function includes receiving a content description and a matrix code at the one or more processors. The content description includes data describing one or more files. Each of the one or more files includes a computer-readable file. The matrix code is encoded with a link to the one or more files. Each function also includes determining at the one or more processors, based on the content description, a situation indicating that the first computing device cannot display the one or more files at least at a minimum quality level. In addition, each function includes outputting the matrix code to a first display operably coupled to the one or more processors in response to determining that the first computing device cannot display the one or more files at least at a minimum quality level. In addition, each function also includes displaying the matrix code on the first display.

[0005] In a third embodiment, a non-transitory computer-readable medium is provided. The computer-readable medium has at least executable instructions stored thereon. The executable instructions, when executed by one or more processors of a computing device, cause the computing device to perform various functions. Various functions include receiving a content description and a matrix code at the one or more processors. The content description includes data describing one or more files. Each of the one or more files includes a computer-readable file. The matrix code is encoded with a link to the one or more files. Various functions also include determining at the one or more processors, based on the content description, a situation indicating that the first computing device cannot display the one or more files at least at a minimum video quality level. In addition, various functions include outputting the matrix code to a first display operably coupled to the one or more processors in response to determining that the first computing device cannot display the one or more files at least at a minimum quality level. In addition, various functions also include displaying the matrix code on the first display.

[0006] In a fourth embodiment, a method is provided. The method includes receiving a content description at one or more processors within a first computing device. The content description includes data describing one or more files and a link to the one or more files. The method includes determining at the one or more processors a situation indicating that the first computing device cannot display the one or more files at at least a minimum quality level. The method also includes determining at the one or more processors that a second computing device configured to display the one or more files is available for receiving the one or more files. In addition, the method includes making a determination at the one or more processors that the first computing device has a better network connection than the second computing device to receive the one or more files from a third computing device associated with the link, or the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link. If it is determined that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link, in response to making the determination, the method includes outputting a request for the one or more files from the third computing device associated with the link by the one or more processors, receiving the one or more files at the first computing device, and outputting the one or more files to the second computing device by the one or more processors via a direct connection between the first computing device and the second computing device. Otherwise, if it is determined that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link, the method includes outputting the link to the second computing device via a direct connection between the first computing device and the second computing device.

[0007] In a fifth embodiment, a first computing device is provided. The first computing device includes one or more processors, and a non-transitory computer-readable medium having at least executable instructions stored thereon. The executable instructions, when executed by the one or more processors, cause the first computing device to perform respective functions. The respective functions include receiving a content description at the one or more processors. The content description includes data describing one or more files and links to the one or more files. The respective functions include determining at the one or more processors a situation indicating that the first computing device cannot display the one or more files at at least a minimum quality level; determining at the one or more processors that a second computing device configured to display the one or more files is available to receive the one or more files. The respective functions also include making a determination at the one or more processors that the first computing device has a better network connection than the second computing device to receive the one or more files from a third computing device associated with the link, or that the second computing device has a better network connection than the first computing device to receive the one or more files from a third computing device associated with the link. If it is determined that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link, in response to making the determination, the method includes outputting, by the one or more processors, a request for the one or more files from the third computing device associated with the link, receiving the one or more files at the first computing device, and outputting, by the one or more processors, the one or more files to the second computing device via a direct connection between the first computing device and the second computing device. Otherwise, if it is determined that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link, the method includes outputting the link to the second computing device via the direct connection between the first computing device and the second computing device.

[0008] In a sixth embodiment, a non-transitory computer-readable medium is provided. The computer-readable medium has at least executable instructions stored thereon. The executable instructions, when executed by one or more processors of a first computing device, cause the first computing device to perform various functions. Various functions include receiving a content description at the one or more processors. The content description includes data describing one or more files and links to the one or more files. Various functions include determining at the one or more processors a situation indicating that the first computing device cannot display the one or more files at at least a minimum quality level. Various functions include determining at the one or more processors that a second computing device configured to display the one or more files is available for receiving the one or more files. Various functions also include making a determination at the one or more processors that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link, or that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link. If it is determined that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link, in response to making the determination, the respective roles include outputting, by the one or more processors, a request for the one or more files from the third computing device associated with the link, receiving the one or more files at the first computing device, and outputting, by the one or more processors, the one or more files to the second computing device via a direct connection between the first computing device and the second computing device. Otherwise, if it is determined that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link, the respective roles include outputting the link to the second computing device via a direct connection between the first computing device and the second computing device.

[0009] In a seventh embodiment, a method is provided. The method includes receiving a network resource link and a matrix code at one or more processors. The network resource link includes a link pointing to one or more network resources. The matrix code is encoded with the network resource link. The method also includes determining, at least in part based on the network resource link, at the one or more processors to indicate that the first computing device cannot traverse the network resource link. In addition, the method includes outputting the matrix code to a first display operably coupled to the one or more processors in response to determining that the first computing device cannot traverse the network resource link by the one or more processors. In addition, the method also includes displaying the matrix code on the first display.

[0010] In an eighth embodiment, a computing system is provided. The computing system includes a computing device and a computer readable medium. The computer readable medium stores program instructions that, when executed by the computing device, cause the computing device to perform each function. Each function includes receiving a network resource link and a matrix code. The network resource link includes a link to one or more network resources. The matrix code is encoded with the network resource link. Each function also includes determining, based at least in part on the network resource link, a situation indicating that the computing device cannot traverse the network resource link. In addition, each function includes outputting the matrix code to a first display in response to determining a situation indicating that the computing device cannot traverse the network resource link. In addition, each function also includes displaying the matrix code on the first display.

[0011] In a ninth embodiment, a computer readable medium is provided. The computer readable medium is provided with program instructions stored thereon, which, when executed by a computing device, causes the computing device to perform each function. Each function includes receiving a network resource link and a matrix code. The network resource link includes a link to one or more network resources. The matrix code is encoded with the network resource link. Each function also includes determining, at least in part based on the network resource link, a situation indicating that the computing device cannot traverse the network resource link. In addition, each function includes outputting the matrix code to a first display in response to determining a situation indicating that the computing device cannot traverse the network resource link. In addition, each function also includes displaying the matrix code on the first display.

[0012] Other embodiments will become apparent to those of ordinary skill in the art by reading the following detailed description and, where appropriate, referring to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Exemplary embodiments are described herein with reference to the accompanying drawings.

[0014] Figure 1A A system according to an exemplary embodiment is shown.

[0015] Figure 1B According to an exemplary embodiment, Figure 1A A variation of the system shown in .

[0016] Figure 2A A diagnostic computing device is shown according to an exemplary embodiment.

[0017] Figure 2B A companion computing device is shown according to an exemplary embodiment.

[0018] Figure 3A A video description according to an exemplary embodiment is shown.

[0019] Figure 3B Thumbnails according to exemplary embodiments are shown.

[0020] Figure 4 A matrix code according to an exemplary embodiment is shown.

[0021] Figure 5A , 5B 5C show various servers according to an exemplary embodiment.

[0022] Fig. 6A is a flow chart depicting the operation of a representative method according to an exemplary embodiment.

[0023] Figure 6B An example search request is shown according to an exemplary embodiment.

[0024] Figure 6C , 6D and 6E show example search request responses according to an exemplary embodiment.

[0025] Figure 7 , 8 , 9, 10, 11, 12, 13, 14 and 15 are flowcharts depicting the operation of representative methods according to exemplary embodiments.

[0026] Fig.16A , 16B , 16C, 16D, 16E, 16F, 16G, 16H, 16I, 16J, 16K, and 16L show display output shown on a display of a computing device according to an exemplary embodiment. DETAILED DESCRIPTION

[0027] I. Introduction

[0028] This specification describes several exemplary embodiments, at least some of which involve displaying a computer-readable file on a display. In some embodiments, the computer-readable file includes content related to maintaining a vehicle (such as a car) and / or a link to the content. In at least some embodiments, when the computer-readable file is played on the display, additional information (e.g., textual maintenance information and / or textual diagnostic information) may be displayed on the display. In some of these embodiments, the display of the user's computing device may not be configured to display the computer-readable file, or may not be configured to display both the computer-readable file and the additional maintenance information while displaying the computer-readable file. In addition, in these and / or other embodiments, the computing device that displays the link to other content may not be configured to traverse the link.

[0029] This specification describes embodiments that include displaying one or more computer-readable files on at least one of the first and second computing devices using a first computing device and a second computing device. At least some of these embodiments can include displaying additional maintenance information on at least one of the first and second computing devices. Examples of additional maintenance information include diagnostic flowcharts, removal and replacement instructions, still images of vehicle components, repair orders, and links to additional maintenance information. Other examples of additional maintenance information are possible.

[0030] In at least some embodiments, at least one of the first and second computing devices can determine a situation indicating that the first computing device cannot display the one or more files at at least a minimum quality level. For example, the first computing device may include a display that is not configured to display video files or specific types of video files (e.g., high-definition video files or video files with specific file extensions). As another example, the first computing device may be connected to a communication network that is insufficient to transmit the one or more files to be viewed at the first computing device at a minimum quality level, while the second computing device is connected to a communication network that is sufficient to transmit the one or more files to be viewed at the second computing device at a minimum quality level. As another example, the first computing device may be configured to render a web page, but cannot traverse links embedded in the web page.

[0031] In at least some embodiments, the communication network used by the first and second computing devices may be the same communication network, such as a cellular data network. In at least some of those embodiments, the communication network may include a cellular data network configured with different levels of network technology, such as network technology commonly referred to as 1G, 3G, or 4G (LTE). The first and second computing devices may operate under different maintenance plans provided by the provider of the communication network. For example, the first computing device may operate under such a maintenance plan in which the rate at which the communication network transmits data to the first computing device is throttled (e.g., reduced) in certain circumstances, such as when the first computing device has received an amount of data exceeding a threshold during a particular maintenance period or during certain periods of the day (e.g., between the period of 7:00 a.m. and 7:00 p.m.). As another example, the second computing device may operate under such a maintenance plan in which the communication network does not throttle the rate at which data is transmitted to the second computing device. Following the above example, even if both the first and second computing devices are configured to be able to display the one or more files, if the transmission rate of each data packet carrying each portion of the one or more files is throttled, the first computing device may be unable to display the one or more files at a minimum quality level.

[0032] In at least some embodiments, the communication networks used by the first and second computing devices may be different communication networks. For example, the first computing device may be connected to network, and the second computing device may be connected to a cellular network having 4G (LTE) network technology. According to this embodiment, even if both the first and second computing devices are configured to be able to display the one or more files, one or the other of the two communication networks may be more suitable for providing the one or more files to the computing device connected to the network. In addition, the signal strength received at one of the first and second computing devices may be relatively greater than the signal received at the other of the first and second computing devices.

[0033] In at least some embodiments, the first computing device operates as a client computing device relative to the remote server and operates as a server for the second computing device. The remote server can determine one or more files in response to a request sent by the first computing device to the remote server. In some embodiments, the remote server provides the one or more files to the first computing device. In these or other embodiments, the remote server provides a link to the one or more files to the first computing device. The first computing device can provide the one or more files and / or a link to the one or more files to a second computing device operating as a client of the first computing device. The first computing device and / or the second computing device can be configured as a diagnostic computing device.

[0034] In at least some embodiments, the first computing device and the second computing device comprise improvements to existing computing devices such that those embodiments provide improvements to a group of machines, particularly when further described embodiments involve at least one server (such as a file server and / or a media server).

[0035] Many embodiments described in this specification include displaying the one or more files on a display. Any embodiment that includes displaying the one or more files may, but need not, include displaying an advertisement on the display before displaying the one or more files, and / or the one or more files may include an advertisement, such as an advertisement at the start point of the one or more files. The advertisement may include a video advertisement.

[0036] II. Exemplary Systems

[0037] Figure 1A A block diagram of a system 100 is shown in accordance with an exemplary embodiment. The system 100 includes a communication network 102, a diagnostic computing device (DCD) 104, a server 106, a companion computing device (CCD) 108, and a personal area network (PAN) 110.

[0038] The communication network 102 may include one communication network or multiple communication networks. Two or more of the multiple communication networks may be operably coupled to each other. The communication network of the communication network 102 may communicate via a wired communication network and / or a wireless communication network. In some embodiments, the communication network of the communication network 102 includes a circuit-switched digital network and / or a packet-switched network. The communication network 102 includes multiple network devices. As an example, the network devices on the communication network 102 may include access points, antennas, base stations, gateways, hubs, modems, network cables, network interface cards, relays, receivers, routers, switches, transceivers and / or transmitters. Any one or more of these network devices may be installed in the communication network 102 as an intermediary network device. Other examples of the network devices on the communication network 102 are also possible.

[0039] In some embodiments, the communication network 102 includes a local area network (LAN) and / or a wide area network (WAN). The local area network and / or the wide area network may use packet switching or circuit switching technology to carry data. The local area network and / or the wide area network may include an air interface or wires to carry data. The communication network 102 may include a network (such as a communication network commonly referred to as the Internet) or at least a portion of a network that communicates using the Transmission Control Protocol (TCP) and the Internet Protocol (IP).

[0040] The term "data" within this specification may be used interchangeably with the term "information" and / or similar terms. Unless otherwise specified, the data described in this specification may include a single data or multiple data. The data described herein may be transmitted (e.g., uploaded) and / or received (e.g., downloaded). As an example, any transmission of the data described herein may occur directly from a transmitting device (e.g., a transmitter) to a receiving device (e.g., a receiver). As another example, any transmission of the data described herein may occur indirectly from a transmitter to a receiver via one or more intermediate network devices. The transmission of any data described herein may include transmitting data through an air interface (e.g., using a radio signal, i.e., wirelessly). Any transmission of the data described herein may include transmitting data through a network cable (e.g., a single wire, a twisted pair, an optical cable, a coaxial cable, a wiring harness, a power cord, a printed circuit, a CAT5 cable, and / or a CAT6 cable). Wires may be referred to as "conductors" and / or other terms. As an example, the transmission of data on a conductor may occur electrically and / or optically. The transmission of data may be referred to as "communication". Communication may, but does not necessarily, include "request communication" or "response communication".

[0041] The data may represent various things, such as objects and situations. Objects and situations may, but need not necessarily, be mapped to data structures (e.g., tables). The processor may reference the data structures to determine the objects and / or situations represented by the data. As an example, the data received by the processor may include a vehicle identifier and / or a symptom identifier. The processor may determine other data, such as a content description of one or more files, by determining a content description and / or one or more files associated with the vehicle identifier and / or the symptom identifier. The data may represent a state of a computing device determined at the processor. For example, the data may indicate a state indicating a reception level of the DCD 104 from the communication network 102 or a connection state (e.g., connected or not connected) to the PAN 110.

[0042] The DCD 104 is a computing device configured to perform diagnostic functions related to another object, such as a vehicle and / or an electronic control unit (ECU) within the vehicle. The ECU within the vehicle includes an onboard computing device configured to perform vehicle functions. The ECU can perform vehicle functions when the ECU is operably connected to the DCD and when the ECU is not operably connected to the DCD. Although the ECU can be configured to perform self-diagnosis, for the purposes of this specification, the ECU is not a DCD. The ECU is installed in the vehicle. As an example, the ECU may include an ECU installed by the manufacturer of the vehicle, an ECU installed by a technician to replace an ECU installed by the manufacturer of the vehicle, an ECU installed by a technician to replace an ECU installed by a technician, or an aftermarket ECU installed by a technician to equip the vehicle to perform one or more additional vehicle functions. A DCD, such as the DCD 104, can be removably attached to the vehicle so that the DCD can perform its diagnostic functions. As an example, a DCD, such as the DCD 104, can be removably attached to the vehicle by removably attaching the DCD to an onboard diagnostic connector, such as a data link connector, within the vehicle. DCD 104 may include an embedded processor configured to perform diagnostic functions.

[0043] The DCD 104 may also be configured to perform non-diagnostic functions related to other objects. Non-diagnostic functions may, but need not necessarily, include programming functions, calibration functions, and / or adjustment functions. The DCD 104 may be configured to communicate with a plurality of computing devices. The plurality of computing devices may include onboard computing devices installed in other objects, such as ECUs in vehicles. The plurality of computing devices may also include off-board computing devices of the DCD 104 and other objects. Those off-board computing devices may include servers 106 and CCD 108 as well as other off-board computing devices.

[0044] The DCD 104 or any described embodiment of the DCD may, but need not necessarily, comprise or be implemented as part of a small-sized portable (ie, mobile) electronic device, such as a smartphone (eg, a smartphone from Apple Inc. of Cupertino, California). Smartphone, Samsung Electronics Co., Ltd. in Maetan-Dong, Yeongtong-gu, Suwon-si, Gyeonggi-do, South Korea smartphones), tablet devices (e.g., Apple's tablet device, SAMSUNG GALAXY TAB tablet device from Samsung Electronics Co., Ltd.), a wearable computing device (e.g., a wireless network watch device or a personal headset device), or a personal computing system (e.g., a laptop computer or a non-laptop computer configuration).

[0045] CCD 108 is a computing device configured to communicate with multiple computing devices. For example, CCD 108 can be configured as a client computing device that communicates with server 106. As another example, CCD 108 can be configured to communicate with DCD 104. CCD 108 and DCD 104 can communicate with each other via PAN 110 and / or communication network 102. CCD 108 or any described embodiment of the CCD can, but need not necessarily, include or be implemented as part of a small-sized portable electronic device, such as a smartphone, a tablet device, a wearable computing device, or a personal computing system.

[0046] The server 106 is a computing device configured to serve multiple client computing devices (such as the DCD 104 and the CCD 108). The server 106 can communicate with the DCD 104 and the CCD 108 via the communication network 102. As an example, the server 106 can receive a request communication (e.g., a communication with a request) sent from the CCD 108 via the communication network 102. For example, the request communication can include a request for diagnostic information, a vehicle identifier, a component identifier, and / or a symptom identifier. The server 106 can transmit a response communication (e.g., a response to the request communication) to the CCD 108 via the communication network 102. The response communication can include data obtained by the server 106 from a computer-readable memory and / or a database. The data in the response can, but does not necessarily, include a content description and / or a matrix code.

[0047] PAN 110 is a communication network that can be established between two or more computing devices. For example, PAN 110 can be established between DCD 104 and CCD 108. In some embodiments, PAN 110 can include a wired PAN, such as a universal serial bus (USB) including a four-wire cable. In these or other embodiments, PAN 110 can include a wireless PAN, such as a wireless PAN configured to operate according to one of the following standards: Institute of Electrical and Electronics Engineers for Wireless Personal Area Networks (PANs) 802.15 standards (e.g., 802.15.1, 802.15.3, 802.15.4 or 802.15.5), developed by the Bluetooth Special Interest Group (SIG) in Kirkland, Washington Version 4.1 or 4.2 of the standard or the Wireless USB 1.0 standard maintained by the WiMedia Alliance, Inc. of San Ramon, California.

[0048] Next, Figure 1B A variation of system 100 according to an exemplary embodiment is shown. In this variation of system 100, server 106 is represented as a plurality of servers. In other words, in Figure 1B in Figure 1A The servers 106 shown in FIG. 1 are represented as file servers 114 and media servers 116. The terms "file server" and "media server" are used to distinguish between the two servers in FIG. Figure 1B 102. The two servers shown in the figure are not intended to limit the functions performed by any of the two servers. In some embodiments, the file server 114 and the media server are co-located on the communication network 102. As an example, the co-located servers can use the same network address. In other embodiments, the file server 114 and the media server are distributed on the communication network. In this case, the file server 114 and the media server 116 can have different network addresses.

[0049] Figure 1B Also shown is that system 100 may include memory 118 and memory 120. Although Figure 1BAn embodiment in which the file server 114 is separate from the memory 118 is shown, but in alternative embodiments, the file server 114 may include and / or be co-located with the memory 118. The memory 118 may contain a database accessible by the file server 114. In particular, the memory 118 may include links associated with files stored in the memory 120. Even more particularly, the links stored in the memory 130 may include video links associated with video files. As another example, the memory 118 may include data files and / or applications. The applications may, but need not necessarily, include an application configured to determine data stored in the memory 118 (such as data associated with a vehicle identifier of the vehicle 112, component identifiers of components located in and / or on the vehicle 112, and / or symptom identifiers of symptoms exhibited by the vehicle 112).

[0050] Likewise, despite Figure 1B An embodiment is shown in which the media server 116 is separate from the memory 120, but in alternative embodiments, the media server 116 may include and / or be co-located with the memory 120. The memory 120 may contain a database that is valuable by the media server 116. In particular, the memory 120 may include one or more files associated with the links stored in the memory 118.

[0051] also, Figure 1B The illustrated system may include a vehicle 112 and a vehicle communication bus (VCB) 122. The vehicle 112 may be the subject of diagnostics performed by the DCD 104. In other words, the DCD 104 may be configured to perform vehicle diagnostics related to the vehicle 112. An embodiment of the vehicle 112 and the VCB 122 is depicted below. The DCD 104 may be configured to communicate with the vehicle 112. For example, the DCD 104 may be configured to transmit vehicle data messages (VDMs) to the vehicle 112 and / or receive VDMs from the vehicle 112. Computing devices configured to transmit and / or receive VDMs from a vehicle are generally referred to as vehicle scan tools. Snap-on Corporation of Kenosha, Wisconsin, sells high-quality vehicle scan tools, such as the ZEUS™ Diagnostic and Information System Model EEMS342W and the ZEUS™ Diagnostic and Information System Model EEMS330W. Edge diagnostic and information system.

[0052] III. Exemplary System Components

[0053] A. Diagnostic computing equipment

[0054] Next, Figure 2A is a block diagram of a diagnostic computing device 200 according to an exemplary embodiment. The DCD 200 is Figure 1A and Figure 1B 2. The DCD 200 includes a processor 202, a network transceiver 204, a vehicle communication transceiver (VCT) 206, a camera 208, a user interface 210, and a memory 212. Two or more of those components may be operably coupled or linked together via a system bus or network 214. The DCD 200 also includes a power supply 216 and a housing 218. In other embodiments, the DCD 104 includes only a subset of the components of the DCD 200 and / or a portion of the items stored in the memory 212. The DCD 200 or any other DCD described in this specification may be more simply referred to as a "computing device."

[0055] 1. Processor

[0056] A processor (such as processor 202 or any other processor discussed in this specification, for example, processor 502 shown in FIG. 5 ) may include one or more processors. Any processor discussed in this specification may therefore be referred to as “at least one processor” or “one or more processors.” A processor may include a general-purpose processor (e.g., Single core microprocessor or multi-core microprocessors) and / or special purpose processors (e.g., digital signal processors, graphics processors, embedded processors, or application specific integrated circuit (ASIC) processors).

[0057] The processor may be configured to execute computer readable program instructions (CRPI). The CRPI discussed in this disclosure (such as in Figure 2A CRPI 240 and / or respectively shown in Figure 5A , 5B , CRPI 510, 530, 570 shown in 5C) may include, for example, assembly instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, and / or source code or object code written in one or any combination of two or more programming languages. As an example, the programming language may include an object-oriented programming language (such as Java, Python, or C++) or a procedural programming language (such as the "C" programming language). The processor may include and / or be used with a storage controller. The processor may be configured to perform hard-coded functions as a supplement or alternative to software-coded functions (e.g., via the CRPI). The processor 202 may be programmed to perform any function or combination of functions described herein as performed by the DCD 200.

[0058] An embedded processor is a processor with a specialized function within a larger electronic, mechanical, pneumatic, and / or hydraulic device, and is in contrast to a general-purpose computer. An embedded processor may include a central processing unit chip used in a system other than a general-purpose workstation, laptop, or desktop computer. In some embodiments, an embedded processor may execute an operating system, such as a real-time operating system (RTOS). As an example, an RTOS may include the RTOS developed by Micro Digital Corporation. RTOS, such that processor 202 may, but need not necessarily, include (a) an Advanced RISC (Reduced Instruction Set Computer) Machine (ARM) processor (e.g., an AT91SAM4E ARM processor provided by Atmel Corporation of San Jose, California), or (b) an ARM processor provided by NXP Semiconductors of Eindhoven, the Netherlands Processor (eg, 52259 processor). A general purpose processor, a special purpose processor, and / or an embedded processor may perform analog signal processing and / or digital signal processing.

[0059] 2. Memory

[0060] A memory (such as memory 212 or any other memory discussed in this specification, for example, memory 506 shown in FIG. 5 ) may include one or more memories. Therefore, any memory discussed in this specification may be referred to as “at least one memory” or “one or more memories.” A memory may include non-transitory memory, temporary memory, or both. A non-transitory memory or a portion thereof may be located within a processor or as part of a processor (for example, within a single integrated circuit chip). A non-transitory memory or a portion thereof may be separate and distinct from a processor.

[0061] The non-transitory memory may include volatile or non-volatile storage components, such as optical, magnetic, organic or other memory or optical disk storage components. Additionally or alternatively, the non-transitory memory may include or be configured as a random access memory (RAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), a flash memory, an electrically erasable programmable read-only memory (EEPROM), or a compact disk read-only memory (CD-ROM). The RAM may include static RAM or dynamic RAM. The non-transitory memory may be configured as a removable storage device, a non-removable storage device, or a combination thereof. The removable storage and / or non-removable storage device may, but need not necessarily, include a magnetic disk device (such as a flexible disk drive or a hard disk drive, HDD), an optical disk drive (such as an optical disk drive, CD and / or a digital versatile disk drive, DVD), a solid state drive (SSD), or a tape drive.

[0062] The temporary storage may include, for example, the CRPI provided via a communication network (such as communication network 102).

[0063] “Memory” may be referred to by other terms (such as “computer-readable memory”, “computer-readable medium”, “computer-readable storage medium”, “data storage device”, “storage device”, “computer-readable medium”, “computer-readable database”, “at least one computer-readable medium” or “one or more computer-readable media”). Any of these alternative terms may be preceded by the prefix “transitory” if the memory is transitory, or “non-transitory” if the memory is non-transitory. For a memory that includes multiple memories, two or more of the multiple memories may be the same type of memory or different types of memory.

[0064] 3. Transceiver

[0065] A transceiver (such as network transceiver 204, VCT 206 and / or any other transceiver discussed in this specification, for example, network transceiver 504 shown in FIG. 5) may include one or more transceivers. Each transceiver includes one or more transmitters configured to transmit data to a network (such as communication network 102) and / or a system bus or network. Each transceiver includes one or more receivers configured to receive data or communications carried by a network (such as communication network 102) and / or a system bus or network. Unless otherwise specified, any data described as being transmitted to a device is considered to be received by the device. Similarly, unless otherwise specified, any data described as being received from a device is considered to be transmitted (directly or indirectly) by the device. For some embodiments, a transceiver may include a transmitter and a receiver in a single semiconductor chip. In at least some of those embodiments, a semiconductor chip may include a processor.

[0066] In at least some embodiments, a transmitter (such as a transmitter within any transceiver described in this specification) transmits a radio signal carrying data, and a receiver (such as a receiver within any transceiver described in this specification) receives the radio signal carrying data. A transceiver with a radio transmitter and a radio receiver may include one or more antennas and may be referred to as a "radio transceiver," "RF transceiver," or "wireless transceiver."

[0067] The radio signals transmitted or received by the radio transceiver may be arranged in accordance with one or more wireless communication standards or protocols, such as standards, such as (i) for wireless local area networks (wireless LANs) The 802.11 standard (sometimes referred to as standards) (e.g., 802.11a, 802.11b, 802.11g, or 802.11n), (ii) for wireless personal area networks (PANs) 802.15 standards (e.g., 802.15.1, 802.15.3, 802.15.4 or 802.15.5), (iii) developed by the Bluetooth Special Interest Group (SIG) in Kirkland, Washington 4.1 or 4.2 version standard, (iv) cellular wireless communication standards, such as the Long Term Evolution (LTE) standard, (v) Code Division Multiple Access (CDMA) standard, (vi) Integrated Digital Enhanced Network (IDEN) standard, (vii) Global System for Mobile Communications (GSM) standard, (viii) General Packet Radio Service (GPRS) standard, (ix) Universal Mobile Telecommunications System (UMTS) standard, (x) Enhanced Data Rates for GSM Evolution (EDGE) standard, (xi) Multi-channel Multipoint Distribution Service (MMDS) standard, (xii) International Telecommunication Union (ITU) standards, such as the ITU-T G.9959 standard known as the Z-Wave standard, (xiii) 6LoWPAN standard, (xiv) Thread network protocol, (xv) International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC) standards, such as the ISO / IEC 10000 for Near Field Communication (NFC) 18000-3 standard, (xvi) Sigfox communication standard, (xvii) Neul communication standard or (xviii) LoRaWAN communication standard. Other examples of wireless communication standards or protocols are also possible.

[0068] In at least some embodiments, a transmitter (such as a transmitter within any transceiver described herein) can be configured to transmit a signal (e.g., one or more signals or one or more waves) carrying or representing data onto a wire (e.g., one or more wires). Similarly, a receiver (such as a receiver within any transceiver described herein) can be configured to receive, via the wire, a signal carrying or representing data over the wire. The wire can be part of a network (such as communications network 102). The signals carried over the wire can be arranged in accordance with a wired communications standard, such as Transmission Control Protocol / Internet Protocol (TCP / IP), TCP / IP for local area networks, or TCP / IP for wireless communications. 802.3 Ethernet communication standard, Data over Cable Services Interface Specification (DOCSIS standard, such as DOCSIS 3.1), USB specification (as previously described), or some other wired communication standard.

[0069] A transceiver configured to communicate over the communication network 102, such as the network transceiver 204, 504, may include at least one of a modem, a network interface card, or a chip that may be mounted on a circuit board. As an example, the chip may include a CC3100 provided by Texas Instruments, Inc. of Dallas, Texas. Network processor, CC256MODx from Texas Instruments Host Controller Interface (HCI) module or for or other communication protocols to communicate with different chips.

[0070] Network devices within and / or coupled to the communication network 102 and / or communicating via the communication network 102 using packet switching techniques may be locally configured for the next “hop” (e.g., device or address where data is sent and expected) in the communication network 102. As an example, a device configured to use Devices (e.g., transceivers) that communicate using the 802.11 standard can be configured with a network name, network security type, and password. Some devices automatically negotiate this information through a discovery mechanism (e.g., cellular phone technology).

[0071] Data transmitted by a transceiver may include a destination identifier or address of a network device to which the data is to be transmitted. Data or communications transmitted by a transceiver may include a source identifier or address of a system component that includes the network transceiver. The source identifier or address may be used to send a response to the network device that includes the network transceiver that transmitted the data.

[0072] The network transceiver 204 can transmit any data and / or computer readable file discussed as being transmitted, outputted and / or provided by the DCD 104, 200. The network transceiver 204 can receive any data and / or computer readable file discussed as being received by the DCD 104, 200. As an example, the network transceiver 204 can receive a communication including a link and / or a content description. As another example, the network transceiver 204 can receive a communication including a link, a content description and / or a matrix code. The link can include a uniform resource indicator (URI). The content description can include data that the processor 202 uses to determine whether the DCD 200 can display the one or more files described by the content description. The content description can include a link. The communication can include a web page, and the web page includes the content description.

[0073] Go to Figure 3A , which depicts a content description 300 that a server (such as file server 114) may transmit over communication network 102 in communication with DCD 104, according to an exemplary embodiment. Figure 3A As shown, content description 300 includes URI 302, file name 304, theme description 306, file size 308, video resolution 310, video compression type 312, thumbnail name 314, encoding bit rate 316 and / or play time 318. As an example, thumbnail name 314 can be the name of thumbnail 256 (in Figure 2A ).

[0074] Next, Figure 3BA visual representation 320 is shown showing thumbnail 256. Thumbnail 256 may be part of content description 300 and / or may be included in a communication that includes content description 300. Alternatively, thumbnail 256 may be transmitted to DCD 200 from server 106, file server 114, or media server 116 via a communication that is separate from the communication that includes content description 300.

[0075] Next, Figure 4 Matrix code 244 is shown (in Figure 2A 300). In some embodiments, the matrix code 244 is included as part of the content description 300 and / or is included in a communication that includes the content description 300. In other embodiments, the matrix code 244 is transmitted to the DCD 200 from the server 106, the file server 114, or the media server 116 via a communication separate from the communication that includes the content description 300. For example, the communication may include an image file representing the matrix code 400. In other embodiments, the processor 202 generates the matrix code 244 based on at least a portion of the content description 300. For example, the processor 202 may generate the matrix code 244 based on the URI 302. In any of the above embodiments or some other embodiments, the matrix code may be, but is not necessarily, part of a web page that is transmitted to the DCD 200.

[0076] Back to Figure 2A , the VCT 206 includes a transceiver that is configured to transmit VDMs to the vehicle 112 via the VCB 122 and to receive VDMs transmitted by the vehicle 112 via the VCB 122. The VDMs transmitted to the vehicle 112 may include a request for diagnostic information (such as DTCs) from an electronic control unit (ECU) within the vehicle 112. The receiver of the VCT 206 may be configured to receive VDMs transmitted by the vehicle 112 via the VCB 122. The VDMs received by the receiver of the VCT 206 may include diagnostic information transmitted by the ECU. The VDMs may include a component identifier, such as an identifier of the ECU that transmitted the VDM. The VDMs may include data indicating DTCs set by the ECU. The processor 202 may select data from within the VDM and cause the selected data to be displayed on the display 232 (in Figure 2A As an example, the VCT 206 may include a wired transceiver, such as a transceiver having a system basis chip with a high-speed CAN transceiver 33989 provided by NXP Semiconductors of Eindhoven, The Netherlands.

[0077] The VCB 122 may include a wiring harness and / or an air interface to operably couple the DCD 104, 200 and the vehicle 112 to allow the DCD 104, 200 and the vehicle 112 to communicate with each other. In some embodiments, the wiring harness may be removably connectable to a data link connector (DLC) within the vehicle 112. In those embodiments, the DLC may provide an indirect connection for the DCD 104, 200 to an ECU in the vehicle 112. The VCT 206 may include and / or be connected to one or more connectors, one of which may be located at the end of the wiring harness. The VCT 206 may include a wireless transceiver to communicate with a wireless transceiver within the vehicle 112.

[0078] 4. User Interface Components

[0079] In some embodiments, the user interface 210 includes a keypad 230. The keypad 230 may include one or more components configured to input data into the DCD 104, 200. As an example, the data input by the keypad 230 may include at least one of the following: vehicle model information, symptom information, and / or option selections displayed on the display 232. The vehicle model information may include a vehicle model identifier or one or more vehicle model attributes that may be used to determine a vehicle identifier.

[0080] The keypad 230 may include one or more keys. In some embodiments, each key includes a button, such as a press-and-hold button or a press-and-release button. In some embodiments, at least a portion of the keypad 230 is implemented as a portion of a touch screen display including soft keys (such as capacitive or resistive keys of a touch screen display). In other embodiments, the soft keys of the keypad 230 on the touch screen display may include a power on / off key, a yes key and a no key, or four cursor keys.

[0081] Fig.16AAn embodiment of a keypad 230 is shown. In this embodiment, the keypad 230 includes a directional pad 1602 for selecting up, down, left and / or right movements, a button 1604 that can be selected to represent a yes selection, a button 1606 that can be selected to represent a no selection, a power button 1608, a multi-key keyboard 1610 and buttons 1612, 1614, 1616, 1618. The multi-key keyboard 1610 may include a set of numeric keys, alphanumeric keys, alphabetic keys, or keys for inputting some other combination of letters, numbers, or symbols (e.g., punctuation marks). Buttons (such as buttons 1612, 1614, 1616, 1618) may be reconfigurable buttons, where the selection is displayed on the display 232 near (e.g., within six centimeters) and / or adjacent to the button. As an example, the movement selected using the directional pad 1602 may include the movement of the pointer 1634. As another example, movement selected using directional pad 1602 may include movement within a list of selectable terms, such as vehicle year terms “2016,” “2017,” and “2018” within vehicle model year selection 1624 .

[0082] Next, Fig. 16B A variation of keyboard 230 is shown. Fig. 16B in Fig.16A Compared to the embodiment of the keyboard 230 shown in FIG. 1 , the keyboard 230 has fewer keys. Fig. 16B , keyboard 230 includes directional pad 1602, yes button 1604, no button 1606, and power button 1608. Display 232 may be configured with portions of a touch screen that represent (1) selections for up, down, left, and right movement or selections similar to those that may be selected using directional pad 1602, (2) selections similar to yes that may be selected using yes button 1604, or (3) selections similar to no that may be selected using no button 1606.

[0083] Next, Fig. 16C Describe and Fig.16A and Fig. 16BA variation of keyboard 230 is shown in FIG. 2 . In this variation, DCD 200 includes a display 232 (e.g., a touch screen display) but does not include any hardware keys. In this embodiment, touch screen input to display 232 can cause DCD 200 to (1) transition from a sleep mode to an on mode state, (2) make a selection, such as any selection made by DCD 200 (described herein), (3) transition from an on mode to a sleep mode state, and / or (4) display any display output shown in the figure. As an example, a DCD 200 configured without any hardware keys can minimize battery usage by DCD 200, such as by turning off a backlight of display 232 during sleep mode. A DCD 200 that includes at least one hardware key can also implement power on and sleep modes.

[0084] User interface 210 includes display 232. Display 232 may include one or more displays. As an example, each of the one or more displays may include a capacitive touch screen display, a resistive touch screen display, a plasma display, a light emitting diode (LED) display, a cathode ray tube display, an organic light emitting diode (OLED) display, or a liquid crystal display (LCD). The OLED display may include an active matrix OLED or a passive matrix OLED. The LCD display may include a color LCD with a backlight. Display 232 may include a touch screen display with an LCD. For example, display 232 may include a capacitive or resistive touch screen display. Other examples of display 232 are also possible.

[0085] Display 232 may display static images, such as thumbnails and / or images of matrix codes. Display 232 may display text, such as textual diagnostic information. Display 232 may display web pages, such as web pages that include content, links to web resources, and / or matrix codes. In at least some embodiments, display 232 may display a graphical user interface (GUI) through which a user may enter selections related to using DCD 104, 200. In at least some embodiments, display 232 may include horizontal and vertical scroll bars. The horizontal and vertical scroll bars may be used to cause display 232 to display descriptions of content that is not currently displayed on display 232. In at least some embodiments, display 232 may display videos. Display 232 may display Figures 16A to 16L Other examples of content that may be displayed on display 232 are also possible.

[0086] The user interface 210 may include an audio device 234. The audio device 234 may include one or more audio components. In some embodiments, the audio device 234 may include at least one microphone and / or at least one speaker. The system bus or network 214 connected to the audio device 234 may include an electrical circuit for providing the processor 202 with an input representing the voice command received by the at least one microphone. The voice command may include a command representing selection and data, which is described as input using the keyboard 230. The processor 202 may output a signal to the at least one speaker so that the at least one speaker emits an audible sound. As an example, the audible sound may include an instruction for using the DCD 200. As another example, the audible sound may include the sound from a video file.

[0087] 5. Additional components

[0088] A camera (such as camera 208 and / or any other camera discussed herein, e.g., Figure 2B The camera 267 shown in the figure may include one or more cameras configured to capture images. As an example, the camera 208, 267 may include at least one of the following: an image scanner, a barcode scanner, a visual light camera, a thermal camera, a light source, a lens, or an image sensor. A data file representing the captured image (captured by the camera 208) may be stored in the memory 212 as an image 246. As an example, the captured image may include at least one of the following: an image of the vehicle 112 or an image of some portion of the vehicle 112, such as a VIN label attached to the vehicle 112. As another example, the image 246 may include an image representing a scanned barcode (such as a barcode on a VIN label attached to the vehicle 112).

[0089] The power supply 216 can be configured in any one or combination of various configurations. As an example, the power supply 216 can include circuitry that receives AC current from an AC power source (e.g., a circuit operably coupled to a wall outlet) and converts the AC current into DC current to supply one or more components within the DCD 200. As another example, the power supply 216 can include a battery or be operated by a battery. As another example, the power supply 216 can include a solar cell or be operated by solar energy. The power supply 216 can include circuitry that distributes current throughout the DCD 200. Other examples of the power supply 216 are also possible.

[0090] The housing 218 can surround at least a portion of the processor 202, at least a portion of the network transceiver 204, at least a portion of the VCT 206, at least a portion of the camera 208, at least a portion of the user interface 210, at least a portion of the memory 212, and / or at least a portion of the system bus or network 214. The housing 218 can be referred to as an enclosure. The housing 218 can support a substrate. At least a portion of the processor 202, at least a portion of the network transceiver 204, at least a portion of the VCT 206, at least a portion of the camera 208, at least a portion of the user interface 210, at least a portion of the memory 212, and / or at least a portion of the system bus or network 214 can be mounted on and / or connected to the substrate. The housing 218 can be made of various materials. For example, the housing 218 can be made of a plastic material (e.g., acrylonitrile-butadiene-styrene, ABS) and a thermoplastic elastomer for forming a grip on the housing 218.

[0091] 6. Memory contents

[0092] The memory 212 stores computer-readable data. As an example, the memory 212 contains a CRPI 240, a link 242, a matrix code 244, an image 246, a file 248, a vehicle identifier 250, a symptom identifier 252, a content description 254, a thumbnail 256, a repair order (RO) 258, a registered device data 260, a network status data 262, and / or diagnostic information 264. As an example, the link 242 may include a video link received by the DCD 104, 200 from the server 106, the file server 114, or the media server 116 via the communication network 102. As another example, the link 242 may include a URI, such as the URI 302. Links (such as the link 242) and / or URIs (such as the URI 302) may be referred to as "network resource links".

[0093] In some embodiments, the matrix code 244 includes a matrix code file representing a printable and / or displayable matrix code (e.g., the matrix code 400). The matrix code file may, but need not, include a hypertext markup language (HTML) code, a PNG file, a TIFF file, an SVG file, or an EPS file. The network transceiver 204 may receive a communication including the matrix code 244 from the server 106, the file server 114, or the media server 116. The processor 202 may extract the matrix code from the communication and store the matrix code as the matrix code 244. As an example, the matrix code 244 may be configured as Matrix Code, Data Matrix Code, MaxiCode Matrix Code, Aztec Code, Matrix Code, or some other matrix code.

[0094] The RO 258 includes a record of a maintenance session for a vehicle, such as the vehicle 112. The RO 258 may include a vehicle identifier of the vehicle to be serviced and a symptom identifier of a symptom exhibited by the vehicle 112. The network transceiver 204 may receive the RO 258 from the server 106, the file server 114, or the media server 116 via the communication network 102.

[0095] The vehicle identifier 250 may include an identifier of the vehicle 112. The processor 202 may determine the vehicle identifier 250 and cause the memory 212 to store the vehicle identifier 250. As an example, the processor 202 may determine the vehicle identifier 250 based on a VDM received by the VCT 206 from the vehicle 112. As another example, the processor 202 may determine the vehicle identifier 250 based on an image captured by the camera 208 (such as an image of a VIN tag on the vehicle 112). As yet another example, the processor 202 may determine the vehicle identifier 250 based on a vehicle identifier contained on the RO 258. As yet another example, the processor 202 may determine the vehicle identifier 250 based on a selection made via the display 232 (such as may be made via a Fig.16A The vehicle identifier 250 is determined by selecting the display output 1601 shown in FIG. 1 .

[0096] The symptom identifier 252 may include an identifier of a symptom of an object to be diagnosed, such as a vehicle symptom of the vehicle 112. The processor 202 may determine the symptom identifier 252 and may cause the memory 212 to store the symptom identifier 252. As an example, the processor 202 may determine the symptom identifier 252 based on a VDM received by the VCT 206 from the vehicle 112. For example, the VDM may include a DTC identifier of a DTC set by an ECU in the vehicle 112. As another example, the processor 202 may determine the symptom identifier 252 based on the symptoms contained on the RO 258. As another example, the processor 202 may determine the symptom identifier 252 based on a selection made via the display 232 (such as may be made via an Fig. 16B symptom identifier 252) by selecting the selection made based on the display output 1603 shown in FIG.

[0097] The file 248 includes a computer readable file that is configured to be output to and / or displayed on a display, and / or configured to be read by the processor 202. In some embodiments, the file 248 cannot be displayed on the display 232. In other embodiments, the file 248 can be displayed on the display 232, but only below a minimum quality level. In other embodiments, the file 248 can be displayed on the display at least at a minimum quality level. In any of the above embodiments, the file 248 can be displayed by a different display (such as a display of the CCD 108). The content description 254 can include a description of the file 248.

[0098] As an example, file 248 may include a video file received by network transceiver 204 via communication network 102. Memory 212 may include one or more buffers configured to store portions of file 248 such that file 248 includes only a portion of the file streamed from media server 116. Portions of file 248 may include portions of file 248 transmitted to network transceiver 204 via packets including portions of file 248. In some embodiments, file 248 includes multiple video files. As an example, file 248 may include a video file. Following this example, the video file may, but need not, include a video file in one of the following video file formats: (1) Audio Video Interleave (AVI), (2) Advanced Systems Format (ASF), (3) Quick Time (QT), (4) Advanced Video Coding, High Definition (AVCHD), (5) Flash Video (FLV), (6) Moving Picture Experts Group (MPEG, such as MP4), or (7) Windows Media Video (WMV).

[0099] As another example, files 248 may include web page files, such as HTML files for web pages, including links configured to be traversed by a web browser.

[0100] As another example, the file 248 may include a file based on a markup language protocol, such as an extensible markup language (XML) file or a web service description language (WDSL) file. In some embodiments, the markup language protocol may include a simple object access protocol (SOAP) configured to exchange information to perform a web service over the communication network 102.

[0101] In some embodiments, memory 212 does not include file 248. In at least some of those embodiments, DCD 200 may not download the computer-readable file for storage as file 248 and for provision to CCD 108 because CCD 108 may receive the computer-readable file directly from server 106 instead of receiving file 248 from DCD 200. In at least some of those embodiments, the network connection available between CCD 108 and server 106 may be a better network condition than the network connection available between DCD 200 and server 106.

[0102] The image 246 may include an image captured by the camera 208. As an example, the image 246 may include an image of a bar code encoding the VIN of the vehicle 112. As another example, the image 246 may include an image received by the network transceiver 204 from the server 106, the file server 114, or the media server 116 as part of the diagnostic information associated with the vehicle identifier and / or the symptom identifier. As yet another example, the image 246 may include an image of a matrix code displayed on the CCD 108, 261.

[0103] Content description 254 includes a description of a computer-readable file (such as in Figure 5C 248, 572). In embodiments where the memory 212 includes the file 248, the content description 254 may include data describing the file 248. In embodiments where the memory 212 does not include the file 248, the content description 254 may include data describing the file 572. The file 248, 572 may be associated with the vehicle identifier 250 and / or the symptom identifier 252. For embodiments where the file 248, 572 includes a video file, the content description 254 may include data that the processor 202 may use to determine whether the file 248, 572 can be played at least at a minimum video quality level at the DCD 200. The network transceiver 204 may receive the content description 254 from the server 106, the file server 114, or the media server 116 via the communication network 102 in response to a search request based on the vehicle identifier 250 and / or the symptom identifier 252. The content description 254 may, but need not necessarily, include some or all of the types of data included in the content description 300 shown in FIG. 3.

[0104] The thumbnail 256 may include a static image from the file 248. The network transceiver 204 may receive the thumbnail 256 from the server 106, the file server 114, or the media server 116 in response to a search request based on the vehicle identifier 250 and / or the symptom identifier 252. The processor 202 may output the thumbnail 256 to a display, such as the display 232, and / or to a device including a display, such as the CCD 108. The thumbnail 256 may be displayed on the display to provide information to a viewer of the thumbnail 256 to determine whether to view the file 248. In at least some embodiments in which the memory 212 does not include the file 248, the memory 212 does not include the thumbnail 256. In at least some embodiments in which the file 248 includes a computer-readable file other than a video file, such as an embodiment in which the file 248 includes a web page and the web page includes links configured to be traversed by a web browser, the memory 212 does not include the thumbnail 256.

[0105] Registered device data 260 may include data about another computing device registered with DCD 200. The data about the other computing device may include an identifier of the other computing device and / or network status data indicating the connection status of the other computing device to the communication network. The status may, but need not, indicate connected, unconnected, signal strength, and / or data rate. As an example, registered device data 260 may include a device configured to communicate with the communication network based on the device's The forty-eight-bit address of a device that is communicating and pairing with the DCD 200.

[0106] The network status data 262 may indicate a status of the DCD being connected to the communication network 102. As examples, the status may, but need not necessarily, indicate connected, not connected, signal strength, and / or data rate.

[0107] Diagnostic information 264 may include diagnostic information received in response to a search request, such as diagnostic information 644, 652 (in Figure 6B and 6C As another example, the diagnostic information 264 may include a diagnostic flowchart, a technical service bulletin, a description of the DTC, or some other diagnostic information.

[0108] CRPI 240 may include a CRPI executable by processor 202 to generate matrix code 244. The matrix code generated by processor 202 may encode data representing link 242.

[0109] CRPI 240 may include CRPIs executable by processor 202 to output matrix code 244 to a display, such as display 232, and / or to a device having a display, such as CCD 108. Those CRPIs may cause display 232 to display matrix code 244. CRPI 240 may cause display 232 to display an indication of the network status of DCD 200.

[0110] CRPI 240 may include a CRPI executable by processor 202 as a CODEC for encoding and / or decoding a data stream, such as a stream of packets including portions of file 248 .

[0111] The CRPI 240 may include a CRPI executable by the processor 202 to determine the signal strength of wireless communications that the network transceiver 204 is receiving from the air interface of the communication network 102. The CRPI 240 may include a CRPI executable by the processor 202 to output an indicator of the signal strength on the display 232 and / or cause the network transceiver 204 to transmit a communication to the CCD 108, 261 indicating the signal strength experienced by the network transceiver 204.

[0112] The CRPI 240 may include a CRPI executable by the processor 202 to determine a network status (e.g., connected, unconnected, signal strength, and / or data rate) of the DCD 200. The CRPI 240 may include a CRPI executable by the processor 202 to transmit the network status of the DCD 104, 200 to the CCD 108, 261. The processor 202 may store and / or obtain the network status from the network status data 262 stored in the memory 212.

[0113] CRPI 240 may include a CRPI executable by processor 202 to determine network accessibility of network transceiver 204. In some embodiments, network transceiver 204 includes multiple transceiver, such as a 2.4 GHz transceiver configured to support data transmission up to 600 megabits per second (Mbps) transceiver and is configured to support up to 1300Mbps data transmission at 5.0GHz In these or other embodiments, network transceiver 204 includes at least one transceiver configured to access a cellular communication network, such as at least one transceiver configured to access a cellular communication network supporting CDMA 1xRTT, CDMA2000 1xEV-DO, and LTE radio access technologies, such as Orthogonal Frequency Division Multiple Access (OFDMA) and Single Carrier Frequency Division Multiple Access (SC-FDMA) radio access technologies. By determining which types of networks are accessible to network transceiver 204, processor 202 can use data about accessible networks when determining whether there is a situation where DCD 200 is unable to display video at at least a minimum video quality level.

[0114] CRPI 240 may include CRPIs executable by processor 202 to determine the speed of a network accessible to network transceiver 204. Those CRPIs may include causing network transceiver 204 to request that a network speed test be performed, such as a network speed test between DCD 200 and a server on communication network 102. The results of the network speed test may, for example, indicate a download speed and / or an upload speed. The indicated speed may, but is not necessarily, be in Mbps. As an example, a server operated by or for Netflix, Inc. of Los Gatos, California, performs a network speed test on a uniform resource locator consisting of the following strings: "https" and ": / / fast.com". Additionally or alternatively, the executable CRPIs to determine the network speed may include processor 202 transmitting a data request and determining the network speed based on how much data is received in response to the request and how long it takes to receive the response.

[0115] The CRPI 240 may include a CRPI executable by the processor 202 to establish a connection with a registered computing device. Establishing a connection with a registered computing device may include sending a request to establish a connection to a registered computing device and / or receiving a request from a registered computing device to establish a connection. The CRPI 240 may include a CRPI executable by the processor 202 to request a network status of a registered computing device connected to the DCD 104, 200 and / or receive a communication from the CCD 108, 261 indicating a network status of the CCD 108, 261. The network status received from the CCD 108, 261 may be stored in the memory 212 as part of the registered device data 260.

[0116] The CRPI 240 may include a CRPI configured as an application executable by the processor 202. As an example, the application may be executable to perform a diagnostic function. In some embodiments, performing the diagnostic function includes performing a diagnostic function including transmitting communications to or from the vehicle 112 using the VCT 206 and / or performing a diagnostic function including transmitting communications to or from the server 106 using the network transceiver 204. In these or other embodiments, performing the diagnostic function includes the processor 202 outputting at least a portion of the diagnostic information 264 to the display 232. The diagnostic information output to the display may, but need not necessarily, be determined based on communications from the vehicle 112, the server 106, and / or the use of the user interface 210. Performing the diagnostic function may include requesting, by the server 106, execution of a network service.

[0117] CRPI 240 may include a CRPI that can be executed by processor 202 to access a network service from server 106 and / or another server described in this specification. As an example, processor 202 may execute the CRPI to request, receive and / or read a WDSL file. In some embodiments, memory 212 stores the WDSL file so that processor 202 can read it when it is desired to perform a network service. In other embodiments, processor 202 requests the WDSL file from server 106 before reading the WDSL file.

[0118] CRPI 240 may include CRPI executable by processor 202 to perform any of the functions described in assemblies 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, and / or 1500 as being performed by DCD 104, 200 and / or components of DCD 104, 200 (in Fig. 6A and 7 -15).

[0119] B. Exemplary Computing Devices

[0120] Next, Figure 2B is a block diagram of a companion computing device 261 according to at least some exemplary embodiments. Figure 1A and Figure 1B 261 . CCD 261 includes a processor 263, a network transceiver 265, a camera 267, a user interface 269, and a memory 271. Two or more of these components may be operably coupled or linked together via a system bus or network 273. CCD 261 also includes a power supply 275 and a housing 277. In other embodiments, CCD 108 includes only a subset of the components of CCD 261 and / or a portion of the contents of memory 271. CCD 261 or any other CCD described in this specification may be more simply referred to as a "computing device."

[0121] The user interface 269 includes one or more of a keyboard 281, a display 283, and / or an audio device 285. The user interface 269 may include selectors for inputting data to the processor 263, such as requesting an input of a video file, a web page file, or other file from a media server. The display 283 may be configured to display a link 289, a matrix code, 291, and / or a file 293. The audio device 285 may include an audio speaker configured to output the audio portion of the file 293.

[0122] The memory 271 includes a CRPI 287, a link 289, a matrix code 291, a file 293, registered device data 295, and network status data 297 that can be executed by the processor 263. The matrix code 291 may include an image of the matrix code captured by the camera 267. The matrix code represented in the image may be the matrix code 244 displayed on the display 232.

[0123] Registered device data 295 may include data about another computing device registered with CCD 261. The data about the other computing device may include an identifier of the other computing device and / or network status data indicating the connection status of the other computing device to the communication network. The status may, but need not necessarily, represent connected, unconnected, signal strength, and / or data rate. As an example, registered device data 295 may include a device configured to The forty-eight-bit address of the device that is used to communicate and pair with the CCD 261.

[0124] The network status data 297 may indicate the status of the CCD connection to the communication network 102. As examples, the status may, but need not necessarily, represent connected, not connected, signal strength, and / or data rate.

[0125] CRPI 287 may include instructions executable by processor 263 to decode matrix code 291. Decoding matrix code 291 may include recovering a link to a file (e.g., file 572) stored in a memory (e.g., memory 566) accessible to a media server (e.g., media server 116 or server 560).

[0126] CRPI 287 may include instructions executable by processor 263 to cause the link recovered from matrix code 291 to be stored as link 289 .

[0127] CRPI 287 may include instructions executable by processor 263 to cause network transceiver 265 to send a request for a file to a server (e.g., media server 116 or server 560) indicated by link 289. CRPI 287 may include instructions executable by processor 263 to configure network transceiver 265 to receive a response including a computer-readable file (e.g., file 572) transmitted from media server 116 or server 560 to CCD 261.

[0128] CRPI 287 may include instructions executable by processor 263 to store a computer-readable file received by network transceiver 265 as file 293 .

[0129] CRPI 287 may include instructions executable by processor 263 to output file 293. In some embodiments, processor 263 outputs file 293 to display 283, and display 283 displays the file. In some embodiments, processor 263 outputs file 293 to network transceiver 265 for transmission to another device including a display configured to display file 293.

[0130] The CRPI 287 may include instructions executable by the processor 263 to determine the signal strength of wireless communications being received by the network transceiver 265 from the air interface of the communication network 102. The CRPI 287 may be executable to output an indicator of the signal strength on the display 283 and / or cause the network transceiver 265 to transmit a communication to the DCD 104, 200 indicating the signal strength experienced by the network transceiver 265.

[0131] The power supply 275 may include one or more power supply components. As an example, the power supply 275 may include a circuit that receives an AC current from an AC power source and converts the AC current into a DC current to supply one or more of the other components within the CCD 261. As another example, the power supply 275 may include a battery so that the CCD 261 can be powered by the battery. As yet another example, the power supply 275 may include a solar cell so that the CCD 261 can be powered by solar energy. The power supply 275 may include a circuit that distributes the current throughout the CCD 261. Other examples of the power supply 275 are also possible.

[0132] The housing 277 can surround at least a portion of the processor 263, at least a portion of the network transceiver 265, at least a portion of the camera 267, at least a portion of the user interface 269, at least a portion of the memory 271, and / or at least a portion of the system bus or network 273. The housing 277 can be referred to as an enclosure. The housing 277 can support a substrate. At least a portion of the processor 263, at least a portion of the network transceiver 265, at least a portion of the camera 267, at least a portion of the user interface 269, at least a portion of the memory 271, and / or at least a portion of the system bus or network 273 can be mounted on and / or connected to the substrate. The housing 277 can be made of various materials. For example, the housing 277 can be made of a plastic material (e.g., ABS) and a thermoplastic elastomer for forming a grip on the housing 277.

[0133] C. Exemplary Server

[0134] Figure 5A A server 500 according to an exemplary embodiment is shown. The server 500 is Figure 1A The server 106 shown in Figure 1B The file server 114 shown in FIG. Figure 1B An exemplary embodiment of the media server 116 is shown in FIG.

[0135] The server 500 includes a processor 502, a network transceiver 504, and a memory 506. Two or more of these components may be operably coupled or linked together via a system bus or network 508. The network transceiver 504 may transmit data onto the communication network 102 and / or may receive data transmitted via the communication network 102. The memory 506 includes a CRPI 510. The processor 502 may execute the CRPI 510 to perform the functions described in this specification as being performed by a server (such as the server 106, the file server 114, or the media server 116).

[0136] The data accessible to server 500 may be distributed among multiple databases, such as memories 118, 120. As previously mentioned, the functions performed by a single server may be distributed among two or more servers.

[0137] Figure 5B A server 520 is shown according to an exemplary embodiment. The server 520 is Figure 1B 5. The server 520 includes a processor 522, a network transceiver 524, and a memory 526. Two or more of these components may be operably coupled or linked together via a system bus or network 528. The memory 526 may include a CRPI 530, a link 532, a matrix code 534, a vehicle identifier 536, a symptom identifier 538, a content description 540, a thumbnail 542, and / or diagnostic information 544.

[0138] Processor 522 may execute CRPI 530 to perform functions described herein as being performed by a server, such as server 106, file server 114, and / or media server 116. Network transceiver 524 may transmit data to communication network 102 and / or may receive data transmitted via communication network 102. As an example, network transceiver 524 may receive a search request transmitted via communication network 102, such as search request 610 (in Figure 6B As another example, the network transceiver 524 may transmit a search request response, such as search request responses 630, 650, 670 (shown in Figure 6C , Fig.6D and Fig. 6E ).

[0139] Link 532 may include a link to a computer-readable file stored in memory 526 and / or a link to a computer-readable file stored in another memory (such as in Figure 5C Matrix code 534 may include a matrix code file representing a matrix code (e.g., matrix code 400) that can be printed and / or displayed. As an example, matrix code 534 may be configured as Matrix code.

[0140] Thumbnail 542 may include a still image from a video file associated with link 532. Network transceiver 524 may transmit thumbnail 542 to DCD 200 in communication to be stored in memory 212 as thumbnail 256. Visual representation 320 showing thumbnail 256 may also be a visual representation of thumbnail 542.

[0141] Content description 540 may include a computer-readable file describing the content (such as a computer-readable file stored in memory 526 and / or a file stored in another memory, such as file 572 stored in memory 566, Figure 5C 3). Content description 540 may include some or all of the data types included in content description 300 shown in FIG. 3. Content description 540 may include and / or be associated with link 532 and / or matrix code 534.

[0142] Vehicle identifier 536 may include a vehicle identifier received in a search request (e.g., search request 610) (e.g., in Figure 6B The symptom identifier 538 may include a symptom identifier received in a search request (e.g., search request 610) (e.g., in Figure 6B Processor 522 may execute CRPI 530 to identify diagnostic information (e.g., diagnostic information 544) associated with vehicle identifier 536 and symptom identifier 538. Diagnostic information 544 stored in memory 526 may be included in the response to the search request. As an example, diagnostic information 544 may include diagnostic information 644 (in Figure 6C ), diagnostic information 652 (in Fig.6D ), diagnostic information 672 (in Fig. 6E ) and / or respectively with Fig. 16C , Figure 16K , Figure 16L Diagnostic information associated with the diagnostic information selectors 1641, 1625, and 1647 shown in FIG.

[0143] Figure 5C A server 560 is shown according to an exemplary embodiment. The server 560 is Figure 1B5. The exemplary embodiment of the media server 116 shown in FIG. Server 560 includes a processor 562, a network transceiver 564, and a memory 566. Two or more of those components can be operably coupled or linked together via a system bus or a network 568. The memory 566 includes a CRPI 570 and a file 572. In at least some embodiments, the file 572 includes a single video file or multiple video files. The file 572 can include a video file associated with a URI 302. As an example, the file 572 can include a video file "VIDEO1.MP4", which can be transferred to the DCD 200 and stored in the memory 212 as a file 248. In at least some embodiments, the file 572 can include a web page file that can be displayed on at least one of the following: DCD 104, CCD 108, DCD 200, or CCD 261. As an example, the web page file can include an HTML file (e.g., a file with an HTML extension). In at least some embodiments, the file 572 can include a matrix code file, such as a file representing an image of a matrix code. File 572 may be associated with a link (eg, a web resource link).

[0144] Processor 562 may execute CRPI 570 to perform functions described in this specification as being performed by a server, such as server 106, file server 114, and / or media server 116. Network transceiver 564 may transmit data to communication network 102 and / or may receive data transmitted over communication network 102. As an example, network transceiver 564 may receive a request for a file contained in file 572 and associated with a link. As a more specific example, network transceiver 564 may receive a request for a video associated with URI 302, and may transmit a response to the video request. The response may include a video associated with URI 302 stored in file 572. As another more specific example, network transceiver 564 may receive a request for a web page file associated with a web resource link, and network transceiver 564 may transmit a response to the request for the web page file. The response may include one or more web page files associated with the web resource link.

[0145] IV. Exemplary Operations

[0146] A. First Exemplary Operation

[0147] Next, Fig. 6AA flow chart is shown depicting a set of functions 600 (or more simply a "set") that may be performed in accordance with the exemplary embodiments described in this specification. Set 600 includes the functions shown in blocks labeled with integers 601 through 604, inclusive. The description of set 600 includes references to elements shown in other figures described in this specification, but the functions of set 600 are not limited to being performed only by the referenced elements. Various methods may be performed using all of the functions shown in set 600 or any suitable subset of the functions shown in set 600. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. For example, a method including set 600 may include set 700 (in Figure 7 As yet another example, a method may include performing the functions of set 700 and one or more functions from sets 700, 800, 900, 1000, 1100, 1200, 1300, 1400, and / or 1500.

[0148] Block 601 includes identifying a vehicle. The DCD 104, 200 may identify a vehicle, such as the vehicle 112. For example, the processor 202 may identify the vehicle 112 based on data identifying characteristics of the vehicle 112. The processor 202 may be configured to obtain data identifying characteristics of the vehicle in one or more of the following methods: (1) determining a user interface input indicating data identifying characteristics of the vehicle, (2) scanning and / or decoding a visible code representing a VIN associated with the vehicle 112 (such as a one-dimensional barcode representing the VIN), and / or (3) receiving a communication including data indicating characteristics of the vehicle. As an example, the network transceiver 204 may receive a communication from a device connected to the communication network 102, the communication including repair order information indicating characteristics of the vehicle. The repair order information may be stored as the RO 258. As another example, the VCT 206 may receive a communication from the vehicle 112 (e.g., a VDM including a VIN, a portion of a VIN, and / or data indicating a YMM or YMME associated with the vehicle 112). Other examples of processor 202 identifying a vehicle are also possible. In some embodiments, after identifying the vehicle, processor 202 may store vehicle identifier 250 in memory 212 .

[0149] Next, block 602 includes determining a symptom applicable to the vehicle 112. The DCD 104, 200 can identify the symptom. For example, the processor 202 can be configured to determine the symptom in one or more of the following ways: (1) determining an input entered using the user interface 210 (indicating the symptom), and / or (2) receiving a communication including data indicating the symptom. As an example, the network transceiver 204 can receive a communication from a device connected to the communication network 102, the communication including repair order information indicating the symptom. As another example, the VCT 206 can receive a communication from the vehicle 112 (e.g., a VDM including data indicating the symptom). Other examples of the processor 202 that identifies the symptom are also possible. As an example, the data indicating the symptom (within the VDM) can include (1) a diagnostic trouble code (DTC), and / or (2) a parameter identifier (PID) and associated PID parameters.

[0150] Next, block 603 includes transmitting a search request based on the vehicle and the symptom. Transmitting the search request may include the network transceiver 204 transmitting the search request to the server 106, 500, 520, 560, the file server 114, or the media server 116 via the communication network 102.

[0151] Figure 6B A search request 610 is shown in accordance with at least some exemplary embodiments. The search request transmitted at block 603 may, but need not necessarily, include the type of data contained in the search request 610. The search request 610 includes a destination identifier 612 of a destination, such as a server configured to search for information based on the vehicle and symptoms referenced in the search request 610. The search request 610 includes an identifier of the source of the search request (e.g., DCD 104, 200). The search request 610 includes a request type identifier 616, such as an identifier indicating that the search request 610 is for diagnostic information. In another embodiment, the type of information requested by the search request can be implied by the search request 610 being transmitted to a specific device, such as a file server 114. The search request 610 includes a request identifier 618. The request identifier 618 can be used to associate a response to the search request 610. The search request 610 includes a vehicle identifier 620, such as a vehicle identifier based on the vehicle identified at block 601. The search request 610 includes a symptom identifier 622 , such as the symptom identifier identified at block 602 .

[0152] Next, block 604 includes receiving a response to the search request. The file server 114 may generate a response to the search request based on information determined by searching the memory 118 based on the vehicle and symptoms referenced in the search request 610. The file server 114 may transmit the response to the search request via the communication network 102. The network transceiver 204 may receive the response to the search request. The response to the search request may include diagnostic information obtained from the memory 118. The diagnostic information may include diagnostic information containing text (i.e., textual information such as maintenance tips, original equipment manufacturer (OEM) diagnostic flowcharts, and / or OEM technical service bulletins). In an embodiment in which the memory 118 includes a video description of a video related to the information in the search request 610, the response to the search request may include a video description. At least a portion of the video description may include textual information. In an embodiment in which the memory 118 includes a web resource link to a web page file related to the information in the search request 610, the response to the search request may include a web resource link.

[0153] Figure 6C An exemplary search request response 630 is shown including a destination identifier 632, a source identifier 634, a response type identifier 636, a request identifier 638, a vehicle identifier 640, a symptom identifier 642, and diagnostic information 644. The diagnostic information 644 includes a diagnostic text 646 and a video description 648. The request identifier 638 may be used by the processor 202 to determine that the search request response 630 corresponds to a search request 610 that includes a request identifier 618 that matches the request identifier 638. The video description 648 may be as shown in FIG. Figure 3A , or like any part of the content description 300.

[0154] Next, Fig.6D An exemplary search request response 650 is shown, which includes a destination identifier 632, a source identifier 634, a response type identifier 636, a request identifier 638, a vehicle identifier 640, a symptom identifier 642, and diagnostic information 652. The diagnostic information 652 includes a diagnostic text 646, a video description 648, and a matrix code 654. The matrix code 654 may, but need not necessarily, include an image file representing an image of the matrix code 654. The matrix code 654 may encode the video description 648 and / or a URI associated with a video file defined by the video description 648.

[0155] Next, Fig. 6EAn exemplary search request response 670 is shown including a destination identifier 632, a source identifier 634, a response type identifier 636, a request identifier 638, a vehicle identifier 640, a symptom identifier 642, and diagnostic information 672. The diagnostic information 672 includes a network resource link 674 and a matrix code 676. The matrix code 676 may, but need not necessarily, include an image file representing an image of the matrix code 676. The matrix code 676 may encode the network resource link 674.

[0156] B. Second Exemplary Operation

[0157] Next, Figure 7 A flow chart depicting a set of functions 700 (or more simply "set 700") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 700 includes the functions shown in blocks marked with integers 701 to 704 (inclusive). The description of set 700 includes references to the elements shown in other figures described in this specification, but the functions of set 700 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 700 or any appropriate subset of the functions shown in set 700. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). For example, a method may include executing set 600 and set 700. As another example, a method may include executing the functions of set 700 and one or more functions from sets 600, 800, 900, 1000, 1100, 1200, 1300, 1400 and / or 1500.

[0158] Block 701 includes receiving content description and matrix code. Content description includes data describing one or more files. Each of the one or more files includes a computer readable file, such as a video file stored in the memory 120 or a file 572 stored in the memory 566. The matrix code is encoded with a link to the one or more files. In some embodiments, the content description can be configured as the content description 300 shown in Figure 3. Therefore, the content description can include URI 302, file name 304, theme description 306, file size 308, video resolution 310, video compression type 312, thumbnail name 314, encoded bit rate 316 and / or play time 318. In some embodiments, receiving content description can include DCD 104, 200, processor 202 and / or network transceiver 204 receiving content description 300 from a server (such as file server 114 or server 520). In other embodiments, receiving the content description may include the CCD 108 , 261 , the processor 263 , and / or the network transceiver 265 receiving the content description 300 from a server (such as the file server 114 or the server 520 ).

[0159] In some embodiments, receiving the matrix code may include the DCD 104, 200 or CCD 108, 261 receiving the matrix code from the server 106, 500, 520 or the file server 114 via the communication network 102. In other embodiments, receiving the matrix code may include the DCD 104, 200 receiving a matrix code generated by the processor 202 based on data contained in a content description received by the DCD 104, 200, the processor 202, and / or the network transceiver 204. The processor 202 may execute the CRPI 240 to generate the matrix code. In other embodiments, receiving the matrix code may include the CCD 108, 261 receiving a matrix code generated by the processor 263 based on data contained in a content description received by the CCD 108, 261, the processor 263, and / or the network transceiver 265. The processor 263 may execute the CRPI 287 to generate the matrix code. The matrix code may be encoded with a link (e.g., link 242) to the file 572.

[0160] Next, block 702 includes determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level. The determination may be based at least in part on the content description.

[0161] In some embodiments, the first computing device is configured as a DCD, such as DCD 104, 200. In at least some of those embodiments, processor 202, 263 may execute CRPI 240 to determine that DCD 104, 200 is unable to display video files at at least a minimum video quality level by determining circumstances in which DCD 104, 200 is unable to display the one or more files at at least a minimum quality level. By way of example, the conditions determined may include: (1) the display 232 is not configured to display any video, (2) the file name of the video file has a file extension that is not supported by the processor 202, (3) the DCD 104, 200 does not include a CODEC for decoding the video file, (4) the media server 116 or server 560 transmits the video file at a bit rate that is too slow, such that the display 232 is unable to continuously display the video after initially displaying the video file, (5) the media server 116 or server 560 transmits the video file at a bit rate that is too fast, such that the one or more buffers configured to store portions of the video file in the memory 212 will fill to capacity and will not be able to store all received portions of the video file, (6) the strength of the communication signal to the DCD 104, 200 via the communication network 102 is below a threshold signal strength level, (7) a particular type of network connection is not available to the DCD 104, 200, and / or (8) the display 232 is unable to display the video file and diagnostic text simultaneously.

[0162] In other embodiments where the first computing device is configured as a DCD (such as DCD 104, 200), the processor 202, 263 may perform CRPI to determine that the DCD 104, 200 cannot traverse a network resource link (such as in Fig. 16C The situation of link 1653) shown in .

[0163] In some embodiments, the specific type of network connection may be a specific cellular air interface protocol or radio access technology. Examples of existing cellular air interface protocols or radio access technologies include AMPS, CDMA (e.g., 1xRTT), IDEN, TDMA, GSM, GPRS, EDGE, and MMDS, third generation (3G) cellular protocols (such as CDMA 2000 1xEV-DO or UMTS), fourth generation (4G) broadband radio access technologies (such as LTE, e.g., FDDLTE and TDDLTE), or WiMAX. As another example, the specific type of network connection may be a 2.4 GHz band, a 3.6 GHz band, a 4.9 GHz band, a 5 GHz band, or a 5.9 GHz band. Protocol connection.

[0164] The minimum video quality level can be defined using one or more characteristics. Examples of these characteristics are discussed in this paragraph and the following two paragraphs. In at least some embodiments, the minimum video quality level can be defined as a frame rate (e.g., the frequency with which video frames are displayed). The frame rate can, but does not have to be, defined in frames per second (FPS). As an example, the frame rate can be 24 FPS (e.g., high-definition (HD) video), 23.98 or 23.976 FPS (HD video with NTSC compatibility), 25 FPS (PAL, HD video), 29.97 FPS (NTSC, HD video), 30 FPS (HD video), 50 FPS (PAL, HD video), 59.94 FPS (HD video with NTSC compatibility), 60 FPS (HD video), or some other frame rate. NTSC refers to the National Television System Committee. PAL refers to Phase Alternating Line.

[0165] In at least some embodiments, the minimum video quality level can be the aspect ratio (i.e., the ratio of the width of a frame of video to the height of the frame). As an example, the aspect ratio can be 16:9, 1.78:1, 1.33:1, or some other aspect ratio.

[0166] In at least some embodiments, the minimum video quality level can be the resolution of the video. As an example, the resolution can be defined as the number of horizontal lines of vertical resolution, such as 1080p, where 1080 represents 1080 lines of vertical resolution and "p" represents progressive scan. Other example resolutions defined as the number of horizontal lines of vertical resolution include 240p, 360p, 480p, 720p, 1440p, 2160p, 3840p. In addition, the resolution of the video can be a ratio of pixels, such as 426x240, 640x360, 854x480, 1280x720, 1920x1080, 2560x1440, 3840x2160.

[0167] In other embodiments, the first computing device is configured as a CCD, such as CCD 108, 261. In at least some of those embodiments, the processor 202 may execute CRPI 240 to determine that the CCD 108, 261 is unable to display the one or more files at at least the minimum quality level includes the processor 202 determining that the CCD 108, 261 is unable to display the video files at at least the minimum video quality level. In those embodiments, the processor 202 may execute CRPI 240 to determine that the CCD 108, 261 is unable to display the video files at at least the minimum video quality level. By way of example, the conditions determined may include: (1) the display 283 is not configured to display any video, (2) the file name of the video file has a file extension that is not supported by the processor 263, (3) the CCD 108, 261 does not include a CODEC for decoding the video file, (4) the media server 116 or server 560 transmits the video file at a bit rate that is too slow, such that the display 283 is unable to continuously display the video after initially displaying the video file, (5) the media server 116 or server 560 transmits the video file at a bit rate that is too fast, such that the one or more buffers configured to store portions of the video file in the memory 271 will fill to capacity and will be unable to store all received portions of the video file, (6) the signal strength of the communication to the CCD 108, 261 via the communication network 102 is below a threshold signal strength level, (7) a particular type of network connection is not available to the CCD 108, 261, and / or (8) the display 283 is unable to display the video file and diagnostic text simultaneously.

[0168] As another example, a condition indicating that the first computing device is unable to display the video file at at least a minimum video quality level may be a condition where a communications network used by the first computing device is insufficient to transmit the video file for continuous display from the beginning of the video file to the end of the video file when playback of the video file begins at the first computing device. As yet another example, a condition indicating that the first computing device is unable to display the video file at at least a minimum video quality level may be a condition where a communications network used by the first computing device is insufficient to transmit a portion of the video file within a threshold time for continuous display of the video file from the beginning of the video file to the end of the video file after playback of the video file begins at the first computing device.

[0169] As an example, network conditions and / or transmission rates can be determined by transmitting communications and determining network conditions based on the time required to obtain a response to the communication. For example, a request for a matrix code is transmitted at time T1, and a response including the matrix code is received during time period T2 to T3. The transmission rate can be determined as the number of bytes of the received matrix code divided by the transmission time (T3 minus T2). The determined transmission rate can be used to determine the expected time length for downloading a video file using the same transmission rate. If the determined time length exceeds the playback time of the video file, the processor can determine that the video file cannot be displayed at least at the minimum video quality level. In some embodiments, determining that a network condition exists based on the expected time length for downloading a video file can be conditioned on the time length exceeding a threshold time amount (such as one minute or some other time amounts).

[0170] Next, block 703 includes outputting, by the processor 202, 263, a matrix code to the first display in response to determining the condition indicating that the first computing device is unable to display the one or more files at at least the minimum quality level.

[0171] In some embodiments, the first display is a display at the DCD 104, 200 (e.g., display 232). In those embodiments, outputting the matrix code may include the processor 202 outputting the matrix code 244 to the display 232, or the processor 263 causing the network transceiver 265 to output the matrix code 291 over the communication network 102 for transmission to the network transceiver 204 of the DCD 104, 200. The matrix code received at the network transceiver 204 may be stored in the memory 212 as the matrix code 244.

[0172] In other embodiments, the first display is a display at the CCD 108, 261 (e.g., display 283). In those embodiments, outputting the matrix code may include the processor 263 outputting the matrix code 291 to the display 283, or the processor 202 causing the network transceiver 204 to output the matrix code 244 over the communication network 102 for transmission to the network transceiver 265 of the CCD 108, 261. The matrix code received at the network transceiver 265 may be stored in the memory 271 as the matrix code 291.

[0173] Next, block 704 includes displaying the matrix code on the first display. In embodiments where the first display is a display at DCD 104, 200, display 232 may display matrix code 244. Displaying a matrix code, such as matrix code 244, may include displaying a representation of the matrix code on the display. Fig. 16CMatrix code 1650 is shown on display 232. Matrix code 1650 may be representative of matrix code 244. In other embodiments, the first display is a display at CCD 108, 261 (eg, display 283).

[0174] In at least some embodiments, the first computing device includes a processor and a first display. According to those embodiments, determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level includes the processor determining that the first computing device is not configured to display video files.

[0175] In another embodiment, the content description received at block 701 includes a plurality of content descriptions, and the matrix code received at block 701 includes a plurality of matrix codes. The plurality of matrix codes includes a separate matrix code for each of the plurality of content descriptions. According to this embodiment, the process includes performing Figure 7 The method of the set of functions 700 shown in the figure may further include receiving content sequence information at the processor 202. In addition, displaying the matrix code for the method includes displaying the plurality of matrix codes according to the content sequence information. The server 106, the file server 114, or the media server 116 may determine the content sequence information and provide the content sequence information to the DCD 104 via the communication network 102.

[0176] As an example, the content order information can be based on the popularity of the content associated with one of the multiple content descriptions. The following examples in this paragraph relate to an embodiment in which the content description includes a video file. For example, the content order information can be based on the ratings of the multiple videos. As another example, the content order information can be based on the ranking of the multiple videos from the highest frequency of repairing vehicles to the lowest frequency of repairing vehicles. As another example, the content order information can be based on the time length of the multiple videos (e.g., the order of the videos from the shortest display time to the longest display time). In addition, the content order information can be based on two or more factors described above for determining the order of videos.

[0177] In other embodiments including performing a method including setting 700, the method may include the processor determining that the first computing device can communicate with the second computing device. In these embodiments, the first computing device includes a processor and a first display, and the second computing device includes a second display and is registered with the first computing device. Additionally, in these embodiments, the first computing device may transmit a link to the one or more files to the second computing device.

[0178] In yet another embodiment including performing a method including setting 700, the second computing device includes a processor and a first display. The first computing device is registered with the second computing device and / or the second computing device is registered with the first computing device. The second computing device is configured to transfer the one or more files to the first computing device. Likewise, the first computing device is configured to receive the one or more files from the second computing device. In these embodiments, determining a condition indicating that the first computing device cannot display the one or more files at at least a minimum quality level includes the processor determining that the second computing device cannot communicate with the first computing device.

[0179] C. Third Exemplary Operation

[0180] Next, Figure 8 A flow chart depicting a set of functions 800 (or more simply "set 800") is shown that can be performed in accordance with the exemplary embodiments described in this specification. Set 800 includes the functions shown in blocks labeled with integers 801 to 805 (inclusive). The description of set 800 includes references to the elements shown in other figures described in this specification, but the functions of set 800 are not limited to being performed only by the referenced elements. Various methods can be performed using all of the functions shown in set 800 or any appropriate subset of the functions shown in set 800. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). For example, a method may include performing set 700 and set 800. As another example, a method may include performing set 600, set 700, and set 800. As yet another example, a method may include performing the functions of set 800 and one or more functions from sets 600 , 700 , 900 , 1000 , 1100 , 1200 , 1300 , 1400 , and / or 1500 .

[0181] Block 801 includes, after determining that the first computing device cannot display the one or more files with at least the minimum quality level, outputting the file request symbol to the first display by the one or more processors. Outputting the file request symbol may include the processor transmitting the file request symbol and / or data so that the first display displays the file request symbol. In some embodiments, the file request symbol may include a video file request symbol that is configured to be selectable to indicate that a specific video file has been selected. In some embodiments, the file request symbol may include a web page file request symbol that is configured to be selectable to indicate that a network resource link pointing to a specific web page file has been selected.

[0182] Next, block 802 includes displaying a file request symbol on a first display. As an example, the file request symbol displayed at block 802 may be configured as Fig. 16C As another example, the file request symbol displayed at block 802 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0183] Next, block 803 includes transmitting a request for the one or more files from a remote device associated with a link to the one or more files in response to the selection of the file request symbol. The processor 202 may execute the CRPI 240 to cause the network transceiver 204 to transmit the request for the one or more files. The link includes a link encoded within a matrix code.

[0184] Next, block 804 includes receiving the one or more files at the one or more processors in response to a request for the one or more files. The network transceiver 204 can receive the one or more files from the communication network 102 and provide the one or more files to the processor 202. Receiving the one or more files by the processor 202 and / or the network transceiver 204 can include receiving each data packet containing each portion of the one or more files. The content of the one or more files and / or each data packet can be stored in a buffer (e.g., one or more buffers). Each buffer can be a part of the memory 212. The portion of the memory storing the file 248 can include a buffer in which the content of the one or more files and / or each data packet is stored.

[0185] According to at least some exemplary embodiments, the one or more files include video files. According to at least some of those exemplary embodiments, receiving the video file may include receiving the video file via a plurality of data packets that comprise the different parts of the video file. According to at least some other exemplary embodiments, the one or more files include a web page file.

[0186] Next, block 805 includes outputting the one or more files to a second display device by the one or more processors. According to an exemplary embodiment, the second display device is CCD 108. For example, the second display device may include a smart phone or a tablet device. In another exemplary embodiment, the second display device includes a vehicle component affixed to the passenger compartment of the vehicle 112. The vehicle component may be a vehicle component installed into the vehicle by the OEM. For example, the second display device may include a dashboard group with a display, a navigation system component with a display, an entertainment system component with a display, and / or a multimedia touch screen display. Alternatively, the vehicle component affixed to the passenger compartment may include an aftermarket vehicle component affixed to the vehicle by a party other than the OEM.

[0187] In at least some embodiments including performing setting 800, the method may further include displaying the one or more files output to the second display device (e.g., CCD 108 or a display on a vehicle component). Displaying the one or more files may include displaying a video file. The video file may include a content description showing the maintenance function on the second display device. In these embodiments, the method may further include maintaining the vehicle (e.g., vehicle 112) by performing the maintenance function shown on the second display device. As an example, performing the maintenance function may include removing a vehicle component from the vehicle, installing a vehicle component to the vehicle, diagnosing whether a vehicle component on the vehicle is defective, adjusting a vehicle component on the vehicle, recalibrating a vehicle component on the vehicle, resetting a vehicle component on the vehicle, setting a target near the vehicle, and / or reprogramming a vehicle component on the vehicle. The targets are typically set for installing and / or calibrating an advanced driver assistance system (ADAS, such as an adaptive cruise control system, an adaptive lighting control system, an automatic braking system, an automatic parking system, or a collision avoidance system).

[0188] D. Fourth Exemplary Operation

[0189] Next, Fig. 9A flow chart depicting a set of functions 900 (or more simply "set 900") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 900 includes the functions shown in blocks marked with integers 901 to 905 (inclusive). The description of set 900 includes references to the elements shown in other figures described in this specification, but the functions of set 900 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 900 or any appropriate subset of the functions shown in set 900. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). For example, a method including the functions of set 900 may include one or more functions from sets 600, 700, 800, 1000, 1100, 1200, 1300, 1400 and / or 1500. In particular, a method including the functions of set 900 may include performing the functions of set 700, followed by the functions of set 900. Additionally, this particular method may include performing set 600 prior to performing set 700 .

[0190] In embodiments that include performing setup 900, the first computing device includes a processor and a first display. Further, in those embodiments, determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level includes the processor determining that the first computing device is not configured to display the one or more files.

[0191] Block 901 includes, after determining that the first computing device is not configured to display the one or more files, outputting, by the one or more processors, a file request symbol to a first display. In at least some embodiments, outputting the file request symbol may include the processor 202 transmitting the file request symbol to the display 232 via the system bus or network 214. The file request symbol is selectable to cause the processor to request the one or more files to be displayed on the first display.

[0192] Next, block 902 includes displaying a file request symbol on the first display. As an example, the file request symbol displayed at block 902 may be configured as Fig. 16C As another example, the file request symbol displayed at block 902 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0193] Next, block 903 includes transmitting a request for the one or more files from a remote device associated with a link to the one or more files in response to the selection of the file request symbol. As an example, the selection of the file request symbol may be performed by touching the file request symbol on the first display and / or by using a hardware key associated with the file request symbol (on the first computing device). The transmission request may include the network transceiver of the first computing device transmitting the request for the one or more files to the media server 116 or the server 560. In response to the request, the media server 116 or the server 560 may determine the one or more files to be sent in response to the search request, generate a search request response, and transmit the search request response via the communication network 102. Transmitting the search request response may include transmitting a plurality of data packets containing portions of the one or more files via the communication network 102. A network transceiver (such as the network transceiver 204) may receive the search request response and may cause the memory 212 to store the one or more files as files 248.

[0194] Next, block 904 includes receiving the one or more files at the one or more processors in response to the request for the one or more files. As an example, the processor 202 can receive the one or more files from the network transceiver 204 or from the memory 212. According to at least some exemplary embodiments, the one or more files include video files. According to at least some other exemplary embodiments, the one or more files include web page files.

[0195] Next, block 905 includes outputting, by the one or more processors, the one or more files to a second display device. Outputting the one or more files may include the processor 202 outputting the one or more files to the network transceiver 204 and / or the network transceiver 204 transmitting the one or more files to the PAN 110. The second computing device (such as CCD 108, 261) may receive the one or more files using the network transceiver 265 and / or display the one or more files on the display 283. The second computing device (such as CCD 108, 261) may store the one or more files received via the PAN 110 as files 293.

[0196] E. Fifth Exemplary Operation

[0197] Next, Fig.10A flow chart depicting a set of functions 1000 (or more simply "set 1000") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1000 includes the functions shown in blocks marked with integers 1001 to 1006 (inclusive). The description of set 1000 includes references to the elements shown in other figures described in this specification, but the functions of set 1000 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1000 or any appropriate subset of the functions shown in set 1000. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). For example, a method including the functions of set 1000 may include one or more functions from sets 600, 700, 800, 900, 1100, 1200, 1300, 1400 and / or 1500. In particular, a method including the functions of set 1000 may include performing the functions of set 700 followed by the functions of set 1000. Additionally, this particular method may include performing set 600 prior to performing set 700.

[0198] Block 1001 includes outputting, by the one or more processors, a file request symbol to a first display after determining a condition indicating that the first computing device (e.g., DCD 104, 200) is unable to display the one or more files at at least a minimum quality level. In at least some embodiments, outputting the file request symbol may include the processor 202 transmitting the file request symbol to the display 232 via the system bus or network 214. The video file request symbol is selectable to cause the one or more processors to request the one or more files to be displayed on the first display.

[0199] Next, block 1002 includes displaying a file request symbol on the first display. As an example, the file request symbol displayed at block 1002 may be configured as Fig. 16C As another example, the file request symbol displayed at block 1002 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0200] Next, block 1003 includes transmitting a request for the one or more files from a remote device associated with a link to the one or more files in response to the selection of the file request symbol. The example of transmitting a request in the discussion of block 903 above is applicable to block 1003.

[0201] Next, block 1004 includes receiving the one or more files at one or more processors in response to a request for the one or more files. As an example, the one or more processors may receive the one or more files from the network transceiver 204 or from the memory 212. According to at least some exemplary embodiments, the one or more files include video files. According to at least some other exemplary embodiments, the one or more files include web page files.

[0202] Next, block 1005 includes outputting, by the one or more processors, the one or more files to a first display. As an example, the processor 202 may transmit the file 248 to the display 232 via the system bus or network 214.

[0203] Next, block 1006 includes displaying the one or more files on the first display at a level below the minimum quality level. As an example, the display 232 may display the one or more files in a display window (such as in Fig.16F and Fig.16H 1668 shown in the display window 1668). For embodiments in which the one or more files include video files, the one or more processors can cause the display 232 to display non-video information while the video file is displayed. Displaying a video file can include displaying the video file in a play mode, displaying the video file in a pause mode, displaying the video file in a fast forward mode, and / or displaying the video file in a fast rewind mode, in which the video is played at a rate equal to or substantially equal to the rate at which the video is captured, and in which a single image of the video file is continuously displayed in the pause mode. Other examples of displaying video files are also possible.

[0204] F. Sixth Exemplary Operation

[0205] Next, Fig.11A flow chart depicting a set of functions 1100 (or more simply "set 1100") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1100 includes the functions shown in blocks labeled with integers 1101 to 1106 (inclusive). The description of set 1100 includes references to the elements shown in other figures described in this specification, but the functions of set 1100 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1100 or any appropriate subset of the functions shown in set 1100. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). In particular, the method including the functions of set 1100 can include the functions of set 600 and / or set 700. For example, the method including the functions of set 1100 can include performing the functions of set 700, followed by the functions of set 1100. In addition, the particular method can include performing set 600 before performing set 700. As yet another example, a method may include performing the role of set 1100 and one or more roles from sets 600 , 700 , 800 , 900 , 1000 , 1200 , 1300 , 1400 , and / or 1500 .

[0206] In embodiments including execution set 1100, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices can be registered with each other such that the first computing device is registered with the second computing device and / or the second computing device is registered with the first computing device. In some embodiments, the second computing device is configured to transfer files to the first computing device, and the first computing device is configured to receive files from the second computing device. As an example, the files may include video files and / or HTML files. In addition, in the above embodiments in which the files include video files, determining that the first computing device is unable to display the video file at least at a minimum video quality level may occur in response to the processor of the second computing device determining that the second computing device is unable to display the video file at a video quality level at which at least the first display of the second computing device can display the video file.

[0207] Block 1101 includes outputting, by the one or more processors, a file request symbol to a first display. In at least some embodiments, outputting the file request symbol may include the processor 202 transmitting the file request symbol to the display 232 via the system bus or network 214. In these or other embodiments, outputting the file request symbol may include a graphics processor of the processor 202 outputting a GUI including the file request symbol to the display 232. In some embodiments, the file request symbol displayed on the display 232 is spatially associated with a portion of the display 232 displaying the file request symbol, such that the processor 202 may determine that the file request symbol is selected by determining that the portion of the display 232 is touched by a finger or some other pointing device.

[0208] Next, block 1102 includes displaying a file request symbol on the first display. As an example, the file request symbol displayed at block 1102 may be configured as Fig. 16C As another example, the file request symbol displayed at block 1102 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0209] Next, block 1103 includes transmitting a request for one or more files from a remote device associated with a link to the one or more files in response to the selection of the file request symbol. As an example, the selection of the file request symbol may be performed by touching the file request symbol on the first display and / or by using a hardware key associated with the file request symbol (on the second computing device). The transmission request may include the network transceiver of the second computing device transmitting the request for the one or more files to the media server 116 or the server 560. In response to the request, the media server 116 or the server 560 may determine the one or more files to be sent in response to the search request, generate a search request response, and transmit the search request response via the communication network 102. Transmitting the search request response may include transmitting a plurality of data packets containing portions of the one or more files via the communication network 102. A network transceiver (such as the network transceiver 204) may receive the search request response and may cause the memory 212 to store the one or more files as files 248.

[0210] Next, block 1104 includes receiving the one or more files at the one or more processors in response to the request for the one or more files. As an example, the one or more files may receive the one or more files from the network transceiver 204 or from the memory 212. According to at least some exemplary embodiments, the one or more files include video files. According to at least some other exemplary embodiments, the one or more files include web page files.

[0211] Next, block 1105 includes outputting, by the one or more processors, the one or more files to a first display. As an example, the one or more processors may transmit the file 248 to the display 232 via the system bus or network 214.

[0212] Next, block 1106 includes displaying the one or more files on the first display. As an example, the display 232 may be in a display window (such as in Fig.16F and Fig.16H 1668 shown in the display window 1668). For embodiments in which the one or more files include video files, the processor 202 can cause the display 232 to display non-video information while the video file is displayed. Displaying a video file can include displaying the video file in a play mode, displaying the video file in a pause mode, displaying the video file in a fast forward mode, and / or displaying the video file in a fast rewind mode, in which the video is played at a rate equal to or substantially equal to the rate at which the video is captured, and in which the single image of the video file is continuously displayed in the pause mode. Other examples of displaying video files are also possible.

[0213] G. Seventh Exemplary Operation

[0214] Next, Fig.12 A flow chart depicting a set of functions 1200 (or more simply "set 1200") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1200 includes the functions shown in blocks labeled with integers 1201 to 1205 (inclusive). The description of set 1200 includes references to the elements shown in other figures described in this specification, but the functions of set 1200 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1200 or any appropriate subset of the functions shown in set 1200. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). In particular, the method including the functions of set 1200 can include the functions of set 600 and / or set 700. For example, the method including the functions of set 1200 can include performing the functions of set 700, followed by the functions of set 1200. In addition, the particular method can include performing set 600 before performing set 700. As yet another example, a method may include performing the role of set 1200 and one or more roles from sets 600 , 700 , 800 , 900 , 1000 , 1100 , 1300 , 1400 , and / or 1500 .

[0215] In embodiments including execution set 1200, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices may be registered with each other such that the first computing device is registered with the second computing device and / or the second computing device is registered with the first computing device. Further, in these embodiments, the second computing device is configured to transfer one or more files to the first computing device, and the first computing device is configured to receive the one or more files from the second computing device. Further, in these embodiments, determining that the first computing device is unable to display the one or more files at at least a minimum quality level may occur in response to a processor of the second computing device determining that the second computing device is unable to display the one or more files at a quality level at which at least the first display of the second computing device can display the one or more files.

[0216] Step 1201 includes outputting, by the one or more processors, a file request symbol to a first display. In at least some embodiments, outputting the file request symbol may include the processor 202 transmitting the file request symbol to the display 232 via the system bus or network 214. The file request symbol is selectable to cause the one or more processors to request the one or more files to be displayed on the first display.

[0217] Next, block 1202 includes displaying a file request symbol on the first display. As an example, the file request symbol displayed at block 1202 may be configured as Fig. 16C As another example, the file request symbol displayed at 1202 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0218] Next, block 1203 includes transmitting a request for the one or more files from a remote device associated with a link pointing to the one or more files in response to the selection of the file request symbol. The example of transmitting a request in the above discussion of block 1103 is applicable to block 1203. The link includes a link encoded within a matrix code.

[0219] Next, block 1204 includes receiving the one or more files at the one or more processors in response to the request for the one or more files. As an example, the processor 202 can receive the one or more files from the network transceiver 204 or from the memory 212. According to at least some exemplary embodiments, the one or more files include video files. According to at least some other exemplary embodiments, the one or more files include web page files.

[0220] Next, block 1205 includes outputting, by the one or more processors, the one or more files to the first computing device. In an exemplary embodiment in which the one or more files include a video file, outputting the one or more files includes outputting the video file. Outputting the video file may include processor 202 outputting the video file to network transceiver 204 and / or network transceiver 204 transmitting the video file to PAN 110. The first computing device (such as CCD 108, 261) may receive the video file using network transceiver 265 and / or display the video file on display 283. The first computing device (such as CCD 108, 261) may store the video file received via PAN 110 as file 293.

[0221] H. Eighth Exemplary Operation

[0222] Next, Fig.13 A flow chart depicting a set of functions 1300 (or more simply "set 1300") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1300 includes the functions shown in blocks labeled with integers 1301 to 1306 (inclusive). The description of set 1300 includes references to the elements shown in other figures described in this specification, but the functions of set 1300 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1300 or any appropriate subset of the functions shown in set 1300. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). In particular, the method including the functions of set 1300 can include the functions of set 600 and / or set 700. For example, the method including the functions of set 1300 can include performing the functions of set 700, followed by the functions of set 1300. In addition, the particular method can include performing set 600 before performing set 700. As yet another example, a method may include performing the functions of set 1300 and one or more functions from sets 600 , 700 , 800 , 900 , 1000 , 1100 , 1200 , 1400 , and / or 1500 .

[0223] In embodiments including execution set 1300, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices may be registered with each other such that the first computing device is registered with the second computing device and / or the second computing device is registered with the first computing device. Further, in these embodiments, the second computing device is configured to transfer one or more files to the first computing device, and the first computing device is configured to receive the one or more files from the second computing device. Further, in these embodiments, determining that the first computing device is unable to display the one or more files at at least a minimum quality level may occur in response to a processor of the second computing device determining that the second computing device is unable to display the one or more files at a quality level at which at least the first display of the second computing device can display the one or more files.

[0224] Block 1301 includes outputting, by the one or more processors, a file request symbol to a first display. In at least some embodiments, outputting the file request symbol may include the processor 202 transmitting the file request symbol to the display 232 via the system bus or network 214. The file request symbol is selectable to cause the processor to request the one or more files to be displayed on the first display.

[0225] Next, block 1302 includes displaying a file request symbol on the first display. As an example, the file request symbol displayed at block 1302 may be configured as Fig. 16C As another example, the file request symbol displayed at block 1302 may be configured as shown in FIG. Figure 16K As shown in the diagnostic information selectors 1631 and 1633.

[0226] Next, block 1303 includes transmitting a request for the one or more files from a remote device associated with a link to the one or more files in response to selection of the file request symbol displayed by the first display. The examples of transmitting requests in the above discussion of block 1103 apply to block 1303. The link includes a link encoded within a matrix code.

[0227] Next, block 1304 includes receiving, at the one or more processors, the one or more files in response to the request for the one or more files. As an example, the processor 202 may receive the one or more files from the network transceiver 204 or from the memory 212.

[0228] Next, block 1305 includes outputting, by the one or more processors, the one or more files to a first display. As an example, the processor 202 may transmit the file 248 to the display 232 via the system bus or the network 214.

[0229] Next, block 1306 includes displaying the one or more files on the first display at a level below the minimum quality level. As an example, the display 232 may display the one or more files in a display window (such as in Fig.16F and Fig.16H 1668) in the display window 1668 shown in FIG. In addition, in an exemplary embodiment in which the one or more files include a video file, the processor 202 can cause the display 232 to display non-video information while the video file is being displayed.

[0230] In an exemplary embodiment in which the one or more files include a video file, displaying the video file may include displaying the video file in a play mode, in which the video is played at a rate equal to or substantially equal to the rate at which the video was captured, displaying the video file in a pause mode, in which a single image of the video file is continuously displayed, displaying the video file in a fast forward mode, and / or displaying the video file in a fast rewind mode.

[0231] In an exemplary embodiment in which the one or more files include video files, the minimum quality level may include a minimum video quality level. Displaying the video file at a level below the minimum video quality level may, but need not necessarily, include displaying the video file using a display resolution lower than the display resolution associated with the minimum video quality level and / or displaying the video file using a frame rate lower than the frame rate associated with the minimum video quality level.

[0232] In addition, DCD 200 can be configured to use any one of a plurality of aspect ratios and / or any one of a plurality of CODECs to display a video file. DCD 200 can include a hierarchy of aspect ratios from the most preferred aspect ratio to the least preferred aspect ratio. One or more of each aspect ratio in the hierarchy of aspect ratios can be associated with displaying a video file that is lower than the minimum video quality level. Equally, DCD 200 can include a hierarchy of CODECs from the most preferred CODEC to the least preferred CODEC. One or more CODECs in the hierarchy of CODEC ratios can be associated with displaying a video file that is lower than the minimum video quality level. Displaying a video file at a level lower than the minimum video quality level can include using an aspect ratio associated with displaying a video file that is lower than the minimum video quality level and / or using a CODEC associated with displaying a video file that is lower than the minimum video quality level to display a video file. Other examples of displaying a video file at a level lower than the minimum video quality level are also possible.

[0233] I. Ninth Exemplary Operation

[0234] Next, Fig.14 A flow chart depicting a set of functions 1400 (or more simply "set 1400") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1400 includes the functions shown in blocks marked with integers 1401 to 1406 (inclusive). The description of set 1400 includes references to the elements shown in other figures described in this specification, but the functions of set 1400 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1400 or any appropriate subset of the functions shown in set 1400. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). As another example, a method may include performing the functions of set 1400 and one or more functions from sets 600, 700, 800, 900, 1000, 1100, 1200, 1300 and / or 1500.

[0235] In some embodiments including performing set 1400, the first computing device includes a DCD, such as DCD 104, 200. In other embodiments including performing set 1400, the first computing device includes a CCD, such as CCD 108, 261. In any embodiment including performing set 1400, where the first computing device includes a DCD or a CCD, a method including performing set 1400 may include performing set 600 prior to performing set 1400. A method including performing set 1400 may, but need not necessarily, include receiving a matrix code.

[0236] Block 1401 includes receiving a content description at one or more processors within a first computing device. The content description includes data describing one or more files and a link to the one or more files. As an example, the content description may include content description 300 or any type of data included in content description 300. The one or more processors may receive the content description from a communication network transceiver connected to the one or more processors via communication network 102. The link to the one or more files may include a URI, such as URI 302. The content description may, but need not, include a link to the one or more files.

[0237] Next, block 1402 includes determining, at the one or more processors, a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level. Examples of conditions described elsewhere in this specification apply here.

[0238] Next, block 1403 includes determining, at the one or more processors, that a second computing device configured to display the one or more files is available for receiving the one or more files. In embodiments where the DCD 104, 200 is a first computing device, the CCD 108, 261 may be a second computing device. In embodiments where the CCD 108, 261 is a first computing device, the DCD 104, 200 may be a second computing device. In some embodiments, the one or more processors may scan for registered computing devices in the vicinity of the first computing device. In these or other embodiments, the one or more processors may reference the registered device data 260 to determine the computing devices registered to the first computing device. As an example, making a determination at block 1403 may include determining that the second computing device is connected to the communication network 102 (e.g., the second computing device is connected to a cellular and / or network).

[0239] Next, block 1404 includes making a determination at the one or more processors that (i) the first computing device has a better network connection than the second computing device to receive the one or more files from a third computing device associated with the link to the one or more files, or (ii) the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link to the one or more files. As an example, making a determination at block 1404 may include determining that the second computing device has a better connection to a cellular network and / or to a wireless network than the first computing device. The processor may perform or request another device (such as a second computing device) to perform a speed test to determine the rate at which the network can transmit data to the first computing device or the second computing device.

[0240] Next, block 1405 includes, in response to making a determination, (1) outputting, by the one or more processors, a request for the one or more files from a third computing device associated with the link, (2) receiving the one or more files at the first computing device, and (3) outputting, by the one or more processors, the one or more files to the second computing device via a direct connection between the first computing device and the second computing device. These functions may be performed if it is determined that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link. The direct connection may include a PAN 110 established between the DCD 104 and the CCD 108.

[0241] Next, block 1406 includes outputting a link to the one or more files to the second computing device via a direct connection between the first computing device and the second computing device. This function is performed if the processor determines that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link. The direct connection may include a PAN 110 established between the DCD 104 and the CCD 108.

[0242] J. Tenth Exemplary Operation

[0243] Next, Fig.15 A flow chart depicting a set of functions 1500 (or more simply "set 1500") is shown, which can be performed according to the exemplary embodiments described in this specification. Set 1500 includes the functions shown in blocks marked with integers 1501 to 1504 (inclusive). The description of set 1500 includes references to the elements shown in other figures described in this specification, but the functions of set 1500 are not limited to being performed only by the referenced elements. Various methods can be performed using all the functions shown in set 1500 or any appropriate subset of the functions shown in set 1500. Any of these methods can be performed using other functions (such as one or more of the other functions described in this specification). As another example, a method may include performing the functions of set 1500 and one or more functions from sets 600, 700, 800, 900, 1000, 1100, 1200, 1300 and / or 1400.

[0244] Block 1501 includes receiving a network resource link and a matrix code at one or more processors. The network resource link includes a link to one or more network resources. The matrix code is encoded with the network resource link.

[0245] In at least some exemplary embodiments, the one or more processors include processor 202. In those embodiments, receiving a network resource link and a matrix code may include processor 202 receiving a network resource link and a matrix code from network transceiver 204 and / or memory 212. In at least some of those embodiments, network transceiver 204 receives the network resource link and the matrix code from a server (such as server 106, 500, 520, 560, file server 114, or media server 116). In at least some of the above embodiments, receiving a network resource link and / or a matrix code may include receiving a web page displayable by a web browser application being executed by the one or more processors. The web page may include a network resource link and / or a matrix code.

[0246] In at least some exemplary embodiments, the network resource link received by the one or more processors may, but need not necessarily, include or be arranged as a URI pointing to a website on the World Wide Web. The one or more processors may provide the network resource link to the memory 212 to store as a link 242. As an example, the URI may include a file transfer protocol (FTP) URI. As another example, the URI may include a hypertext transfer protocol URI, such as an HTTP URI or an HTTPS URI. As yet another example, the network resource link may be arranged as an HTTP URI shown in the link display 1635.

[0247] In at least some exemplary embodiments, the matrix code received at the one or more processors may, but need not, include or be arranged like the matrix code 400, 1650. The one or more processors may provide the matrix code to the memory 212 for storage as the matrix code 244.

[0248] In at least some exemplary embodiments, the one or more processors may, but need not, receive the network resource link and the matrix code while executing an application program for performing diagnostic functions (as described above).

[0249] Next, block 1502 includes determining, at the one or more processors, based at least in part on the network resource link, a condition indicating that the first computing device cannot traverse the network resource link.

[0250] In at least some exemplary embodiments, DCD 200 does not include a browser application executable by processor 202. DCD 200 may not include a browser application due to the amount of memory required to store the browser application (such as 15 megabytes (MB) to 350 MB) or some other reason. According to these embodiments, processor 202 may determine that a network resource link cannot be traversed because a network browser is required to traverse the link and / or DCD 200 does not include a browser.

[0251] In these or other embodiments, DCD 200 may be registered to access network services performed by server 106 without using a browser, such as through FTP, Trivial File Transfer Protocol (TFTP), and / or a script executable by processor 202 to establish a connection with server 106 (e.g., a particular socket at server 106). However, for set 1500, processor 202 may determine that the network resource link is a link to a general network resource that processor 202 cannot traverse, such as a web page available from a server other than the server with which DCD 200 is registered.

[0252] Next, block 1503 includes outputting, by the one or more processors, a matrix code to a first display operably coupled to the one or more processors in response to determining a condition indicating that the first computing device cannot traverse the network resource link. According to at least some embodiments, outputting the matrix code to the first display may include the one or more processors reading file 248 and outputting a data value representing the matrix code to a processor of a video card arranged to be operably connected to display 232.

[0253] Next, block 1504 includes displaying the matrix code on a first display. According to an exemplary embodiment, the first display may include display 232. In at least some of those embodiments, displaying the matrix code may include, for example, Fig. 16C 1650. As an example, the first display may display text describing the matrix code near the matrix code on the display 232, such as the text "Use the supporting computing device to scan the matrix code to obtain a link to Video1.MP4", such as Fig. 16C shown.

[0254] According to at least some embodiments, a companion computing device (such as CCD 108, 261) can scan a matrix code displayed on the first display, decode the matrix code to obtain a network resource link, request the network resource from a computing device associated with the network resource link, receive the network resource, and output the network resource at CCD 108, 261. According to this embodiment, the network resource can include a video file.

[0255] V. Example Display Output

[0256] Fig.16A A display output 1601 is shown displayed on the display 232 according to an exemplary embodiment. The display output 1601 shows a vehicle model year selection 1624, a vehicle brand selection 1626, a vehicle model selection 1628, an engine size selection 1630, and a vehicle identifier 1632. The rectangles in the vehicle model year selection 1624, the vehicle brand selection 1626, the vehicle model selection 1628, and the engine size selection 1630 represent selections that have been made on the display 232. The vehicle identifier 1632 shows the result of a selection made on the display 232 while the display output 1601 is being displayed. The data in the vehicle identifier 1632 can be stored in the memory 212 as the vehicle identifier 250. The display 232 can display the next item selector 1620 and the previous item selector 1622. The next item selector 1620 can be configured to be selectable to cause the processor 202 to output the next display output on the display 232. Previous item selector 1622 may be configured to be selectable to cause processor 202 to output a most recently displayed display output shown on display 232 .

[0257] Next, Fig. 16B A display output 1603 is shown in which a symptom identifier may be selected and / or entered in accordance with an exemplary embodiment. The processor 202 may cause the display output 1603 to be displayed in response to the selection of the secondary selector 1620 while the display output 1601 is displayed on the display 232. The display output 1603 displays a DTC symptom selection 1636, a manual symptom selection 1638, and an RO symptom selection 1640. The selection of the DTC symptom selection 1636 may cause the VCT 206 to send a VDM to request that the vehicle 112 respond with a VDM indicating a DTC set by an ECU in the vehicle 112. The display output 1603 displays a list of DTCs 1537 set in the vehicle 112. The selection of the manual symptom selection 1638 may provide a method for manually entering symptoms exhibited by the vehicle 112. The selection of the RO symptom selection 1640 may cause the processor 202 to determine the symptoms recorded on the RO regarding the vehicle 112. The vehicle identifier entered via display 232 while display output 1601 is shown and the symptom identifier entered via display 232 while display output 1603 is shown can be included in a search request, such as search request 610. The display output can include a selector 1621 that can be selected to cause network transceiver 204 to transmit search request 610.

[0258] Next, Fig. 16CDisplay output 1605 is shown displayable on a display, such as display 232, according to an exemplary embodiment. Processor 202 may cause display output 1605 to be displayed upon receiving a search request response, such as a response to search request 610. Display output 1605 includes vehicle identifier 1632 and symptom identifier 1642. Symptom identifier 1642 shows the result of making a selection on display 232 while display output 1603 is being displayed.

[0259] Display output 1605 includes diagnostic information selectors 1646 that are selectable to cause display 232 to display diagnostic information, such as diagnostic information 644, 652, 672. Diagnostic information selectors 1646 and / or diagnostic information displayable in response to selection of one of diagnostic information selectors 1646 may be received in the search request response. The diagnostic information displayable in response to selection of one of diagnostic information selectors 1646 may include diagnostic information 264. Fig. 16C As shown, the diagnostic information selectors 1646 include diagnostic information selectors 1627, 1629, 1641, 1648 associated with an OEM flowchart, a technical service bulletin, an MP4 video file, and an MP4 video file, respectively. Other examples of diagnostic information associated with one or more diagnostic information selectors 1646 are also possible.

[0260] As an example, the OEM flow chart may include a diagnostic flow chart for a symptom determined by the symptom identifier 1642. The diagnostic information selectors 1641, 1648 are configured as video file requestors. The diagnostic information selector 1641 includes a URI 1653 associated with a video file. The diagnostic information selector 1648 includes a thumbnail of the video file.

[0261] Display output 1605 includes matrix code 1650. Matrix code 1650 may include a visual representation of matrix code 654 included in search request response 650 and / or matrix code 244 stored in memory 212. Display output 1605 also includes network status identifiers 1652, 1654. As an example, network status identifier 1652 may represent a network status identifier 1654 to DCD 200. The status of the network connection, and the network status identifier 1654 may represent the status of the cellular network connection to the DCD 200. Other display outputs shown in the various figures also show the network status identifiers 1652, 1654.

[0262] As another example, a diagnostic information selector displayed on a display output, such as display output 1605, may include a diagnostic information selector associated with a scan tool role identifier that identifies a scan tool role that the DCD 104, 200 may perform. As an example, the scan tool role may include transmitting a VDM to a vehicle connected to the VCT 206. As another example, the scan tool role may include displaying data contained in a VDM sent by the vehicle in response to the VDM. The data may include, for example, a PID and parameters associated with the PID. As yet another example, the scan tool role may include sending a VDM that includes a VDM that performs a function test, a component test, or a reset procedure, a calibration procedure, and / or a reprogramming procedure in the vehicle 112.

[0263] Next, Fig.16D A display output 1607 is shown that may be displayed on a display, such as display 232, according to an exemplary embodiment. The display output 1607 includes a list 1656 of registered devices. The display output 1607 includes selectors 1658, 1659 to select a registered device. A selector, such as subselector 1620, may be selected to cause the DCD 200 to begin connecting to a selected registered device, such as a CCD.

[0264] Next, Fig.16E 1 shows a display output 1609 that may be displayed on a display, such as display 232, according to an exemplary embodiment. Display output 1609 includes information about the status of a registered CCD, such as CCD 261 registered with DCD 200. Fig.16E As shown, the information about the status of the registered CCD may include an indicator 1660 indicating whether the CCD is connected to the DCD. In the case where CCD 261 and DCD 200 are connected, DCD 200 may receive information about the connection of CCD 261 with communication network 102 from CCD 261. Display output 1609 includes an indicator 1662 representing the signal strength of the cellular network received by CCD 261. Display output 1609 includes an indicator 1663 representing the signal strength of the cellular network received by CCD 261. An indicator 1664 of the signal strength of the network.

[0265] The DCD 200 may receive information about the data usage of the CCD 261 from the CCD 261. The display output 1609 includes an indicator 1666 representing the data usage of the CCD 261. As an example, the indicator 1666 may represent how much data the CCD 261 has transmitted and / or received using the cellular network during the service agreement period. The user of the DCD 200 may refer to the indicators 1662, 1664, 1666 to determine whether to have the CCD 261 download a video file. For example, if the download of the video file will be carried out via the cellular network, the user may not want to use the CCD 261 to download the video file. In addition, the processor 202 may execute the CRPI 240 to determine whether to download the video file based on the information used to provide the indicators 1662, 1664, 1666.

[0266] As an example, a service agreement associated with CCD 261 may allow CCD 261 to transmit and / or receive 50 GB of data per month without incurring any additional charges to the owner of CCD 261. During the month in which CCD 261 uses more than 50 GB of data, the owner may be charged an additional fee for each additional GB of data. Downloading a 7 GB video file may be undesirable if CCD 261 must download the video file via a cellular network connection.

[0267] Next, Fig.16F Display output 1611 is shown as displayable on a display, such as display 232, in accordance with an exemplary embodiment. Display output 1611 shows a display window 1668 in which file 248 may be displayed. Fig.16F The thumbnail 256 and at least a portion of the topic description 306 are shown displayed in a display window 1668, along with a visual representation 320 of the play time 318. The display output 1611 includes control selectors 1670, 1672, 1674, 1676, 1678, 1680 that are selectable to cause the processor 202 to control the playback of the video file within the display window 1668. The control selector 1670 is used to play the video file within the display window 1668. The control selector 1672 is used to pause the playback of the video file within the display window 1668. The control selectors 1674, 1676 are used to fast forward the video file at different speeds, and the control selectors 1678, 1680 are used to fast reverse the video file at different speeds. Additionally or alternatively, the DCD 200 may include hardware buttons to enable the processor 202 to control playback of the video file within the display window 1668 , similar to using any of the control selectors 1670 , 1672 , 1674 , 1676 , 1678 , 1680 .

[0268] Next, Figure 16GA display output 1613 displayable on a display, such as display 232, is shown in accordance with an exemplary embodiment. Display output 1613 shows a flow chart 1682. Flow chart 1682 may be a portion of diagnostic information received by DCD 200 from server 106, 500, 520, such as diagnostic information 644, 652 received by DCD 200 in response to sending search request 610 and / or in response to sending a communication indicating that a diagnostic information selector (e.g., diagnostic information selector 1627) has been selected. DCD 200 may display non-video diagnostic information on display 232 for situations where DCD 200 is unable to display video files or where display 232 is unable to simultaneously display video files and non-video diagnostic information.

[0269] Next, Fig.16H A display output 1615 is shown that may be displayed on a display, such as display 232, in accordance with an exemplary embodiment. Display output 1615 shows a variation of display outputs 1611, 1613, as display output 1615 shows display window 1668 with visual representations 320 of thumbnails 256, control selectors 1670, 1672, 1674, 1676, 1678, 1680, and flow chart 1682. DCD 200 may display display output 1615 for situations where a CCD connected to DCD 200 is unable to display a video file at at least a minimum video quality level and DCD 200 is configured to display the video file. Other examples of situations where DCD 200 displays a display output with a video file and non-video diagnostic information are also possible.

[0270] Next, Fig.16I 16 shows a display output 1617 that may be displayed on a display such as display 283 in accordance with an exemplary embodiment. Display output 1617 includes display window 231 displaying file 293. Display output 1617 also includes control selectors similar to control selectors 1670, 1672, 1674, 1676, 1678, 1680. Display output 1617 also includes network status identifiers 235, 237. As an example, network status identifier 235 may represent a network status identifier to CCD 261. The network status identifier 237 may represent the status of the cellular network connection to the CCD 261 .

[0271] Next, Fig.16JA display output 1619 is shown that may be displayed on a display, such as display 283, according to an exemplary embodiment. Display output 1619 includes display window 231 showing file 293 and diagnostic information, such as OEM flowchart 239. Display 283 may also display the content shown in display outputs 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615.

[0272] Next, Figure 16K A display output 1623 is shown that is displayable on a display, such as display 232. Processor 202 may cause display output 1623 to be displayed upon receiving a search request response, such as a response to search request 610. Display output 1623 includes next item selector 1620, previous item selector 1622, vehicle identifier 1632, pointer 1634, symptom identifier 1642, and network status identifiers 1652, 1654, all of which are described elsewhere.

[0273] Display output 1623 includes diagnostic information selectors 1625 that are selectable to cause display 232 to display diagnostic information, such as diagnostic information 644, 652, 672. Diagnostic information selectors 1625 and / or diagnostic information that may be displayed in response to selection of one of diagnostic information selectors 1625 may be received in the search request response. The diagnostic information that may be displayed in response to selection of one of diagnostic information selectors 1625 may include diagnostic information 264. Figure 16K As shown, diagnostic information selectors 1625 include diagnostic information selectors 1627, 1629, 1631, 1633 associated with OEM Flowchart, Technical Service Bulletin, Diagnostic Information #1, and Diagnostic Information #2, respectively. Other examples of diagnostic information associated with one or more of the diagnostic information selectors 1625 are also possible.

[0274] The pointer 1634 can be moved to different locations on the display 232 . Figure 16K A pointer 1634 on the diagnostic information selector 1631 is shown, as well as a link display 1635. Figure 16K , link display 1635 displays the links associated with diagnostic information selector 1631. When pointer 1634 is moved away from diagnostic information selector 1631, link display 1635 stops displaying the links associated with diagnostic information selector 1631. Link display 1635 may provide an indication of URIs and / or network resource links that may be traversed. If DCD 200 can traverse the URIs and / or network resource links displayed by link display 1635, double-clicking diagnostic information selector 1631 may cause processor 202 to send a request for content associated with the URIs and / or network resource links.

[0275] Next, Figure 16L A display output 1645 is shown that may be displayed on a display, such as display 232. Processor 202 may cause display output 1645 to be displayed upon receiving a search request response, such as a response to search request 610. Display output 1645 includes next item selector 1620, previous item selector 1622, vehicle identifier 1632, pointer 1634, symptom identifier 1642, and network status identifiers 1652, 1654, all of which are described elsewhere.

[0276] Display output 1645 includes diagnostic information selectors 1647 that can be selected to cause display 232 to display diagnostic information, such as diagnostic information 644, 652, 672. Diagnostic information selectors 1647 and / or diagnostic information displayable in response to selection of one of diagnostic information selectors 1647 can be received in the search request response. The diagnostic information displayable in response to selection of one of diagnostic information selectors 1647 can include diagnostic information 264. Figure 16L As shown, the diagnostic information selectors 1647 include diagnostic information selectors 1627, 1629 associated with an OEM flowchart and a technical service bulletin, respectively. Other examples of diagnostic information associated with one or more diagnostic information selectors 1647 are also possible.

[0277] Display output 1645 includes matrix codes 1649, 1651. Matrix codes 1649, 1651 may encode links, such as web resource links. As an example, matrix code 1649 may encode links, such as links displayed as links 1635. As another example, matrix code 1651 may encode links, such as links displayed as links. Fig. 16C URI 1653 shown in .

[0278] Display output 1623 may be displayed in connection with an exemplary embodiment in which DCD 200 is able to traverse network resource links, such as links encoded in matrix codes 1649, 1651. Display output 1645 may be displayed in connection with an exemplary embodiment in which processor 202 determines that DCD 200 is unable to traverse network resource links, such as links encoded in matrix codes 1649, 1651. Display outputs 1623, 1645 may be displayed in connection with other exemplary embodiments.

[0279] VI. Exemplary Vehicles

[0280] A vehicle, such as vehicle 112, is a mobile machine that can be used to transport one or more persons and / or cargo. A vehicle can, but need not be, driven and / or otherwise guided along a path (e.g., paved roads or otherwise) on land, water, air, and / or in outer space. A vehicle can, but need not be, wheeled, tracked, railed, and / or skied. A vehicle can, but need not be, include an automobile, a motorcycle, an all-terrain vehicle (ATV) as defined by ANSI / SVIA-1-2007, a snowmobile, a personal watercraft (e.g., The vehicle may include, but is not required to include and / or use any suitable voltage and / or current source (such as a battery, an alternator, a fuel cell, etc.) that provides any suitable current and / or voltage (such as about 12 volts, about 42 volts, etc.). The vehicle may, but is not required to include and / or use any system and / or engine to provide its mobility. These systems and / or engines may include vehicle components that use fossil fuels (such as gasoline, natural gas, propane, etc.), electricity (such as electricity generated by batteries, magnets, fuel cells, solar cells, etc.), wind power and hybrid power and / or combinations thereof. The vehicle may, but is not required to include an electronic control unit (ECU), a data link connector (DLC), and a vehicle communication bus connecting the DLC and the ECU. The vehicle may be configured to operate as an autonomous vehicle.

[0281] Some vehicles can be identified by characteristics of the vehicle, such as characteristics that indicate when the vehicle was built (e.g., vehicle year), who built the vehicle (e.g., vehicle make), a marketing name associated with the vehicle (e.g., vehicle model name, or more simply "model"), and features of the vehicle (e.g., engine type). This description uses the abbreviations YMME and / or Y / M / M / E, where each letter represents the model year, vehicle make, vehicle model name, and engine type, respectively, in the order shown. This specification uses the abbreviations YMM and / or Y / M / M, where each letter represents the model year, vehicle make, and vehicle model name, respectively, in the order shown. An exemplary Y / M / M / E shown in the accompanying drawings is 2018 / Toyota / Camry / 4Cyl, where "2018" represents the model year of the vehicle, "Toyota" represents the name of the vehicle manufacturer, Toyota Motor Corporation of Aichi, Japan, "Camry" represents the model of the vehicle manufactured by the manufacturer, and "4Cyl" represents the engine type in the vehicle (i.e., a four-cylinder internal combustion engine). Those skilled in the art will appreciate that other features may be used to identify a vehicle in addition to or as an alternative to “engine type.” These other features may be identified in various ways, such as a Regular Production Option (RPO) code, such as that defined by General Motors of Detroit, Michigan.

[0282] Some vehicles, such as automobiles, are associated with a unique vehicle identification number (VIN). Some VINs include 17 alphanumeric characters. At least some characters of some VINs represent YMME or YMM. In some cases, a vehicle includes a one-dimensional barcode indicating the VIN associated with the vehicle.

[0283] A vehicle communication bus within a vehicle may include one or more conductors (e.g., copper wire conductors) and / or may be wireless. As an example, a vehicle communication bus may include one or two conductors for transmitting vehicle data messages in accordance with a vehicle data message (VDM) protocol. The VDM protocol may include the Society of Automotive Engineers (SAE) J1850 (PWM or VPW) VDM protocol, the International Organization for Standardization (ISO) 16764-4 Controller Area Network (CAN) VDM protocol, the ISO 9141-2 K-Line VDM protocol, the ISO 14230-4 KWP2000 K-Line VDM protocol, or some other currently defined protocol for communicating within a vehicle.

[0284] The DLC may include an on-board diagnostic (OBD) connector, such as an OBD II connector. The OBD II connector may include slots for holding up to 16 connector terminals, but may include a different number of slots or no slots at all. As an example, the DLC connector may include an OBD II connector compliant with SAE J1962 specification, such as connector 16M, part number 12110252, available from Aptiv LLC of Dublin, Ireland. The DLC may include conductor terminals connected to conductors in the vehicle. For example, the DLC may include connector terminals connected to conductors that are respectively connected to the positive and negative poles of the vehicle battery. The DLC may include one or more conductor terminals on a conductor connected to a vehicle communication bus so that the DLC is operably connected to the ECU.

[0285] An ECU may control various aspects of vehicle operation and / or components within the vehicle. For example, an ECU may include a powertrain (PT) system ECU, an engine control module (ECM) ECU, a supplemental inflatable restraint (SIR) system (i.e., airbag system) ECU, an entertainment system ECU, or some other ECU. An ECU may receive inputs (e.g., sensor inputs), control output devices (e.g., solenoids), generate vehicle data messages (VDMs, such as VDMs based on received inputs or controlled outputs), and set diagnostic trouble codes (DTCs) to a particular state (e.g., active or historical).

[0286] VII. Conclusion

[0287] It should be understood that the arrangements described herein and / or shown in the accompanying drawings are for illustrative purposes only and are not meant to be limiting. Therefore, those skilled in the art will understand that other arrangements and elements (e.g., machines, interfaces, functions, sequences and / or groupings of functions) may be used instead, and some elements may be omitted entirely. In addition, the various functions performed by one or more elements described and / or shown in the accompanying drawings may be performed by a processor executing computer-readable program instructions or by a combination of hardware, firmware and / or software. For purposes of this description, executing a CRPI contained in certain computer-readable media to perform certain functions may include executing all program instructions of such CRPI or only a portion of such CRPI.

[0288] Although various aspects and embodiments are described herein, other aspects and embodiments are also apparent to those skilled in the art. The various aspects and embodiments disclosed herein are intended to illustrate the problem, not to limit, the true scope being indicated by the claims and all equivalents in these claims. It should also be understood that the terms used herein are only used to describe specific embodiments and are not meant to be limiting.

[0289] In this specification, the articles "a," "an," and "the" are used to introduce elements and / or functions of exemplary embodiments. Use of these terms intends that there are one or more of the introduced elements and / or functions.

[0290] In this specification, the purpose of using the term "and / or" in a list of at least two elements or functions, and the use of the terms "at least one", "at least one of the following", "one or more" or "one or more of the following" immediately before a list of at least two elements or functions, is to cover every embodiment that independently includes the listed components or functions and every embodiment that includes a combination of the listed components or functions. For example, an embodiment described as including A, B and / or C, or at least one of A, B and C, or at least one of A, B and C, or at least one of A, B or C, or at least one of A, B or C, or one or more of A, B and C, or one or more of A, B and C, or one or more of A, B or C, or one or more of A, B or C, or one or more of A, B or C is intended to encompass each of the following possible embodiments: (i) an embodiment including A but not B or C, (ii) an embodiment including B but not A or C, (iii) an embodiment including C but not A or B, (iv) an embodiment including A and B but not C, (v) an embodiment including A and C but not B, (vi) an embodiment including A, B and C. For each embodiment including component or function A, each embodiment may include one A or multiple A. For each embodiment including component or function B, each embodiment may include one B or multiple B. For each embodiment including component or function C, each embodiment may include one C or multiple C. The use of ordinal numbers such as "first", "second", "third", etc. is intended to distinguish corresponding elements and does not represent a particular order of these elements unless the context of the use of these terms clearly indicates. The use of the symbol "$" as a prefix to a number indicates that the number is a hexadecimal number.

[0291] Embodiments of the present disclosure may therefore be directed to one of the example embodiments (EEE) listed below.

[0292] EEE 1 is a method comprising: receiving, at one or more processors, a content description and a matrix code, wherein the content description comprises data describing one or more files, wherein each of the one or more files comprises a computer-readable file, and wherein the matrix code is encoded with a link to the one or more files; determining, at the one or more processors, based at least in part on the content description, a condition indicating that a first computing device is unable to display the one or more files at at least a minimum quality level; in response to determining the condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level, outputting, by the one or more processors, the matrix code to a first display operably coupled to the one or more processors; and displaying the matrix code on the first display.

[0293] EEE 2 is the method of EEE 1, further comprising: after determining a condition indicating that the first computing device cannot display the one or more files at at least a minimum quality level, outputting, by the one or more processors, a file request symbol to a first display; displaying the file request symbol on the first display; in response to a selection of the file request symbol, transmitting a request for the one or more files from a remote device associated with a link to the one or more files; in response to the request for the one or more files, receiving the one or more files at the one or more processors; and outputting, by the one or more processors, the one or more files to a second display device, wherein the first computing device includes the one or more processors and the first display.

[0294] EEE 3 is the method of EEE 2, further comprising: displaying the one or more files on a second display device, wherein displaying the one or more files includes displaying information related to a maintenance function; and maintaining the vehicle by performing the maintenance function, wherein performing the maintenance function includes: removing a vehicle component from the vehicle, installing a vehicle component to the vehicle, diagnosing whether a vehicle component on the vehicle is defective, adjusting a vehicle component on the vehicle, recalibrating a vehicle component on the vehicle, resetting a vehicle component on the vehicle, setting a target near the vehicle, or reprogramming a vehicle component on the vehicle.

[0295] EEE 4 is the method of EEE 2 or 3, wherein the second display device is located in a vehicle component affixed within a passenger compartment of the vehicle.

[0296] EEE 5 is the method of EEE 2 or 3, wherein the second display device comprises a smart phone or a tablet device.

[0297] EEE 6 is the method of any one of EEEs 1 to 5, wherein the one or more files include a video file, and wherein the content description includes data indicating one or more of: a uniform resource indicator of the video file, a file name of the video file, a content description of the video file, a size of the video file, a resolution of the video file, a compression format of the video file, a file type extension of the video file, a thumbnail of a portion of the video file, an encoding bit rate of the video file, or a playback time of the video file.

[0298] EEE 7 is a method of any one of EEEs 1 to 5, wherein the content description includes data indicating one or more of: (i) a uniform resource indicator associated with at least one of the one or more files, (ii) a file name of at least one of the one or more files, (iii) a size of at least one of the one or more files, (iv) a resolution of at least one of the one or more files, (v) a compression format of at least one of the one or more files, (vi) a file type extension of at least one of the one or more files, (vii) a thumbnail of at least one of the one or more files, (viii) an encoding bit rate of at least one of the one or more files, or (ix) a playback time of at least one of the one or more files.

[0299] EEE 8 is the method of any one of EEEs 1 to 7, wherein the first computing device includes the one or more processors and a first display, and wherein determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level includes the one or more processors determining that the first computing device is not configured to display video files.

[0300] EEE 9 is the method of EEE 8, further comprising: after determining that the first computing device is not configured to display the one or more files, outputting, by the one or more processors, a file request character to a first display; displaying the file request character on the first display; in response to a selection of the file request character, transmitting a request for the one or more files from a remote device associated with a link to the one or more files; in response to the request for the one or more files, receiving the one or more files at the one or more processors; and outputting, by the one or more processors, the one or more files to a second display device, wherein the first computing device includes the one or more processors and the first display.

[0301] EEE 10 is the method of EEE 1, wherein the one or more files include a video file, wherein the first computing device includes the one or more processors and a first display, and wherein determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level includes the one or more processors determining that a communication network used by the first computing device is insufficient to transmit the video file for continuous display from a beginning of the video file to an end of the video file when playback of the video file begins at the first computing device, or is insufficient to transmit a portion of the video file within a threshold time for continuous display from a beginning of the video file to an end of the video file after playback of the video file begins at the first computing device.

[0302] EEE 11 is the method of EEE 1, further comprising: after determining a condition indicating that the first computing device cannot display the one or more files at at least a minimum quality level, outputting, by the one or more processors, a file request symbol to a first display, wherein the file request symbol is selectable to cause the one or more processors to request the one or more files to be displayed on the first display; displaying the file request symbol on the first display; in response to selection of the file request symbol, transmitting a request for the one or more files from a remote device associated with a link to the one or more files; in response to the request for the one or more files, receiving the one or more files at the one or more processors; outputting, by the one or more processors, the one or more files to the first display; and displaying the one or more files on the first display at a level below the minimum quality level.

[0303] EEE 12 is the method of EEE 1, wherein the second computing device includes the one or more processors and the first display, wherein the first computing device is registered with the second computing device, wherein determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level occurs in response to the one or more processors determining that the second computing device is unable to display the one or more files at at least a quality level at which the first display can display the one or more files, wherein the second computing device is configured to transmit the one or more files to the first computing device, and wherein the first computing device is configured to receive the one or more files from the second computing device.

[0304] EEE 13 is the method of EEE 12, further comprising: outputting, by the one or more processors, a file request character to a first display, wherein the file request character is selectable so that the one or more processors request the one or more files to be displayed on the first display; displaying the file request character on the first display; in response to selection of the file request character, transmitting a request for the one or more files from a remote device associated with a link to the one or more files; in response to the request, receiving the one or more files at the one or more processors; outputting, by the one or more processors, the one or more files to the first display; and displaying the one or more files on the first display.

[0305] EEE 14 is the method of EEE 12, further comprising: outputting, by the one or more processors, a file request symbol to a first display; displaying the file request symbol on the first display; transmitting, in response to a selection of the file request symbol, a request for the one or more files from a remote device associated with a link to the one or more files; receiving, at the one or more processors, the one or more files in response to the request for the one or more files; and outputting, by the one or more processors, the one or more files to the first computing device.

[0306] EEE 15 is the method of EEE 12, further comprising: outputting, by the one or more processors, a file request character to a first display, wherein the file request character is selectable to cause the one or more processors to request the one or more files to be displayed on the first display; displaying the file request character on the first display; in response to selection of the file request character, transmitting a request for the one or more files from a remote device associated with a link to the one or more files; receiving the one or more files at the one or more processors in response to the request for the one or more files; outputting, by the one or more processors, the one or more files to the first display; and displaying the one or more files on the first display at a level below a minimum quality level.

[0307] EEE 16 is the method of EEE 1, wherein the second computing device includes the one or more processors and the first display, wherein the first computing device is registered with the second computing device, wherein determining a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level includes the one or more processors determining that the second computing device is unable to communicate with the first computing device, wherein the second computing device is configured to transmit the one or more files to the first computing device, and wherein the first computing device is configured to receive the one or more files from the second computing device.

[0308] EEE 17 is the method of EEE 1, further comprising: determining at the one or more processors that a first computing device can communicate with a second computing device, wherein the first computing device includes the one or more processors and a first display, and wherein the second computing device includes a second display and is registered with the first computing device; and transmitting, by the first computing device, a link to the one or more files to the second computing device.

[0309] EEE 18 is the method of any one of EEEs 1 to 17, wherein the content description comprises a plurality of content descriptions, wherein the matrix code comprises a plurality of matrix codes, wherein the plurality of matrix codes comprises a separate matrix code for each of the plurality of content descriptions, the method further comprising: receiving content sequence information at the one or more processors, wherein displaying the matrix code comprises displaying the matrix code according to the content sequence information.

[0310] EEE 19 is the method of EEE 1, wherein receiving the content description and the matrix code comprises receiving a web page, the web page comprising the content description and the matrix code, wherein the content description comprises a link within the web page, and wherein determining the condition comprises determining that the one or more processors cannot traverse the link within the web page.

[0311] EEE 20 is a computing device comprising: one or more processors; and a non-transitory computer-readable medium configured to store at least executable instructions, wherein the executable instructions, when executed by the one or more processors, cause the computing device to perform functions, each of which comprises: receiving a content description and a matrix code at the one or more processors, wherein the content description comprises data describing one or more files, wherein each of the one or more files comprises a computer-readable file, and wherein the matrix code is encoded with a link to the one or more files; determining, at the one or more processors, based on the content description, a condition indicating that a first computing device is unable to display the one or more files at at least a minimum quality level; in response to determining the condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level, outputting, by the one or more processors, the matrix code to a first display operably coupled to the one or more processors; and displaying the matrix code on the first display.

[0312] EEE 21 is a computing system comprising: a computing device; and a computer readable medium storing program instructions, the program instructions causing a set of functions to be performed when executed by the computing device, the set of functions comprising a method according to any one of EEEs 1 to 19.

[0313] EEE 22 is a non-transitory computer-readable medium configured to store at least executable instructions, wherein the executable instructions, when executed by one or more processors of a computing device, cause the computing device to perform functions, each of which includes: receiving a content description and a matrix code at the one or more processors, wherein the content description includes data describing one or more files, wherein each of the one or more files includes a computer-readable file, and wherein the matrix code is encoded with a link to the one or more files; determining at the one or more processors a condition indicating that a first computing device is unable to display the one or more files at at least a minimum quality level based on the content description; in response to determining the condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level, outputting, by the one or more processors, the matrix code to a first display operably coupled to the one or more processors; and displaying the matrix code on the first display.

[0314] EEE 23 is a computer readable medium storing program instructions which, when executed by a computing device, cause a set of functions to be performed, the set of functions comprising a method according to any one of EEEs 1 to 19.

[0315] EEE 24 is a method comprising: receiving, at one or more processors within a first computing device, a content description, wherein the content description comprises data describing one or more files and a link to the one or more files; determining, at the one or more processors, a condition indicating that the first computing device is unable to display the one or more files at at least a minimum quality level; determining, at the one or more processors, that a second computing device configured to display the one or more files is available to receive the one or more files; making a determination, at the one or more processors, that the first computing device has a better network connection than the second computing device to receive the one or more files from a third computing device associated with the link, or that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link the one or more files from a third computing device associated with the link; if it is determined that the first computing device has a better network connection than the second computing device to receive the one or more files from the third computing device associated with the link, in response to making the determination, outputting, by the one or more processors, a request for the one or more files from the third computing device associated with the link, receiving the one or more files at the first computing device, and outputting, by the one or more processors, the one or more files to the second computing device via a direct connection between the first computing device and the second computing device, otherwise, if it is determined that the second computing device has a better network connection than the first computing device to receive the one or more files from the third computing device associated with the link, outputting the link to the second computing device via the direct connection between the first computing device and the second computing device.

[0316] EEE 25 is the method of EEE 24, wherein determining the condition is based on at least a portion of the content description.

[0317] EEE 26 is the method of EEE 24 or 25, wherein the second computing device is located in a vehicle component affixed within a passenger compartment of the vehicle.

[0318] EEE 27 is the method of EEE 24 or 25, wherein the second computing device comprises a smart phone or a tablet device.

[0319] EEE 28 is the method of any one of EEs 24 to 27, wherein the third computing device comprises a server computing device configured to transmit the one or more files in response to the request for the one or more files.

[0320] EEE 29 is the method of any one of EEEs 24 to 28, wherein the one or more files include a video file, and wherein the content description includes data indicating one or more of the following: a uniform resource indicator of the video file, a file name of the video file, a content description of the video file, a size of the video file, a resolution of the video file, a compression format of the video file, a file type extension of the video file, a thumbnail of a portion of the video file, an encoding bit rate of the video file, or a playback time of the video file.

[0321] EEE 30 is the method of any one of EEEs 24 to 28, wherein the content description includes data indicating one or more of: (i) a uniform resource indicator associated with at least one of the one or more files, (ii) a file name of at least one of the one or more files, (iii) a size of at least one of the one or more files, (iv) a resolution of at least one of the one or more files, (v) a compression format of at least one of the one or more files, (vi) a file type extension of at least one of the one or more files, (vii) a thumbnail of at least one of the one or more files, (viii) an encoding bit rate of at least one of the one or more files, or (ix) a playback time of at least one of the one or more files.

[0322] EEE 31 is a computing system comprising: a computing device; and a computer readable medium storing program instructions, the program instructions causing a set of functions to be performed when executed by the computing device, the set of functions comprising a method according to any one of EEEs 24 to 30.

[0323] EEE 32 is a computer readable medium storing program instructions which, when executed by a computing device, cause a set of functions to be performed, the set of functions comprising a method according to any one of EEEs 24 to 30.

[0324] EEE 33 is a method comprising: receiving, at one or more processors, a network resource link and a matrix code, wherein the network resource link comprises a link to one or more network resources, and wherein the matrix code is encoded with the network resource link; determining, at the one or more processors, a condition indicating that a first computing device cannot traverse the network resource link based at least in part on the network resource link; in response to determining the condition indicating that the first computing device cannot traverse the network resource link, outputting, by the one or more processors, the matrix code to a first display operably coupled to the one or more processors; and displaying the matrix code on the first display.

[0325] EEE 34 is the method of EEE 33, wherein the first computing device is located within a vehicle component affixed within a passenger compartment of the vehicle.

[0326] EEE 35 is the method of EEE 33, wherein the first computing device comprises a smart phone or a tablet device.

[0327] EEE 36 is the method of any one of EEEs 33 to 35, further comprising: determining at the one or more processors that the first computing device can communicate with a second computing device configured to traverse a network resource link, wherein the first computing device includes the one or more processors and a first display, and wherein the second computing device includes a second display and is registered with the first computing device; and transmitting, by the first computing device, the network resource link to the second computing device.

[0328] EEE 37 is the method of any one of EEEs 33 to 36, wherein receiving the network resource link and the matrix code comprises receiving a web page, the web page comprising the network resource link and the matrix code.

[0329] EEE 38 is a computing system comprising: a computing device; and a computer readable medium storing program instructions, the program instructions causing a set of functions to be performed when executed by the computing device, the set of functions comprising a method according to any one of EEEs 33 to 37.

[0330] EEE 39 is a computer readable medium storing program instructions which, when executed by a computing device, cause a set of functions to be performed, the set of functions comprising a method according to any one of EEEs 33 to 37.

Claims

1. A method comprising: receiving, at one or more processors of a first computing device, a network resource link and a matrix code, wherein the network resource link includes links to one or more network resources and the matrix code is encoded with the network resource link; determining, at the one or more processors, a condition indicating that the first computing device cannot traverse the network resource link based at least in part on the network resource link; In response to determining a condition indicating that the first computing device cannot traverse the network resource link, outputting, by the one or more processors, a matrix code to a first display operatively coupled to the one or more processors; as well as The matrix code is displayed on the first display.

2. The method according to claim 1, further comprising: Scanning the matrix code displayed on the first display by the supporting computing device; The matrix code is decoded by the supporting computing device to obtain the network resource link; Requesting, by the companion computing device, the one or more network resources from a computing device associated with the network resource link; receiving, at a companion computing device, the one or more network resources; as well as The one or more network resources are output on a display at a companion computing device.

3. The method according to claim 2, wherein: Companion computing devices include smartphones, tablet devices, wearable computing devices, or personal computers.

4. The method according to claim 2, wherein: The one or more network resources include web pages or video files.

5. The method according to claim 1, wherein: A web resource link includes or is arranged as a URI pointing to a website on the World Wide Web.

6. The method according to claim 5, wherein: The URI includes a File Transfer Protocol (FTP) URI or a Hypertext Transfer Protocol URI.

7. The method according to claim 1, wherein: The first computing device is configured as a diagnostic computing device including the one or more processors, and Determining a condition indicating that the first computing device is unable to traverse the network resource link includes determining that a network browser is required to traverse the network resource link and / or diagnosing that the computing device does not include a network browser.

8. The method according to claim 1, wherein: The first computing device is configured as a diagnostic computing device, The diagnostic computing device is registered to access the web service executed by the server without using a browser, and Determining the condition includes determining that the network resource link is a link to a general network resource available from a server other than the server with which the diagnostic computing device is registered.

9. The method of claim 1, wherein outputting the matrix code to the first display comprises outputting data values ​​representing the matrix code to a processor of a video card arranged in operative connection with the first display.

10. The method according to claim 1, further comprising: Computer readable program instructions are executed at the one or more processors to read a Web Services Description Language (WSDL) file to access a web service from a server, wherein a web resource link and a matrix code are received from the server.

11. The method according to claim 1, further comprising: performing diagnostic functions related to the vehicle or an electronic control unit in the vehicle on the first computing device, The performing of the diagnostic function includes requesting a server that provides a network resource link and a matrix code to the first computing device to perform a network service. 12 . The method of claim 11 , wherein performing diagnostic functions further comprises sending a communication to an electronic control unit to obtain a diagnostic trouble code or a parameter corresponding to a parameter identifier.

13. The method of claim 12, wherein the communication with the electronic control unit is arranged according to a vehicle data message protocol.

14. The method according to claim 11, further comprising: Non-diagnostic functions are performed via the first computing device, wherein the non-diagnostic functions include programming functions, calibration functions, and / or adjustment functions.

15. The method according to claim 1, further comprising: identifying a vehicle on the first computing device; Identify symptoms applicable to the vehicle; sending a vehicle and symptom-based search request from the first computing device to a server; as well as A response to the search request is received at the first computing device, the response including a network resource link and a matrix code.

16. The method of claim 1, wherein receiving the network resource link and the matrix code comprises receiving the network resource link and the matrix code from a network transceiver or a non-transitory memory within the first computing device.

17. The method according to claim 1, further comprising: A web browser application is executed at the one or more processors, wherein: Receiving the web resource link and the matrix code includes receiving a web page capable of being displayed by a web browser application, and The web page includes links to web resources and / or matrix codes.

18. The method according to claim 17, further comprising: The web page is displayed on the first display.

19. The method of claim 1, wherein the one or more network resources include video files.

20. A computing device comprising: one or more processors; as well as A non-transitory computer readable memory containing executable instructions, wherein the executable instructions, when executed by the one or more processors, cause a computing device to perform a method according to any one of claims 1 to 19.

21. A computing device comprising: one or more processors; as well as A non-transitory computer-readable memory containing executable instructions, wherein the executable instructions, when executed by the one or more processors, cause the computing device to perform the following functions, including: receiving, at the one or more processors, a network resource link and a matrix code, wherein the network resource link includes a link to one or more network resources and the matrix code is encoded with the network resource link; determining, at the one or more processors, based at least in part on the network resource link, a condition indicating that the computing device cannot traverse the network resource link; outputting, by the one or more processors, a matrix code to a first display operatively coupled to the one or more processors in response to determining a condition indicating that the computing device is unable to traverse the network resource link; and The matrix code is displayed on the first display.

22. A non-transitory computer readable memory containing executable instructions, wherein the executable instructions, when executed by one or more processors of a computing device, cause the computing device to perform the method according to any one of claims 1 to 19.

23. A non-transitory computer readable memory containing executable instructions, wherein the executable instructions, when executed by one or more processors of a computing device, cause the computing device to perform the following functions, comprising: receiving, at the one or more processors, a network resource link and a matrix code, wherein the network resource link includes a link to one or more network resources and the matrix code is encoded with the network resource link; determining, at the one or more processors, based at least in part on the network resource link, a condition indicating that the computing device cannot traverse the network resource link; outputting, by the one or more processors, a matrix code to a first display operatively coupled to the one or more processors in response to determining a condition indicating that the computing device is unable to traverse a network resource link; as well as The matrix code is displayed on the first display.