Method and system for displaying content using matrix code

文档序号:278246 发布日期:2021-11-19 浏览:12次 中文

阅读说明:本技术 使用矩阵代码显示内容的方法和系统 (Method and system for displaying content using matrix code ) 是由 P·S·默根 R·S·布罗佐维奇 于 2019-11-22 设计创作,主要内容包括:一种方法包括在一个或多个处理器处接收内容描述和矩阵代码。内容描述包括描述一个或多个计算机可读文件的数据。矩阵代码被编码有指向该一个或多个文件的链接。该方法包括该一个或多个处理器确定指示第一计算设备无法以至少最低品质水平显示文件的情况。确定至少部分地基于内容描述。该方法包括处理器将矩阵代码输出到与该一个或多个处理器可操作地耦连的第一显示器。响应于确定指示第一计算设备无法以至少最低品质水平显示该一个或多个文件的情况而输出矩阵代码。此外,该方法包括在第一显示器上显示矩阵代码。(A method includes receiving, at one or more processors, a content description and a 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 a condition indicating that the first computing device is unable to display the file at least the minimum level of quality. The determination is based at least in part on the content description. The method includes the processor outputting the matrix code to a first display operatively coupled to the one or more processors. The matrix code is output in response to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality. Further, the method includes displaying the matrix code on the first display.)

1. 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, wherein the matrix code is encoded with links 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 the first computing device is unable to display the one or more files at least a minimum level of quality;

responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and

the matrix code is displayed on a first display.

2. The method of claim 1, further comprising:

outputting, by the one or more processors, a file request to a first display after determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

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 a second display device, wherein the first computing device includes the one or more processors and the first display.

3. The method of claim 2, wherein the second display device is within a vehicle component affixed within a passenger compartment of the vehicle.

4. The method of claim 2, wherein the second display device comprises a smartphone or a tablet device.

5. The method of claim 2, further comprising:

displaying the one or more documents on a second display device, wherein displaying the one or more documents includes displaying information related to a maintenance function; and

by performing a maintenance function to maintain the vehicle,

wherein, executing the maintenance function comprises: removing a vehicle component from a vehicle, installing a vehicle component onto a vehicle, diagnosing whether a vehicle component on a vehicle is defective, adjusting a vehicle component on a vehicle, recalibrating a vehicle component on a vehicle, resetting a vehicle component on a vehicle, setting a target near a vehicle, or reprogramming a vehicle component on a vehicle.

6. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

wherein the one or more files include a video file, an

Wherein the content description comprises data indicative of one or more of: a uniform resource indicator for a video file, a file name for a video file, a content description for a video file, a size for a video file, a resolution for a video file, a compression format for a video file, a file type extension for a video file, a thumbnail for a portion of a video file, an encoding bit rate for a video file, or a play time for a video file.

7. The method of claim 1, wherein the content description comprises data indicating one or more of: (i) a uniform resource indicator associated with at least one of the one or more files, (ii) a filename 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 compressed 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 encoded bitrate of at least one of the one or more files, or (ix) a play time of at least one of the one or more files.

8. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

wherein the first computing device comprises the one or more processors and a first display, an

Wherein determining that the condition indicating that the first computing device is unable to display the one or more files at the at least minimum level of quality comprises the one or more processors determining that the first computing device is not configured to display video files.

9. The method of claim 8, further comprising:

outputting, by the one or more processors, a file requestor to the first display after determining that the first computing device is not configured to display the one or more files;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

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 a second display device;

wherein the first computing device includes the one or more processors and a first display.

10. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

wherein the one or more files include a video file,

wherein the first computing device comprises the one or more processors and a first display, an

Wherein determining that the one or more files cannot be displayed at the at least lowest quality level is indicative of the first computing device comprising the one or more processors determining that a communication network used by the first computing device is insufficient to transmit the video file to display the video file continuously from a start of the video file to an end of the video file when playback of the video file at the first computing device begins, or to transmit a portion of the video file within a threshold time to display the video file continuously from the start of the video file to the end of the video file when playback of the video file at the first computing device begins.

11. The method of claim 1, further comprising:

after determining that the first computing device is indicated as being unable to display the one or more files at the at least minimum level of quality, outputting, by the one or more processors, a file requestor to a first display, wherein the file requestor is selectable to cause the one or more processors to request the one or more files for display on the first display;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

receiving, at the one or more processors, the one or more files in response to the request for the one or more files;

outputting, by the one or more processors, the one or more files to a first display; and

displaying the one or more documents on the first display at a level below the minimum quality level.

12. The method of claim 1, wherein the first and second light sources are selected from the group consisting of a plurality of light sources,

wherein the second computing device comprises the one or more processors and the first display,

wherein the first computing device is registered with the second computing device,

wherein determining that the condition indicative of the first computing device being unable to display the one or more files at the at least lowest level of quality 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 a level of quality at which at least the first display is able to display the one or more files,

wherein the second computing device is configured to transfer the one or more files to the first computing device, an

Wherein the first computing device is configured to receive the one or more files from the second computing device.

13. The method of claim 12, further comprising:

outputting, by the one or more processors, a file requestor to a first display, wherein the file requestor is selectable to cause the one or more processors to request the one or more files for display on the first display;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

receiving, at the one or more processors, the one or more files in response to the request;

outputting, by the one or more processors, the one or more files to a first display; and

displaying the one or more files on a first display.

14. The method of claim 12, further comprising:

outputting, by the one or more processors, a file requestor to a first display;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

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 a first computing device.

15. The method of claim 12, further comprising:

outputting, by the one or more processors, a file requestor to a first display, wherein the file requestor is selectable to cause the one or more processors to request the one or more files for display on the first display;

displaying a file request on a first display;

transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor;

receiving, at the one or more processors, the one or more files in response to the request for the one or more files;

outputting, by the one or more processors, the one or more files to a first display; and

displaying the one or more documents on the first display at a level below the minimum quality level.

16. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

wherein the second computing device comprises the one or more processors and the first display,

wherein the first computing device is registered with the second computing device,

wherein determining that the condition indicating that the first computing device is unable to display the one or more files at the at least minimum level of quality comprises 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 transfer the one or more files to the first computing device, an

Wherein the first computing device is configured to receive the one or more files from the second computing device.

17. The method of claim 1, further comprising:

determining, at the one or more processors, that a first computing device is capable of communicating 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 to the second computing device, a link to the one or more files.

18. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

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 comprises the following steps:

receiving content sequence information at the one or more processors,

wherein displaying the matrix code comprises displaying the matrix code according to the content order information.

19. The method of claim 1, wherein the first and second light sources are selected from the group consisting of,

wherein receiving the content description and the matrix code comprises receiving a web page comprising the content description and the matrix code,

wherein the content description includes links within the web page, an

Wherein determining the condition comprises determining that the one or more processors are unable to traverse a link within a web page.

20. A computing device, comprising:

one or more processors; and

a non-transitory computer-readable medium having stored thereon at least executable instructions, wherein the executable instructions, when executed by the one or more processors, cause a computing device to perform functions comprising:

receiving, at the 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, wherein the matrix code is encoded with links to the one or more files;

determining, at the one or more processors, based on the content description, a condition indicating that the first computing device is unable to display the one or more files at least a minimum level of quality;

responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and

the matrix code is displayed on a first display.

21. A non-transitory computer-readable medium having stored thereon 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 comprising:

receiving, at the 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, wherein the matrix code is encoded with links to the one or more files;

determining, at the one or more processors, based on the content description, a condition indicating that the first computing device is unable to display the one or more files at least a minimum level of quality;

responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and

the matrix code is displayed on a first display.

22. 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 links 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 least a minimum level of quality;

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;

determining, 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 a 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, at the first computing device, the one or more files, 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 a third computing device associated with the link, outputting the link to the second computing device via a direct connection between the first computing device and the second computing device.

23. The method of claim 22, wherein the condition is determined based on at least a portion of a content description.

24. 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, wherein 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 first computing device cannot traverse the network resource link;

responsive to determining that the condition indicating that the first computing device is unable to traverse the network resource link, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and

the matrix code is displayed on a first display.

Background

A technician servicing a vehicle may refer to the service information in order to properly and more efficiently service the vehicle than a technician not referring to the service 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 arise when a technician attempts to electronically display maintenance information on a display, particularly when the maintenance information is stored in a video format outside of a computing device used by the technician to search for maintenance information or maintenance information accessed through a link within a web page. As an example, a technician may search for off-board maintenance information using a computing device that is not configured to display video and/or is not configured to traverse (reverse) links within a web page. As another example, a technician may use a computing device to search for off-board maintenance information in poor network conditions. The harsh network conditions may cause the off-board maintenance information video to be downloaded for an unexpectedly long time, multiple attempts to download the off-board maintenance information video, or to stream the off-board maintenance information video at too slow a rate for continuous display of the off-board maintenance information video.

Disclosure of Invention

In a first embodiment, a method is provided. The method includes receiving, at one or more processors, a content description and a matrix code. The content description includes data describing one or more files. Each of the one or more files comprises a computer-readable file. The matrix code is encoded with links to the one or more files. The method also includes determining, at the one or more processors, based at least in part on the content description, a condition indicating that the first computing device is unable to display the one or more files at least a minimum level of quality. Further, the method includes outputting, by the one or more processors, the matrix code to a first display operatively coupled with the one or more processors in response to determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality. In addition, the method includes displaying the matrix code on the first display.

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, when executed by the one or more processors, cause the computing device to perform functions. The functions include receiving, at the one or more processors, a content description and a matrix code. The content description includes data describing one or more files. Each of the one or more files comprises a computer-readable file. The matrix code is encoded with links to the one or more files. The functions also include 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 least the minimum level of quality based on the content description. Further, the functions include outputting, by the processor, the matrix code to a first display operatively coupled with the one or more processors in response to determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality. Additionally, the functions include displaying the matrix code on the first display.

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 the computing device, cause the computing device to perform various functions. The functions include receiving, at the one or more processors, a content description and a matrix code. The content description includes data describing one or more files. Each of the one or more files comprises a computer-readable file. The matrix code is encoded with links to the one or more files. The functions also include determining, at the one or more processors, based on the content description, a condition indicating that the first computing device is unable to display the one or more files at least the minimum video quality level. Further, the functions include outputting, by the one or more processors, the matrix code to a first display operatively coupled with the one or more processors in response to determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality. Additionally, the functions include displaying the matrix code on the first display.

In a fourth embodiment, a method is provided. The method includes receiving, at one or more processors within a first computing device, a content description. The content description includes data describing one or more files and links to the one or more files. The method 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 least a minimum level of quality. 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 to receive the one or more files. Further, 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 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 a 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, at the first computing device, the one or more files, 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 a 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.

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 functions. The 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 functions include 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 least a minimum level of quality; 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 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 a 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, at the first computing device, the one or more files, 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 a 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.

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 the one or more processors of the first computing device, cause the first computing device to perform the functions. The 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 functions include 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 least a minimum level of quality. The functions include 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 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 functions 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, at the first computing device, the one or more files, 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 a third computing device associated with the link, the functions include outputting the link to the second computing device via a direct connection between the first computing device and the second computing device.

In a seventh embodiment, a method is provided. The method includes receiving, at one or more processors, a network resource link and a matrix code. The network resource links include links to one or more network resources. The matrix code is encoded with network resource links. The method also 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. Additionally, the method includes outputting, by the one or more processors, the matrix code to a first display operatively coupled with the one or more processors in response to determining that the condition indicating that the first computing device is unable to traverse the network resource link. In addition, the method includes displaying the matrix code on the first display.

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 various functions. Each function includes receiving a network resource link and a matrix code. The network resource links include links to one or more network resources. The matrix code is encoded with network resource links. The functions further include determining, based at least in part on the network resource link, a condition indicating that the computing device is unable to traverse the network resource link. Further, the functions include outputting the matrix code to the first display in response to determining that the condition indicating that the computing device is unable to traverse the network resource link. Additionally, the functions include displaying the matrix code on the first display.

In a ninth embodiment, a computer-readable medium is provided. The computer readable medium has stored thereon program instructions that, when executed by the computing device, cause the computing device to perform various functions. Each function includes receiving a network resource link and a matrix code. The network resource links include links to one or more network resources. The matrix code is encoded with network resource links. The functions further include determining, based at least in part on the network resource link, a condition indicating that the computing device is unable to traverse the network resource link. Further, the functions include outputting the matrix code to the first display in response to determining that the condition indicating that the computing device is unable to traverse the network resource link. Additionally, the functions include displaying the matrix code on the first display.

Other embodiments will become apparent to those of ordinary skill in the art upon reading the following detailed description, with reference where appropriate to the accompanying drawings.

Drawings

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

Fig. 1A shows a system according to an exemplary embodiment.

Fig. 1B illustrates a variation of the system illustrated in fig. 1A, according to an exemplary embodiment.

Fig. 2A illustrates a diagnostic computing device according to an exemplary embodiment.

FIG. 2B illustrates a companion computing device according to an exemplary embodiment.

Fig. 3A shows a video description according to an example embodiment.

Fig. 3B illustrates a thumbnail according to an exemplary embodiment.

Fig. 4 illustrates a matrix code according to an exemplary embodiment.

Fig. 5A, 5B, and 5C illustrate various servers according to an example embodiment.

Fig. 6A is a flowchart depicting operation of a representative method according to an exemplary embodiment.

Fig. 6B illustrates an example search request, according to an example embodiment.

Fig. 6C, 6D, and 6E illustrate example search request responses in accordance with example embodiments.

Fig. 7, 8, 9, 10, 11, 12, 13, 14, and 15 are flowcharts depicting the operation of a representative method according to an exemplary embodiment.

16A, 16B, 16C, 16D, 16E, 16F, 16G, 16H, 16I, 16J, 16K, and 16L illustrate display output shown on a display of a computing device, according to an exemplary embodiment.

Detailed Description

I. Brief introduction to the drawings

This specification describes several exemplary embodiments, at least some of which relate to displaying computer readable files on a display. In some embodiments, the computer-readable file includes content related to and/or links to a maintenance vehicle (such as an automobile). In at least some embodiments, additional information (e.g., textual maintenance information and/or textual diagnostic information) may be displayed on the display as the computer-readable file is played 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 files, or may not be configured to display both the computer-readable files and the additional maintenance information at the same time as the computer-readable files are displayed. Further, in these and/or other embodiments, computing devices displaying links to other content may not be configured to traverse the links.

This specification describes embodiments that include displaying one or more computer-readable files on at least one of a first and second computing device using the first computing device and the second computing device. At least some of these embodiments may include displaying additional maintenance information on at least one of the first and second computing devices. Examples of the additional service information include a diagnostic flowchart, removal and replacement instructions, a still image of a vehicle component, a repair order, and a link to the additional service information. Other examples of additional maintenance information are possible.

In at least some embodiments, at least one of the first and second computing devices may determine a condition indicating that the first computing device is unable to display the one or more files at least a minimum level of quality. For example, the first computing device may include a display that is not configured to display video files or particular types of video files (e.g., high definition video files or video files with particular file extensions). As another example, a first computing device may be connected to a communication network that is insufficient to transmit the one or more files for viewing at the first computing device at a minimum level of quality, while a second computing device is connected to a communication network that is sufficient to transmit the one or more files for viewing at the second computing device at a minimum level of quality. As another example, the first computing device may be configured to render a web page, but not traverse a link embedded in the web page.

In at least some embodiments, the communication networks 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 comprise a cellular data network configured with different levels of network technology, such as the network technologies commonly referred to as 1G, 3G, or 4G (lte). The first and second computing devices may operate under different maintenance plans provided by a provider of the communication network. For example, the first computing device may operate under 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 that exceeds a threshold during a particular maintenance period or during certain periods of the day (e.g., between periods of 7:00 am and 7:00 pm). As another example, the second computing device may operate under a maintenance plan in which the communication network does not throttle the rate at which data is transmitted to the second computing device. According to the above example, even if both the first and second computing devices are configured to be able to display the one or more files, the first computing device may not be able to display the one or more files at the lowest level of quality if the transmission rate of the packets carrying portions of the one or more files is throttled.

In at least some embodiments, the communication networks used by the first and second computing devices may be different communication networks. For example, a first computing device may be connected toThe network, and the second computing device may be connected to a cellular network having 4g (lte) network technology. According to this embodiment, one of the two communication networks is capable of displaying the one or more files even though both the first and second computing devices are configured to be capable of displaying the one or more filesOr another may be more suitable for providing the one or more files to a computing device connected to the network. Further, 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.

In at least some embodiments, a first computing device operates as a client computing device with respect to a remote server and operates as a server for a second computing device. The remote server may determine the 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 may provide the one or more files and/or links 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 may be configured as a diagnostic computing device.

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 set of machines, particularly when further described embodiments involve at least one server (such as a file server and/or a media server).

Many of the 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 a display prior to displaying the one or more files, and/or the one or more files may include an advertisement, such as an advertisement at a starting point of the one or more files. The advertisement may comprise a video advertisement.

Exemplary System

Fig. 1A shows a block diagram of a system 100 according to an example embodiment. System 100 includes communication network 102, Diagnostic Computing Device (DCD)104, server 106, Companion Computing Device (CCD)108, and Personal Area Network (PAN) 110.

The communication network 102 may include one communication network or multiple communication networks. Two or more of the plurality of communication networks may be operatively coupled to each other. The communication network of the communication network 102 may communicate through a wired communication network and/or a wireless communication network. In some embodiments, the communication network of communication network 102 includes a circuit-switched digital network and/or a packet-switched network. The communication network 102 includes a plurality of network devices. By way of example, network devices on the communication network 102 may include access points, antennas, base stations, gateways, hubs, modems, network wires, 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 intermediary network devices. Other examples of network devices on the communication network 102 are possible.

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-switched or circuit-switched technologies 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, or at least a portion of a network, that communicates using Transmission Control Protocol (TCP) and Internet Protocol (IP), such as a communication network commonly referred to as the internet.

The term "data" within this specification may be used interchangeably with the term "information" and/or similar terms. Unless otherwise indicated, data described in this specification may include a single datum or a plurality of data. Data described herein may be transmitted (e.g., uploaded) and/or received (e.g., downloaded). As an example, any transmission of 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 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 transmission of the data over an air interface (e.g., using radio signals, i.e., wirelessly). Any transmission of data described herein may include transmission of data over a network cable (e.g., a single wire, twisted pair, fiber optic cable, coaxial cable, wire harness, power cord, printed circuit, CAT5 cable, and/or CAT6 cable). The wire may be referred to as a "conductor" and/or other terminology. As an example, the transmission of data over the conductors may occur electrically and/or optically. The transmission of data may be referred to as "communication. The communication may, but need not, include a "request communication" or a "response communication".

Data may represent various things, such as objects and situations. Objects and situations may, but need not, be mapped to a data structure (e.g., a table). The processor may reference the data structure to determine the object and/or situation 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 content descriptions of one or more files, by determining content descriptions and/or one or more files associated with the vehicle identifier and/or symptom identifier. The data may represent a state of the computing device determined at the processor. For example, the data may indicate a status indicating a level of reception by DCD 104 from communication network 102 or a connection status (e.g., connected or unconnected) to PAN 110.

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. An ECU within a vehicle includes an onboard computing device configured to perform vehicle functions. The ECU may perform vehicle functions when the ECU is operatively connected to the DCD and when the ECU is not operatively connected to the DCD. Although the ECU may be configured to perform self-diagnosis, for purposes of this description, the ECU is not a DCD. The ECU is mounted in the vehicle. As an example, the ECU may include an ECU installed by a manufacturer of the vehicle, an ECU installed by a technician to replace the ECU installed by the technician, or an aftermarket ECU installed by the technician to equip the vehicle to perform one or more additional vehicle functions. A DCD (such as DCD 104) may be removably attached to the vehicle so that the DCD may perform its diagnostic function. As an example, a DCD (such as DCD 104) may be removably attached to a vehicle by removably attaching the DCD to an on-board diagnostic connector (such as a data link connector) within the vehicle. DCD 104 may include an embedded processor configured to perform diagnostic functions.

DCD 104 may also be configured to perform non-diagnostic functions related to other objects. The non-diagnostic function may, but need not, include a programming function, a calibration function, and/or an adjustment function. DCD 104 may be configured to communicate with multiple computing devices. The plurality of computing devices may include an on-board computing device mounted within another object, such as an ECU within a vehicle. The plurality of computing devices may also include off-board computing devices for DCD 104 and other objects. Those off-board computing devices may include server 106 and CCD 108, as well as other off-board computing devices.

The DCD 104 or any of the described embodiments of the DCD may, but need not, include or be implemented as part of a small-sized portable (i.e., mobile) electronic device, such as a smartphone (e.g., of apple inc. of cupertino, california)Smart phone, Sanxing electronics Limited, Maetan-Dong, a public communication area of Sagitai, republic of Kyogi tract, KoreaSmart phones), tablet devices (e.g., apple, inc.)A tablet device, SAMSUNG GALAXY TAB tablet device of SAMSUNG electronics, inc.), 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 or non-laptop configuration).

The CCD 108 is a computing device configured to communicate with a plurality of computing devices. For example, the CCD 108 may be configured as a client computing device in communication with the server 106. As another example, CCD 108 may be configured to communicate with DCD 104. The CCD 108 and the DCD 104 may communicate with each other through the PAN 110 and/or the communication network 102. The CCD 108 or any of the described embodiments of the CCD may, but need not, include or be implemented as part of a small-sized portable electronic device, such as a smartphone, tablet device, wearable computing device, or personal computing system.

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

A PAN 110 is a communication network that may be established between two or more computing devices. For example, a PAN 110 may be established between DCD 104 and CCD 108. In some embodiments, the PAN 110 may comprise a wired PAN, such as a Universal Serial Bus (USB) comprising a four-wire cable. In these or other embodiments, PAN 110 may comprise a wireless PAN, such as a wireless PAN configured to operate according to one of the following standards: institute of Electrical and electronics Engineers (EME) for Wireless Personal Area Networks (PAN)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) of Corkland, WashingtonVersion 4.1 or 4.2 standards or the wireless USB 1.0 standard maintained by WiMedia Alliance, san lamon, california.

Next, fig. 1B illustrates a variation of the system 100 according to an exemplary embodiment. In this variation of system 100, server 106 is represented as a plurality of servers. In other words, in FIG. 1B, the servers 106 shown in FIG. 1A are represented as a file server 114 and a media server 116. The terms "file server" and "media server" are used to distinguish the two servers shown in FIG. 1B, rather than to limit the functions performed by either of the two servers. In some embodiments, the file server 114 and the media server are co-located on the communication network 102. By way of example, the servers that are co-located may use the same network address. In other embodiments, file server 114 and the media server are distributed over a communication network. In this case, the file server 114 and the media server 116 may have different network addresses.

FIG. 1B also shows that system 100 can include memory 118 and memory 120. Although FIG. 1B illustrates an embodiment in which file server 114 is separate from memory 118, in alternative embodiments, file server 114 may include and/or be co-located with memory 118. Memory 118 may contain a database accessible by 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 memory 130 may include video links associated with video files. As another example, memory 118 may include data files and/or applications. The application may, but need not, include an application configured to determine data stored in memory 118, such as data associated with a vehicle identifier of vehicle 112, a component identifier of a component positioned in and/or on vehicle 112, and/or a symptom identifier of a symptom exhibited by vehicle 112.

Also, although fig. 1B illustrates an embodiment in which the media server 116 is separate from the memory 120, 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 evaluable by the media server 116. In particular, the memory 120 may include one or more files associated with links stored in the memory 118.

Further, FIG. 1B shows that the system can include a vehicle 112 and a Vehicle Communication Bus (VCB) 122. Vehicle 112 may be the subject of the diagnostics performed by DCD 104. In other words, DCD 104 may be configured to perform vehicle diagnostics related to vehicle 112. Embodiments of the vehicle 112 and the VCB 122 are described below. DCD 104 may be configured to communicate with vehicle 112. For example, DCD 104 may be configured to transmit Vehicle Data Messages (VDMs) to vehicle 112 and/or receive VDMs from vehicle 112. Computing devices configured to transmit and/or receive VDMs from vehicles are commonly referred to as vehicle scanning tools. Snap-on corporation of Kinosha, Wisconsin sells high quality vehicle scanning tools such as the ZEUSTM diagnostic and information System model EEMS342W and the ZEUS diagnostic and information System model EEMS330WEdge diagnostics and information systems.

Exemplary System Components

A. Diagnostic computing device

Next, fig. 2A is a block diagram of a diagnostic computing device 200 according to an example embodiment. DCD 200 is an exemplary embodiment of DCD 104 shown in fig. 1A and 1B. 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 operatively coupled or linked together via a system bus or network 214. DCD 200 also includes a power source 216 and a housing 218. In other embodiments, DCD 104 includes only a subset of the components of DCD 200 and/or a portion of the items stored in memory 212. The DCD 200 or any other DCD described in this specification may be more simply referred to as a "computing device".

1. Processor with a memory having a plurality of memory cells

A processor, such as processor 202 or any other processor discussed in this specification, e.g., 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". The processor may include a general-purpose processor (e.g.,single-core microprocessor orA multi-core microprocessor) and/or a special purpose processor (e.g., a digital signal processor, a graphics processor, an embedded processor, or an Application Specific Integrated Circuit (ASIC) processor).

The processor may be configured to execute Computer Readable Program Instructions (CRPI). The CRPIs discussed in this disclosure (such as CRPI 240 shown in fig. 2A and/or CRPIs 510, 530, 570 shown in fig. 5A, 5B, 5C, respectively) can include, for example, assembly instructions, machine dependent instructions, microcode, firmware instructions, state setting data, and/or source or object code written in any combination of one or two or more programming languages. By way of example, the programming languages 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 memory controller. The processor may be configured to perform hard-coded functions in addition to or as an alternative to software-coded functions (e.g., via CRPI). The processor 202 may be programmed to perform any of the functions or combinations of functions described herein as being performed by the DCD 200.

Embedded processors refer to processors with specialized functions in larger electronic, mechanical, pneumatic, and/or hydraulic devices, and are in contrast to general purpose computers. The embedded processor may include a central processing unit chip for use in a system other than a general purpose workstation, a notebook computer, or a desktop computer. In some casesIn an embodiment, the embedded processor may execute an operating system, such as a real-time operating system (RTOS). As an example, the RTOS may include those developed by Micro Digital corporationThe RTOS, such that the processor 202 may, but need not, include (a) an advanced RISC (reduced instruction set computer) machine (ARM) processor (e.g., the AT91SAM4E ARM processor provided by Atmel corporation of san Jose, Calif.) or (b) the NXP Semiconductors provided by Egypt, NetherlandsA processor (e.g., 52259 processor). General purpose processors, special purpose processors, and/or embedded processors may perform analog signal processing and/or digital signal processing.

2. Memory device

A memory, such as memory 212 or any other memory discussed in this specification, e.g., memory 506 shown in fig. 5, may comprise one or more memories. Thus, any memory discussed in this specification may be referred to as "at least one memory" or "one or more memories. The memory may include non-transitory memory, or both non-transitory and transitory memory. The non-transitory memory or a portion thereof may be located within the processor or as part of the processor (e.g., within a single integrated circuit chip). The non-transitory memory or a portion thereof may be separate and distinct from the processor.

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 Random Access Memory (RAM), Read Only Memory (ROM), Programmable Read Only Memory (PROM), Erasable Programmable Read Only Memory (EPROM), flash memory, Electrically Erasable Programmable Read Only Memory (EEPROM), or compact disc 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 devices may, but need not, include magnetic disk devices (such as a flexible disk drive or a hard disk drive, HDD), optical disk drives (such as an optical disk drive, CD and/or digital versatile disk drive, DVD), Solid State Drives (SSD), or tape drives.

The temporary memory may comprise, for example, a CRPI provided over a communication network, such as communication network 102.

"memory" may be referred to by other terms (such as "computer-readable memory," "computer-readable medium," "computer-readable storage medium," "data storage device," "computer-readable medium," "computer-readable database," "at least one computer-readable medium," or "one or more computer-readable media". The alternative terms may be preceded by the prefix "transitory" if the memory is transitory, and may be followed by the prefix "non-transitory" if the memory is non-transitory.

3. Transceiver

The transceiver (such as network transceiver 204, VCT 206, and/or any other transceiver discussed in this specification, e.g., 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 over a network, such as the communications network 102, and/or a system bus or network. Unless otherwise noted, any data described as being transmitted to a device is considered to be received by the device. Likewise, any data described as being received from a device is considered to be transmitted (directly or indirectly) by that device, unless otherwise specified. For some embodiments, the transceiver may include a transmitter and a receiver in a single semiconductor chip. In at least some of those embodiments, the semiconductor chip may include a processor.

In at least some embodiments, a transmitter (such as a transmitter within any of the transceivers described in this specification) transmits a radio signal carrying data, and a receiver (such as a receiver within any of the transceivers 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".

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 asStandards, such as (i) for wireless local area networks (wireless LANs)The 802.11 standard (which is sometimes referred to asStandards) (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) of Cockland, WashingtonRelease 4.1 or 4.2 standards, (iv) cellular wireless communication standards, such as the Long Term Evolution (LTE) standard, (v) Code Division Multiple Access (CDMA)) A standard, (vi) an Integrated Digital Enhanced Network (IDEN) standard, (vii) a global system for mobile communications (GSM) standard, (viii) a General Packet Radio Service (GPRS) standard, (ix) a Universal Mobile Telecommunications System (UMTS) standard, (x) an enhanced data rates for GSM evolution (EDGE) standard, (xi) a multi-channel multipoint distribution services (MMDS) standard, (xii) an International Telecommunication Union (ITU) standard, such as the standard known as the Z-Wave standard ITU-T g.9959 standard, (xiii) a 6LoWPAN standard, (xiv) a Thread network protocol, (xv) an international organization for standardization (ISO)/International Electrotechnical Commission (IEC) standard, such as the ISO/IEC 18000-3 standard for Near Field Communications (NFC), (xvi) a Sigfox communication standard, (xvii) a Neul communication standard, or (xviii) a lowan communication standard. Other examples of wireless communication standards or protocols are possible.

In at least some embodiments, a transmitter (such as a transmitter within any of the transceivers described herein) may be configured to transmit a signal (e.g., one or more signals or one or more electrical waves) carrying or representing data onto a wire (e.g., one or more wires). Likewise, a receiver (such as a receiver within any of the transceivers described in this specification) may be configured to receive, via a wire, a signal carried by or representing data over the wire. The wires may be part of a network, such as communication network 102. The signals carried over the wires may be arranged in accordance with a wired communication standard such as transmission control protocol/internet protocol (TCP/IP), for local area networksThe 802.3 ethernet communication standard, the data over cable service interface specification (DOCSIS standard, such as DOCSIS 3.1), the USB specification (as described above), or some other wired communication standard.

Transceivers configured to communicate over the communication network 102 (such as the network transceivers 204, 504) may include at least one of: a modem, a network interface card, or a chip mountable on a circuit board. As an example, the chip may include CC3100 available from Texas instruments, Inc. of Dallas, TexNetwork processor, CC256MODx from Texas instrumentsHost Controller Interface (HCI) module or for communication via Or a different chip that communicates using other communication protocols.

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 configured locally for the next "hop" in the communication network 102 (e.g., a device or address where to send data and where to expect data from). As an example, is configured to useDevices (e.g., transceivers) communicating according to the 802.11 standard may be configured with a network name, a network security type, and a password. Some devices auto-negotiate this information through discovery mechanisms (e.g., cellular telephone technology).

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

Network transceiver 204 may transmit any data and/or computer-readable files discussed as being transmitted, output, and/or provided by DCDs 104, 200. Network transceiver 204 may receive any data and/or computer-readable files discussed as being received by DCDs 104, 200. By way of example, the network transceiver 204 may receive a communication that includes a link and/or a content description. As another example, the network transceiver 204 may receive a communication that includes a link, a content description, and/or a matrix code. The link may include a Uniform Resource Indicator (URI). The content description may include data that the processor 202 uses to determine whether the DCD 200 may display the one or more files described by the content description. The content description may include a link. The communication may include a web page that includes a description of the content.

Turning to FIG. 3A, this figure depicts 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. As shown in fig. 3A, the content description 300 includes a URI 302, a filename 304, a topic description 306, a file size 308, a video resolution 310, a video compression type 312, a thumbnail name 314, an encoded bit rate 316, and/or a play time 318. As an example, the thumbnail name 314 may be the name of the thumbnail 256 (shown in fig. 2A).

Next, FIG. 3B shows a visual representation 320 displaying thumbnail 256. The thumbnail 256 may be part of the content description 300 and/or may be included in a communication that includes the content description 300. Alternatively, the thumbnail 256 may be 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.

Next, fig. 4 illustrates matrix code 400 of matrix code 244 (shown in fig. 2A). In some embodiments, the matrix code 244 is included as part of the content description 300 and/or within 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 matrix code 400. In other embodiments, processor 202 generates matrix code 244 based on at least a portion of 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 transmitted to the DCD 200.

Returning to fig. 2A, VCT 206 includes a transceiver configured to transmit a VDM to vehicle 112 via VCB 122 and to receive the VDM transmitted by vehicle 112 via VCB 122. The VDM 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 the VDM transmitted by the vehicle 112 through the VCB 122. The VDM received by the receiver of the VCT 206 may include diagnostic information transmitted by the ECU. The VDM may include a component identifier, such as an identifier of the ECU transmitting the VDM. The VDM may include data indicating a DTC set by the ECU. Processor 202 may select data from within the VDM and cause the selected data to be displayed on display 232 (shown in fig. 2A). As an example, the VCT 206 may include a wired transceiver, such as a transceiver having a system base chip with a high-speed CAN transceiver 33989 provided by NXP Semiconductors of eindhoven, the netherlands.

VCB 122 may include a wiring harness and/or an air interface to operatively couple DCDs 104, 200 and vehicle 112 to allow DCDs 104, 200 and vehicle 112 to communicate with one another. 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 DCDs 104, 200 to the ECU in the vehicle 112. The VCT 206 may include and/or be connected to one or more connectors, where one connector may be positioned at an end of a wiring harness. The VCT 206 may include a wireless transceiver to communicate with a wireless transceiver within the vehicle 112.

4. User interface element

In some embodiments, the user interface 210 includes a keypad 230. Keypad 230 may include one or more components configured to input data into DCDs 104, 200. As an example, the data entered by the keypad 230 may include at least one of: 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 the vehicle identifier.

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

Fig. 16A shows an embodiment of a keypad 230. In this embodiment, keypad 230 includes directional keypad 1602 for selecting up, down, left and/or right motion, button 1604 selectable to represent a yes selection, button 1606 selectable to represent a no selection, power button 1608, multi-key keypad 1610, and buttons 1612, 1614, 1616, 1618. The multi-key keyboard 1610 may include a set of numeric, alphanumeric, alphabetic, or some other combination of keys for entering letters, numbers, or symbols (e.g., punctuation marks). The buttons (such as buttons 1612, 1614, 1616, 1618) may be reconfigurable buttons, which may be the case with selections displayed on the display 232 proximate (e.g., within six centimeters) and/or adjacent the buttons. As an example, the movement selected using directional keyboard 1602 may include movement of pointer 1634. As another example, movement selected using directional keypad 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).

Next, fig. 16B shows a variation of the keyboard 230. In fig. 16B, the keypad 230 has fewer keys than the embodiment of the keypad 230 shown in fig. 16A. In fig. 16B, the keypad 230 includes a directional keypad 1602, a yes button 1604, a no button 1606, and a power button 1608. The display 232 may be configured with portions of a touch screen that represent (1) a selection of up, down, left, right movement or a selection similar to that selectable using directional keypad 1602, (2) a selection similar to yes selectable using yes button 1604, or (3) a selection similar to no selectable using no button 1606.

Next, fig. 16C depicts a variation of the keyboard 230 different from the variation of the keyboard 230 shown in fig. 16A and 16B. In this variation, the DCD 200 includes a display 232 (e.g., a touch screen display), but does not include any hardware keys. In this embodiment, a touch screen input to the display 232 may cause the DCD 200 to (1) transition from the sleep mode to the on mode state, (2) make a selection, such as any selection made via the DCD 200 (described in this specification), (3) transition from the on mode to the sleep mode state, and/or (4) display any display output shown in the figures. As an example, a DCD 200 configured without any hardware keys may minimize battery usage by the DCD 200, such as by turning off the backlight of the display 232 during sleep mode. The DCD 200, including at least one hardware key, may also implement power-on and sleep modes.

The user interface 210 includes a 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 backlit color LCD. Display 232 may include a touch screen display with an LCD. For example, the display 232 may include a capacitive or resistive touch screen display. Other examples of the display 232 are possible.

The display 232 may display still images, such as images of thumbnails and/or matrix codes. The display 232 may display text, such as textual diagnostic information. The display 232 may display web pages, such as web pages that include content, network resource links, and/or matrix code. In at least some embodiments, display 232 may display a Graphical User Interface (GUI) via which a user may enter selections related to using DCDs 104, 200. In at least some embodiments, the display 232 may include a horizontal scroll bar and a vertical scroll bar. Horizontal and vertical scroll bars may be used to cause the display 232 to display a description of content not currently displayed on the display 232. In at least some embodiments, the display 232 may display video. The display 232 may display any of the content descriptions in the display output shown in fig. 16A to 16L. Other examples of content that may be displayed on display 232 are also possible.

The user interface 210 may include an audio device 234. 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 electrical circuitry for providing input to the processor 202 representative of voice commands received by the at least one microphone. The voice commands may include commands representing selections and data that are described as being entered using the keyboard 230. Processor 202 may output a signal to the at least one speaker to cause the at least one speaker to emit audible sound. As an example, the audible sound may include instructions for using the DCD 200. As another example, the audible sound may include sound from a video file.

5. Additional component

A camera (such as camera 208 and/or any other camera discussed in this specification, e.g., camera 267 shown in fig. 2B) may include one or more cameras configured to capture images. As an example, the cameras 208, 267 may include at least one of: 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 camera 208) may be stored in memory 212 as image 246. As an example, the acquired image may comprise at least one of: an image of the vehicle 112 or an image of some portion of the vehicle 112, such as a VIN label affixed to the vehicle 112. As another example, the image 246 may include an image representative of a scanned bar code (such as a bar code affixed to a VIN label of the vehicle 112).

The power supply 216 may be configured in any one of a variety of configurations or combinations of configurations. By way of example, power supply 216 may include circuitry that receives alternating current from an alternating current power source (e.g., circuitry operatively coupled to a wall outlet) and converts the alternating current to direct current for supply to one or more components within DCD 200. As another example, the power source 216 may include or be battery operated. As another example, the power source 216 may include a solar cell or be operated by solar energy. Power supply 216 may include circuitry that distributes current throughout DCD 200. Other examples of the power supply 216 are possible.

The housing 218 may enclose 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 may be referred to as an enclosure. The housing 218 may 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 may be mounted on and/or connected to the substrate. The housing 218 may be made of a variety of materials. For example, the housing 218 may be made of a plastic material (e.g., acrylonitrile butadiene styrene, ABS) and a thermoplastic elastomer for forming a grip on the housing 218.

6. Memory content

The memory 212 stores computer-readable data. By way of 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, registered device data 260, network status data 262, and/or diagnostic information 264. As an example, link 242 may comprise a video link received by DCDs 104, 200 from server 106, file server 114, or media server 116 over communication network 102. As another example, the link 242 may comprise a URI, such as URI 302. Links (such as link 242) and/or URIs (such as URI 302) may be referred to as "web resource links".

In some embodiments, matrix code 244 includes a matrix code file representing printable and/or displayable matrix code (e.g., matrix code 400). The matrix code file may, but need not, include hypertext markup language (HTML) code, PNG files, TIFF files, SVG files, or EPS files. 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. Processor 202 may extract the matrix code from the communication and store the matrix code as matrix code 244. By way of example, the matrix code 244 may be configured toMatrix Code, Data Matrix Code, MaxiCode Matrix Code, Aztec Code, Matrix Code, or some other Matrix Code.

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

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, processor 202 may determine vehicle identifier 250 from a VDM received by VCT 206 from vehicle 112. As another example, the processor 202 may determine the vehicle identifier 250 from an image captured by the camera 208 (such as an image of a VIN label on the vehicle 112). As yet another example, processor 202 may determine vehicle identifier 250 from a vehicle identifier contained on 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 the display output 1601 shown in fig. 16A).

Symptom identifier 252 may include an identifier of a symptom of the subject to be diagnosed, such as a vehicle symptom of vehicle 112. Processor 202 may determine symptom identifier 252 and may cause memory 212 to store symptom identifier 252. As an example, processor 202 may determine symptom identifier 252 from a VDM received by VCT 206 from vehicle 112. For example, the VDM may include a DTC identifier for a DTC set by an ECU in the vehicle 112. As yet another example, processor 202 may determine symptom identifier 252 from a symptom contained on RO 258. As yet another example, processor 202 may determine symptom identifier 252 based on a selection made via display 232 (such as may be made via display output 1603 shown in fig. 16B).

File 248 comprises a computer readable file configured to be output to and/or displayed on a display and/or configured to be read by processor 202. In some embodiments, the file 248 cannot be displayed on the display 232. In other embodiments, the file 248 may be displayed on the display 232, but only below a minimum quality level. In other embodiments, the file 248 may be displayed on the display at least a minimum level of quality. In any of the embodiments described above, the file 248 may be displayed by a different display, such as the display of the CCD 108. Content description 254 may include a description of file 248.

By way of example, the file 248 may comprise a video file received by the network transceiver 204 over the 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 that are transmitted to network transceiver 204 via packets that include portions of file 248. In some embodiments, file 248 includes a plurality of video files. By way of example, file 248 may comprise a video file. According to this example, the video file may, but need not, include a video file in one of the following video file formats: (1) audio Video Interleaving (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).

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

As another example, the files 248 may include markup language protocol based files, such as extensible markup language (XML) files or web service description language (WDSL) files. In some embodiments, the markup language protocol may include Simple Object Access Protocol (SOAP) configured to exchange information for web services over the communication network 102.

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

Image 246 may include an image captured by camera 208. As an example, the image 246 may include an image of a barcode 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 symptom identifier. As yet another example, the image 246 may include an image of a matrix code displayed on the CCD 108, 261.

The content description 254 includes data describing computer-readable files, such as the files 248, 572 shown in FIG. 5C. In embodiments where the memory 212 contains files 248, the content description 254 may include data describing the files 248. In embodiments where memory 212 does not contain file 248, content description 254 may include data describing file 572. The files 248, 572 can be associated with the vehicle identifier 250 and/or the symptom identifier 252. For embodiments in which the files 248, 572 comprise video files, the content description 254 may comprise data that the processor 202 may use to determine whether the files 248, 572 may be played at least 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 over 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, include some or all of the types of data contained in the content description 300 shown in fig. 3.

Thumbnail 256 may include a still image from 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 display 232) and/or to a device including a display, such as the CCD 108. The thumbnail 256 may be displayed on a 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 files 248, the memory 212 does not include the thumbnail 256. In at least some embodiments in which file 248 comprises a computer-readable file other than a video file, for example in embodiments in which file 248 comprises a web page that includes a link configured to be traversed by a web browser, memory 212 does not include thumbnail image 256.

The registered device data 260 may include data about another computing device registered with the DCD 200. The data about the other computing device may include an identifier of the other computing device and/or network status data indicating a connection status of the other computing device with 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 data configured in accordance withThe standard communicates and pairs with a forty-eight bit address of a device of the DCD 200.

The network status data 262 may indicate a status of the DCD being connected to the communication network 102. As an example, the status may, but need not, indicate connected, unconnected, signal strength, and/or data rate.

The diagnostic information 264 may include diagnostic information received in response to the search request, such as diagnostic information 644, 652 (shown in fig. 6B and 6C). As another example, diagnostic information 264 may include a diagnostic flowchart, a technical service announcement, a description of a DTC, or some other diagnostic information.

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

CRPI 240 may comprise a CRPI 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 CRPI can cause the display 232 to display the matrix code 244. The CRPI 240 can cause the display 232 to display an indication of the network status of the DCD 200.

CRPI 240 may comprise a CRPI executable by processor 202 as a CODEC for encoding and/or decoding data streams, such as data packet streams that comprise portions of file 248.

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

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

CRPI 240 may include a CRPI executable by processor 202 to determine network accessibility of network transceiver 204. In some embodiments, the network transceiver 204 includes a plurality ofTransceiver, such as 2.4GHz configured to support data transmission up to 600 megabits/second (Mbps)Transceiver and 5.0GHz configured to support data transmission up to 1300MbpsA transceiver. In these or other embodiments, the 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, CDMA 20001 xEV-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 may be accessed by the network transceiver 204, the processor 202 may use the data regarding the accessible networks in determining whether there is a situation where the DCD 200 is unable to display video at least the minimum video quality level.

CRPI 240 may include a CRPI executable by processor 202 to determine the speed of a network accessible by network transceiver 204. Those CRPI may include having the network transceiver 204 request to perform a network speed test, such as a network speed test between the DCD 200 and a server on the 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 be, but need not be, in units of Mbps. By way of example, a server operated by or for Netflix corporation of los gatos, ca, performs network speed testing on a uniform resource locator consisting of the following strings: "https" and ":// fast. Additionally or alternatively, the executable CRPI to determine network speed may include the processor 202 transmitting a request for data and determining network speed based on how much data is received in response to the request and the time required to receive a response.

CRPI 240 may include a CRPI executable by 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 the registered computing device and/or receiving a request from the registered computing device to establish a connection. CRPI 240 may include a CRPI executable by processor 202 to request registered computed network status of connections to DCDs 104, 200 and/or to receive communications from CCDs 108, 261 indicating the network status of CCDs 108, 261. The network status received from the CCDs 108, 261 may be stored in the memory 212 as part of the registered device data 260.

CRPI 240 may comprise a CRPI configured as an application program executable by processor 202. As an example, an application may be executable to perform a diagnostic function. In some embodiments, performing the diagnostic function includes performing the diagnostic function that includes transmitting communications to or from the vehicle 112 using the VCT 206 and/or performing the diagnostic function that includes transmitting communications to or from the server 106 using the network transceiver 204. In these or other embodiments, performing the diagnostic function includes processor 202 outputting at least a portion of diagnostic information 264 to display 232. The diagnostic information output to the display may, but need not, 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 execution of a web service by the server 106.

CRPI 240 may include a CRPI executable by processor 202 to access network services from server 106 and/or another server described in this specification. As an example, processor 202 may execute a CRPI to request, receive, and/or read WDSL files. In some embodiments, the memory 212 stores WDSL files for the processor 202 to read when it is desired to perform a web service. In other embodiments, the processor 202 requests the WDSL file from the server 106 before reading the WDSL file.

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

B. Exemplary companion computing device

Next, FIG. 2B is a block diagram of a companion computing device 261 according to at least some example embodiments. The CCD 261 is an exemplary embodiment of the CCD 108 shown in fig. 1A and 1B. The 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 operatively coupled or linked together by a system bus or network 273. The CCD 261 also includes a power supply 275 and a housing 277. In other embodiments, the CCD 108 includes only a subset of the components of the CCD 261 and/or a portion of the contents of the memory 271. The CCD 261 or any other CCD described in this specification may be more simply referred to as a "computing device".

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

Memory 271 includes CRPI 287, link 289, matrix code 291, file 293, registered device data 295, and network state data 297 that are executable by 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.

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 indicate otherwiseNetwork status data of a connection status of the computing device to the communication network. The status may, but need not, represent connected, unconnected, signal strength, and/or data rate. As an example, the registered device data 295 may include data configured in accordance withThe standard communicates and pairs with forty-eight bit addresses of devices of CCD 261.

The network status data 297 may indicate the status of the CCD being connected to the communication network 102. By way of example, the status may, but need not, represent connected, unconnected, signal strength, and/or data rate.

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

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

CRPI 287 may include instructions executable by processor 263 to cause network transceiver 265 to send a request for a file to a server indicated by link 289 (e.g., media server 116 or server 560). 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 to CCD 261 from media server 116 or server 560.

CRPI 287 may include instructions executable by processor 263 to store computer readable files received by network transceiver 265 as file 293.

CRPI 287 may include instructions executable by processor 263 to output file 293. In some implementations, processor 263 outputs file 293 to display 283, while display 283 displays the file. In some embodiments, processor 263 outputs file 293 to network transceiver 265 for transmission to another device that includes a display configured to display file 293.

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

The power supply 275 may include one or more power supply components. As an example, the power supply 275 may include circuitry that receives ac current from an ac power source and converts the ac current to dc current for supply to one or more of the other components within the CCD 261. As another example, the power source 275 may include a battery so that the CCD 261 may be powered by the battery. As yet another example, the power source 275 may include a solar cell so that the CCD 261 may be powered by solar energy. The power supply 275 may include circuitry that distributes current throughout the CCD 261. Other examples of power supply 275 are possible.

A housing 277 may enclose 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 may be referred to as an enclosure. The housing 277 may support a substrate. At least a portion of processor 263, at least a portion of network transceiver 265, at least a portion of camera 267, at least a portion of user interface 269, at least a portion of memory 271, and/or at least a portion of a system bus or network 273 may be mounted on and/or connected to the base. The housing 277 may be made of various materials. For example, the housing 277 may be made of a plastic material (e.g., ABS) and a thermoplastic elastomer for forming a grip on the housing 277.

C. Exemplary Server

Fig. 5A illustrates a server 500 according to an example embodiment. Server 500 is an exemplary embodiment of server 106 shown in FIG. 1A, file server 114 shown in FIG. 1B, and media server 116 shown in FIG. 1B.

The server 500 includes a processor 502, a network transceiver 504, and a memory 506. Two or more of these components may be operatively coupled or linked together by a system bus or network 508. The network transceiver 504 may transmit data onto the communication network 102 and/or may receive data transmitted over the communication network 102. Memory 506 includes 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.

Data accessible to server 500 may be distributed across multiple databases, such as storage 118, 120. As previously mentioned, the functions performed by a single server may be distributed among two or more servers.

Fig. 5B illustrates a server 520 according to an example embodiment. Server 520 is an exemplary embodiment of file server 114 shown in fig. 1B. Server 520 includes a processor 522, a network transceiver 524, and a memory 526. Two or more of these components may be operatively coupled or linked together by a system bus or network 528. Memory 526 may include CRPI 530, link 532, matrix code 534, vehicle identifier 536, symptom identifier 538, content description 540, thumbnails 542, and/or diagnostic information 544.

Processor 522 may execute CRPI 530 to perform the functions described in this specification as being performed by a server, such as server 106, file server 114, and/or media server 116. The network transceiver 524 may transmit data onto the communication network 102 and/or may receive data transmitted over the communication network 102. By way of example, the network transceiver 524 may receive a search request, such as search request 610 (shown in fig. 6B), transmitted over the communication network 102. As another example, the network transceiver 524 may transmit search request responses, such as search request responses 630, 650, 670 (shown in fig. 6C, 6D, and 6E, respectively).

Links 532 may include links to computer-readable files stored in memory 526 and/or links to computer-readable files stored in another memoryA link to a computer readable file in a memory, such as memory 566 shown in figure 5C. The matrix code 534 may include a matrix code file representing a matrix code (e.g., matrix code 400) that may be printed and/or displayed. As an example, the matrix code 534 may be configured toA matrix code.

Thumbnail 542 may include still images from the video file associated with link 532. The network transceiver 524 may communicate the thumbnail 542 to the DCD 200 for storage in the memory 212 as the thumbnail 256. The visual representation 320 displaying thumbnail 256 may also be a visual representation of thumbnail 542.

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

The vehicle identifier 536 may include a vehicle identifier (e.g., vehicle identifier 620 shown in fig. 6B) received in a search request (e.g., search request 610). Symptom identifier 538 may include a symptom identifier (e.g., symptom identifier 622 shown in fig. 6B) received in a search request (e.g., search request 610). 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. By way of example, diagnostic information 544 may include diagnostic information 644 (shown in fig. 6C), diagnostic information 652 (shown in fig. 6D), diagnostic information 672 (shown in fig. 6E), and/or diagnostic information associated with diagnostic information selectors 1641, 1625, 1647 shown in fig. 16C, 16K, 16L, respectively.

Fig. 5C illustrates a server 560 according to an example embodiment. The server 560 is an exemplary embodiment of the media server 116 shown in fig. 1B. The server 560 includes a processor 562, a network transceiver 564, and a memory 566. Two or more of those components may be operatively coupled or linked together via a system bus or network 568. Memory 566 includes CRPI 570 and file 572. In at least some embodiments, file 572 includes a single video file or multiple video files. The file 572 may comprise a video file associated with the URI 302. By way of example, the file 572 may include a video file "video 1.mp4," which may be transmitted to the DCD 200 and stored as the file 248 in the memory 212. In at least some embodiments, the file 572 can include a web page file that can be displayed on at least one of: DCD 104, CCD 108, DCD 200, or CCD 261. As an example, the web page file may include an HTML file (e.g., a file having 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 the matrix code. The file 572 can be associated with a link (e.g., a network resource link).

Processor 562 may execute CRPI 570 to perform the functions described in this specification as being performed by servers, such as server 106, file server 114, and/or media server 116. The network transceiver 564 may transmit data onto the communication network 102 and/or may receive data transmitted over the communication network 102. By way of example, the network transceiver 564 may receive a request for a file contained in the file 572 and associated with the link. As a more specific example, the network transceiver 564 may receive a request for a video associated with the URI 302 and may transmit a response to the video request. The response may include the video associated with the URI 302 stored in the file 572. As another more specific example, the network transceiver 564 may receive a request for a web page file associated with the network resource link, and the 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 network resource link.

Exemplary operations

A. First exemplary operation

Next, fig. 6A shows a flow diagram depicting a set of functions 600 (or more simply "collections") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 600 includes functions shown in blocks labeled with integers 601 through 604 (inclusive). The description of the collection 600 includes references to elements shown in other figures described in this specification, but the roles of the collection 600 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 600 or any suitable subset of the functions shown in the collection 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 that includes collection 600 may include any or all of the functions of collection 700 (shown in FIG. 7). As yet another example, a method may include performing a function of the collection 700 and one or more functions from the collections 700, 800, 900, 1000, 1100, 1200, 1300, 1400, and/or 1500.

Block 601 includes identifying a vehicle. DCDs 104, 200 may identify vehicles, such as 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 by one or more of: (1) determine a user interface input indicative of data identifying a characteristic of the vehicle, (2) scan and/or decode a visible code representative of a VIN associated with the vehicle 112, such as a one-dimensional barcode representative of the VIN, and/or (3) receive a communication including data indicative of the characteristic of the vehicle. As an example, the network transceiver 204 may receive communications from devices connected to the communication network 102, the communications including repair order information indicative of vehicle characteristics. The repair order information may be stored as RO 258. As another example, VCT 206 may receive a communication from vehicle 112 (e.g., a VDM that includes a VIN, a portion of a VIN, and/or data indicative of YMMs or YMMEs associated with vehicle 112). Other examples of the processor 202 identifying a vehicle are possible. In some embodiments, after identifying the vehicle, the processor 202 may store the vehicle identifier 250 in the memory 212.

Next, block 602 includes determining a symptom applicable to the vehicle 112. DCDs 104, 200 may identify symptoms. For example, processor 202 may be configured to determine symptoms in one or more of the following ways: (1) determine input entered using the user interface 210 (indicative of the symptom), and/or (2) receive a communication including data indicative of the symptom. As an example, the network transceiver 204 may receive communications from devices connected to the communication network 102, the communications including repair order information indicative of symptoms. As another example, VCT 206 may receive a communication (e.g., a VDM including data indicative of a symptom) from vehicle 112. Other examples of processors 202 that identify symptoms are possible. As an example, the data indicative of symptoms (within the VDM) may include (1) a Diagnostic Trouble Code (DTC), and/or (2) a Parameter Identifier (PID) and associated PID parameters.

Next, block 603 includes transmitting a search request based on the vehicle and 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 over the communication network 102.

Fig. 6B illustrates a search request 610 in accordance with at least some example embodiments. The search request transmitted at block 603 may, but need not, 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. 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 may be implied by the transmission of the search request 610 to a particular device (such as file server 114). The search request 610 includes a request identifier 618. The request identifier 618 may be used to associate the 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.

Next, block 604 includes receiving a response to the search request. File server 114 may generate a response to the search request based on information determined by searching memory 118 based on the vehicle and symptoms referenced in search request 610. File server 114 may transmit a response to the search request over communication network 102. The network transceiver 204 may receive a 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 including text (i.e., textual information such as maintenance prompts, Original Equipment Manufacturer (OEM) diagnostic flow charts, and/or OEM technical service bulletins). In embodiments where memory 118 includes a video description of a video related to information in search request 610, the response to the search request may include the video description. At least a portion of the video description may include textual information. In embodiments where memory 118 includes a web resource link to a web page file related to information in search request 610, the response to the search request may include a web resource link.

Fig. 6C illustrates an exemplary search request response 630 that 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 644. Diagnostic information 644 includes diagnostic text 646 and 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 configured like the content description 300 shown in fig. 3A, or as any portion of the content description 300.

Next, fig. 6D illustrates an exemplary search request response 650 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 652. Diagnostic information 652 includes diagnostic text 646, video description 648, and matrix code 654. The matrix code 654 may, but need not, 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 the video file defined by the video description 648.

Next, fig. 6E illustrates an exemplary search request response 670 that 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 672. Diagnostic information 672 includes network resource link 674 and matrix code 676. The matrix code 676 may, but need not, include an image file representing an image of the matrix code 676. Matrix code 676 may encode network resource link 674.

B. Second exemplary operation

Next, fig. 7 shows a flow diagram depicting a set of functions 700 (or more simply "collections 700") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 700 includes functions shown in blocks labeled with integers 701 through 704 (inclusive). The description of the collection 700 includes references to elements shown in other figures described in this specification, but the roles of the collection 700 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 700 or any suitable subset of the functions shown in the collection 700. 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 may include performing the set 600 and the set 700. As yet another example, a method may include performing the role of collection 700 and one or more roles from collections 600, 800, 900, 1000, 1100, 1200, 1300, 1400, and/or 1500.

Block 701 includes receiving a content description and a matrix code. The content description includes data describing one or more files. Each of the one or more files comprises a computer-readable file, such as a video file stored in memory 120 or a file 572 stored in memory 566. The matrix code is encoded with links to the one or more files. In some embodiments, the content description may be configured like the content description 300 shown in fig. 3. Thus, the content description may include the URI 302, the filename 304, the topic description 306, the file size 308, the video resolution 310, the video compression type 312, the thumbnail name 314, the encoded bit rate 316, and/or the play time 318. In some embodiments, receiving the content description may 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.

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

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

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 a video file at least a minimum level of video quality by determining that DCD 104, 200 is unable to display the one or more files at least the minimum level of quality. As an example, the determined circumstances may include: (1) display 232 is not configured to display any video, (2) the filename of the video file has a file extension that is not supported by processor 202, (3) DCD 104, 200 does not include a CODEC for decoding the video file, (4) the transmission bit rate of media server 116 or server 560 to the video file is too slow for display 232 to continuously display video after the video file begins to be displayed, (5) the transmission bit rate of media server 116 or server 560 to the video file is too fast for the one or more buffers configured to store portions of the video file in memory 212 to fill to capacity and not store all received portions of the video file, (6) the intensity of the communication signal to DCD 104, 200 over communication network 102 is below a threshold signal intensity level, (7) a particular type of network connection to DCD 104, 200, 200 are not available, and/or (8) the display 232 is not able to display both the video file and the diagnostic text.

In other embodiments where the first computing device is configured as a DCD (such as DCD 104, 200), processor 202, 263 may execute a CRPI to determine a situation where DCD 104, 200 cannot traverse a network resource link (such as link 1653 shown in fig. 16C).

In some embodiments, the particular network connection type may be a particular 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 20001 xEV-DO or UMTS), fourth generation (4G) broadband radio access technologies (such as LTE, e.g., FDDLTE and TDDLTE), or WiMAX. As another example, a particular type of network connection may be operating in a 2.4GHz band, a 3.6GHz band, a 4.9GHz band, a 5GHz band, or a 5.9GHz bandAnd (4) connecting the protocols.

The minimum video quality level may be defined using one or more characteristics. Examples of these characteristics will be discussed in this and the following two paragraphs. In at least some embodiments, the lowest video quality level may be defined as the frame rate (e.g., the frequency at which video frames are displayed). Frame rate may be, but is not necessarily, defined in Frames Per Second (FPS). As an example, the frame rate may be 24FPS (e.g., High Definition (HD) video), 23.98 or 23.976FPS (with NTSC-compatible high definition video), 25FPS (PAL, high definition video), 29.97FPS (NTSC, high definition video), 30FPS (high definition video), 50FPS (PAL, high definition video), 59.94FPS (with NTSC-compatible high definition video), 60FPS (high definition video), or some other frame rate. NTSC refers to the national television systems committee. PAL refers to a phase alternating line.

In at least some embodiments, the lowest video quality level may be an aspect ratio (i.e., the ratio of the width of a frame of video to the height of the frame). By way of example, the aspect ratio may be 16:9, 1.78:1, 1.33:1, or some other aspect ratio.

In at least some embodiments, the lowest video quality level may be the resolution of the video. As an example, the resolution may be defined as the number of horizontal lines of vertical resolution, e.g. 1080p, where 1080 stands for 1080 lines of vertical resolution and "p" stands for progressive scanning. Other example resolutions for the number of horizontal lines defined as vertical resolution include 240p, 360p, 480p, 720p, 1440p, 2160p, 3840 p. In addition, the resolution of the video may be taken as the ratio of pixels, such as 426x240, 640x360, 854x480, 1280x720, 1920x1080, 2560x1440, 3840x 2160.

In other embodiments, the first computing device is configured as a CCD, such as CCD 108, 261. In at least some of those embodiments, where processor 202 may execute CRPI 240 to determine that CCD 108, 261 is unable to display the one or more files at least the minimum level of quality includes processor 202 determining that CCD 108, 261 is unable to display video files at least the minimum level of video quality. In those embodiments, processor 202 may execute CRPI 240 to determine the case where CCD 108, 261 is unable to display the video file at least the lowest video quality level. As an example, the determined circumstances may include: (1) 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 processor 263, (3) CCD 108, 261 does not include a CODEC for decoding the video file, (4) the transmission bit rate of the video file by media server 116 or server 560 is too slow for display 283 to continuously display video after the video file begins to be displayed, (5) the transmission bit rate of the video file by media server 116 or server 560 is too fast for the one or more buffers configured to store portions of the video file in memory 271 to fill to capacity to store all received portions of the video file, (6) the signal strength of the communication to CCD 108, 261 over communication network 102 is below a threshold signal strength level, (7) a particular type of network connection to CCD 108, 261 is below a threshold signal strength level, (7) a particular type of network connection, 261 are not available, and/or (8) the display 283 is not capable of displaying both the video file and the diagnostic text.

As another example, a situation indicating that the first computing device is unable to display the video file at least the lowest video quality level may be a situation in which the communication network used by the first computing device is insufficient to transmit the video file to continuously display the video file 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 situation indicating that the first computing device is unable to display the video file at least the lowest video quality level may be a situation in which a communication network used by the first computing device is insufficient to transmit a portion of the video file within a threshold time to continuously display the video file from a beginning of the video file to an end of the video file after the video file begins to be played at the first computing device.

As an example, the network conditions and/or transmission rates may be determined by transmitting a communication and determining the network conditions from 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 a time period T2 to T3. The transfer rate may be determined as the number of bytes of the received matrix code divided by the transfer time (T3 minus T2). The determined transmission rate may be used to determine an expected length of time to download the video file using the same transmission rate. The processor may determine that the video file cannot be displayed at least the minimum video quality level if the determined length of time exceeds the play time of the video file. In some embodiments, determining that a network condition exists based on the length of time that a video file is expected to be downloaded may be conditioned on the length of time exceeding a threshold amount of time (such as one minute or some other amount of time).

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

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

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 a 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 as the matrix code 291 in the memory 271.

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 a display. Fig. 16C shows the matrix code 1650 on the display 232. The matrix code 1650 may be representative of the matrix code 244. In other embodiments, the first display is a display at the CCD 108, 261 (e.g., display 283).

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

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 method comprising performing the set of functions 700 illustrated in fig. 7 may further comprise receiving content order information at the processor 202. Further, displaying the matrix code for the method includes displaying the plurality of matrix codes according to the content order information. Server 106, file server 114, or media server 116 may determine and provide content order information to DCD 104 via communication network 102.

As an example, the content order information may be based on a popularity of content associated with one of the plurality of content descriptions. The following examples in this paragraph pertain to embodiments in which the content description includes video files. For example, the content order information may be based on ratings of the plurality of videos. As yet another example, the content order information may be ranked based on the plurality of videos from a highest frequency of the repairing vehicle to a lowest frequency of the repairing vehicle. As yet another example, the content order information may be based on a time length of the plurality of videos (e.g., a video order from a shortest display time to a longest display time). Further, the content order information may be based on two or more factors described above for determining the order of the video.

In other embodiments including performing a method including setting 700, the method may include the processor determining that a first computing device may communicate with a 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. Further, in these embodiments, the first computing device may transmit a link to the one or more files to the second computing device.

In yet another embodiment comprising performing a method comprising setting 700, a second computing device comprises 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 transmit the one or more files to the first computing device. Also, the first computing device is configured to receive the one or more files from the second computing device. In these embodiments, determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality includes the processor determining that the second computing device is unable to communicate with the first computing device.

C. Third exemplary operation

Next, fig. 8 shows a flow diagram depicting a set of functions 800 (or more simply "collections 800") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 800 includes functions shown in blocks labeled with integers 801 through 805 (inclusive). The description of the collection 800 includes references to elements shown in other figures described in this specification, but the roles of the collection 800 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 800 or any suitable subset of the functions shown in the collection 800. 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 may include executing 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 role of collection 800 and one or more roles from collections 600, 700, 900, 1000, 1100, 1200, 1300, 1400, and/or 1500.

Block 801 includes outputting, by the one or more processors, a file requestor to the first display after determining that the first computing device is indicated as being unable to display the one or more files at the at least minimum level of quality. Outputting the file request may include the processor transmitting the file request and/or data to cause the first display to display the file request. In some embodiments, the file request may comprise a video file request configured to be selectable to indicate that a particular video file has been selected. In some embodiments, the file requestor may include a web page file requestor configured to be selectable to indicate that a network resource link to a particular web page file has been selected.

Next, block 802 includes displaying a file request on the first display. As an example, the file request characters displayed at block 802 may be configured like the diagnostic information selector characters 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at block 802 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

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

Next, block 804 includes receiving the one or more files at the one or more processors in response to the request for the one or more files. The network transceiver 204 may 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 may include receiving data packets containing portions of the one or more files. The contents of the one or more files and/or the respective data packets may be stored in a buffer (e.g., one or more buffers). Each buffer may be a portion of memory 212. The portion of memory storing the file 248 may include a buffer in which the contents of the one or more files and/or data packets are stored.

According to at least some example embodiments, the one or more files include video files. In accordance with at least some of those exemplary embodiments, receiving the video file may include receiving the video file via a plurality of data packets containing different portions of the video file. According to at least some other exemplary embodiments, the one or more files include web page files.

Next, block 805 includes outputting, by the one or more processors, the one or more files to a second display device. According to an exemplary embodiment, the second display device is a CCD 108. For example, the second display device may comprise a smartphone or tablet device. In another exemplary embodiment, the second display device comprises a vehicle component affixed within a passenger compartment of the vehicle 112. The vehicle component may be a vehicle component installed into a vehicle by an OEM. For example, the second display device may include an instrument cluster having a display, a navigation system component having a display, an entertainment system component having a display, and/or a multimedia touch screen display. Alternatively, the vehicle components that are affixed within the passenger compartment may include aftermarket vehicle components that are affixed to the vehicle by a party other than the OEM.

In at least some embodiments including performing the setting 800, the method can further include displaying the one or more files output to the second display device on the second display device (e.g., the 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 a maintenance function on the second display device. In these embodiments, the method may further include servicing the vehicle (e.g., vehicle 112) by performing a servicing function shown on the second display device. As an example, performing a maintenance function may include removing a vehicle component from a vehicle, installing a vehicle component onto a vehicle, diagnosing whether a vehicle component on a vehicle is defective, adjusting a vehicle component on a vehicle, recalibrating a vehicle component on a vehicle, resetting a vehicle component on a vehicle, setting a target near a vehicle, and/or reprogramming a vehicle component on a vehicle. The targets are typically provided for installing and/or calibrating advanced driving assistance systems (ADAS, such as adaptive cruise control systems, adaptive light control systems, automatic braking systems, automatic parking systems, or collision avoidance systems).

D. Fourth exemplary operation

Next, fig. 9 shows a flow diagram depicting a set of functions 900 (or more simply "collections 900"), which may be performed in accordance with the exemplary embodiments described in this specification. The collection 900 includes functions shown in blocks labeled with integers 901 through 905, inclusive. The description of the collection 900 includes references to elements shown in other figures described in this specification, but the roles of the collection 900 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 900 or any suitable subset of the functions shown in the collection 900. 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 that includes the functions of collection 900 may include one or more functions from collections 600, 700, 800, 1000, 1100, 1200, 1300, 1400, and/or 1500. In particular, a method that includes the functions of the collection 900 may include performing the functions of the collection 700 followed by the functions of the collection 900. Further, the particular method may include executing the set 600 prior to executing the set 700.

In an embodiment that includes execution settings 900, the first computing device includes a processor and a first display. Further, in those embodiments, determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality includes the processor determining that the first computing device is not configured to display the one or more files.

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

Next, block 902 includes displaying a file request on the first display. As an example, the file request symbols displayed at block 902 may be configured like the diagnostic information selector symbols 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at block 902 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

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 selection of the file requestor. As an example, selection of the file requestor may be made by touching the file requestor on the first display and/or by using a hardware key (on the first computing device) associated with the file requestor. Transmitting the request may include the network transceiver of the first computing device transmitting a 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 server 560 may determine the one or more files to send in response to the search request, generate a search request response, and transmit the search request response over 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 over the communication network 102. A network transceiver, such as network transceiver 204, may receive the search request response and may cause memory 212 to store the one or more files as file 248.

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 may receive the one or more files from the network transceiver 204 or from the memory 212. According to at least some example 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.

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 processor 202 outputting the one or more files to network transceiver 204 and/or network transceiver 204 transmitting the one or more files to PAN 110. A second computing device (such as the 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 the CCD 108, 261) may store the one or more files received over the PAN 110 as a file 293.

E. Fifth exemplary operation

Next, fig. 10 shows a flow diagram depicting a set of functions 1000 (or more simply "collections 1000") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 1000 includes the functions shown in the blocks labeled with integers 1001 through 1006, inclusive. The description of the collection 1000 includes references to elements shown in other figures described in this specification, but the roles of the collection 1000 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1000 or any suitable subset of the functions shown in the collection 1000. 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 that includes the functions of collection 1000 may include one or more functions from collections 600, 700, 800, 900, 1100, 1200, 1300, 1400, and/or 1500. In particular, a method that includes the functions of the collection 1000 may include performing the functions of the collection 700 followed by the functions of the collection 1000. Further, the particular method may include executing the set 600 prior to executing the set 700.

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

Next, block 1002 includes displaying a file request on the first display. As an example, the file request symbol displayed at block 1002 may be configured like the diagnostic information selector symbols 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at block 1002 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

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 selection of the file requestor. The example of a transmission request in the discussion above for block 903 applies to block 1003.

Next, block 1004 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 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 example 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.

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

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

F. Sixth exemplary operation

Next, fig. 11 shows a flow diagram depicting a set of functions 1100 (or more simply a "collection 1100") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 1100 includes the functions shown in the blocks labeled with integers 1101 through 1106, inclusive. The description of the collection 1100 includes references to elements shown in other figures described in this specification, but the roles of the collection 1100 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1100 or any suitable subset of the functions shown in the collection 1100. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. In particular, a method that includes the functions of collection 1100 may include the functions of collection 600 and/or collection 700. For example, a method that includes the functions of the collection 1100 may include performing the functions of the collection 700 followed by the functions of the collection 1100. Further, the particular method may include executing the set 600 prior to executing the set 700. As yet another example, a method may include performing a function of collection 1100 and one or more functions from collections 600, 700, 800, 900, 1000, 1200, 1300, 1400, and/or 1500.

In an embodiment that includes the set of executions 1100, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices may register with each other such that the first computing device registers with the second computing device and/or the second computing deviceThe computing device is registered with the first computing device. For being configured to useA computing device that operates in a standard manner, the registered device is sometimes referred to as a "paired device". Further, in these embodiments, the second computing device is configured to transmit the file to the first computing device, and the first computing device is configured to receive the file from the second computing device. By way of example, the files may include video files and/or HTML files. Further, in the above-described embodiments in which the file comprises a video file, determining that the condition indicative of the first computing device being unable to display the video file at least the lowest 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 least the video quality level at which the first display of the second computing device may display the video file.

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

Next, block 1102 includes displaying the file request on the first display. As an example, the file requestor displayed at block 1102 may be configured like the diagnostic information selectors 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at block 1102 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

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 selection of the file requestor. As an example, selection of the file requestor may be made by touching the file requestor on the first display and/or by using a hardware key (on the second computing device) associated with the file requestor. Transmitting the request may include the network transceiver of the second computing device transmitting a 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 server 560 may determine one or more files to send in response to the search request, generate a search request response, and transmit the search request response over 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 over the communication network 102. A network transceiver, such as network transceiver 204, may receive the search request response and may cause memory 212 to store the one or more files as file 248.

Next, block 1104 includes receiving, at the one or more processors, the one or more files in response to the request for the one or more files. By way of 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 example 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.

Next, block 1105 includes outputting, by the one or more processors, the one or more files to a first display. By way of example, the one or more processors may transmit the file 248 to the display 232 over the system bus or network 214.

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

G. Seventh exemplary operation

Next, fig. 12 shows a flow diagram depicting a set of functions 1200 (or more simply "collections 1200") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 1200 includes functions shown in blocks labeled with integers 1201 through 1205 (inclusive). The description of the collection 1200 includes references to elements shown in other figures described in this specification, but the roles of the collection 1200 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1200 or any suitable subset of the functions shown in the collection 1200. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. In particular, methods that include the functions of collection 1200 may include the functions of collection 600 and/or collection 700. For example, a method that includes the functions of the collection 1200 may include performing the functions of the collection 700 followed by the functions of the collection 1200. Further, the particular method may include executing the set 600 prior to executing the set 700. As yet another example, a method may include performing the function of collection 1200 and one or more functions from collections 600, 700, 800, 900, 1000, 1100, 1300, 1400, and/or 1500.

In an embodiment that includes the set of executions 1200, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices may register with each other such that the first computing device registers with the second computing device and/or the second computing device registers with the first computing device. Further, in these embodiments, the second computing device is configured to transmit the 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 condition indicative of the first computing device being unable to display the one or more files at the at least lowest level of quality may occur in response to the processor of the second computing device determining that the second computing device is unable to display the one or more files at the at least level of quality at which the first display of the second computing device may display the one or more files.

A 1201 includes outputting, by the one or more processors, a file requestor to a first display. In at least some embodiments, outputting the file request may include processor 202 transmitting the file request to display 232 over system bus or network 214. The file requestor is selectable to cause the one or more processors to request the one or more files for display on the first display.

Next, block 1202 includes displaying a file request on the first display. As an example, the file request characters displayed at block 1202 may be configured like the diagnostic information selector characters 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at 1202 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

Next, block 1203 includes transmitting a request for the one or more files from a remote device associated with the link to the one or more files in response to the selection of the file requestor. The example of a transfer request in the discussion above for block 1103 applies to block 1203. The links include links encoded within a matrix code.

Next, block 1204 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. According to at least some example 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.

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, wherein the one or more files comprise video files, outputting the one or more files comprises outputting the video files. Outputting the video file may include the processor 202 outputting the video file to the network transceiver 204 and/or the network transceiver 204 transmitting the video file to the PAN 110. A first computing device (such as the CCD 108, 261) may receive the video file using the network transceiver 265 and/or display the video file on the display 283. A first computing device, such as the CCD 108, 261, may store video files received over the PAN 110 as a file 293.

H. Eighth exemplary operation

Next, fig. 13 shows a flow diagram depicting a set of functions 1300 (or more simply "collections 1300") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 1300 includes functions shown in blocks labeled with integers 1301 through 1306 (inclusive). The description of the collection 1300 includes references to elements shown in other figures described in this specification, but the roles of the collection 1300 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1300 or any suitable subset of the functions shown in the collection 1300. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. In particular, a method that includes the functionality of collection 1300 may include the functionality of collection 600 and/or collection 700. For example, a method that includes the roles of collection 1300 may include performing the roles of collection 700 followed by the roles of collection 1300. Further, the particular method may include executing the set 600 prior to executing the set 700. As yet another example, a method may include performing the role of collection 1300 and one or more roles from collections 600, 700, 800, 900, 1000, 1100, 1200, 1400, and/or 1500.

In an embodiment that includes the set of executions 1300, the second computing device includes a processor and a first display. Further, in these embodiments, the first and second computing devices may register with each other such that the first computing device registers with the second computing device and/or the second computing device registers with the first computing device. Further, in these embodiments, the second computing device is configured to transmit the 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 condition indicative of the first computing device being unable to display the one or more files at the at least lowest level of quality may occur in response to the processor of the second computing device determining that the second computing device is unable to display the one or more files at the at least level of quality at which the first display of the second computing device may display the one or more files.

Block 1301 includes outputting, by the one or more processors, the file requestor to the first display. In at least some embodiments, outputting the file request may include processor 202 transmitting the file request to display 232 over system bus or network 214. The file requestor is selectable to cause the processor to request the one or more files for display on the first display.

Next, block 1302 includes displaying a file request on the first display. As an example, the file request symbols displayed at block 1302 may be configured like the diagnostic information selector symbols 1641, 1646 shown in fig. 16C. As another example, the file requestor displayed at block 1302 may be configured like the diagnostic information selectors 1631, 1633 shown in fig. 16K.

Next, block 1303 includes transmitting a request for the one or more files from a remote device associated with the link to the one or more files in response to selection of the file requestor displayed by the first display. The example of a transfer request in the discussion above for block 1103 applies to block 1303. The links include links encoded within a matrix code.

Next, block 1304 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 may receive the one or more files from the network transceiver 204 or from the memory 212.

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

Next, block 1306 includes displaying the one or more files on the first display at a level below the minimum quality level. By way of example, the display 232 may display the one or more files in a display window (such as the display window 1668 shown in fig. 16F and 16H). Further, in an exemplary embodiment in which the one or more files include a video file, processor 202 may cause display 232 to display non-video information while the video file is being displayed.

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

In an exemplary embodiment, where the one or more files comprise video files, the lowest quality level may comprise a lowest video quality level. Displaying the video file at a level below the lowest video quality level may, but need not, include displaying the video file using a lower display resolution than the display resolution associated with the lowest video quality level and/or displaying the video file using a lower frame rate than the frame rate associated with the lowest video quality level.

Further, the DCD 200 may be configured to be capable of displaying a video file using any of a plurality of aspect ratios and/or any of a plurality of CODECs. The DCD 200 may include a hierarchy of aspect ratios ranging from the most favored aspect ratio to the least favored aspect ratio. One or more of the aspect ratios in the hierarchy of aspect ratios may be associated with displaying video files below a minimum video quality level. Likewise, the DCD 200 may include a hierarchy of CODECs ranging from the most favored CODEC to the least favored CODEC. One or more CODECs in the hierarchy of CODEC ratios may be associated with a video file that displays a lower than minimum video quality level. Displaying the video file at a level below the lowest video quality level may include displaying the video file using an aspect ratio associated with displaying the video file below the lowest video quality level and/or using a CODEC associated with displaying the video file below the lowest video quality level. Other examples of displaying video files at levels below the minimum video quality level are also possible.

I. Ninth exemplary operation

Next, fig. 14 shows a flow diagram depicting a set of functions 1400 (or more simply "collections 1400"), which may be performed in accordance with the exemplary embodiments described in this specification. The collection 1400 includes the functions shown in the blocks labeled with integers 1401 through 1406 (inclusive). The description of the collection 1400 includes references to elements shown in other figures described in this specification, but the roles of the collection 1400 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1400 or any suitable subset of the functions shown in the collection 1400. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. As yet another example, a method may include performing a function of collection 1400 and one or more functions from collections 600, 700, 800, 900, 1000, 1100, 1200, 1300, and/or 1500.

In some embodiments including execution set 1400, the first computing device includes a DCD, such as DCD 104, 200. In other embodiments including the set of executions 1400, the first computing device includes a CCD, such as the CCDs 108, 261. In any embodiment that includes executing the set 1400, wherein the first computing device includes a DCD or a CCD, a method that includes executing the set 1400 may include executing the set 600 prior to executing the set 1400. A method comprising executing the set 1400 may, but need not, comprise receiving matrix code.

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 links to the one or more files. By way of example, the content description may include the content description 300 or any type of data included in the content description 300. The one or more processors may receive content descriptions from a communication network transceiver connected to the one or more processors over the 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.

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 least a minimum level of quality. Examples of situations described elsewhere in this specification apply here.

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 to receive the one or more files. In embodiments where DCD 104, 200 is a first computing device, CCD 108, 261 may be a second computing device. In embodiments where CCD 108, 261 is the first computing device, DCD 104, 200 may be the 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 registered device data 260 to determine computing devices that are registered with the first computing device. As an example, making the determination at block 1403 may include determiningThe second computing device is connected to the communication network 102 (e.g., the second computing device is connected to cellular and/orA network).

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 a third computing device associated with the link to the one or more files. As an example, making the determination at block 1404 may include determining that the second computing device has better going to the cell and/or going to the cell than the first computing deviceNetwork connection of the network. Determining a better network connection may include determining which network is currently capable of transmitting data at a faster rate. The processor may execute or request another device (such as a second computing device) to perform a speed test that determines a rate at which the network transmits data to the first computing device or the second computing device.

Next, block 1405 includes, in response to making the 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, at the first computing device, the one or more files, 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 a third computing device associated with the link. The direct connection may include a PAN 110 established between DCD 104 and CCD 108.

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. The role 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 a third computing device associated with the link. The direct connection may include a PAN 110 established between DCD 104 and CCD 108.

J. Tenth exemplary operation

Next, fig. 15 shows a flow diagram depicting a set of functions 1500 (or more simply "collection 1500") that may be performed in accordance with the exemplary embodiments described in this specification. The collection 1500 includes functions shown in blocks labeled with integers 1501 through 1504 (inclusive). The description of the collection 1500 includes references to elements shown in other figures described in this specification, but the roles of the collection 1500 are not limited to being performed by only the referenced elements. The various methods may be performed using all of the functions shown in the collection 1500 or any suitable subset of the functions shown in the collection 1500. Any of these methods may be performed using other functions, such as one or more of the other functions described in this specification. As yet another example, a method may include performing the function of collection 1500 and one or more functions from collections 600, 700, 800, 900, 1000, 1100, 1200, 1300, and/or 1400.

Block 1501 includes receiving network resource links and matrix codes at one or more processors. The network resource links include links to one or more network resources. The matrix code is encoded with network resource links.

In at least some example embodiments, the one or more processors include processor 202. In those embodiments, receiving the network resource link and the matrix code may include the processor 202 receiving the network resource link and the matrix code from the network transceiver 204 and/or the memory 212. In at least some of those embodiments, the 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 embodiments described above, receiving the web resource link and/or the 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 network resource links and/or matrix code.

In at least some example embodiments, the web resource link received by the one or more processors may, but need not, include or be arranged as a URI that points to a website on the world wide web. The one or more processors may provide the network resource link to memory 212 for storage as link 242. As an example, the URI may comprise a File Transfer Protocol (FTP) URI. As another example, the URI may comprise a hypertext transfer protocol URI, such as an HTTP URI or an HTTPs URI. As yet another example, the web resource link may be arranged like an HTTP URI shown within the link display 1635.

In at least some example 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.

In at least some example embodiments, the one or more processors may, but need not, receive the network resource links and the matrix code while executing an application (as described above) for performing the diagnostic function.

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

In at least some example embodiments, the DCD 200 does not include a browser application executable by the processor 202. The 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 350MB, or for some other reason. According to these embodiments, the processor 202 may determine that the network resource link cannot be traversed because a network browser is required to traverse the link and/or the DCD 200 does not include a browser.

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

Next, block 1503 includes outputting, by the one or more processors, the matrix code to a first display operatively coupled to the one or more processors in response to determining that the condition indicating that the first computing device is unable to traverse the network resource link. In accordance with at least some embodiments, outputting the matrix code to the first display may include the one or more processors reading file 248 and outputting data values representative of the matrix code to a processor of a video card arranged in operable connection with display 232.

Next, block 1504 includes displaying the matrix code on the first display. According to an exemplary embodiment, the first display may include a display 232. In at least some of those embodiments, the display matrix code may comprise a display matrix code 1650 as shown in fig. 16C. As an example, the first display may display text describing the matrix code on display 232 proximate to the matrix code, such as the text "scan the matrix code with a companion computing device to obtain a link to video1.mp4," as shown in fig. 16C.

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

V. exemplary display output

Fig. 16A shows a display output 1601 displayed on the display 232, according to an example embodiment. Display output 1601 shows a vehicle model year selection 1624, a vehicle make 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, vehicle make selection 1626, vehicle model selection 1628, engine size selection 1630 represent selections that have been made on the display 232. The vehicle identifier 1632 shows the result of making a selection on the display 232 while the display output 1601 is displayed. The data in the vehicle identifier 1632 may be stored in the memory 212 as the vehicle identifier 250. The display 232 may display a secondary item selector 1620 and a previous item selector 1622. The secondary item selector 1620 may be configured to be selectable to cause the processor 202 to output a 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.

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

Next, fig. 16C shows a display output 1605 displayable on a display (such as display 232) according to an example embodiment. Processor 202 may cause display output 1605 to be shown upon receipt of 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 a selection on display 232 while display output 1603 is displayed.

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

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

The display output 1605 includes matrix code 1650. The matrix code 1650 can include a visual representation of the matrix code 654 included in the search request response 650 and/or the matrix code 244 stored in the memory 212. The display output 1605 also includes network status identifiers 1652, 1654. As an example, the network status identifier 1652 may represent what is going to the DCD 200The 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 figures also show network status identifiers 1652, 1654.

As another example, the diagnostic information selector displayed on a display output (such as display output 1605) may include a diagnostic information selector associated with a scan tool function identifier that identifies a scan tool function that the DCD 104, 200 may perform. As an example, the scan tool role may include transmitting the VDM to a vehicle connected to the VCT 206. As another example, the scan tool role may include displaying data contained in a VDM transmitted 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 VDMs that include VDMs that perform function tests, component tests or reset procedures, calibration procedures, and/or reprogramming procedures in the vehicle 112.

Next, fig. 16D illustrates a display output 1607 displayable on a display (such as display 232) according to an exemplary embodiment. The display output 1607 includes a list 1656 of registered devices. Display output 1607 includes selectors 1658, 1659 to select registered devices. A selector, such as secondary item selector 1620, may be selected to cause the DCD 200 to begin connecting to a selected registered device, such as a CCD.

Next, fig. 16E shows a display output 1609 displayable on a display (such as display 232) according to an example embodiment. The display output 1609 includes information about the status of a registered CCD, such as the CCD 261 registered with the DCD 200. As shown in fig. 16E, the information on the status of the registered CCD may include an indicator 1660 indicating whether the CCD is connected to the DCD. For the case where the CCD 261 and the DCD 200 are connected, the DCD 200 may receive information about the connection of the CCD 261 to the communication network 102 from the 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 a representation of what is received by CCD 261Indicator 1664 of the signal strength of the network.

The DCD 200 may receive information about data usage of the CCD 261 from the CCD 261. Display output 1609 includes an indicator 1666 that represents the use of the data of CCD 261. As an example, indicator 1666 may represent how much data CCD 261 has transmitted and/or received using the cellular network during the service agreement deadline. The user of the DCD 200 may refer to the indicators 1662, 1664, 1666 to determine whether to have the CCD 261 download the video file. For example, if downloading a video file is to occur via a cellular network, the user may not want to download the video file using CCD 261. Further, 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.

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

Next, fig. 16F illustrates a display output 1611 that may be displayed on a display (such as display 232) according to an exemplary embodiment. Display output 1611 shows a display window 1668 in which files 248 may be displayed. FIG. 16F shows the visual representation 320 of the thumbnail 256 and at least a portion of the subject description 306 and the play time 318 displayed in the display window 1668. The display output 1611 includes control selectors 1670, 1672, 1674, 1676, 1678, 1680 that are selectable to cause the processor 202 to control the playing of video files within the display window 1668. Control selector 1670 is used to play the video file within display window 1668. Control selector 1672 is used to pause the play of the video file within display window 1668. The control selectors 1674, 1676 are used to fast-forward play the video file at different speeds, and the control selectors 1678, 1680 are used to fast-reverse play the video file at different speeds. Additionally or alternatively, the DCD 200 may include hardware keys to cause the processor 202 to control the playing of video files within the display window 1668, similar to using any of the control selectors 1670, 1672, 1674, 1676, 1678, 1680.

Next, fig. 16G shows a display output 1613 that may be displayed on a display (such as display 232) according to an example embodiment. Display output 1613 illustrates flowchart 1682. The flow diagram 1682 may be a portion of the diagnostic information received by the DCD 200 from the servers 106, 500, 520, such as the diagnostic information 644, 652 received by the DCD 200 in response to sending the search request 610 and/or in response to sending a communication indicating that a diagnostic information selector (e.g., the diagnostic information selector 1627) has been selected. The DCD 200 may display the non-video diagnostic information on the display 232 for a case where the DCD 200 cannot display the video file or a case where the display 232 cannot simultaneously display the video file and the non-video diagnostic information.

Next, fig. 16H illustrates a display output 1615 that may be displayed on a display (such as display 232) according to an exemplary embodiment. The display output 1615 shows a change in the display outputs 1611, 1613 because the display output 1615 shows a display window 1668 with the visual representation 320 of the thumbnail 256, control selectors 1670, 1672, 1674, 1676, 1678, 1680, and the flowchart 1682. The DCD 200 may display the display output 1615 for a case where a CCD connected to the DCD 200 cannot display a video file at least at a minimum video quality level and the DCD 200 is configured to display the video file. Other examples of situations where the DCD 200 displays a display output with video files and non-video diagnostic information are possible.

Next, fig. 16I shows display output 1617 displayable on a display (such as display 283) according to an example embodiment. Display output 1617 includes display window 231 displaying file 293. The display output 1617 also includes control selectors similar to control selectors 1670, 1672, 1674, 1676, 1678, 1680. The display output 1617 also includes network status identifiers 235, 237. As an example, network status identifier 235 may represent a connection to CCD 261 The status of the network connection and the network status identifier 237 may represent the status of the cellular network connection to the CCD 261.

Next, fig. 16J illustrates a display output 1619 that may be displayed on a display (such as display 283) according to an exemplary embodiment. Display output 1619 includes a display window 231 showing files 293 and diagnostic information, such as OEM flowchart 239. The display 283 may also display the content shown in the display outputs 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615.

Next, fig. 16K shows display output 1623 that may be displayed on a display (such as display 232). Processor 202 may cause display output 1623 to be shown upon receipt of a search request response, such as a response to search request 610. Display output 1623 includes secondary item selector 1620, previous item selector 1622, vehicle identifier 1632, pointer 1634, symptom identifier 1642, and network status identifiers 1652, 1654, all described elsewhere.

Display output 1623 includes a diagnostic information selector 1625 that is selectable to cause display 232 to display diagnostic information, such as diagnostic information 644, 652, 672. The diagnostic information selectors 1625 and/or diagnostic information that may be displayed in response to selection of one of the diagnostic information selectors 1625 may be received in a search request response. Diagnostic information that is displayable in response to selection of one of the diagnostic information selectors 1625 may include diagnostic information 264. As shown in fig. 16K, diagnostic information selectors 1625 include diagnostic information selectors 1627, 1629, 1631, 1633 associated with the 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 possible.

Pointer 1634 may be moved to a different location on display 232. Fig. 16K shows a pointer 1634 on the diagnostic information selector 1631, and a link display 1635. In fig. 16K, link display 1635 displays a link associated with diagnostic information selector 1631. When the pointer 1634 is moved away from the diagnostic information selector 1631, the link display 1635 stops displaying the link associated with the diagnostic information selector 1631. Link display 1635 may provide an indication of URIs and/or web resource links that are available for traversal. If the DCD 200 can traverse the URI and/or web resource link displayed by the link display 1635, double-clicking on the diagnostic information selector 1631 can cause the processor 202 to send a request for content associated with the URI and/or web resource link.

Next, fig. 16L illustrates a display output 1645 that may be displayed on a display (such as display 232). Processor 202 may cause display output 1645 to be shown when a search request response is received, such as a response to search request 610. Display output 1645 includes secondary item selector 1620, previous item selector 1622, vehicle identifier 1632, pointer 1634, symptom identifier 1642, and network status identifiers 1652, 1654, all described elsewhere.

Display output 1645 includes diagnostic information selector 1647 that is selectable 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 the diagnostic information selectors 1647 may be received in a search request response. Diagnostic information displayable in response to selection of one of the diagnostic information selectors 1647 may include diagnostic information 264. As shown in fig. 16L, the diagnostic information selector 1647 includes diagnostic information selectors 1627, 1629 associated with the OEM flow diagram and technical service bulletin, respectively. Other examples of diagnostic information associated with one or more diagnostic information selectors 1647 are also possible.

Display output 1645 includes matrix codes 1649, 1651. The matrix codes 1649, 1651 may encode links, such as network resource links. By way of example, matrix code 1649 may encode a link, such as a link as link display 1635. As another example, the matrix code 1651 may encode a link, such as the URI 1653 shown in fig. 16C.

Display output 1623 may be displayed in relation to an exemplary embodiment in which DCD 200 is capable of traversing network resource links, such as links encoded in matrix code 1649, 1651. The display output 1645 may be displayed in relation to an exemplary embodiment in which the processor 202 determines that the DCD 200 is unable to traverse network resource links (such as links encoded in the matrix code 1649, 1651). Display outputs 1623, 1645 may be displayed in relation to other exemplary embodiments.

VI. an exemplary vehicle

A vehicle, such as vehicle 112, is a mobile machine that may be used to transport a single person, multiple persons, and/or cargo. The vehicle may be, but need not be, driven and/or otherwise guided along a path (e.g., paved roads or otherwise) on land, in water, in air, and/or out-of-space. The vehicle may, but need not be, wheeled, tracked, and/or skiing. The vehicle may, but need not, include an automobile, a motorcycle, an All Terrain Vehicle (ATV) as defined by ANSI/SVIA-1-2007, a snowmobile, a personal water motorcycle (e.g.,personal water motorcycle), light truck, medium truck, heavy truck, semi-tractor, drone, and/or agricultural machine. The vehicle may, but need not, include and/or use any suitable voltage and/or current source (such as a battery, alternator, fuel cell, etc.) that provides any suitable current and/or voltage (such as about 12 volts, about 42 volts, etc.). The vehicle may, but need not, 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 that generated by batteries, magnets, fuel cells, solar cells, etc.), wind power, and hybrid power, and/or combinations thereof. The vehicle may, but need not, 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.

Some vehicles may be identified by characteristics of the vehicle, such as characteristics indicating 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 characteristics of the vehicle (e.g., engine type). The present description uses the acronymme and/or Y/M/E, where each letter represents model year, vehicle make, vehicle model name, and engine type, respectively, in the order shown. The present specification uses the acronyms YMM and/or Y/M, where each letter represents model year, vehicle make, and vehicle model name, respectively, in the order shown. The exemplary Y/M/M/E shown in the drawings is 2018/Toyota/Camry/4 Cyl, where "2018" represents the model year of the vehicle, "Toyota" represents the Toyota auto company of the vehicle manufacturer, named Ribove, and "Camry" represents the vehicle model made by the manufacturer, and "4 Cyl" represents the engine type within 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 the vehicle in addition to or as an alternative to "engine type". These other characteristics may be identified in various ways, such as a conventional production option (RPO) code, such as the RPO code defined by general automobile company of detroit, michigan.

Some vehicles, such as automobiles, are associated with a unique Vehicle Identification Number (VIN). Some VINs include 17 alphanumeric characters. Some characters of at least some VINs represent YMME or YMM. In some cases, the vehicle includes a one-dimensional barcode indicating a VIN associated with the vehicle.

The vehicle communication bus within the vehicle may include one or more conductors (e.g., copper wire conductors) and/or may be wireless. As an example, the 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 an Society of Automotive Engineers (SAE) J1850(PWM or VPW) VDM protocol, an International organization for standardization (ISO)16764-4 Controller Area Network (CAN) VDM protocol, an ISO 9141-2K-Line VDM protocol, an ISO 14230-4KWP 2000K-Line VDM protocol, or some other protocol currently defined for communicating within a vehicle.

The DLC may include an on-board diagnostic (OBD) connector, such as an OBD II connector. OBD II connectors may include slots for retaining up to 16 connector terminals, but may include a different number of slots or no slots at all. By way of example, the DLC connector may comprise an OBD II connector compliant with SAE J1962 specifications, such as connector 16M, part number 12110252, available from Aptiv LLC of dublin, ireland. The DLC may include conductor terminations that connect with conductors in the vehicle. For example, a DLC may include connector terminals connected to conductors that are connected to the positive and negative poles of an automotive battery, respectively. The DLC may include one or more conductor terminations on conductors connected to the vehicle communication bus such that the DLC is operably connected with the ECU.

The ECU may control various aspects of vehicle operation and/or components within the vehicle. For example, the ECUs may include a Powertrain (PT) system ECU, an Engine Control Module (ECM) ECU, a supplemental air charge restraint (SIR) system (i.e., airbag system) ECU, an entertainment system ECU, or some other ECU. The ECU may receive inputs (e.g., sensor inputs), control output devices (e.g., solenoids), generate vehicle data messages (VDMs, such as VDMs based on the received inputs or controlled outputs), and set Diagnostic Trouble Codes (DTCs) to particular states (e.g., activity or history).

VII. conclusion

It is to be understood that the arrangements described herein and/or shown in the drawings are for purposes of illustration only and are not intended to be limiting. Thus, those skilled in the art will appreciate that other arrangements and elements (e.g., groupings of machines, interfaces, functions, orders, and/or functions) may be used instead, and that some elements may be omitted entirely. Further, the various functions performed by one or more elements described and/or illustrated in the figures 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 CRPIs contained in some computer readable media to perform some functions may include executing all or only a portion of the program instructions of the CRPIs.

While various aspects and embodiments are described herein, other aspects and embodiments will be apparent to those skilled in the art. The aspects and embodiments disclosed herein are for purposes of illustration and not limitation, with the true scope being indicated by the claims and all equivalents of those claims. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting.

In this specification, the articles "a," "an," and "the" are used to introduce elements and/or functions of the exemplary embodiments. The intent of using these terms is that there be one or more of the elements and/or functions described.

In this specification, the use of the term "and/or" for purposes of a list of at least two elements or functions, and the use of the term "at least one," "one or more," or "one or more" immediately preceding the list of at least two elements or functions, is intended to encompass each embodiment which independently includes the listed elements or functions, as well as each embodiment which includes a combination of the listed elements or functions. For example, it is described as including A, B and/or C, or at least one of A, B and C, or at least one of the following: A. at least one of B and C, or A, B or C, or at least one of: A. one or more of B or C, or A, B and C, or one or more of the following: A. b and C, or A, B or C, or one or more of the following: A. embodiments of B or C are intended to encompass each of the following possible embodiments: (i) an embodiment that includes a but does not include B nor C, (ii) an embodiment that includes B but does not include a nor C, (iii) an embodiment that includes C but does not include a nor B, (iv) an embodiment that includes a and B but does not include C, (v) an embodiment that includes a and C but does not include B, (vi) an embodiment that includes A, B and C. For embodiments that include a component or function a, embodiments can include one a or more a. For embodiments that include a component or function B, embodiments can include one B or more B. For embodiments that include a component or function C, embodiments can include one C or more C. Ordinal numbers such as "first," "second," "third," etc. are used to distinguish between corresponding elements and not to represent a particular order of the elements unless otherwise indicated by the context in which the terms are used. The symbol "$" is used as a prefix of a number, representing that the number is a hexadecimal number.

Embodiments of the present disclosure may thus relate to one of the example embodiments (EEEs) listed below.

EEE 1 is a process 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 links 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 the first computing device is unable to display the one or more files at least a minimum level of quality; responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and displaying the matrix code on the first display.

EEE 2 is a method of EEE 1, further comprising: outputting, by the one or more processors, a file request to the first display after determining that the first computing device is indicated as being unable to display the one or more files at the at least minimum level of quality; displaying a file request on a first display; transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor; 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 a second display device, wherein the first computing device includes the one or more processors and the first display.

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

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

EEE 5 is the method of EEE 2 or 3, wherein the second display device comprises a smartphone or a tablet device.

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

EEE 7 is the method of any one of EEEs 1 to 5, wherein the content description comprises data indicating one or more of: (i) a uniform resource indicator associated with at least one of the one or more files, (ii) a filename 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 compressed 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 encoded bitrate of at least one of the one or more files, or (ix) a play time of at least one of the one or more files.

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

EEE 9 is a method of EEE 8, further comprising: outputting, by the one or more processors, a file requestor to the first display after determining that the first computing device is not configured to display the one or more files; displaying a file request on a first display; transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor; 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 a second display device, wherein the first computing device includes the one or more processors and the first display.

EEE 10 is a 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 that the condition indicates that the first computing device is unable to display the one or more files at least the minimum level of quality includes the one or more processors determining that a communication network used by the first computing device is insufficient to transmit the video file to display the video file continuously from a start of the video file to an end of the video file when playback of the video file begins at the first computing device, or to transmit a portion of the video file within a threshold time to display the video file continuously from the start of the video file to the end of the video file after playback of the video file begins at the first computing device.

EEE 11 is a method of EEE 1, further comprising: after determining that the first computing device is indicated as being unable to display the one or more files at the at least minimum level of quality, outputting, by the one or more processors, a file requestor to the first display, wherein the file requestor is selectable to cause the one or more processors to request the one or more files for display on the first display; displaying a file request on a first display; transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor; receiving, at the one or more processors, the one or more files in response to the request for the one or more files; outputting, by the one or more processors, the one or more files to a first display; and displaying the one or more documents on the first display at a level below the minimum quality level.

EEE 12 is a method of EEE 1, wherein the second computing device includes the one or more processors and a first display, wherein the first computing device is registered with the second computing device, wherein determining that the condition indicative of the first computing device being unable to display the one or more files at the at least minimum level of quality 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 the level of quality at which at least 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.

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

EEE 14 is a method of EEE 12, further comprising: outputting, by the one or more processors, the file request to the first display; displaying a file request on a first display; transmitting, from a remote device associated with a link to the one or more files, a request for the one or more files in response to selection of the file requestor; 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.

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

EEE 16 is a method of EEE 1, wherein the second computing device includes the one or more processors and a first display, wherein the first computing device is registered with the second computing device, wherein determining that the condition indicates that the first computing device is unable to display the one or more files at the at least minimum level of quality 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.

EEE 17 is a method of EEE 1, further comprising: determining, at the one or more processors, that the first computing device may 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 to the second computing device, a link to the one or more files.

EEE 18 is a 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, at the one or more processors, content order information, wherein displaying the matrix code comprises displaying the matrix code according to the content order information.

EEE 19 is a method of EEE 1, wherein receiving a content description and matrix code comprises receiving a 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 are unable to traverse the link within the web page.

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 comprising: receiving, at the 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 links to the one or more files; determining, at the one or more processors, based on the content description, a condition indicating that the first computing device is unable to display the one or more files at least the minimum level of quality; responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and displaying the matrix code on the first display.

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

The 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 comprising: receiving, at the 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 links to the one or more files; determining, at the one or more processors, based on the content description, a condition indicating that the first computing device is unable to display the one or more files at least a minimum level of quality; responsive to determining that the first computing device is indicated as being unable to display the one or more files at least the minimum level of quality, outputting, by the one or more processors, matrix code to a first display operatively coupled with the one or more processors; and displaying the matrix code on the first display.

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

EEE 24 is a method comprising: receiving, at one or more processors within a first computing device, a content description, wherein the content description includes data describing one or more files and links 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 least a minimum level of quality; 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 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 a third computing device associated with the link, receiving, at the first computing device, the one or more files, 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 link is output to the second computing device via a direct connection between the first computing device and the second computing device.

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

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

EEE 27 is a method of EEE 24 or 25, wherein the second computing device comprises a smartphone or tablet device.

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

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

The EEE 30 is a method of any one of the 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 filename 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 compressed 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 encoded bitrate of at least one of the one or more files, or (ix) a play time of at least one of the one or more files.

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

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

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 one or more processors, based at least in part on the network resource link, a condition indicating that the first computing device is unable to traverse the network resource link; responsive to determining that the condition indicating that the first computing device is unable to traverse the network resource link, outputting, by the one or more processors, the matrix code to a first display operatively coupled with the one or more processors; and displaying the matrix code on the first display.

EEE 34 is a method of EEE 33, wherein a first computing device is within a vehicle component affixed within a passenger compartment of a vehicle.

EEE 35 is a method of EEE 33, wherein the first computing device comprises a smartphone or a tablet device.

EEE 36 is a method of any one of EEEs 33 to 35, further comprising: determining, at the one or more processors, that a first computing device may communicate with a second computing device configured to link across network resources, 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.

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.

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

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

82页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器学习装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类