SYSTEMS AND METHODS FOR DYNAMIC DEVICE PROGRAMMING
20220116258 · 2022-04-14
Inventors
Cpc classification
G01S19/39
PHYSICS
H04W4/44
ELECTRICITY
H04L67/12
ELECTRICITY
G08C2200/00
PHYSICS
International classification
H04L67/12
ELECTRICITY
G01S19/39
PHYSICS
Abstract
Systems and methods for dynamic device programming in accordance with embodiments of the invention are disclosed. One embodiment includes a vehicle telematics device including a processor, a memory containing a dynamic telematics messaging application, a plurality of accumulators, and a communications interface, wherein the dynamic telematics messaging application directs the processor to obtain a first message data describing a requested set of sensor data using the communications interface, dynamically reconfigure the plurality of accumulators to measure the requested set of sensor data, and transmit a second message data describing the measured set of sensor data.
Claims
1. A vehicle telematics device comprising: one or more processors; a set of accumulators configured to store sensor data; and one or more memory having stored therein a plurality of instructions that, in response to execution by the one or more processors, cause the vehicle telematics device to: assign each accumulator of the set of accumulators to store corresponding sensor data based on a predetermined priority of the corresponding sensor data; receive message data that identifies requested sensor data; select a first accumulator from the set of accumulators to be reassigned from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data; and reassign the first accumulator from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data.
2. The vehicle telematics device of claim 1, wherein to select the first accumulator comprises to select the first accumulator based on the predetermined priority of the sensor data previously assigned to the first accumulator.
3. The vehicle telematics device of claim 1, wherein to select the first accumulator comprises to: determine whether an accumulator of the set of accumulators is available to store the requested sensor data; and in response to a determination that the accumulator of the set of accumulators is not available to store the requested sensor data, select the first accumulator from the set of accumulators to be reassigned from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data.
4. The vehicle telematics device of claim 1, wherein the message data also identifies a desired accumulator of the set of accumulators to store the requested sensor data, and wherein the plurality of instructions, in response to execution by the one or more processors, further cause the vehicle telematics device to: determine whether the desired accumulator of the set of accumulators is available to store the requested data, wherein to select the first accumulator comprises to select the desired accumulator in response to a determination that the desired accumulator is available to store the requested data.
5. The vehicle telematics device of claim 4, wherein to select the first accumulator comprises to select, in response to a determination that the desired accumulator is not available to store the requested data, a first accumulator, different from the desired accumulator, from the set of accumulators based on the sensor data previously assigned to the first accumulator.
6. The vehicle telematics device of claim 1, wherein the message data further identifies sensor data that is no longer required, and wherein to select the first accumulator comprises to select a first accumulator from the set of accumulators that was previously assigned to store the sensor data that is no longer required.
7. The vehicle telematics device of claim 1, wherein to select the first accumulator comprises to select the first accumulator based on data indicative of a number of times the first accumulator has been previously reassigned from storing first sensor data to storing second sensor data different from the first sensor data.
8. The vehicle telematics device of claim 7, wherein to select the first accumulator comprises to update, in response to selecting the first accumulator, the data indicative of the number of times the first accumulator has been previously reassigned.
9. The vehicle telematics device of claim 1, wherein the one or more memory further has stored therein a set of behavior profiles, wherein each behavior profile of the set of behavior profiles identifies an assignment of each accumulator of the set of accumulators to store corresponding sensor data, wherein to assign each accumulator comprises to assign each accumulator of the set of accumulators based on a first behavior profile of the set of behavior profiles, wherein the message data further identifies a second behavior profile of the set of behavior profiles different from the first behavior profile, and wherein to select the first accumulator comprises to select the first accumulator from the set of accumulators based on the second behavior profile.
10. A method for configuring a vehicle telematics device, the method comprising: assigning each accumulator of a set of accumulators of the vehicle telematics device to store corresponding sensor data based on a predetermined priority of the corresponding sensor data; receiving message data that identifies requested sensor data; selecting a first accumulator from the set of accumulators to be reassigned from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data; and reassigning the first accumulator from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data.
11. The method of claim 10, wherein selecting the first accumulator comprises selecting the first accumulator based on the predetermined priority of the sensor data previously assigned to the first accumulator.
12. The method of claim 10, wherein selecting the first accumulator comprises: determining whether an accumulator of the set of accumulators is available to store the requested sensor data; and in response to a determination that the accumulator of the set of accumulators is not available to store the requested sensor data, selecting the first accumulator from the set of accumulators to be reassigned from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data.
13. The method of claim 10, wherein the message data also identifies a desired accumulator of the set of accumulators to store the requested sensor data, and wherein the method further comprises determining whether the desired accumulator of the set of accumulators is available to store the requested data, wherein selecting the first accumulator comprises selecting the desired accumulator in response to a determination that the desired accumulator is available to store the requested data.
14. The method of claim 10, wherein the message data further identifies sensor data that is no longer required, and wherein selecting the first accumulator comprises selecting a first accumulator from the set of accumulators that was previously assigned to store the sensor data that is no longer required.
15. The method of claim 10, wherein selecting the first accumulator comprises selecting the first accumulator based on data indicative of a number of times the first accumulator has been previously reassigned from storing first sensor data to storing second sensor data different from the first sensor data.
16. The method of claim 10, wherein assigning each accumulator comprises to assigning each accumulator of the set of accumulators based on a first behavior profile of a set of behavior profiles stored on the vehicle telematics device, wherein each behavior profile of the set of behavior profiles identifies an assignment of each accumulator of the set of accumulators to store corresponding sensor data, wherein the message data further identifies a second behavior profile of the set of behavior profiles different from the first behavior profile, and wherein selecting the first accumulator comprises selecting the first accumulator from the set of accumulators based on the second behavior profile.
17. One or more non-transitory, machine-readable media having a plurality of instructions stored thereon that, when executed, cause a vehicle telematics device to: assign each accumulator of a set of accumulators of the vehicle telematics device to store corresponding sensor data based on a predetermined priority of the corresponding sensor data; receive message data that identifies requested sensor data; select a first accumulator from the set of accumulators to be reassigned from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data; and reassign the first accumulator from storing the sensor data previously assigned to the first accumulator to storing the requested sensor data.
18. The one or more non-transitory, machine-readable media of claim 17, wherein to select the first accumulator comprises to select the first accumulator based on the predetermined priority of the sensor data previously assigned to the first accumulator.
19. The one or more non-transitory, machine-readable media of claim 17, wherein the message data further identifies sensor data that is no longer required, and wherein to select the first accumulator comprises to select a first accumulator from the set of accumulators that was previously assigned to store the sensor data that is no longer required.
20. The one or more non-transitory, machine-readable media of claim 17, wherein to select the first accumulator comprises to select the first accumulator based on data indicative of a number of times the first accumulator has been previously reassigned from storing first sensor data to storing second sensor data different from the first sensor data.
Description
BRIEF DESCRIPTION
[0027] The description will be more fully understood with reference to the following figures, which are presented as exemplary embodiments of the invention and should not be construed as a complete recitation of the scope of the invention, wherein:
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
DETAILED DESCRIPTION
[0034] Turning now to the drawings, systems and methods for dynamic device programming in accordance with embodiments of the invention are disclosed. Fleets of vehicles are a core component of many industries such as logistics and personal transportation. In many cases, it can be beneficial to be able to monitor and track the status of vehicles within the fleet. As such, many vehicles are equipped with vehicle telematics devices. These vehicle telematics devices can obtain and/or measure a variety of data regarding the conditions and/or location of the vehicle along with receiving and transmitting data to telematics server systems. Vehicle telematics devices can have a set of accumulators configured to store measured data. However, there are often not enough accumulators to store all measurable data. Furthermore, vehicle telematics devices may be preprogrammed to measure a certain set of data, but without knowing what type of vehicle it is going to be connected to, there is a chance that accumulator space may be unused and/or the device itself may need to be reprogrammed post-installation. Vehicle telematics devices can include one or more processing engines. In a variety of embodiments, processing engines can include engines for processing and generating status reports and processing and generating sensor data messages, although any processing engines can be utilized as appropriate to the requirements of specific applications of embodiments of the invention.
[0035] In many embodiments, vehicle telematics devices can automatically detect the type of available data after connecting to a vehicle. In numerous embodiments, vehicle telematics devices can dynamically assign accumulators to change what data is measured and/or reported back to a telematics server system. Vehicle telematics devices can change their behavior in response to messages from telematics server systems including, but not limited to, what data is being stored, what data is being transmitted, the format of transmitted messages, and/or any other behavioral change as appropriate to the requirements of a given application. In numerous embodiments, vehicle telematics devices include a processing engine for transcoding messages into formats usable by other processing engines. In this way, vehicle telematics devices can automatically maintain compatibility with a variety of telematics server systems and/or messaging formats while maintaining functionality and/or compatibility with legacy on-board processing engines. Systems and methods for dynamic telematics messaging, including a variety of formats for transmitting messages within a vehicle telematics system, that can be utilized in accordance with embodiments of the invention are described in U.S. patent application Ser. No. 15/818,260 entitled “Systems and Methods for Dynamic Telematics Messaging”, filed Nov. 20, 2017, the disclosure of which is hereby incorporated by reference in its entirety.
Vehicle Telematics Systems
[0036] Vehicle telematics systems in accordance with embodiments of the invention can transmit a variety of data between a telematics server system and a vehicle telematics device. A conceptual diagram of a vehicle telematics system in accordance with an embodiment of the invention is shown in
[0037] In a variety of embodiments, the vehicle telematics device 20 is installed in a vehicle having a vehicle data bus 22. In several embodiments, the vehicle telematics device 20 is connected to a vehicle diagnostic connector that provides access to the vehicle data bus 22. The vehicle telematics device 20 can obtain data from any of a variety of vehicle devices connected to the vehicle data bus 22 utilizing any of a variety of techniques as appropriate to the requirements of specific applications of embodiments of the invention. Vehicle devices can include, but are not limited to, engine sensors, electronic control unit (ECU) devices, alternator sensors, vibration sensors, voltage sensors, oxygen sensors, Global Positioning System (GPS) receivers, ignition devices, weight sensors, wireless network devices, and/or acceleration determination devices. Systems and methods for connecting to a vehicle data bus that can be utilized in accordance with embodiments of the invention are described in SAE J1978, titled “OBD II Scan Tool,” first published by SAE International of Troy, Mich. on Mar. 1, 1992 and last updated Apr. 30, 2002. Systems and methods for obtaining data from devices connected to a vehicle data bus are described in SAE J1979, titled “E/E Diagnostic Test Modes,” first published by SAE International on Dec. 1, 1991 and last updated Aug. 11, 2014. The disclosures of SAE J1978 and SAE J1979 are hereby incorporated by reference in their entirety.
[0038] The vehicle telematics device 20 can include any of a variety of sensors and/or devices, including those described above with respect to the vehicle data bus and any described in more detail below, to obtain data regarding the status of the vehicle. The vehicle telematics device 20 can also communicate with any of a variety of sensors and/or devices using the I/O interface 24. The I/O interface 24 can be any connection, including wired and wireless connections, as appropriate to the requirements of specific applications of embodiments of the invention. In several embodiments, the vehicle telematics device 20 is capable of executing scripts to read data and/or perform particular processes. These scripts can be pre-loaded on the device and/or obtained from the telematics server system 40, vehicle data bus 22, and/or the I/O interface 24 as appropriate to the requirements of specific applications of embodiments of the invention. The vehicle telematics device 20 can be self-powered and/or connected into the electrical system of the vehicle in which the vehicle telematics device 20 is installed. In a variety of embodiments, the vehicle telematics device is powered via the vehicle data bus 22 and/or the I/O interface 24. In many embodiments, the vehicle telematics device 20 utilizes a Global Positioning System (GPS) receiver in order to determine the location, speed, and/or acceleration of the vehicle. However, it should be noted that any location-determining techniques, such as cellular tower triangulation, wireless network geolocation techniques, and dead reckoning techniques, could be utilized as appropriate to the requirements of specific applications of embodiments of the invention.
[0039] In a variety of embodiments, the vehicle telematics device 20 and/or telematics server system 40 provides a user interface allowing for visualizing and interacting with the data transmitted and/or received between the systems. In several embodiments, the vehicle telematics device 20 and/or telematics server system 40 provide an interface, such as an application programming interface (API) or web service that provides some or all of the data to third-party systems for further processing. Access to the interface can be open and/or secured using any of a variety of techniques, such as by using client authorization keys, as appropriate to the requirements of specific applications of the invention.
[0040] Although a specific architecture of a vehicle telematics system in accordance with embodiments of the invention are discussed above and illustrated in
Vehicle Telematics Devices
[0041] Vehicle telematics devices in accordance with many embodiments of the invention can transmit and receive data. A conceptual illustration of a vehicle telematics device in accordance with an embodiment of the invention is shown in
[0042] Sensor devices 230 can include, but are not limited to, RPM sensors, voltage sensors, GPS receivers, noise sensors, vibration sensors, acceleration sensors, weight sensors, and any other device capable of measuring data regarding a vehicle as appropriate to the requirements of specific applications of embodiments of the invention. In certain embodiments, sensor devices 230 are included within the vehicle telematics device 200. However, vehicle telematics devices can also acquire sensor data from sensor devices located externally to the vehicle telematics device 200. In a variety of embodiments, sensor devices 230 include any sensors integrated into the vehicle and transmitted to the vehicle telematics device 200. In many embodiments, sensors are integrated into the vehicle and transmitted over a vehicle data bus. In numerous embodiments, sensor readings are stored as bit strings in the series of accumulators.
[0043] In several embodiments, the memory 240 is any form of storage storing a variety of data, including, but not limited to, a messaging application 242, device configuration data 244, and/or sensor data 246. In many embodiments, the messaging application 242, device configuration data 244, and/or sensor data 246 are stored using an external server system and received by the vehicle telematics device 200 using the communications interface 220. Device configuration data can be used to direct the processor to generate messages in a chosen static message profile. In a variety of embodiments, dynamic messaging applications can generate dynamic messages that require minimal processing by dynamic telematics messaging systems. In numerous embodiments, device configuration data 244 describes what sensor data is available and/or which types of sensor data are currently being collected.
[0044] Turning now to
[0045] Memory 290 can be implemented using any combination of volatile and/or non-volatile memory, including, but not limited to, random access memory, read-only memory, hard disk drives, solid-state drives, flash memory, or any other memory format as appropriate to the requirements of a given application. In several embodiments, the memory 290 stores a variety of data, including, but not limited to, a dynamic messaging application 292 and/or received report data 293. In many embodiments, the dynamic messaging application 292 and/or received report data 293 are stored using an external server system and received by the telematics server system 200 using the communications interface 280.
[0046] Processor 210 and processor 270 can be directed, by messaging application 242 and dynamic messaging application 292, to perform a variety of dynamic telematics messaging processes. As described in more detail below dynamic messaging processes can include, but are not limited to, dynamically configuring a vehicle telematics device and generating message data including data read using one or more sensor devices.
[0047] Although specific architectures for vehicle telematics devices and telematics server systems in accordance with embodiments of the invention are conceptually illustrated in
Configuring Vehicle Telematics Devices
[0048] When vehicle telematics devices are connected to vehicles, they can determined what data and/or is available, and accumulators can be assigned to different data types. Dynamic telematics messaging processes in accordance with embodiments of the invention can include querying the vehicle to generate initialization data and automatically configure the vehicle telematics device. Turning now to
[0049] Process 300 further includes determining (320) available sensor devices. In numerous embodiments, the determination of available sensor devices includes detecting what sensor devices are available via the vehicle data bus. In many embodiments, the available sensors devices is determined using a bus discovery process, such as those described in SAE J1978 and J1979 incorporated by reference above. The bus discovery process can provide a list of sensor devices in a variety of formats, including a bit string matching a standardized format, as appropriate to the requirements of specific applications of embodiments of the invention. In a variety of embodiments, vehicle identification information such as, but not limited to, a vehicle identification number (VIN), are used to determine what sensor devices are available. In numerous embodiments, vehicle identification information can be used to query a database to determine an appropriate initial device configuration data.
[0050] The vehicle telematics device can be dynamically configured (330). In many embodiments, device configuration data generated based on the available sensor devices is used to configure the vehicle telematics device. In numerous embodiments, sensor data are dynamically assigned to accumulators. If there are more sensor devices and/or collectable types of data available than there are accumulators, a record can be kept of available sensor devices. In many embodiments, which sensors are assigned to accumulators is determined based on a predetermined priority data describing which data is of highest value. In a number of embodiments, the assignment of sensor devices to accumulators can be automatically updated based on requests for data from particular sensor devices.
[0051] In a number of embodiments, process 300 also includes initializing (340) data collection and/or providing (350) a vehicle report. In many embodiments, initializing data collection includes storing sensor data in accumulators. Vehicle reports can include information about available sensor data, the type of vehicle, the time of install, and/or any other initialization information as appropriate to the requirements of a given application. In several embodiments, the vehicle report is generated by a script that automatically compiles the current value of one or more accumulators.
[0052] Specific processes for configuring vehicle telematics devices in accordance with embodiments of the invention are described above and shown with respect to
Dynamically Reconfiguring Vehicle Telematics Devices
[0053] There are situations where data that is accessible by a vehicle telematics device is not being recorded and/or there is a request for particular data to be measured by a vehicle telematics device. In several embodiments, messages can be provided to vehicle telematics devices to dynamically reconfigure its behavior. Dynamic telematics messaging processes in accordance with embodiments of the invention can include dynamically reconfiguring vehicle telematics devices in response to a message. Turning now to
[0054] The vehicle telematics device can be dynamically reconfigured (430) based on the message data. In many embodiments, when the message data includes a request for a change in sensor data, the requested sensor data is assigned to an accumulator. The particular accumulator utilized can be determined automatically and/or defined in the message data as appropriate to the requirements of specific applications of embodiments of the invention. If there are no available accumulators, an accumulator currently in use can be reassigned to store the requested sensor data. In numerous embodiments, the message indicates which sensor data is no longer required so that the accumulator previously used to store the data is reassigned. In a variety of embodiments, the accumulator to be reassigned is based on predetermined priority data. However, which accumulator is reassigned can be determined in any number of ways, including, but not limited to number of times an accumulator has been reassigned, and/or any other metric as appropriate to the requirements of a given application of the invention. In a variety of embodiments, device configuration data can describe a number of behavior profiles indicating accumulator assignments. In many embodiments, the message data can include a request for a new behavior profile from stored behavior profiles and/or transmit a new behavior profile. When the message requests a change in reporting data format(s), the vehicle telematics device can dynamically reconfigure the message structure used to generate vehicle reports. In numerous embodiments, when the message requests a change in transmission protocol, the vehicle telematics device can be dynamically reconfigured to communicate via the updated transmission protocol.
[0055] Process 400 can further include providing (440) requested data. In numerous embodiments, the requested data contains the newly requested sensor data. In many embodiments, the requested data is in a message format includes containers for a large number of different types of data, but only the types of data stored accumulators are stored in the message. In numerous embodiments, identifying data about the vehicle and/or vehicle telematics device are stored in the message. Identifying data can be stored as metadata in message format. In a variety of embodiments, the requested data includes one or more vehicle reports as described in more detail above.
[0056] Specific processes for dynamically reconfiguring vehicle telematics devices in accordance with embodiments of the invention are described above and shown with respect to
Transcoding Message Data
[0057] Vehicle telematics devices can perform a variety of processes to transcode message data in a first format into a second format usable by specific processing engines. Dynamic telematics messaging processes in accordance with embodiments of the invention can include transcoding received messages into specific formats. For example, the first message format can utilize the extensible markup language (XML) standard, while the second format includes a hex-encoded bit string. However, it should be noted that any data formats can be utilized and/or transcoded as appropriate to the requirements of specific applications of embodiments of the invention.
[0058] Turning now to
[0059] In many embodiments, transcoded message data can trigger processes for dynamically reconfiguring vehicle telematics devices. In numerous embodiments, data requested by transcoded message data can be provided (540). In numerous embodiments, the provided data includes one or more vehicle reports as described in more detail above.
[0060] Specific processes for providing transcoded message data in accordance with embodiments of the invention are described above and shown with respect to
[0061] Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. In particular, any of the various processes described above can be performed in alternative sequences and/or in parallel in order to achieve similar results in a manner that is more appropriate to the requirements of a specific application. It is therefore to be understood that the present invention can be practiced otherwise than specifically described without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. It will be evident to the person skilled in the art to freely combine several or all of the embodiments discussed here as deemed suitable for a specific application of the invention. Throughout this disclosure, terms like “advantageous”, “exemplary” or “preferred” indicate elements or dimensions which are particularly suitable (but not essential) to the invention or an embodiment thereof, and may be modified wherever deemed suitable by the skilled person, except where expressly required. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.