There currently are monitoring devices that may communicate with an on-board diagnostic (OBD) port of a vehicle. The monitoring devices may obtain OBD codes via the OBD port. The OBD codes may provide diagnostic information and status information for various aspects of the vehicle. For example, certain codes relate to the appearance of a “check engine” indicator on the vehicle's dashboard display. OBD codes that may indicate the problem associated with the display of the “check engine” indicator provide information as to the cause. Other examples of information provided by OBD codes may include Global Positioning System (GPS), direction, movement sensing, vehicle dashboard information (e.g., fuel level, heat level, speed, acceleration, alarm, etc.), etc.
The monitoring devices may obtain the OBD codes and process them to provide information to an electronic device of a user. For example, the portable electronic device may be in the form of a smartphone. The smartphone may include an applet that receives information from a processing service that process received OBD codes from the monitoring device. Thus, the monitoring device may send an OBD code to the processing service that processes the OBD code, where the OBD code relates to a low engine oil level for the vehicle's engine. Thus, the processing service may send a message to the electronic device and the electronic device's display may display a message “low engine oil” or “check engine oil.” However, while there are many OBD codes that provide diagnostic and other types of information, many pieces of information are not available using OBD codes. For example, information related to the interior of the vehicle, operating status of various components of the vehicle, physical status of the vehicle, etc., may not be available using OBD codes obtained via the OBD port. Furthermore, older vehicles may have limited OBD codes that may be obtained via the OBD port.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
Techniques and architecture are described herein for combining non-onboard diagnostic (OBD) codes with OBD codes to provide a list of codes that may be used to provide information to a user regarding a vehicle. For example, an auxiliary monitoring device may be included in a vehicle in the form of one or more sensors, e.g., cameras, image sensors, movement sensors, audio sensors, virtual reality (VR) cameras, augmented reality (AR) cameras, infrared (IR) sensors, odor sensors, etc., that may collect vehicle information that is not available through the vehicle's OBD port. The auxiliary monitoring device may obtain the information and convert the information into a corresponding non-OBD code. The auxiliary monitoring device complements an OBD monitoring device included in the vehicle that is coupled to the vehicle's OBD port to obtain OBD codes therefrom.
In particular, the auxiliary monitoring device may obtain information related to, for example, a status of the vehicle (e.g., the vehicle is moving when it should not be, has been bumped, etc.), a status of a reading light within the vehicle, a status of a headlight of the vehicle, an alarm with respect to the vehicle, the presence of something alive, e.g., an animal, a child, etc., within the vehicle, mileage information, temperature information, navigator information, map information, etc. For example, the auxiliary monitoring device may be in the form of a camera and may gather information from the vehicle's dashboard display related to, for example, fuel level, position of a fuel cap on the vehicle, tire pressure, battery level, temperature, etc.
When information is obtained via the auxiliary monitoring device, the auxiliary monitoring device may send an appropriate non-OBD code over a wireless communication network to a processing service. In configurations, the processing service may be provided by one or more servers of the wireless communication network. In some configurations, the processing service may be part of a network of computing resources, e.g., a “cloud” network. The processing service may include a list of OBD codes and a list of non-OBD codes. In configurations, the processing service may include a combined list of OBD codes and non-OBD codes. The processing service may then determine, based upon the received non-OBD code, information related to the vehicle.
The processing service may forward the information to an electronic device of a person of interest. For example, the person of interest may be the owner of the vehicle, a spouse of the owner of the vehicle, an employer of a user of the vehicle, etc. The electronic device may then, based upon the received information from the processing service, display a message regarding information on a display of the electronic device. Additionally, an alarm, either audible or visible, may also be generated by the electronic device.
In configurations, the auxiliary monitoring device may include a radio and thus, may communicate directly with the processing service via the wireless communication network. The processing service may communicate with the electronic device via the wireless communication network. In configurations, the auxiliary monitoring device may provide any generated non-OBD codes to the OBD monitoring device via, for example, Wi-Fi, Bluetooth, a wired connection, etc. The OBD monitoring device may then forward the non-OBD codes, along with any generated OBD codes, to the processing service.
The example arrangement 100 also includes a vehicle 104. The vehicle 104 includes an on-board diagnostic (OBD) port 106.
The OBD port 106 is in communication with one or more vehicle components that provide information with respect to the vehicle 104. For example, the OBD port 106 may receive information with respect to electronics of the vehicle 104, an engine of the vehicle 104, etc. Generally, the OBD port 106 relays received information to devices via OBD codes. The OBD codes represent information with respect to the vehicle 104. For example, an OBD code may indicate that the vehicle's oil level is low. Additionally, if the check engine light appears on a dashboard display of the vehicle 104, an OBD code may provide an indication as to why the check engine light has appeared on the vehicle's dashboard display.
The vehicle further includes an OBD monitoring device 108 that is communicatively coupled with the OBD port 106. In configurations, the communicative coupling is a physical or wired coupling. In other configurations, the OBD monitoring device 108 is communicatively coupled to the OBD port 106 via a wireless connection. The OBD monitoring device 108 includes a radio 110 that may be used to communicate with the wireless communication network 102. For example, when the OBD monitoring device 108 receives an OBD code from the OBD port 106, the OBD monitoring device 108 may forward the OBD code to a processing service 112 via the wireless communication network 102, as will be described further herein.
The vehicle 104 also includes one or more auxiliary monitoring devices 114. The one or more auxiliary monitoring devices may be in the form of one or more sensors, e.g., cameras, image sensors, movement sensors, audio sensors, virtual reality (VR) cameras, augmented reality cameras, infrared (IR) sensors, odor sensors, etc. The one or more auxiliary monitoring devices 114 may be located inside the vehicle 104 for example, on a steering wheel or steering column (e.g., facing a dashboard display and/or an operator of the vehicle), arm rest, ceiling, floor, door, window, etc. The one or more auxiliary monitoring devices 114 may sense, for example, images, sounds, odors, etc., and convert the information into useful non-OBD codes similar to OBD codes. In configurations, the auxiliary monitoring device 114 may be a central auxiliary monitoring device in communication with one or more sensors that provide information to the central auxiliary monitoring device, which may then generate non-OBD codes.
The one or more auxiliary monitoring devices 114 may obtain information related to, for example, a status of the vehicle 104 (e.g., the vehicle 104 is moving when it should not be, the vehicle has been bumped, etc.), a status of a reading light within the vehicle 104, a status of a headlight of the vehicle 104, an alarm with respect to the vehicle 104, the presence of something alive, e.g., an animal, a child, etc., within the vehicle 104, mileage information, temperature information, navigator information, map information, etc. For example, as previously noted, an auxiliary monitoring device 114 may be in the form of a camera facing the vehicle's dashboard display and may gather information from the vehicle's dashboard display related to, for example, fuel level, position of a fuel cap on the vehicle, tire pressure, battery level, temperature, speed, etc.
The example arrangement in
The example arrangement 100 also includes one or more user equipments (UEs) 116a-116m, which may be referred to singularly herein as UE 116 or collectively herein as UEs 116. The UEs 116 are generally in the form of electronic devices configured to communicate with other electronic devices via the wireless communication network 102. Examples of electronic devices include, without limitation, a mobile phone (e.g., a smartphone), a tablet computer, a laptop computer, a portable digital assistant (PDA), a wearable computer (e.g., electronic/smart glasses, a smart watch, fitness trackers, etc.), a networked digital camera, a motor vehicle, and/or similar mobile devices. The UEs may include an application or applet 118 configured to allow the UEs 116 to receive information from the processing service 112.
In configurations, the OBD monitoring device 108 and the auxiliary monitoring device 114 monitor the vehicle 104. The OBD monitoring device 108 receives OBD codes from the OBD port 106 and provides them, via the wireless communication network 102, to the processing service 112. The processing service 112 may process the received OBD codes based upon a list 120 of OBD codes to generate information. The processing service 112 may provide the information in the form of one or more messages, alarms, notifications, etc., to one or more of the UEs 116. For example, if the OBD monitoring device 108 receives an OBD code related to engine oil level of the vehicle 104, upon processing the OBD code, the processing service 112 may send a message to one or more of the UEs 116 to “check the engine oil” or “low engine oil.”
The auxiliary monitoring device 114 may determine other information for which there are no OBD codes. Based on the information, the auxiliary monitoring device 114 may then provide non-OBD codes, via the wireless communication network 102, directly to the processing service 112 via a radio 110. The processing service 112 may process the non-OBD codes using the list 120 to provide the information related to the non-OBD codes in the form of one or more messages to one or more of the UEs 116 based on the non-OBD codes. The messages based on non-OBD codes may be combined by the processing service 112 with messages based on OBD codes. Thus, the list 120 may be a combined list that includes OBD codes and non-OBD codes. In configurations, the processing service 112 may include a separate list of OBD codes and a separate list of non-OBD codes. As an example, the non-OBD code may indicate that an interior light is on within the vehicle 104 when the vehicle is not operating. The processing service 112 may then provide the message to the one or more UEs 116 indicating that an interior light is on in the vehicle 104.
As an example, the non-OBD codes 122 may relate to operation of the vehicle 104. For example, one of the UEs 116 may be the UE of a parent. The auxiliary monitoring device 114 may be in the form of a camera, for example, mounted on the steering column of the vehicle 104 and facing the dashboard display of the vehicle 104. The camera may detect the speed of the vehicle 104 and may send a non-OBD code 122 to the processing service 112 indicating the speed or speed range of the vehicle 104. The processing service 112 may, based on the non-OBD code 122, generate and send a message 124 to the UE 116 that informs the parent the speed or speed range at which the child is operating the vehicle 104.
In configurations, the one or more auxiliary monitoring devices 114 may communicate directly, via the wireless communication network 102, using their own radios 110, with the processing service 112. In other configurations, the one or more auxiliary monitoring devices 114 may communicate with the OBD monitoring device 108 using, for example, Wi-Fi, Bluetooth, or a wired connection to provide the non-OBD codes 122 to the OBD monitoring device 108. The OBD monitoring device 108 may then forward non-OBD codes 122, along with any OBD codes, to the processing service 112.
At block 206, the first information and the second information are combined into combined information. At block 208, at least a portion of an item from the combined information is transmitted to the electronic device.
The electronic device 300 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional data storage may include removable storage 314 and non-removable storage 316. Additionally, the electronic device 300 includes cache 318.
Non-transitory computer-readable media may include volatile and nonvolatile, removable and non-removable tangible, physical media implemented in technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory 302, removable storage 314, non-removable storage 316 and cache 318 are all examples of non-transitory computer-readable media. Non-transitory computer-readable media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible, physical medium which can be used to store the desired information and which can be accessed by the electronic device 300. Any such non-transitory computer-readable media may be part of the electronic device 300. The processor(s) 312 may be configured to execute instructions, which may be stored in the non-transitory computer-readable media or in other computer-readable media accessible to the processor(s) 312.
In some implementations, the transceivers 320 include any sort of transceivers known in the art. For example, the transceivers 320 may include a radio transceiver that performs the function of transmitting and receiving radio frequency communications via an antenna (not shown). Also, or alternatively, the transceivers 320 may include wireless modem(s) to facilitate wireless connectivity with other computing devices. Further, the transceivers 320 may include wired communication components, such as an Ethernet port, for communicating with other networked devices.
In some implementations, the output devices 322 include any sort of output devices known in the art, such as a display (e.g., a liquid crystal display), speakers, a vibrating mechanism, or a tactile feedback mechanism. Output devices 322 also include ports for one or more peripheral devices, such as headphones, peripheral speakers, or a peripheral display.
In various implementations, input devices 324 include any sort of input devices known in the art. For example, input devices 324 may include a camera, a microphone, a keyboard/keypad, or a touch-sensitive display. A keyboard/keypad may be a push button numeric dialing pad (such as on a typical telecommunication device), a multi-key keyboard (such as a conventional QWERTY keyboard), or one or more other types of keys or buttons, and may also include a joystick-like controller and/or designated navigation buttons, or the like. The input devices 324 may be used to enter preferences of a user of the electronic device 300 to define how the user wishes certain calls from third parties to be handled by the wireless communication network, as previously described herein.
Some or all operations of the processes described above can be performed by execution of computer-readable instructions stored on a computer storage medium, as defined below. The term “computer-readable instructions” as used in the description and claims, include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like. Memory 302 is an example of computer storage media.
The computer storage media may include volatile memory (such as random access memory (RAM)) and/or non-volatile memory (such as read-only memory (ROM), flash memory, etc.). The computer storage media may also include additional removable storage and/or non-removable storage including, but not limited to, flash memory, magnetic storage, optical storage, and/or tape storage that may provide non-volatile storage of computer-readable instructions, data structures, program modules, and the like.
A non-transient computer storage medium is an example of computer-readable media. Computer-readable media includes at least two types of computer-readable media, namely computer storage media and communications media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any process or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, phase change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media do not include communication media.
The computer-readable instructions stored on one or more non-transitory computer storage media that, when executed by one or more processors, may perform operations described above with reference to
In various implementations, system memory 402 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or some combination of the two. In some implementations, the processor(s) 404 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or any other sort of processing unit.
The server 400 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Non-transitory computer-readable media may include volatile and nonvolatile, removable and non-removable tangible, physical media implemented in technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory 402, removable storage 406 and non-removable storage 408 are all examples of non-transitory computer-readable media. Non-transitory computer-readable media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible, physical medium which can be used to store the desired information and which can be accessed by the server 400. Any such non-transitory computer-readable media may be part of the server 400.
In some implementations, the transceivers 410 include any sort of transceivers known in the art. For example, the transceivers 410 may include wired communication components, such as an Ethernet port, for communicating with other networked devices. Also, or instead of, the transceivers 410 may include wireless modem(s) to facilitate wireless connectivity with other computing devices. Further, the transceivers 410 may include a radio transceiver that performs the function of transmitting and receiving radio frequency communications via an antenna.
In some implementations, the output devices 412 include any sort of output devices known in the art, such as a display (e.g., a liquid crystal display), speakers, a vibrating mechanism, or a tactile feedback mechanism. Output devices 412 also include ports for one or more peripheral devices, such as headphones, peripheral speakers, or a peripheral display.
In various implementations, input devices 414 include any sort of input devices known in the art. For example, input devices 414 may include a camera, a microphone, a keyboard/keypad, a computer mouse, or a touch-sensitive display. A keyboard/keypad may be a push button numeric dialing pad (such as on a typical telecommunication device), a multi-key keyboard (such as a conventional QWERTY keyboard), or one or more other types of keys or buttons, and may also include a joystick-like controller and/or designated navigation buttons, or the like.
Some or all operations of the processes described above can be performed by execution of computer-readable instructions stored on a computer storage medium, as defined below. The term “computer-readable instructions” as used in the description and claims, include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like. Memory 302 and memory 402 are examples of computer storage media.
The computer storage media may include volatile memory (such as random access memory (RAM)) and/or non-volatile memory (such as read-only memory (ROM), flash memory, etc.). The computer storage media may also include additional removable storage and/or non-removable storage including, but not limited to, flash memory, magnetic storage, optical storage, and/or tape storage that may provide non-volatile storage of computer-readable instructions, data structures, program modules, and the like.
A non-transient computer storage medium is an example of computer-readable media. Computer-readable media includes at least two types of computer-readable media, namely computer storage media and communications media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any process or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, phase change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media do not include communication media.
The computer-readable instructions stored on one or more non-transitory computer storage media that, when executed by one or more processors, may perform operations described above with reference to
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.