Method and computing system for vehicle connection visibility
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MERCEDES BENZ GROUP AG
- Filing Date
- 2024-02-09
- Publication Date
- 2026-08-04
Smart Images

Figure 0007900620000002 
Figure 0007900620000003 
Figure 0007900620000004
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to a method and system for generating an aggregated communication session history across multiple channels to determine vehicle connectivity visibility.
Background Art
[0002] A vehicle can communicate with a backend system via one or more communication protocols such as Short Message Service (SMS), Hypertext Transfer Protocol (HTTP), Message Queuing Telemetry Transport (MQTT), etc., and the backend system can provide various functions such as navigation services, support services, and fleet analysis services to the vehicle. Maintaining records of vehicle communications across multiple communication channels can be particularly difficult, especially across a fleet of multiple vehicles.
Summary of the Invention
[0003] Aspects and advantages of embodiments of the present disclosure are described in part in the following description, or can be learned from the description, or can be learned through the implementation of the embodiments.
[0004] One exemplary aspect of the present disclosure relates to a computing system, which may include a control circuit for a first vehicle. The control circuit may be configured to receive first communications from the first vehicle via a first channel over a network, the first channel being associated with a first communication protocol. The control circuit may be configured to generate ongoing session data associated with the first communications, which defines a first online session between the computing system and the first vehicle via the first channel. The control circuit may be configured to determine, by means of the control circuit, a network event associated with the first vehicle from the first online session associated with the first communication protocol, the network event being associated with an event timestamp. In response to determining the network event, the control circuit may be configured to generate first session log data associated with the first online session, the first session log data including an event timestamp and identifying a first channel. The control circuit may be configured to output the first session log data in a session history dataset associated with the first vehicle for storage in memory. The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, wherein the second channel is associated with a second communication protocol different from the first communication protocol.
[0005] In one embodiment, a session history dataset associated with a first vehicle is stored in a session history database which includes at least one second session history dataset associated with a fleet of vehicles including the first vehicle, and the control circuit is further configured to calculate aggregate data for the first vehicle based on the session history dataset and at least one second session history dataset associated with a fleet of vehicles including the first vehicle.
[0006] In one embodiment, the control circuit is further configured to: obtain a request via the online status API of a session history database, the request including a vehicle identifier associated with a first vehicle; access a session history dataset associated with the first vehicle based on the vehicle identifier; determine the most recent session record data associated with the first vehicle, regardless of the channel; determine the online status of the first vehicle based on the event timestamp of the most recent session record data associated with the first vehicle; and provide the online status of the first vehicle via the online status API.
[0007] In one embodiment, determining the most recent session log data associated with a first vehicle regardless of the channel includes accessing the most recent session log data associated with each of a plurality of channels for communication between the computing system and the first vehicle, wherein the plurality of channels include a first channel and a second channel, and determining the most recent session log data associated with the first vehicle based on a comparison of event timestamps of the most recent session log data associated with each of the plurality of channels.
[0008] In one embodiment, the control circuit is further configured to: obtain a request via a vehicle history API, wherein the request comprises one or more search criteria, the one or more search criteria comprising at least a vehicle identifier; access a session history dataset associated with a first vehicle based on the vehicle identifier; generate a response based on one or more search criteria, wherein the response comprises returned session log data from a session history dataset, the returned session log data satisfying one or more search criteria; and provide the response via the vehicle history API.
[0009] In one embodiment, calculating aggregated data includes at least one of the following: determining the number of online vehicles in a fleet of vehicles associated with one or more analytical criteria; determining a quantitative ranking of online vehicles in a fleet of vehicles associated with one or more analytical criteria; generating a traffic ranking of online vehicles in a fleet of vehicles based on geographical area; or determining connectivity events within the area served by a fleet of vehicles based on a session history dataset.
[0010] In one embodiment, the first or second communication protocol includes one or more of the HTTP protocol, the SMS protocol, or the MQTT protocol.
[0011] In one embodiment, the network events include a disconnection event indicating that the first vehicle has been disconnected from the first online session.
[0012] In one embodiment, determining a network event includes: acquiring a first communication, initiating a disconnection countdown associated with a first online session; resetting the disconnection countdown in response to receiving a subsequent communication from a first vehicle; determining that the disconnection countdown has expired; and determining an event timestamp based on the timestamp associated with the most recent communication from the first vehicle in response to the determination that the disconnection countdown has expired.
[0013] In one embodiment, determining a network event includes determining that a first vehicle has initiated a new online session with a computing system via a first channel, and determining an event timestamp based on a timestamp associated with the most recent communication of the first online session.
[0014] In one embodiment, the control circuit is further configured to determine the expected operating characteristics of a first vehicle based on a session history dataset, wherein the expected operating characteristics include at least one of the expected operating duration, expected communication channel, or expected operating time; to determine a predicted backend session for providing backend services to the first vehicle based on the expected operating characteristics; and to provide backend services to the first vehicle based on the predicted backend session.
[0015] In one embodiment, obtaining a first communication from a first vehicle includes receiving the first communication from the first vehicle to a first service that communicates with the first vehicle via a first communication protocol, and providing the first communication from the first service to a vehicle visibility service configured to generate ongoing session data based on the first communication.
[0016] In one embodiment, the control circuit is further configured to receive an acknowledgment message from the operator of the first vehicle before acquiring the first communication from the first vehicle, the acknowledgment message permitting the control circuit to acquire the first communication from the first vehicle.
[0017] In one embodiment, the first session recording data includes an initial timestamp associated with the first communication.
[0018] In one embodiment, the session history dataset associated with the first vehicle includes third session record data of a third online session between the computing system and the first vehicle via a first channel using a first communication protocol, wherein one or more of the first, second, or third online sessions are associated with their respective disconnection events indicating that the first vehicle was disconnected from one or more of the first, second, or third online sessions.
[0019] Another exemplary aspect of the present disclosure relates to a computer implementation. The computer implementation may include obtaining first communications from a first vehicle via a first channel over a network, the first channel being associated with a first communication protocol. The computer implementation may include generating ongoing session data associated with the first communications, the ongoing session data defining a first online session between a computing system and a first vehicle via the first channel. The computer implementation may include, by the first vehicle, identifying network events from the first online session associated with the first communication protocol, the network events being associated with event timestamps. The computer implementation may include generating first session log data associated with the first online session in response to determining a disconnection, the first session log data including an event timestamp and identifying a first channel. A computer implementation may include outputting first session recording data in a session history dataset associated with a first vehicle for storage in memory, wherein the session history dataset associated with the first vehicle includes at least second session recording data of a second online session between a computing system and the first vehicle via a second channel different from the first channel, and the second channel is associated with a second communication protocol different from the first communication protocol. A computer implementation may also include calculating aggregated data about the first vehicle based on the session history dataset and at least one second session history dataset associated with a fleet of vehicles including the first vehicle.
[0020] In one embodiment, the computer implementation method further includes: obtaining a request via the online status API of a session history database, the request including a vehicle identifier associated with a first vehicle; accessing a session history dataset associated with the first vehicle based on the vehicle identifier; determining the most recent session record data associated with the first vehicle regardless of the channel; determining the online status of the first vehicle based on the event timestamp of the most recent session record data associated with the first vehicle; and providing the online status of the first vehicle via the online status API.
[0021] In one embodiment, a computer implementation method further includes: obtaining a request via a vehicle history API, the request comprising one or more search criteria, the one or more search criteria comprising at least a vehicle identifier and one or more of a channel identifier, timeframe, or geographical area; accessing a session history dataset associated with a first vehicle based on the vehicle identifier; generating a response based on the one or more search criteria, the response comprising session record data of a session history dataset that matches the one or more search criteria; and providing the response via the vehicle history API.
[0022] In one embodiment, the computer implementation method further includes determining the expected operating characteristics of a first vehicle based on a session history dataset, wherein the expected operating characteristics include at least one of the expected operating duration, expected communication channels, or expected operating time; determining predicted backend sessions for providing backend services to the first vehicle based on the expected operating characteristics; and providing backend services to the first vehicle based on the predicted backend sessions.
[0023] Another exemplary aspect of the present disclosure relates to one or more non-temporary computer-readable media storing instructions executable by a control circuit. When executed, the instructions can cause the control circuit to acquire first communications from a first vehicle over a network via a first channel, the first channel being associated with a first communication protocol. When executed, the instructions can cause the control circuit to generate ongoing session data associated with the first communications, the ongoing session data defining a first online session between a computing system and a first vehicle over the first channel. When executed, the instructions can cause the control circuit to determine, by the control circuit, a network event associated with a first vehicle from a first online session associated with a first communication protocol, the network event being associated with an event timestamp. When executed, the instructions can cause the control circuit to generate first session log data associated with the first online session in response to determining a disconnection, the first session log data including an event timestamp and identifying a first channel. When the instruction is executed, it can cause the control circuit to output first session record data in a session history dataset associated with the first vehicle for storage in memory. The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, the second channel being associated with a second communication protocol different from the first communication protocol.
[0024] Other aspects of this disclosure cover a variety of systems, apparatus, non-temporary computer-readable media, user interfaces, and electronic devices.
[0025] These and other features, aspects, and advantages of the various embodiments of the present disclosure will be better understood with reference to the following description and the appended claims. The accompanying drawings, which are incorporated herein and constitute a part of this specification, illustrate exemplary embodiments of the specification and, together with the description, serve to explain the relevant principles.
Brief Description of the Drawings
[0026] A detailed description of embodiments directed to those skilled in the art is set forth in the specification with reference to the accompanying drawings. [Figure 1] A diagram of an exemplary computing ecosystem according to an exemplary embodiment of the present invention is shown. [Figure 2] A diagram of an exemplary computing system architecture according to an exemplary embodiment of the present specification is shown. [Figure 3] A diagram of an exemplary computing system architecture according to an exemplary embodiment of the present specification is shown. [Figure 4] A diagram of an exemplary vehicle visibility service according to an exemplary embodiment of the present specification is shown. [Figure 5] A flowchart diagram of a method for vehicle connection visibility according to an exemplary embodiment of the present specification is shown. [Figure 6] A flowchart diagram of a method for calculating the online status of a vehicle according to an exemplary embodiment of the present invention is shown. [Figure 7] A flowchart diagram of a method for accessing vehicle history according to an exemplary embodiment of the present specification is shown. [Figure 8] A flowchart diagram of a method for providing a backend service according to an exemplary embodiment of the present specification is shown. [Figure 9] A diagram of a computing system according to an exemplary embodiment of the present invention is shown.
Modes for Carrying Out the Invention
[0027] Overview One aspect of this disclosure relates to a method and computing system for vehicle connectivity visibility. In particular, the system and method according to exemplary aspects of this disclosure can collect session history across multiple channels and facilitate communication between a vehicle and a backend system. For example, the system and method according to exemplary aspects of this disclosure can analyze network session data to create session log data that describes the history of network sessions between a vehicle and a backend system. Each channel may have a unique communication protocol. The system and method according to exemplary aspects of this disclosure can aggregate session history across multiple channels so that a user can query a backend system to easily determine whether a given vehicle is accessible or online and / or perform fleet analysis. This may enable a user to make informed decisions regarding vehicle service tasks, such as whether a vehicle is currently in service or whether there are any connectivity events affecting a region.
[0028] Aspects of this disclosure may be useful for managing fleets of vehicles, such as autonomous vehicles, semi-autonomous vehicles, and / or vehicles with enhanced user experience. For example, aspects of this disclosure may be useful for determining whether a vehicle is reachable via various communication protocols in order to perform service or maintenance, to provide backend services, or to otherwise remotely interface with the vehicle. Additionally or alternatively, aspects of this disclosure may improve fleet analysis of a fleet of vehicles to determine connectivity events across the areas served by the fleet of vehicles.
[0029] In particular, a vehicle can connect to the backend system via multiple channels, such as HTTP, SMS, and / or MQTT channels. Upon receiving a message from the vehicle, the vehicle visibility service in the backend system can generate ongoing session data related to the current communication session between the vehicle and the backend system. When the vehicle visibility service detects a network event indicating the end of the current session (e.g., timeout, disconnection, interrupted session, duplicate session), the service can generate and store session log data that records the communication session to the vehicle. The session log data may store identifiers indicating which channel was used in some cases, but the session log data may be stored for the vehicle rather than for the channel. The vehicle status API may query the session log data to determine when the vehicle last accessed the backend system, regardless of which channel the vehicle used to access the system.
[0030] In some implementations, in order to benefit from the technologies described herein, a user (e.g., a vehicle operator) may be required to enable the collection and analysis of connectivity data and other data from the vehicle. For example, in some implementations, the user may be provided with the opportunity to control whether a program or feature collects such data. If the user does not permit the collection and use of such data, the user will not be able to benefit from the technologies described herein. The user may also be provided with tools to withdraw or modify their consent. In addition, certain information or data may be processed in one or more ways before being stored or used so as to protect user information. As another example, a computing device may perform almost all or all data processing on the device (not on, for example, a remote computing device) so as not to transmit personally identifiable data to or record by other computing devices. Additionally and / or alternatively, the systems and methods provided herein may operate in a privacy-preserving manner so as not to allow applications on computing devices to receive additional data (e.g., audio signals, semantic entities (unless requested by the application), video data, etc.) as a result of the operation of the systems and methods. For example, an application may only receive data if the user has explicitly authorized the sharing of data with the application. In some embodiments, the data may be filtered so that only data belonging to the vehicle's authorized user is used.
[0031] Exceptional embodiments of this disclosure provide several technical effects and benefits. For example, this disclosure facilitates improvements in computing technology by improving the functionality of vehicle connectivity visibility. For instance, embodiments of this disclosure can reduce computing resource usage associated with querying the online status of vehicles and / or performing fleet analysis related to connectivity across multiple vehicles in a fleet. Additionally or alternatively, embodiments of this disclosure can improve the user experience associated with providing backend services to vehicles. For example, embodiments of this disclosure can determine anticipated backend sessions based on anticipated operating characteristics that predict when a vehicle might request a backend session. Providing backend services for anticipated backend sessions can reduce the likelihood of users being disrupted by backend services. For example, if the backend service is a radio update to vehicle firmware or software, the backend service can be scheduled during times when the update is unlikely to affect the user's ability to use the vehicle. As another example, exemplary embodiments of this disclosure can help system administrators identify (and / or remove) history associated with inactive vehicles, and thus reduce computing resource usage associated with inactive vehicles, thereby improving overall fleet communication performance and associated update efficiency.
[0032] Exemplary System The exemplary embodiments of this specification will now be described in more detail with reference to the drawings. It should be noted that the examples provided herein describing specific functions performed by a particular system are provided for illustrative purposes only and are not intended to limit the scope of such functions. For example, an action described as being performed by a preceding vehicle (or following vehicle) may be performed by another computing system (e.g., a cloud-based platform system), or vice versa.
[0033] Figure 1 shows an exemplary computing ecosystem 100 according to one embodiment of this specification. The ecosystem 100 may include a vehicle 105, a remote computing platform 110 (also referred to herein as the computing platform 110), and a user device 115 associated with a user 165. The user 165 may be the driver of the vehicle. In one embodiment, the user 165 may be a passenger in the vehicle. The vehicle 105, the computing platform 110, and the user device 115 may be configured to communicate with each other via one or more networks 125.
[0034] Systems / devices in ecosystem 100 may communicate using one or more application programming interfaces (APIs). This may include external APIs for communicating data from one system / device to another. External APIs may enable systems / devices to establish secure communication channels via secure access channels on network 125 through any number of methods, such as web-based forms, programmatic access via RESTful APIs, Simple Object Access Protocol (SOAP), Remote Procedure Calls (RPC), and scripting access.
[0035] The computing platform 110 may include a computing system located remotely from the vehicle 105. In one embodiment, the computing platform 110 may include a cloud-based server system. The computing platform 110 may include one or more backend services to support the vehicle 105. These services may include, for example, teleassistance services, navigation / routing services, and performance monitoring services. The computing platform 110 may host, or otherwise include, one or more APIs for communicating data with the vehicle 105's computing system 130, user device 115, and / or other suitable computing systems.
[0036] The computing platform 110 may include one or more computing devices. For example, the computing platform 110 may include a control circuit 185 and a non-temporary computer-readable medium 190 (e.g., memory). The control circuit 185 of the computing platform 110 may be configured to perform various operations and functions described herein.
[0037] In one embodiment, the control circuit 185 may include one or more processors (e.g., microprocessors), one or more processing cores, a programmable logic circuit (PLC) or programmable logic / gate array (PLA / PGA), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other control circuit.
[0038] In one embodiment, the control circuit 185 may be programmed by one or more computer-readable or computer-executable instructions stored in a non-temporary computer-readable medium 190.
[0039] In one embodiment, the non-temporary computer-readable medium 190 may be a memory device, also called a data storage device, which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-temporary computer-readable medium 190 can form, for example, a hard disk drive (HDD), a solid-state drive (SDD) or solid-state integrated memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read-only memory (CD-ROM), digital multipurpose disc (DVD), or memory stick. In some cases, the non-temporary computer-readable medium 190 may store computer-executable instructions or computer-readable instructions, such as instructions for performing the operations and methods described herein.
[0040] In various embodiments, the terms “computer-readable instructions” and “computer-executable instructions” are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, where computer-readable or computer-executable instructions form a module, the term “module” broadly refers to a set of software instructions or code configured to cause the control circuit 185 to perform one or more functional tasks. Modules and computer-readable / executable instructions may be described as performing various operations or tasks when the control circuit or other hardware components are executing the module or computer-readable instructions.
[0041] The user device 115 may be a computing device owned by or otherwise accessible by user 165, or may otherwise include it. For example, user device 115 may be a telephone, laptop, tablet, wearable device (e.g., smartwatch, smart glasses, headphones), personal digital assistant, game system, personal desktop device, other handheld device, or other type of mobile or non-mobile user device, or may otherwise include them. As further described herein, user device 115 may include one or more input components such as buttons, touchscreens, joysticks or other cursor controls, styluses, microphones, cameras or other imaging devices, motion sensors, etc. User device 115 may include one or more output components such as display devices (e.g., display screens), speakers, etc. In one embodiment, user device 115 may include components such as a touchscreen, configured to receive user input and perform input and output functions for presenting information for user 165, for example. User device 115 may execute one or more instructions for running an instance of a software application and presenting the user interface associated therewith. The launch of the software application for each transportation platform can initiate a user-network session with the computing platform 110.
[0042] Network 125 may be any type of network or combination of networks that enables communication between devices. In one embodiment, network 125 may include one or more of the following: a local area network, a wide area network, the Internet, a secure network, a cellular network, a mesh network, a peer-to-peer communication link, or any combination thereof, and may include any number of wired or wireless links. Communication on network 125 may be achieved, for example, via a network interface using any type of protocol, protection scheme, encoding, format, packaging, etc. Communication between the vehicle's computing system 130 and the user device 115 may be facilitated by short-range or near-field communication technologies (e.g., Bluetooth® Low Energy Protocol, radio frequency signaling, NFC protocol).
[0043] Vehicle 105 may be a vehicle that can be operated by user 165. In one embodiment, vehicle 105 may be a car or another type of ground vehicle that is manually driven by user 165. For example, vehicle 105 may be a Mercedes-Benz® car or a van. In one embodiment, vehicle 105 may be an aircraft (e.g., a personal airplane) or a water vehicle (e.g., a boat). Vehicle 105 may include operator assistance functions such as cruise control and advanced driver assistance systems. In one embodiment, vehicle 105 may be a fully autonomous vehicle or a semi-autonomous vehicle.
[0044] Vehicle 105 may include a powertrain and one or more power sources. The powertrain may include motors, e-motors, transmissions, drive shafts, axles, differentials, e-components, gears, etc. The power sources may include one or more types of power sources. For example, vehicle 105 may be a fully electric vehicle (EV) that can use an electric battery to operate the vehicle 105's powertrain (e.g., for propulsion) and onboard functions of the vehicle. In one embodiment, vehicle 105 may use a flammable fuel. In one embodiment, vehicle 105 may include a hybrid power source, for example, a combination of a flammable fuel and electricity.
[0045] Vehicle 105 may include the interior of the vehicle. The interior of the vehicle may include areas inside the body of Vehicle 105, for example, the cabin for the user of Vehicle 105. The interior of Vehicle 105 may include seats for the user, steering mechanism, accelerator interface, braking interface, etc. The interior of Vehicle 105 may include display devices, such as display screens associated with an infotainment system. Such components may be referred to as infotainment system display devices or may be considered devices for carrying out an embodiment that includes the use of an infotainment system. For illustrative purposes and illustrative purposes, such components may be referred to herein as head unit display devices (e.g., located in the front / dashboard area of the vehicle interior), rear unit display devices (e.g., located in the rear passenger area of the vehicle interior), infotainment head unit or rear unit, etc.
[0046] The display device can display various content to the user 165, including information about the vehicle 105 and prompts for user input. The display device may include a touchscreen that allows the user 165 to provide user input to the user interface. The display device may be associated with an audio input device (e.g., a microphone) for receiving audio input from the user 165. In one embodiment, the display device can function as the dashboard of the vehicle 105.
[0047] The interior of vehicle 105 may include one or more lighting elements. The lighting elements may be configured to emit light of various colors, brightness levels, etc.
[0048] Vehicle 105 may include the exterior of the vehicle. The exterior of the vehicle may include the outer surface of vehicle 105. The exterior of the vehicle may include one or more lighting elements (e.g., headlights, brake lights, accent lights). Vehicle 105 may include one or more doors for accessing the interior of the vehicle, for example by operating door handles on the exterior of the vehicle. Vehicle 105 may include one or more windows, including windshields, door windows, passenger windows, rear windows, sunroofs, etc.
[0049] For the sake of brevity, specific routines and conventional components of vehicle 105 (e.g., the engine) are not illustrated or described herein. Those skilled in the art will understand the operation of conventional vehicle components within vehicle 105.
[0050] The vehicle 105 may include a computing system 130 mounted on the vehicle 105. The computing system 130 may be mounted on the vehicle 105 in the sense that it is on or contained within the vehicle 105. The computing system 130 may include one or more computing devices that may include various computing hardware components. For example, the computing system 130 may include a control circuit 135 and a non-temporary computer-readable medium 140 (e.g., memory). The control circuit 135 may be configured to perform various operations and functions for carrying out the technology described herein.
[0051] In one embodiment, the control circuit 135 may include one or more processors (e.g., microprocessors), one or more processing cores, a programmable logic circuit (PLC) or programmable logic / gate array (PLA / PGA), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other control circuit. In one embodiment, the control circuit 135 or computing system 130 may be part of, or form part of, a vehicle control unit (also referred to as a vehicle controller) embedded in or otherwise positioned in a vehicle 105 (e.g., a Mercedes-Benz® car or van). For example, the vehicle controller may be, or include, an infotainment system controller (e.g., an infotainment head unit), a telematics control unit (TCU), an electronic control unit (ECU), a central powertrain controller (CPC), a charge controller, a central external and internal controller (CEIC), a zone controller, or any other controller (the terms "or" and "or" may be used interchangeably herein).
[0052] In one embodiment, the control circuit 135 may be programmed by one or more computer-readable or computer-executable instructions stored in a non-temporary computer-readable medium 140.
[0053] In one embodiment, the non-temporary computer-readable medium 140 may be a memory device, also called a data storage device, which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-temporary computer-readable medium 140 can form, for example, a hard disk drive (HDD), a solid-state drive (SDD) or solid-state integrated memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read-only memory (CD-ROM), digital multipurpose disc (DVD), or memory stick. In some cases, the non-temporary computer-readable medium 140 can store computer-executable instructions or computer-readable instructions, such as instructions for performing the methods shown in Figures 5 to 8. Additionally or alternatively, similar instructions may be stored on the computing platform 110 (e.g., a non-temporary computer-readable medium 190) and provided via the network 125.
[0054] The computing system 130 (e.g., control circuit 135) may be configured to communicate with other components of the vehicle 105 via a communication channel. The communication channel may include one or more data buses (e.g., Controller Area Network (CAN)), an on-board diagnostic connector (e.g., OBD-II), or a combination of wired or wireless links. The on-board systems can transmit or receive data, messages, signals, etc., between each other via the communication channel.
[0055] In one embodiment, the communication channel may include direct connections such as those provided via a dedicated wired communication interface, such as an RS-232 interface or a Universal Serial Bus (USB) interface, or via a local computer bus, such as a Peripheral Component Interconnect (PCI) bus. In one embodiment, the communication channel may be provided via a network. The network may be any type or form of network, such as a personal area network (PAN), local area network (LAN), e.g., an intranet, metropolitan area network (MAN), wide area network (WAN), or the internet. The network may utilize different layers or stacks of technologies and protocols, such as the Short Messaging Service (SMS) protocol, Hypertext Transfer Protocol (HTTP), Message Queue Telemetry Transport (MQTT) protocol, Ethernet protocol, Internet Protocol Suite (TCP / IP), ATM (Asynchronous Transfer Mode) technology, SONET (Synchronous Optical Network) protocol, or SDH (Synchronous Digital Hierarchy) protocol.
[0056] In one embodiment, the systems / devices of the vehicle 105 may communicate via an intermediate storage device, or more generally, an intermediate non-temporary computer-readable medium. For example, a non-temporary computer-readable medium 140, which may be outside the computing system 130, may function as an external buffer or repository for storing information. In such an example, the computing system 130 may retrieve or otherwise receive information from the non-temporary computer-readable medium 140.
[0057] The vehicle 105 may include one or more human-machine interfaces (HMIs) 145. The human-machine interfaces 145 may include display devices as described herein. The display devices (e.g., touchscreens) may be visible to users of the vehicle 105 located in the front of the vehicle 105 (e.g., the driver's seat, the passenger seat) (e.g., user 165, a second user 175). Additionally or alternatively, a display device (e.g., a rear unit) may be visible to users located in the rear of the vehicle 105 (e.g., the rear passenger seats).
[0058] Vehicle 105 may include one or more sensors 150. Sensors 150 may be configured to acquire sensor data. This may include sensor data associated with the surrounding environment of vehicle 105, sensor data associated with the interior of vehicle 105, or sensor data associated with specific vehicle functions, including communication and connectivity functions as described herein. Sensor data may indicate conditions observed inside, outside, or in the surrounding environment of the vehicle. For example, sensor data may acquire image data, internal / external temperature data, weather data, data indicating the location of a user / object inside vehicle 105, weight data, motion / gesture data, audio data, or other types of data. Sensors 150 may include one or more of the following: cameras (e.g., visible spectrum cameras, infrared cameras), motion sensors, audio sensors (e.g., microphones), weight sensors (e.g., vehicle seats), temperature sensors, humidity sensors, light detection and ranging (LIDAR) systems, radio wave detection and ranging (RADAR) systems, or other types of sensors. Vehicle 105 may also include other sensors configured to acquire data associated with vehicle 105. For example, the vehicle 105 may include an inertial measurement unit, a wheel odometry device, or other sensors.
[0059] Vehicle 105 may include a positioning system 155. The positioning system 155 may be configured to generate position data (also called location data) indicating the location of vehicle 105. For example, the positioning system 155 may determine the position based on an IP address, using one or more inertial sensors (e.g., inertial measurement units), satellite positioning systems, by triangulation, proximity to a network access point or other network component (e.g., a cellular tower, a Wi-Fi access point), or other appropriate techniques. The positioning system 155 may determine the current location of vehicle 105. The location may be expressed as a set of coordinates (e.g., latitude, longitude), address, semantic location (e.g., "workplace").
[0060] In one embodiment, the positioning system 155 may be configured to locate the vehicle 105 within its environment. For example, the vehicle 105 may have access to map data that provides detailed information about the environment surrounding the vehicle 105. The map data may provide information about the identification and location of different roads, road sections, buildings, or other items, the location and direction of lanes (e.g., the location and direction of parking lanes, turning lanes, bicycle lanes, or other lanes within a particular road), traffic control data (e.g., the location, timing, or instructions of signs (e.g., stop signs, yield signs), traffic lights (e.g., stop lights), or other traffic signals or control devices / markings (e.g., pedestrian crossings)), or any other data. Based on the map data, the positioning system 155 may locate the vehicle 105 within its environment (e.g., across multiple axes). For example, the positioning system 155 may process sensor data (e.g., LIDAR data, camera data, etc.) and match it with a map of the surrounding environment to gain an understanding of the vehicle's position within that environment. The determined position of the vehicle 105 may be used by various systems of the computing system 130, or it may be provided to the computing platform 110.
[0061] The vehicle 105 may include a communication system 160 configured to enable the vehicle 105 (and its computing system 130) to communicate with other computing devices. The computing system 130 may use the communication system 160 to communicate with the computing platform 110 or one or more other remote computing devices via the network 125 (for example, via one or more radio signal connections). In one embodiment, the communication system 160 may enable communication between one or more systems mounted on the vehicle 105.
[0062] In one embodiment, the communication system 160 may be configured to enable the vehicle 105 to communicate with or otherwise receive data from the user device 115. The communication system 160 may utilize various communication technologies, such as Bluetooth® Low Energy Protocol, radio frequency signaling, or other short-range or near-field communication technologies. The communication system 160 may include any suitable components for interfacing with one or more networks, such as a transmitter, receiver, port, controller, antenna, or other suitable components that may help facilitate communication.
[0063] Vehicle 105 may include a plurality of vehicle functions 165A to 165C. Vehicle functions 165A to 165C may be functions configured to be performed by vehicle 105 based on detected inputs. Vehicle functions 165A to 165C may include one or more of the following: (i) vehicle comfort functions, (ii) vehicle staging functions, (iii) vehicle environment functions, (vi) vehicle navigation functions, (v) driving style functions, (v) vehicle parking functions, (vi) vehicle entertainment functions, or (vii) vehicle communication functions.
[0064] Vehicle comfort functions may include window functions (e.g., for door windows, sunroofs), seat functions, wall functions, steering wheel functions, pedal functions, or other comfort functions. In one embodiment, the seat function may include, for example, a seat temperature function to control the temperature of the seat. This may include a specific temperature (e.g., degrees C / F) or a temperature level (e.g., low, medium, high). In one embodiment, the seat function may include a seat ventilation function to control the seat ventilation system. In one embodiment, the seat function may include a seat massage function to control a massager device in the seat. The seat massage function may have one or more levels, each reflecting the intensity of the massage. In one embodiment, the seat massage function may have one or more programs / settings, each reflecting different types or combinations of massages. In one embodiment, the seat function may include a seat position function to control the position of the seat in one or more directions, e.g., forward / backward or upward / downward. The pedal function may control the position of one or more pedal controls (e.g., brake pedal, accelerator pedal) relative to the user's feet. The wall function may control the temperature of the interior walls or doors of the vehicle. The handle function can control the temperature, position, or vibration of the handle.
[0065] The vehicle staging function can control the interior lighting of the vehicle 105. In one embodiment, the vehicle staging function may include an interior lighting function. For example, the interior lighting function may control the color, brightness, intensity, etc., of the interior lighting (e.g., ambient lighting) of the vehicle 105. In one embodiment, the vehicle staging function may include one or more predetermined lighting programs or combinations. The programs may be set by the user or may be pre-programmed into the default settings of the vehicle 105. In one embodiment, the vehicle staging function may include an exterior lighting function. For example, the exterior lighting function may control accent lighting located below the exterior of the vehicle 105 or otherwise along the exterior of the vehicle 105.
[0066] The vehicle environment function may control the internal environment of the vehicle 105. In one embodiment, the vehicle environment function may include an air conditioning / heating function for controlling an air conditioning / heating system or other systems related to temperature settings in the cabin of the vehicle 105. In one embodiment, the vehicle environment function may include a defrosting or fan function for controlling the level, type, or position of airflow in the cabin of the vehicle 105. In one embodiment, the vehicle environment function may include an air fragrance function for controlling the fragrance inside the vehicle 105.
[0067] A vehicle navigation function can control the vehicle's systems to provide a route to a specific destination. For example, vehicle 105 may include an in-vehicle navigation system that provides a route to user 165 to travel to a destination. The navigation system may utilize map data and GPS-based signals to provide guidance to user 165 via a display device inside vehicle 105.
[0068] The vehicle parking function can control the parking-related features of the vehicle. In one embodiment, the vehicle parking function may include a parking camera function that controls a side camera, a rear camera, or a 360-degree camera to assist the user 165 when parking the vehicle 105. Additionally or alternatively, the vehicle parking function may include a parking assist function that helps maneuver the vehicle 105 into a parking area.
[0069] The vehicle entertainment function may control one or more entertainment-related features of the vehicle 105. For example, the vehicle entertainment function may include a music function for controlling the radio or another source of audio or visual media. The vehicle entertainment function may also control sound parameters (e.g., volume, bass, treble, speaker distribution) or select a radio station or media content type / source.
[0070] The vehicle communication function may include, or control, various services provided to the vehicle for improved navigation functions, communication functions, and other appropriate functions facilitated by backend services. For example, the vehicle communication function may include communication with a backend navigation service that provides navigation functions (e.g., direction, routing, etc.) to the vehicle 105. For another example, the vehicle communication function may include communication with a backend weather service that provides weather updates (e.g., temperature, humidity, etc.) to the vehicle 105 based on the vehicle's location. For yet another example, the vehicle communication function may include communication with a backend diagnostic service that provides diagnostic functions to the vehicle 105.
[0071] Each vehicle function may include controllers 170A to 170C associated with that particular vehicle function 165A to 165C. Controllers 170A to 170C for a particular vehicle function may include control circuits configured to operate the associated vehicle functions 165A to 165C. For example, a controller may include circuits configured to turn on a seat heating function, turn off a seat heating function, set a specific temperature or temperature level, etc.
[0072] In one embodiment, controllers 170A-170C for specific vehicle functions may include, or otherwise be associated with, sensors that capture data indicating whether a vehicle function is on or off, the settings of a vehicle function, etc. For example, the sensors may be audio sensors or motion sensors. The audio sensor may be a microphone configured to capture audio input from user 165. For example, user 165 may provide voice commands to activate the radio functions of vehicle 105 and request a specific station. The motion sensor may be a vision sensor (e.g., a camera), infrared, RADAR, etc., configured to capture gesture input from user 165. For example, user 165 may provide a hand gesture to adjust the temperature function of vehicle 105 to lower the temperature inside the vehicle. Additionally or alternatively, the sensors may be connectivity sensors configured to detect the quality of communication signals (e.g., cellular, satellite, Wi-Fi, etc.) available to vehicle 105 at one or more given time points. For example, connectivity sensors can provide relative communication signal strength or communication signal quality indications using numerical scales, bar counts, or other quantitative units of measurement.
[0073] Controllers 170A to 170C may be configured to transmit signals to the control circuit 135 or another in-vehicle system. The signals may encode data associated with their respective vehicle functions. The encoded data may indicate, for example, function settings, timing, etc.
[0074] User 165 may interact with vehicle functions 165A-C through user input. User input may specify settings for vehicle functions 165A-C selected by the user ("user-selected settings"). In one embodiment, vehicle functions 165A-165C may be associated with a physical interface, such as a button, knob, switch, lever, touchscreen interface element, or other physical mechanism. The physical interface may be physically operated to control vehicle functions 165A-165C according to the user-selected settings. As an example, user 165 may physically operate a button associated with the seat massage function to set the seat massage function to massage intensity level 5. In one embodiment, user 165 may interact with vehicle functions 165A-C through a user interface element presented on the user interface of a display device (e.g., an infotainment system in the vehicle's dashboard).
[0075] Figure 2 shows an exemplary computing system 200 according to an exemplary embodiment of the present invention. The computing system 200 can facilitate communication between a vehicle 202 and a vehicle visibility service 210. The vehicle 202 may be any suitable vehicle, such as the vehicle 105 in Figure 1. The vehicle 202 may include an in-vehicle computing system, such as the computing system 130 in Figure 1.
[0076] Vehicle 202 can access one or more backend services 206 via one or more channels 204. For example, vehicle 202 can access one or more backend services 206 to improve the functionality and / or user experience of vehicle 202. As an example, one or more backend services 206 may include teleassist services, navigation / routing services, performance monitoring services, and / or other appropriate services. In particular, in some cases, one or more backend services 206 may implement functionality from one or more external applications 208. Vehicle 202 can access one or more backend services 206 via any appropriate channel 204. In particular, in some implementations, vehicle 202 may be able to communicate via multiple channels 204. Each of the channels 204 may be associated with a (e.g., unique) communication protocol. The communication protocol may be any appropriate communication protocol, such as the SMS protocol, HTTP protocol, or MQTT protocol.
[0077] The vehicle visibility service 210 can obtain communications from the vehicle 202. For example, in some implementations, the vehicle visibility service 210 obtains communications from the backend service 206. In some implementations, the vehicle visibility service 210 can actively listen for communications. Additionally or alternatively, the backend service 206 may route communications to the vehicle visibility service 210. The vehicle visibility service 210 may be configured to record ongoing session data 212 associated with the current online session between the vehicle 202 and the backend service 206. For example, the ongoing session data 212 may record the session start time, the session duration, the vehicle identifier associated with the vehicle 202, the channel identifier associated with the channel 204 on which the session originates, the identifier associated with the backend service 206, and / or other appropriate data to define the online session. In particular, in some implementations, if the vehicle 202 is communicating with the computing system via multiple channels, including channel 204, the ongoing session data 212 can be adapted to channel 204 so that the ongoing session data records data associated only with channel 204 (for example, not with other channels in the multiple channels).
[0078] The vehicle visibility service 210 can determine the occurrence of a network event indicating that vehicle 202 has been disconnected from the current online session. The network event may be, for example, a disconnection event or a timeout event, and an event timestamp indicating when the network event occurred may be associated with the network event. When a network event occurs, the vehicle visibility service 210 may record session record data 230 associated with the current online session (represented, for example, by ongoing session data 212). For example, the vehicle visibility service 210 may store the ongoing session data 212 as session record data 230 in a session history dataset 225 associated with vehicle 202. The session history dataset 225 may include a vehicle identifier 228 associated with vehicle 202 that indicates which vehicle is associated with a given session history dataset 225. The vehicle visibility service 210 may store an event timestamp 232 associated with the network event that prompted the recording of the session record data 230. Additionally or alternatively, the session log data 230 may include a channel identifier 234 that identifies which channel the online session of the session log data 230 was communicated through.
[0079] Additionally, the session history dataset 225 may include session log data 235 related to another (e.g., previous) online session. Similar to the session log data 230, the session log data 235 may include an event timestamp 236 associated with the previous online session and / or a channel identifier 238 associated with the previous online session. In this way, the session history dataset 225 can maintain a record of online sessions associated with vehicle 202 (e.g., vehicle identifier 228). The session history dataset 225 may be stored in the session history database 220. The session history database 220 may contain session history datasets relating to vehicle 202 and / or to multiple other vehicles, such as a fleet of vehicles including vehicle 202.
[0080] One or more visibility APIs 250 may provide a user 260 with access to the vehicle visibility service 210 and / or the session history database 220. In some implementations, the visibility API 250 may be a REST API. The visibility API 250 may provide streamlined access to various components of the computing system 200, such as the vehicle visibility service 210 and / or the session history database 220.
[0081] For example, the visibility API 250 may include an analysis API 252 that enables a user 260 to perform data analysis on a fleet of vehicles using data in the session history database 220. For example, the user 260 may query the session history database 220 using the analysis API 252 to calculate aggregated data for a fleet of vehicles, including vehicle 202. As an example, in some implementations, calculating aggregated data may include determining the number of online vehicles in a fleet of vehicles associated with one or more analysis criteria. As another example, calculating aggregated data may include determining a quantitative ranking of online vehicles in a fleet of vehicles associated with one or more analysis criteria. As yet another example, calculating aggregated data may include generating a traffic ranking of online vehicles in a fleet of vehicles based on geographical area. As yet another example, calculating aggregated data may include determining connectivity events in the area served by the fleet of vehicles based on the session history dataset.
[0082] Additionally or alternatively, the visibility API 250 may include an online status API 254. The online status API 254 may enable a user 260 to query the online status of a given vehicle in a fleet of vehicles using data in the session history database 220. For example, the online status API 254 may receive a request containing a vehicle identifier and, based on the vehicle identifier, access a session history dataset 225 associated with the vehicle identifier (e.g., 228). Regardless of the channel, the API may determine the most recent session record data associated with the vehicle (e.g., 230, 235) and, based on the event timestamp of the most recent session record data associated with the vehicle, determine the online status of the vehicle (e.g., 202) and provide the online status of the first vehicle via the online status API 254.
[0083] Additionally or alternatively, the visibility API 250 may include a vehicle history API 256. The vehicle history API 256 can enable a user 260 to query the vehicle history of a given vehicle in a fleet of vehicles using data in the session history database 220. For example, the vehicle history API 256 may take a request that includes one or more search criteria, at least including a vehicle identifier, and access a session history dataset 225 associated with a vehicle (e.g., 202) based on the vehicle identifier. It may generate a response based on one or more search criteria, the response including returned session record data that satisfies one or more search criteria, and provide the response via the vehicle history API 256.
[0084] Figure 3 shows a diagram of an exemplary computing system 300 according to an exemplary embodiment of the present invention. Figure 3 includes components having similar reference numerals as those described with respect to Figure 2, such as, for example, a vehicle 202 and a session history database 220. It should be understood that, unless otherwise specified, similar reference numerals are intended to refer to similar functions as those described with respect to Figure 2.
[0085] The computing system 300 includes channels 204. In particular, channels 204 may include a Short Messaging Service (SMS) channel 312, a Hypertext Transfer Protocol (HTTP or HTTPS) channel 314, and a Message Queue Telemetry Transport (MQTT) channel 316. The SMS channel 312 can communicate messages between the vehicle 202 and the vehicle visibility service 210 over a cellular or tower-based network, such as a 2G, 3G, 4G, or 5G cellular network. The HTTP channel 314 can communicate messages between the vehicle 202 and the vehicle visibility service 210 over an internet connection (for example, between a client device in the vehicle 202 and a server hosting the vehicle visibility service 210). The MQTT channel 316 can communicate messages between the vehicle 202 and the vehicle visibility service 210 via a machine-to-machine connection.
[0086] Additionally, the computing system 300 may include a web portal 330. The web portal 330 can provide web-based (e.g., internet-based) access to the vehicle visibility service 210. For example, the web portal 330 can facilitate interaction between a user 260 (Figure 2) and the vehicle visibility service 210 (e.g., a visibility API 250). Additionally or alternatively, the web portal 330 may allow the user 260 to access other components of the computing system 300 (e.g., a session history database 220).
[0087] In some implementations, the vehicle visibility service 210 may subscribe to other services (e.g., with the consent of the vehicle operator(s)) to access data related to the vehicle's online status. For example, the subscription service 320 can query the vehicle visibility service 210 (e.g., the visibility API 250) to find out when a given vehicle (e.g., 202) came online. The subscription service 320 may provide the subscribed web service 322 with updates to the vehicle's online status so that the subscribed web service 322 can interface with the vehicle 202 when it is online. As an example, the subscribed web service 322 may include a virtual assistant service that prompts the operator of the vehicle 202 to enter a destination for a navigation service. As another example, the subscribed web service 322 may include a music playback service. In some implementations, the subscribed web service 322 may include at least a portion of the external application 208 in Figure 2.
[0088] Figure 4 shows an exemplary system 400 including a vehicle visibility service 210 according to an exemplary embodiment of this specification. Figure 3 includes components having similar reference numerals as those described with respect to Figures 2 and 3, such as, for example, a vehicle 202 and a session history database 220. It should be understood that, unless otherwise specified, similar reference numerals are intended to refer to similar functions as those described with respect to Figures 2 and 3.
[0089] As shown in Figure 4, the vehicle visibility service 210 may include an observer module for each of the channels 204. In particular, the vehicle visibility service 210 may include an SMS session observer 412 configured to observe and record session log data from the SMS channel 312. Additionally or alternatively, the vehicle visibility service 210 may include an HTTP session observer 414 configured to observe and record session log data from the HTTP channel 314. Additionally or alternatively, the vehicle visibility service 210 may include an MQTT session observer 416 configured to observe and record session log data from the MQTT channel 316. In examples with more or fewer channels, more or fewer observer modules may be included in the vehicle visibility service 210.
[0090] Each of the session observers 412, 414, and 416 can be configured to observe communication over a given channel 204, extract relevant data from the communication on channel 204, and establish ongoing session data 212 and ultimately session log data 230. For example, session observers 412, 414, and 416 can observe communication over the channel, including various pieces of information such as device identifiers, network addresses, vehicle 202 location, timestamps, and message content. Some of this information can be stored in the ongoing session data 212, but it is desirable not to store other information. Therefore, session observers 412, 414, and 416 can extract relevant data (e.g., message timestamps) from the communication over channel 204.
[0091] Exemplary methods for vehicle connection visibility The following flowcharts include operations that can be performed by computing systems. Operations described in the examples herein as being performed by a particular computing system are not intended to be limiting and may be performed by other computing systems. For example, operations described as being performed on a vehicle may be performed by a computing system located remotely from the vehicle, or vice versa.
[0092] Figure 5 shows a flowchart of Method 500 for vehicle connectivity visibility according to an exemplary embodiment of this specification. In one embodiment, Method 500 can be performed by a vehicle control circuit, such as the control circuit 135 in Figure 1, the control circuit 915 in Figure 9, or other suitable control circuits. One or more parts of Method 500 may be implemented as algorithms on hardware components of the devices described herein. For example, the steps of Method 500 may be implemented as actions / instructions that can be executed by computing hardware.
[0093] Figure 5 shows steps / operations performed in a specific order for illustrative and explanatory purposes, but the methods of this disclosure are not limited to the order or arrangement shown. Various steps / operations of Method 500 may be omitted, rearranged, combined, or adapted in various ways without departing from the scope of this disclosure.
[0094] In one embodiment, method 500 may begin with step 502, in which a computing system (e.g., computing system 130, control circuit 915, etc.) obtains first communication from a vehicle (e.g., first vehicle) via a first channel, or may otherwise include the method. The vehicle and the computing system may be able to communicate via multiple channels. Each channel may be associated with a communication protocol (e.g., unique). For example, the first channel may be associated with a first communication protocol. The first communication protocol may be any suitable protocol. In particular, in some implementations, the first communication protocol may be one of the SMS protocol, the HTTP protocol, or the MQTT protocol.
[0095] The computing system can obtain first communications from the vehicle via a network. The network may be any type or form of network, such as a cellular network, personal area network (PAN), local area network (LAN), for example, an intranet, metropolitan area network (MAN), wide area network (WAN), or the internet. The network may utilize different layers or stacks of technologies and protocols, including, for example, the Ethernet protocol, Internet Protocol Suite (TCP / IP), ATM (Asynchronous Transfer Mode) technology, SONET (Synchronous Optical Networking) protocol, or SDH (Synchronous Digital Hierarchy) protocol.
[0096] In some implementations, a vehicle may communicate directly with the vehicle visibility service. For example, a vehicle may directly send the first communication to a network address associated with the vehicle visibility service. Additionally or alternatively, in some implementations, a vehicle may not need to communicate directly with the vehicle visibility service. For example, in some implementations, the backend system may include one or more services that receive the first communication and route it to the vehicle visibility service so that the vehicle visibility service can record session log data related to the first communication. Furthermore, in some implementations, the backend system may route communications from multiple services, which may or may not be associated with separate functions and / or communication protocols. However, in some implementations, the vehicle visibility service may be configured to generate unique session log data for each communication protocol.
[0097] For example, in some implementations, obtaining a first communication from a (e.g., first) vehicle may include receiving the first communication from the vehicle in a first service that communicates with the vehicle through the first communication. The first service can be any suitable service other than the vehicle visibility service, but is not limited to teleassist services, navigation / routing services, performance monitoring services, etc. Obtaining a first communication from a vehicle may further include providing the first communication from the first service to a vehicle visibility service configured to generate ongoing session data based on the first communication.
[0098] In one embodiment, method 500 in Figure 5 may include step 504 in which a computing system (e.g., computing system 130, control circuit 915, etc.) generates ongoing session data associated with a first communication. The ongoing session data can define a first online session between the computing system and the vehicle via a first channel. For example, the ongoing session data may record the session start time, the session duration, a vehicle identifier associated with the vehicle, a channel identifier associated with the first channel, an identifier associated with the computing system (and / or a service accessed by the vehicle on the computing system), and / or other appropriate data for defining the first online session. In particular, in some implementations, if the vehicle communicates with the computing system via multiple channels, including the first channel, the ongoing session data may correspond to the first channel so that the ongoing session data records data associated only with the first channel (e.g., not with other channels of the multiple channels).
[0099] In one embodiment, method 500 in Figure 5 may include step 506 in which a computing system (e.g., computing system 130, control circuit 915, etc.) determines a network event. The network event may be associated with an event timestamp. For example, the event timestamp may record the time when the network event occurred. The network event may correspond to a vehicle and a first online session associated with a first protocol, respectively. For example, the network event may indicate a change in the status of the first online session. As an example, in some implementations, the network event may be a disconnection event indicating that the vehicle has disconnected from the first online session. For example, the vehicle may communicate a disconnection message indicating that a disconnection event has occurred.
[0100] As another example, a network event could be a duplicate session event, indicating that a vehicle has started another session (e.g., via a first protocol) without properly closing an existing session. For example, in some implementations, determining a network event involves determining that a vehicle has started a new online session with a computing system via a first channel, and determining an event timestamp based on the timestamp associated with the most recent communication of the first online session.
[0101] As another example, a network event might be a timeout event indicating that the vehicle timed out while communicating with the computing system. For example, in some implementations, determining a network event might include receiving a first communication and then starting a disconnection countdown associated with the first online session. The disconnection countdown might represent a countdown until the vehicle is deemed to have timed out or disconnected. Determining a network event might include resetting the disconnection countdown in response to receiving subsequent communications from the vehicle. For example, the computing system might reset the disconnection countdown each time it receives a message from the vehicle to prevent the vehicle from timeing out. Determining a network event might include determining that the disconnection countdown has expired (e.g., the vehicle has timed out). In response to determining that the disconnection countdown has expired, the vehicle may be deemed to have timed out. When the disconnection countdown has expired, determining the event timestamp is based on the timestamp associated with the most recent communication from the vehicle. For example, the timestamp associated with the last message communicated by the vehicle before timed out might be considered the event timestamp (e.g., as if the vehicle had properly disconnected).
[0102] Method 500 in Figure 5 may, in one embodiment, include step 508 in which a computing system (e.g., computing system 130, control circuit 915, etc.) generates first session log data. For example, in response to determining a network event, the computing system may generate first session log data associated with a first online session. The first session log data may include an event timestamp. For example, the first session log data may record an event timestamp describing when a network event occurred, such as when a vehicle disconnects, times out, or otherwise stops communication with the backend system. Additionally or alternatively, the first session log data may identify a first channel. For example, in some implementations, the first session log data may store a channel identifier that corresponds to and / or identifies the first channel. Additionally or alternatively, in some implementations, the first session log data may include an initial timestamp associated with a first communication. For example, the first session log data may record the duration of a first session, ranging from an initial timestamp to an event timestamp.
[0103] In one embodiment, the method 500 in Figure 5 may include a step 510 in which a computing system (e.g., computing system 130, control circuit 915, etc.) outputs first session recording data. For example, the computing system may output first session recording data in a session history dataset associated with the vehicle for storage in memory. In particular, the first session recording data may be stored in a session history dataset corresponding to the vehicle so that sessions across multiple channels of the vehicle may be recorded in the same session history dataset. As an example, the session history dataset associated with the vehicle may include second session recording data for a second online session between the computing system and the vehicle via a second channel different from the first channel. In particular, in some implementations, the second channel may be associated with a second communication protocol different from the first communication protocol. In some implementations, the first or second communication protocol may include one or more of the HTTP protocol, SMS protocol, or MQTT protocol. As an example, if the first communication protocol is the HTTP protocol, the second communication protocol may be the SMS protocol or the MQTT protocol.
[0104] In some implementations, the session history dataset associated with the vehicle may further include third session record data for a third online session between the computing system and the vehicle via a third channel distinct from the first and second channels. In particular, in some implementations, the third channel may be associated with a third communication protocol. In some implementations, the third communication protocol may be the same as the first or second communication protocol. In some implementations, the third communication protocol may be different from the first and second communication protocols. In some implementations, the first, second, or third communication protocol may each include one or more of the HTTP protocol, SMS protocol, or MQTT protocol.
[0105] In one particular example of an implementation that includes first, second, and third online sessions, the session history dataset associated with the first vehicle includes first session recording data, second session recording data, and third session recording data. The first session recording data may indicate a first online session between the computing system and the first vehicle via a first channel using a first communication protocol (e.g., MQTT protocol). The second session recording data may indicate a second online session between the computing system and the first vehicle via a second channel using a second communication protocol (e.g., SMS protocol). The third session recording data may indicate a third online session between the computing system and the first vehicle via a first channel or a new third channel using the first communication protocol (e.g., MQTT protocol). In such an example, one or more of the first, second, or third online sessions may be associated with a respective disconnection event indicating that the first vehicle was disconnected from the respective communication channel after a certain period of time. In some cases, each online session ends after a certain period and is therefore associated with its respective disconnection event before or at the start of subsequent online sessions. The first, second, and third session log data associated with each of the three online sessions may be recorded in a session history dataset.
[0106] An example of a session history database is shown in Table 1 below. As illustrated, the session history database includes a vehicle identifier (e.g., VIN), session start time (e.g., initial timestamp), session end time (e.g., event timestamp), and a generalized location of the vehicle and other details about the vehicle, in this case the vehicle's year and model. Other session history databases may include similar and / or different information depending on the needs of the backend systems and services implementing aspects of this disclosure.
[0107] [Table 1]
[0108] In some implementations, session log data may be retained in a session history database for a finite duration. For example, the session history database may store session log data for each session newer than a certain retention period (e.g., two weeks ago). The session history database may delete session log data older than the retention period (e.g., session log data for sessions that occurred more than two weeks ago). In addition, in some implementations, the session history database may be configured to maintain the most recent session for a vehicle indefinitely. For example, the most recent session may be maintained as a record of when the vehicle last connected to the backend system, regardless of how long ago that was.
[0109] Furthermore, in some implementations, session history datasets for multiple vehicles may be stored in a session history database. The session history database can store session history datasets for a fleet of vehicles. For example, in some implementations, session history datasets associated with a vehicle are stored in a session history database that also contains at least one second session history dataset associated with the fleet of vehicles that includes the vehicle.
[0110] Furthermore, in some implementations, the computing system (e.g., a control circuit) may be further configured to calculate aggregated data for a (e.g., first) vehicle based on a session history dataset and at least one second session history dataset associated with a fleet of vehicles including the vehicle. For example, a user may query the session history database and / or vehicle visibility service (e.g., via an analytics API) to request aggregated data for a fleet of vehicles including that vehicle. The aggregated data may be determined against one or more analytics criteria. For example, the analytics criteria may include vehicle-specific analytics criteria such as manufacturer, model, year, trim, options, color, and operating status, and / or environmental or operating criteria such as timeframe, geographical area, operator, owner, country, city, state, province, or other appropriate criteria.
[0111] As an example, in some implementations, calculating aggregated data may include determining the number of online vehicles in a fleet of vehicles associated with one or more analytical criteria. For example, the system may query a session history dataset of a fleet of vehicles to determine which vehicles are online. Additionally, the system may apply analytical criteria to filter vehicles that meet those criteria. Another example is calculating aggregated data may include determining a quantitative ranking of online vehicles in a fleet of vehicles associated with one or more analytical criteria. For example, the system may determine which manufacturers, models, etc., are most active in a given geographical area (e.g., over a given timeframe). Another example is calculating aggregated data may include generating a traffic ranking of online vehicles in a fleet of vehicles based on geographical area. For example, the system may generate traffic levels for regions around the world over a specified period. The system may additionally or alternatively determine repetitions in traffic patterns (e.g., whether traffic repeats daily or weekly, or during a given holiday). Another example is calculating aggregated data may include determining connectivity events in the areas served by a fleet of vehicles based on a session history dataset. For example, the system can determine, based on a session history dataset, whether a power outage, connectivity degradation event, network traffic surge, or other appropriate connectivity event has occurred within the area. As another example, the system can compare current traffic data with historical traffic data to detect significantly or abnormally low traffic levels.
[0112] In some implementations, the control circuit is further configured to receive an acknowledgment message from the operator of the first vehicle before obtaining a first communication from the first vehicle. The acknowledgment message may authorize the control circuit to obtain the first communication from the first vehicle. For example, in some implementations, in order to benefit from the technology described herein, the user (e.g., of a vehicle) may be required to allow the collection and analysis of connectivity data and other data from the vehicle. For example, in some implementations, the user may be provided with the opportunity to control whether a program or feature collects such data. If the user does not authorize the collection and use of such data, the user will not benefit from the technology described herein. The user may also be provided with tools to withdraw or modify their consent. In addition, certain information or data may be processed in one or more ways before being stored or used so as to protect user information. As another example, a computing device may perform almost all or all data processing on the device (rather than on a remote computing device) so as not to transmit personally identifiable data to or record it on other computing devices. Additionally and / or alternatively, the systems and methods provided herein can operate in a privacy-preserving manner so that applications on computing devices do not receive additional data (e.g., audio signals, semantic entities (unless requested by the application), video data, etc.) as a result of the operation of the systems and methods. For example, an application may only receive data if the user has explicitly authorized the sharing of data with the application. In some embodiments, data may be filtered so that only data belonging to the authorized user of the vehicle is used.
[0113] Figure 6 shows a flowchart of a method 600 for calculating the online status of a vehicle according to an exemplary embodiment of the present invention. In one embodiment, method 600 can be performed by a vehicle control circuit, such as the control circuit 135 in Figure 1, the control circuit 915 in Figure 9, or other suitable control circuits. One or more parts of method 600 may be implemented as algorithms on hardware components of the devices described herein. For example, the steps of method 600 may be implemented as actions / instructions that can be executed by computing hardware.
[0114] Figure 6 shows steps / operations performed in a specific order for illustrative and explanatory purposes, but the methods of this disclosure are not limited to the order or arrangement shown. Various steps / operations of Method 600 may be omitted, rearranged, combined, or adapted in various ways without departing from the scope of this disclosure.
[0115] In one embodiment, method 600 may begin with step 602, in which a computing system (e.g., computing system 130, control circuit 915, etc.) obtains a request via an online status API, or may otherwise include step 602. The online status API may be associated with a session history database, communicate with a session history database, or otherwise be a component of a session history database. For example, the online status API may enable a user (e.g., a web portal), an external computing system, and / or other device to query the session history database to determine the online status of a vehicle. The request may include a vehicle identifier associated with the vehicle. The vehicle identifier may be any appropriate identifier, such as a license plate number, a vehicle identification number (VIN), a network address, a unique digital identifier, and / or other appropriate vehicle identifiers.
[0116] In one embodiment, method 600 in Figure 6 may include step 604 in which a computing system (e.g., computing system 130, control circuit 915, etc.) accesses a session history dataset associated with a vehicle. For example, based on a vehicle identifier, the computing system can access a session history dataset associated with a vehicle. As an example, in some implementations, the session history database can store session history datasets so that they are accessed based on a vehicle identifier (e.g., through queries that accept a vehicle identifier as input). In some implementations, the computing system may access a web portal that communicates with an online status API and / or session history dataset.
[0117] Method 600 in Figure 6 may, in one embodiment, include step 606 in which a computing system (e.g., computing system 130, control circuit 915, etc.) determines the most recent session log data associated with the vehicle, regardless of the channel. For example, the computing system may consider session log data from all channels and determine the most recent session log data based on the most recent session log data for each channel. As an example, in some implementations, determining the most recent session log data associated with the vehicle, regardless of the channel, may include accessing the most recent session log data associated with each of a plurality of channels for communication between the computing system and the first vehicle. For example, in some implementations, the plurality of channels may include at least the first channel and the second channel described with respect to Figure 5. Determining the most recent session log data may also be based on a comparison of event timestamps of the most recent session log data associated with each of the plurality of channels. For example, the computing system may select the session log data having the most recent event timestamp as the most recent session log data.
[0118] Method 600 in Figure 6 may, in one embodiment, include step 608, in which a computing system (e.g., computing system 130, control circuit 915, etc.) determines the online status of a vehicle. Specifically, the computing system can determine the online status based on the event timestamp of the most recent session log data associated with the vehicle. If the event timestamp of the most recent session log data is older than the online threshold, the computing system may consider the vehicle's online status to be offline. For example, if the event timestamp is older than the time typically associated with online communication (e.g., several seconds, several minutes, etc.), the vehicle may not currently be communicating with the computing system (e.g., vehicle visibility service). However, if the event timestamp is several seconds or even several minutes older, the vehicle is likely to be actively communicating with the computing system (e.g., vehicle visibility service). Method 600 in Figure 6 may, in one embodiment, include step 608, in which a computing system (e.g., computing system 130, control circuit 915, etc.) provides the online status of a first vehicle. 610 This may include, for example, a computing system providing online status (e.g., to a web portal, a user, etc.) via an online status API. Online status may include any appropriate information regarding the vehicle's current online state, such as whether the vehicle is currently online, an event timestamp associated with the latest session log data, a channel identifier associated with the latest session log data, an initial timestamp associated with the latest session log data, and / or any other appropriate data.
[0119] Figure 7 shows a flowchart of a method 700 for accessing vehicle history according to an exemplary embodiment of this specification. In one embodiment, method 700 can be performed by a vehicle control circuit, such as the control circuit 135 in Figure 1, the control circuit 915 in Figure 9, or other suitable control circuits. One or more parts of method 700 may be implemented as algorithms on hardware components of the devices described herein. For example, steps of method 700 may be implemented as actions / instructions that can be executed by computing hardware.
[0120] Figure 7 shows steps / operations performed in a specific order for illustrative and explanatory purposes, but the methods of this disclosure are not limited to the order or arrangement shown. Various steps / operations of Method 700 may be omitted, rearranged, combined, or adapted in various ways without departing from the scope of this disclosure.
[0121] In one embodiment, method 700 may begin with step 702, in which a computing system (e.g., computing system 130, control circuit 915, etc.) obtains a request via a vehicle history API, or may otherwise include it. The vehicle history API may be associated with, communicate with, or otherwise configured with components of a session history database. For example, the vehicle history API may allow a user (e.g., a web portal), an external computing system, and / or other device to query the session history database to determine the vehicle history of a vehicle. The vehicle history of a vehicle may include a session history dataset associated with the vehicle and / or may span all supported channels.
[0122] The request may include one or more search criteria. For example, the search criteria may filter the session history dataset and / or session record data based on one or more search criteria. For example, in some implementations, one or more search criteria may include at least a vehicle identifier. For example, the session history dataset may be searched for vehicles associated with a given vehicle identifier. Additionally or alternatively, the search criteria may include criteria for filtering the session record data for a given vehicle, such as timeframe, geographical area, channel identifier, or other appropriate criteria.
[0123] In one embodiment, method 700 in Figure 7 may include step 704, in which a computing system (e.g., computing system 130, control circuit 915, etc.) accesses a session history dataset associated with a vehicle. For example, based on a vehicle identifier, the computing system can access a session history dataset associated with a vehicle. As an example, in some implementations, the session history database may store session history datasets so that they are accessed based on a vehicle identifier (e.g., through queries that accept a vehicle identifier as input). In some implementations, the computing system may access a web portal that communicates with an online status API and / or session history dataset.
[0124] In one embodiment, the method 700 in Figure 7 may include a step 706 in which a computing system (e.g., computing system 130, control circuit 915, etc.) generates a response based on one or more search criteria. In particular, the response may include returned session log data of a session history dataset. The returned session log data can satisfy one or more search criteria. For example, if a user searches the vehicle history of a vehicle with VIN ABCDEF123456 and includes the search criterion of the geographical area of Los Angeles, California, the response may include session log data for each session initiated while vehicle ABCDEF123456 was in the Los Angeles area.
[0125] In one embodiment, method 700 in Figure 7 may include step 708 in which a computing system (e.g., computing system 130, control circuit 915, etc.) provides a response. For example, the computing system may provide the response via a vehicle history API (e.g., a web portal, a user, etc.).
[0126] Figure 8 shows a flowchart of a method 800 for providing backend services according to an exemplary embodiment of this specification. In one embodiment, method 800 can be performed by a vehicle control circuit, such as the control circuit 135 in Figure 1, the control circuit 915 in Figure 9, or other suitable control circuits. One or more parts of method 800 may be implemented as algorithms on hardware components of the devices described herein. For example, steps of method 800 may be implemented as actions / instructions that can be executed by computing hardware.
[0127] Figure 8 shows steps / operations performed in a specific order for illustrative and explanatory purposes, but the methods of this disclosure are not limited to the order or arrangement shown. Various steps / operations of Method 800 may be omitted, rearranged, combined, or adapted in various ways without departing from the scope of this disclosure.
[0128] In one embodiment, method 800 may begin with step 802, in which a computing system (e.g., computing system 130, control circuit 915, etc.) accesses a session history dataset associated with a vehicle. For example, based on a vehicle identifier corresponding to a vehicle, the computing system may access a session history dataset associated with a vehicle. As an example, in some implementations, a session history database may store session history datasets so that they are accessed based on a vehicle identifier (e.g., through queries that accept a vehicle identifier as input). In some implementations, the computing system may access a web portal that communicates with an online status API and / or session history dataset.
[0129] Method 800 in Figure 8 may, in one embodiment, include step 804 in which a computing system (e.g., computing system 130, control circuit 915, etc.) determines expected operating characteristics of a first vehicle (e.g., based on a session history dataset). Expected operating characteristics may refer to predicted characteristics of some future operation of the vehicle. For example, expected operating characteristics may be, or include, at least one of expected operating duration, expected communication channel, or expected operating time. Expected operating characteristics can be determined in any suitable example. For example, in one exemplary implementation, a machine learning operating characteristics model may be trained on a session history database and / or similar data to learn to predict expected operating characteristics.
[0130] Method 800 in Figure 8 may, in one embodiment, include step 806, in which a computing system (e.g., computing system 130, control circuit 915, etc.) determines a predicted backend session for providing backend services to the vehicle based on expected operating characteristics. The predicted backend session may represent a preferred or optimal time for providing backend services. For example, the predicted backend session may represent a period during which backend services can be provided without interfering with the user's use of the vehicle, and / or a period during which the user's use of the vehicle does not interfere with the backend services. For example, if the backend service is an over-the-air (OTA) update to the vehicle's software or firmware, the predicted backend session may be determined so that the update does not impair the user's ability to operate the vehicle (e.g., during a time window during which the user is unlikely to move around in the vehicle). As another example, if the backend service is a service such as downloading map data or otherwise preparing for travel, the predicted backend session may be determined when the user is likely to perform travel. In some implementations, the predicted backend service may be determined during a timeframe during which the vehicle is in operation but is expected to maintain connectivity for the time required for the vehicle to complete the backend service. Such a decision can be made by comparing the expected location and timestamp of the planned vehicle route with known communication coverage areas. In one embodiment, method 800 in Figure 8 may include step 808 in which a computing system (e.g., computing system 130, control circuit 915, etc.) provides backend services to a first vehicle based on predicted backend sessions. For example, the backend services may be provided via one or more channels.
[0131] Exemplary computing system Figure 9 shows a block diagram of an exemplary computing system 900 according to one embodiment of the present invention. The system 900 includes a computing system 905 (e.g., a computing system mounted in a vehicle), a server computing system 1005 (e.g., a remote computing system, a cloud computing platform), and a training computing system 1105, all of which are communicably connected via one or more networks 955.
[0132] The computing system 905 may include one or more computing devices 910 or circuits. For example, the computing system 905 may include a control circuit 915 and a non-temporary computer-readable medium 920, also referred to herein as memory. In one embodiment, the control circuit 915 may include one or more processing cores, programmable logic circuits (PLCs) or programmable logic / gate arrays (PLAs / PGAs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or any other control circuits. In some implementations, the control circuit 915 may be part of, or form part of, a vehicle control unit (also referred to as a vehicle controller) that is embedded in or otherwise located in a vehicle (e.g., a Mercedes-Benz® car or van). For example, the vehicle controller may be an infotainment system controller (e.g., an infotainment head unit), a telematics control unit (TCU), an electronic control unit (ECU), a central powertrain controller (CPC), a charge controller, a central external and internal controller (CEIC), a zone controller, or any other controller, or may include these. In one embodiment, the control circuit 915 may be programmed by one or more computer-readable or computer-executable instructions stored in a non-temporary computer-readable medium 920.
[0133] In one embodiment, the non-temporary computer-readable medium 920 may be a memory device, also called a data storage device, which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-temporary computer-readable medium 920 can form, for example, a hard disk drive (HDD), a solid-state drive (SDD) or solid-state integrated memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read-only memory (CD-ROM), digital multipurpose disc (DVD), or memory stick.
[0134] Non-temporary computer-readable medium 920 can store information that can be accessed by the control circuit 915. For example, non-temporary computer-readable medium 920 (e.g., a memory device) can store data 925 that can be acquired, received, accessed, written, manipulated, created, or stored. The data 925 may include, for example, any of the data or information described herein. In one embodiment, the computing system 905 may acquire data from one or more memories located away from the computing system 905.
[0135] The non-temporary computer-readable medium 920 may also store computer-readable instructions 930 that can be executed by the control circuit 915. Instructions 930 may be software written in any suitable programming language, or they may be implemented in hardware. Instructions may include computer-readable instructions, computer-executable instructions, and so on. As described herein, in various embodiments, the terms “computer-readable instructions” and “computer-executable instructions” are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, where computer-readable or computer-executable instructions form a module, the term “module” broadly refers to a set of software instructions or code configured to cause the control circuit 915 to perform one or more functional tasks. Modules and computer-readable / executable instructions may be described as performing various operations or tasks when the control circuit 915 or other hardware components are executing the module or computer-readable instructions.
[0136] Instruction 930 may be executed in a separate logical or virtual thread on the control circuit 915. For example, non-temporary computer-readable medium 920 may store instructions 930 that, when executed by the control circuit 915, cause the control circuit 915 to perform any of the operations, methods, or processes described herein. In some cases, non-temporary computer-readable medium 920 may store computer-executable instructions or computer-readable instructions, such as instructions for performing at least a portion of the methods(s) shown in Figures 5-8.
[0137] In one embodiment, the computing system 905 may store or include one or more machine learning models 935. In one embodiment, one or more machine learning models 935 may be received from the server computing system 1005 via the network 955, stored in the computing system 905 (e.g., a non-temporary computer-readable medium 920), and then used by the control circuit 915, or otherwise implemented. In one embodiment, the computing system 905 may implement multiple parallel instances of a single model.
[0138] Additionally or alternatively, one or more machine learning models 935 may be contained within or otherwise stored and implemented in a server computing system 1005 that communicates with the computing system 905 according to a client-server relationship. For example, a machine learning model 935 may be implemented by the server computing system 1005 as part of a web service. Thus, one or more models 935 may be stored and implemented in the computing system 905, or one or more models 935 may be stored and implemented in the server computing system 1005. For example, one or more models 935 may be trained to perform the functions and operations described herein for structuring a vehicle platoon.
[0139] The computing system 905 may include a communication interface 940. The communication interface 940 may be used to communicate with one or more other systems. The communication interface 940 may include any circuits, components, software, etc., for communicating over one or more networks (e.g., network 955). In one embodiment, the communication interface 940 may include, for example, one or more communication controllers, receivers, transceivers, transmitters, ports, conductors, software, or hardware for communicating data / information.
[0140] The computing system 905 may also include one or more user input components 945 that receive user input. For example, a user input component 945 may be a touch-sensitive component (e.g., a touch-sensitive display screen or touchpad) that is sensitive to the touch of a user input object (e.g., a finger or stylus). The touch-sensitive component may function to implement a virtual keyboard. Other exemplary user input components include a microphone, a conventional keyboard, a cursor device, a joystick, or other devices to which the user may provide user input. As an example, a user input component 945 may be, or include, an infotainment system in a vehicle.
[0141] The computing system 905 may include one or more output components 950. The output components 950 may include hardware or software for generating content audibly or visually. For example, the output component 950 may have one or more speakers, earpieces, headsets, handsets, etc. The output component 950 may have a display device that includes hardware for displaying a user interface or messages to the user. For example, the output component 950 may include a display screen, CRT, LCD, plasma screen, touchscreen, TV, projector, tablet, or other suitable display component. As an example, the output component 950 may be, or include, an infotainment system in a vehicle.
[0142] The server computing system 1005 may include one or more computing devices 1010. In one embodiment, the server computing system 1005 may include one or more server computing devices, or be otherwise implemented therein. In cases where the server computing system 1005 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or any combination thereof.
[0143] The server computing system 1005 may include a control circuit 1015 and a non-temporary computer-readable medium 1020, also referred to herein as memory 1020. In one embodiment, the control circuit 1015 may include one or more processors (e.g., microprocessors), one or more processing cores, a programmable logic circuit (PLC) or programmable logic / gate array (PLA / PGA), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other control circuit. In one embodiment, the control circuit 1015 may be programmed by one or more computer-readable or computer-executable instructions stored in the non-temporary computer-readable medium 1020.
[0144] In one embodiment, the non-temporary computer-readable medium 1020 may be a memory device, also called a data storage device, which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-temporary computer-readable medium can form, for example, a hard disk drive (HDD), a solid-state drive (SDD) or solid-state integrated memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read-only memory (CD-ROM), digital multipurpose disc (DVD), or memory stick.
[0145] Non-temporary computer-readable medium 1020 can store information that can be accessed by the control circuit 1015. For example, non-temporary computer-readable medium 1020 (e.g., a memory device) can store data 1025 that can be acquired, received, accessed, written, manipulated, created, or stored. The data 1025 may include, for example, any of the data or information described herein. In one embodiment, the server computing system 1005 can acquire data from one or more remotely located memories from the server computing system 1005.
[0146] The non-temporary computer-readable medium 1020 may also store computer-readable instructions 1030 that can be executed by the control circuit 1015. Instructions 1030 may be software written in any suitable programming language, or they may be implemented in hardware. Instructions may include computer-readable instructions, computer-executable instructions, and so on. As described herein, in various embodiments, the terms “computer-readable instructions” and “computer-executable instructions” are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, where computer-readable or computer-executable instructions form a module, the term “module” broadly refers to a set of software instructions or code configured to cause the control circuit 1015 to perform one or more functional tasks. Modules and computer-readable / executable instructions may be described as performing various operations or tasks when the control circuit 1015 or other hardware components are executing the module or computer-readable instructions.
[0147] Instruction 1030 may be executed in a separate logical or virtual thread on the control circuit 1015. For example, non-temporary computer-readable medium 1020 may store instruction 1030, which, when executed by the control circuit 1015, causes the control circuit 1015 to perform any of the operations, methods, or processes described herein. In some cases, non-temporary computer-readable medium 1020 may store computer-executable instructions or computer-readable instructions, such as instructions for performing at least a portion of the methods(s) shown in Figures 5-8.
[0148] The server computing system 1005 may store or otherwise include one or more machine learning models 1035. The machine learning model 1035 may include, or be identical to, the model 935 stored in the computing system 905. In one embodiment, the machine learning model 1035 may include an unsupervised learning model (e.g., for generating data clusters). In one embodiment, the machine learning model 1035 may include other types of machine learning models, including neural networks (e.g., deep neural networks) or nonlinear or linear models. The neural network may include feedforward neural networks, recurrent neural networks (e.g., long-short-term memory recurrent neural networks), convolutional neural networks, or other forms of neural networks. Some exemplary machine learning models may leverage attentional mechanisms such as self-attention. For example, some exemplary machine learning models may include multi-head self-attention models (e.g., transformer models).
[0149] The server computing system 1005 may include a communication interface 1040. The communication interface 1040 may be used to communicate with one or more other systems. The communication interface 1040 may include any circuits, components, software, etc., for communicating over one or more networks (e.g., network 955). In one embodiment, the communication interface 1040 may include, for example, one or more communication controllers, receivers, transceivers, transmitters, ports, conductors, software, or hardware for communicating data / information.
[0150] The computing system 905 or the server computing system 1005 may train models 935 and 1035 through interaction with a training computing system 1105 which is connected to it communicatively via a network 955. The training computing system 1105 may be separate from the server computing system 1005, or it may be part of the server computing system 1005.
[0151] The training computing system 1105 may include one or more computing devices 1110. In one embodiment, the training computing system 1105 may include one or more server computing devices, or be otherwise implemented thereby. In cases where the training computing system 1105 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or any combination thereof.
[0152] The training computing system 1105 may include a control circuit 1115 and a non-temporary computer-readable medium 1120, also referred to herein as memory 1120. In one embodiment, the control circuit 1115 may include one or more processors (e.g., microprocessors), one or more processing cores, a programmable logic circuit (PLC) or programmable logic / gate array (PLA / PGA), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other control circuit. In one embodiment, the control circuit 1115 may be programmed by one or more computer-readable or computer-executable instructions stored in the non-temporary computer-readable medium 1120.
[0153] In one embodiment, the non-temporary computer-readable medium 1120 may be a memory device, also called a data storage device, which may include an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. The non-temporary computer-readable medium can form, for example, a hard disk drive (HDD), a solid-state drive (SDD) or solid-state integrated memory, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), dynamic random access memory (DRAM), portable compact disc read-only memory (CD-ROM), digital multipurpose disc (DVD), or memory stick.
[0154] Non-temporary computer-readable medium 1120 can store information that can be accessed by the control circuit 1115. For example, non-temporary computer-readable medium 1120 (e.g., a memory device) can store data 1125 that can be acquired, received, accessed, written, manipulated, created, or stored. The data 1125 may include any of the data or information described herein, such as data relating to a simulated environment. In one embodiment, the training computing system 1105 can acquire data from one or more memories located remotely from the training computing system 1105.
[0155] The non-temporary computer-readable medium 1120 may also store computer-readable instructions 1130 that can be executed by the control circuit 1115. Instructions 1130 may be software written in any suitable programming language, or they may be implemented in hardware. Instructions may include computer-readable instructions, computer-executable instructions, and so on. As described herein, in various embodiments, the terms “computer-readable instructions” and “computer-executable instructions” are used to describe software instructions or computer code configured to perform various tasks and operations. In various embodiments, where computer-readable or computer-executable instructions form a module, the term “module” broadly refers to a set of software instructions or code configured to cause the control circuit 1115 to perform one or more functional tasks. Modules and computer-readable / executable instructions may be described as performing various operations or tasks when the control circuit 1115 or other hardware components execute the module or computer-readable instructions.
[0156] Instruction 1130 may be executed in a separate logical or virtual thread on the control circuit 1115. For example, non-temporary computer-readable medium 1120 may store instruction 1130 that, when executed by the control circuit 1115, causes the control circuit 1115 to perform any of the operations, methods, or processes described herein. In some cases, non-temporary computer-readable medium 1120 may store computer-executable instructions or computer-readable instructions, such as instructions for performing at least a portion of the methods(s) shown in Figures 5-8.
[0157] The training computing system 1105 may include a model trainer 1135 that trains machine learning models 935 and 1035 stored in the computing system 905 or the server computing system 1005 using various training or learning techniques. For example, models 935 and 1035 (e.g., machine learning models for determining vehicle connectivity visibility) may be trained using simulated environment techniques, where simulated representations of roads created from existing sensor data or motion data are used to train models 935 and 1035.
[0158] In some implementations, the model trainer can train models 935 and 1035 (e.g., machine learning-based vehicle connectivity visibility models) in an unsupervised manner.
[0159] The computing system may modify the parameters of models 935, 1035 based on the loss function, thereby allowing the model to be effectively trained for a specific application in an unsupervised manner, without the need for labeled data.
[0160] Model trainer 1135 can utilize training techniques such as backward propagation of errors. For example, a loss function can be backpropagated through the model to update one or more parameters of the model (e.g., based on the gradient of the loss function). Various loss functions can be used, such as mean squared error, likelihood loss, cross-entropy loss, hinge loss, or various other loss functions. The parameters can be iteratively updated over several training iterations using gradient descent.
[0161] In one embodiment, performing error backpropagation may include performing truncated backpropagation through time. The model trainer 1135 can perform several generalization techniques (e.g., weight decay, dropout, etc.) to improve the generalization ability of the trained model. In particular, the model trainer 1135 can train machine learning models 935, 1035 based on the training data set 1140.
[0162] The training data 1140 may include unlabeled training data for unsupervised training. The training data 1140 may include datasets such as vehicle characteristics, model, class, and type, as well as exemplary communication data and connectivity visibility data. The model trainer 1135 can train models 935 and 1035 to determine ongoing session data associated with various vehicle communications and output associated session log data. In some implementations, the model trainer 1135 can train models 935 and 1035 to generate responses via one or more of the following: vehicle history API, online status API, or backend service API.
[0163] The model trainer 1135 may include computer logic used to provide a desired function. The model trainer 1135 may be implemented in hardware, firmware, or software that controls a general-purpose processor. For example, in one embodiment, the model trainer 1135 may include a program file stored in a storage device, loaded into memory, and executed by one or more processors. In other implementations, the model trainer 1135 may include one or more sets of computer executable instructions stored in a tangible computer-readable storage medium such as RAM, a hard disk, or an optical or magnetic medium.
[0164] The training computing system 1105 may include a communication interface 1145. The communication interface 1145 may be used to communicate with one or more other systems. The communication interface 1145 may include any circuits, components, software, etc., for communicating over one or more networks (e.g., network 955). In one embodiment, the communication interface 1145 may include, for example, one or more communication controllers, receivers, transceivers, transmitters, ports, conductors, software, or hardware for communicating data / information.
[0165] Network 955 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or any combination thereof, and may include any number of wired or wireless links. Generally, communication over Network 955 can be carried out over any type of wired or wireless connection using a wide variety of communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encoding or formatting (e.g., HTML, XML), or protection schemes (e.g., VPN, Secure HTTP, SSL).
[0166] The machine learning models described herein may have various types of input data or combinations thereof that represent data available to other systems installed in the vehicle. The input data may include, for example, latent coded data (e.g., latent spatial representation of the input), statistical data (e.g., data calculated or derived from some other data source), sensor data (e.g., raw or processed data captured by the vehicle's sensors), or other types of data.
[0167] Figure 9 shows one exemplary computing system that may be used to implement the present disclosure. Other computing systems may be used in a similar manner. For example, in one embodiment, computing system 905 may include a model trainer 1135 and training data 1140. In such an implementation, model 935 may be trained locally on computing system 905 and used. In some of such implementations, computing system 905 may implement model trainer 1135 to personalize model 935 based on user-specific data.
[0168] Further consideration of various embodiments Embodiment 1 relates to a computing system. The computing system may include a control circuit for a first vehicle. The control circuit may be configured to acquire first communications from the first vehicle via a first channel over a network, the first channel being associated with a first communication protocol. The control circuit may be configured to generate ongoing session data associated with the first communications, the ongoing session data defining a first online session between the computing system and the first vehicle via the first channel. The control circuit may be configured to determine, by the control circuit, a network event associated with the first vehicle from the first online session associated with the first communication protocol, the network event being associated with an event timestamp. In response to determining the network event, the control circuit may be configured to generate first session log data associated with the first online session, the first session log data including an event timestamp and identifying a first channel. The control circuit may be configured to output the first session log data in a session history dataset associated with the first vehicle for storage in memory. The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, wherein the second channel is associated with a second communication protocol different from the first communication protocol.
[0169] Embodiment 2 includes the computing system of Embodiment 1. In this embodiment, a session history dataset associated with a first vehicle is stored in a session history database which includes at least one second session history dataset associated with a fleet of vehicles including the first vehicle, and the control circuit is further configured to calculate aggregate data for the first vehicle based on the session history dataset and at least one second session history dataset associated with a fleet of vehicles including the first vehicle.
[0170] Embodiment 3 includes the computing system of Embodiment 1 or 2. In this embodiment, the control circuit is further configured to: obtain a request via the online status API of the session history database, wherein the request includes a vehicle identifier associated with a first vehicle; access a session history dataset associated with the first vehicle based on the vehicle identifier; determine the most recent session record data associated with the first vehicle regardless of the channel; determine the online status of the first vehicle based on the event timestamp of the most recent session record data associated with the first vehicle; and provide the online status of the first vehicle via the online status API.
[0171] Embodiment 4 includes a computing system according to any one of Embodiments 1 to 3. In this embodiment, determining the most recent session log data associated with a first vehicle regardless of the channel includes accessing the most recent session log data associated with each of a plurality of channels for communication between the computing system and the first vehicle, wherein the plurality of channels include a first channel and a second channel, and determining the most recent session log data associated with the first vehicle based on a comparison of event timestamps of the most recent session log data associated with each of the plurality of channels.
[0172] Embodiment 5 includes a computing system according to any one of Embodiments 1 to 4. In this embodiment, the control circuit is further configured to: obtain a request via a vehicle history API, wherein the request comprises one or more search criteria, the one or more search criteria comprising at least a vehicle identifier; access a session history dataset associated with a first vehicle based on the vehicle identifier; generate a response based on one or more search criteria, wherein the response comprises returned session log data from a session history dataset, the returned session log data satisfying one or more search criteria; and provide the response via the vehicle history API.
[0173] Embodiment 6 includes a computing system according to any one of Embodiments 1 to 5. In this embodiment, calculating aggregated data includes at least one of the following: determining the number of online vehicles in a fleet of vehicles associated with one or more analytical criteria; determining a quantitative ranking of online vehicles in a fleet of vehicles associated with one or more analytical criteria; generating a traffic ranking of online vehicles in a fleet of vehicles based on geographical area; or determining connectivity events in the area served by a fleet of vehicles based on a session history dataset.
[0174] Embodiment 7 includes a computing system from any one of Embodiments 1 to 6. In this embodiment, the first or second communication protocol includes one or more of the HTTP protocol, SMS protocol, or MQTT protocol.
[0175] Embodiment 8 includes a computing system from any one of Embodiments 1 to 7. In this embodiment, network events include a disconnection event indicating that the first vehicle has been disconnected from the first online session.
[0176] Embodiment 9 includes a computing system according to any one of Embodiments 1 to 8. In this embodiment, determining a network event includes: acquiring a first communication, initiating a disconnection countdown associated with a first online session; resetting the disconnection countdown in response to receiving a subsequent communication from a first vehicle; determining that the disconnection countdown has expired; and determining an event timestamp based on the timestamp associated with the most recent communication from the first vehicle in response to the determination that the disconnection countdown has expired.
[0177] Embodiment 10 includes a computing system according to any one of Embodiments 1 to 9. In this embodiment, determining a network event includes determining that a first vehicle has initiated a new online session with the computing system via a first channel, and determining an event timestamp based on a timestamp associated with the most recent communication of the first online session.
[0178] Embodiment 11 includes a computing system according to any one of Embodiments 1 to 10. In this embodiment, the control circuit is further configured to determine expected operating characteristics of a first vehicle based on a session history dataset, wherein the expected operating characteristics include at least one of expected operating duration, expected communication channels, or expected operating time; to determine predicted backend sessions for providing backend services to the first vehicle based on the expected operating characteristics; and to provide backend services to the first vehicle based on the predicted backend sessions.
[0179] Embodiment 12 includes a computing system according to any one of Embodiments 1 to 11. In this embodiment, obtaining a first communication from a first vehicle includes receiving the first communication from the first vehicle to a first service that communicates with the first vehicle via a first communication protocol, and providing the first communication from the first service to a vehicle visibility service configured to generate ongoing session data based on the first communication.
[0180] Embodiment 13 includes a computing system according to any one of Embodiments 1 to 12. In this embodiment, the control circuit is further configured to receive an acknowledgment message from the operator of the first vehicle before acquiring the first communication from the first vehicle, the acknowledgment message permitting the control circuit to acquire the first communication from the first vehicle.
[0181] Embodiment 14 includes a computing system according to any one of Embodiments 1 to 13. In this embodiment, the first session recording data includes an initial timestamp associated with the first communication.
[0182] Embodiment 15 includes a computing system according to any one of Embodiments 1 to 14. In this embodiment, the session history dataset associated with the first vehicle includes third session record data of a third online session between the computing system and the first vehicle via a first channel using a first communication protocol, and one or more of the first online session, second online session, or third online session are associated with their respective disconnection events indicating that the first vehicle was disconnected from one or more of the first online session, second online session, or third online session.
[0183] Embodiment 16 relates to a computer implementation method. The computer implementation method may include obtaining first communication from a first vehicle via a first channel over a network, the first channel being associated with a first communication protocol. The computer implementation method may include generating ongoing session data associated with the first communication, the ongoing session data defining a first online session between a computing system and a first vehicle via the first channel. The computer implementation method may include, by the first vehicle, identifying network events from the first online session associated with the first communication protocol, the network events being associated with event timestamps. In response to determining a disconnection, the computer implementation method may include generating first session log data associated with the first online session, the first session log data including an event timestamp and identifying a first channel. A computer implementation may include outputting first session recording data in a session history dataset associated with a first vehicle for storage in memory, wherein the session history dataset associated with the first vehicle includes at least second session recording data of a second online session between a computing system and the first vehicle via a second channel different from the first channel, and the second channel is associated with a second communication protocol different from the first communication protocol. A computer implementation may also include calculating aggregated data about the first vehicle based on the session history dataset and at least one second session history dataset associated with a fleet of vehicles including the first vehicle.
[0184] Embodiment 17 includes a computer implementation of one of Embodiments 15 or 16. In this embodiment, the computer implementation further includes: obtaining a request via the online status API of a session history database, the request including a vehicle identifier associated with a first vehicle; accessing a session history dataset associated with the first vehicle based on the vehicle identifier; determining the most recent session record data associated with the first vehicle, regardless of the channel; determining the online status of the first vehicle based on the event timestamp of the most recent session record data associated with the first vehicle; and providing the online status of the first vehicle via the online status API.
[0185] Embodiment 18 includes a computer implementation method described in any one of Embodiments 15 to 17. In this embodiment, the computer implementation method further includes obtaining a request via a vehicle history API, the request comprising one or more search criteria, the one or more search criteria comprising at least a vehicle identifier and one or more of a channel identifier, timeframe, or geographical area; accessing a session history dataset associated with a first vehicle based on the vehicle identifier; generating a response based on the one or more search criteria, the response comprising session record data of a session history dataset that matches the one or more search criteria; and providing the response via the vehicle history API.
[0186] Embodiment 19 further comprises the following: in this embodiment of Embodiments 15 to 18, the computer implementation method determines expected operating characteristics of a first vehicle based on a session history dataset, wherein the expected operating characteristics include at least one of expected operating duration, expected communication channel, or expected operating time; determining predicted backend sessions for providing backend services to the first vehicle based on the expected operating characteristics; and providing backend services to the first vehicle based on the predicted backend sessions.
[0187] Embodiment 20 relates to one or more non-temporary computer-readable media for storing instructions executable by a control circuit. When executed, the instructions can cause the control circuit to acquire first communication from a first vehicle via a first channel over a network, the first channel being associated with a first communication protocol. When executed, the instructions can cause the control circuit to generate ongoing session data associated with the first communication, the ongoing session data defining a first online session between a computing system and a first vehicle via the first channel. When executed, the instructions can cause the control circuit to determine, by the control circuit, a network event associated with a first vehicle from a first online session associated with a first communication protocol, the network event being associated with an event timestamp. When executed, the instructions can cause the control circuit to generate first session log data associated with the first online session in response to determining a disconnection, the first session log data including an event timestamp and identifying a first channel. When the instruction is executed, it can cause the control circuit to output first session record data in a session history dataset associated with the first vehicle for storage in memory. The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, the second channel being associated with a second communication protocol different from the first communication protocol.
[0188] Additional disclosures As used herein, adjectives and their possessive forms are intended to be interchangeable unless it is evident from the context or explicitly indicated otherwise. For example, “vehicle components” may be interchangeable with “vehicle components” where appropriate. Similarly, words, phrases, and other disclosures herein are intended to encompass obvious variations and synonyms, even if such variations and synonyms are not explicitly listed.
[0189] The technologies described herein refer to servers, databases, software applications, and other computer-based systems, as well as actions performed and information transmitted to and from such systems. The inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functions between their components. For example, the processes described herein may be performed using a single device or component, or multiple devices or components operating in combination. Databases and applications may run on a single system or may be distributed across multiple systems. Distributed components may operate sequentially or in parallel.
[0190] While the subject matter has been described in detail with respect to various specific exemplary embodiments, each example is provided for illustrative purposes only and not as a limitation of the disclosure. Those skilled in the art, having achieved the foregoing understanding, can readily generate modifications, variations, and equivalents of such embodiments. Therefore, the disclosure does not exclude such modifications, variations, or additions to the subject matter, as will be readily apparent to those skilled in the art. For example, features illustrated or described as part of one embodiment may be used in conjunction with another embodiment to result in yet another embodiment. Thus, the disclosure is intended to encompass such modifications, variations, and equivalents.
[0191] The aspects of this disclosure are described in relation to exemplary implementations. Numerous other implementations, modifications, or variations within the scope and spirit of the appended claims can be recalled by those skilled in the art from the examination of this disclosure. Any and all features in the following claims can be combined or rearranged in any possible way. Thus, the scope of this disclosure is illustrative and not limiting, and this disclosure does not exclude such modifications, variations, or additional inclusions to the subject matter, as will be readily apparent to those skilled in the art. Furthermore, terms are used herein with lists of exemplary elements joined by conjunctions such as “and,” “or,” and “but.” It should be understood that such conjunctions are provided for illustrative purposes only. The terms “and / or” and “or” may be used interchangeably herein. For example, a list joined by a particular conjunction such as “or” may refer to “at least one” or “any combination” of the exemplary elements enumerated therein, and “or” shall be understood as “or” unless otherwise indicated. Also, terms such as “based on” should be understood as “at least partially based on.”
[0192] Those skilled in the art will understand, by using the disclosures provided herein, that any element of the claims, actions, or processes discussed herein may be adapted, rearranged, expanded, omitted, combined, or modified in various ways without departing from the scope of this disclosure. Sometimes, elements are enumerated in the specification or claims using letter references for illustrative purposes and are not intended to be limiting. Where used, letter references do not imply a particular order of actions or the importance of any particular element listed. For example, (a), (b), (c), ..., (i), (ii), (iii), ..., etc., may be used to indicate actions or different elements within a list. Such identifiers are provided for the convenience of the reader and do not indicate a particular order, importance, or priority of steps, actions, or elements. For example, an action indicated by a list identifier such as (a), (i) may be performed before, after, or concurrently with another action indicated by a list identifier such as (b), (ii).
Claims
1. A computing system, The control circuit is equipped with, The first communication is obtained from a first vehicle via a first channel over a network, wherein the first channel is associated with a first communication protocol. To generate ongoing session data associated with the first communication, wherein the ongoing session data defines a first online session between the computing system and the first vehicle via the first channel, The control circuit determines a network event associated with the first vehicle from the first online session associated with the first communication protocol, wherein the network event is associated with an event timestamp. In response to determining the network event, generate first session log data associated with the first online session, wherein the first session log data includes the event timestamp and identifies the first channel. To store in memory, the first session record data in the session history dataset associated with the first vehicle is output, It is configured to do the following: The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, wherein the second channel is associated with a second communication protocol different from the first communication protocol. Computing system.
2. The session history dataset associated with the first vehicle is stored in a session history database which includes at least one second session history dataset associated with a fleet of vehicles including the first vehicle, and the control circuit calculates aggregated data for the first vehicle based on the session history dataset and the at least one second session history dataset associated with the fleet of vehicles including the first vehicle. The computing system according to claim 1, further configured as follows.
3. The aforementioned control circuit is Obtaining a request via the online status API of the session history database, wherein the request includes a vehicle identifier associated with the first vehicle, Based on the vehicle identifier, access the session history dataset associated with the first vehicle, Regardless of the channel, determine the most recent session recording data associated with the first vehicle, The online status of the first vehicle is determined based on the event timestamp of the latest session log data associated with the first vehicle, To provide the online status of the first vehicle via the online status API, The computing system according to claim 2, further configured to perform the following:
4. Determining the most recent session recording data associated with the first vehicle, regardless of the channel, Accessing the most recent session log data associated with each of a plurality of channels for communication between the computing system and the first vehicle, wherein the plurality of channels include the first channel and the second channel. Based on a comparison of the event timestamps of the latest session recording data associated with each of the plurality of channels, the latest session recording data associated with the first vehicle is determined. The computing system according to claim 3, including the above.
5. The aforementioned control circuit is Obtaining a request via a vehicle history API, wherein the request includes one or more search criteria, and each of the one or more search criteria includes at least a vehicle identifier. Based on the vehicle identifier, access the session history dataset associated with the first vehicle, The process involves generating a response based on one or more search criteria, wherein the response includes returned session record data from the session history dataset, and the returned session record data satisfies one or more search criteria. The response is provided via the aforementioned vehicle history API, The computing system according to claim 2, further configured to perform the following:
6. Calculating the aggregated data means To determine the number of online vehicles in a fleet of said vehicles associated with one or more analytical criteria, To determine the quantitative ranking of online vehicles in a fleet of vehicles associated with one or more of the aforementioned analytical criteria, To generate online vehicle traffic rankings for the vehicle fleet based on geographical area, or Based on the session history dataset, determine connectivity events within the area serviced by the vehicle fleet. The computing system according to claim 2, comprising at least one of the following.
7. Determining the aforementioned network event means Following the acquisition of the first communication, the disconnection countdown associated with the first online session is initiated, In response to receiving a subsequent communication from the first vehicle, the disconnection countdown is reset, Determining that the aforementioned cut-off countdown has expired, In response to determining that the disconnection countdown has expired, the event timestamp is determined based on the timestamp associated with the most recent communication from the first vehicle. The computing system according to claim 1, including the following:
8. The aforementioned control circuit is Based on the session history dataset, the expected operating characteristics of the first vehicle are determined, wherein the expected operating characteristics are: It includes at least one of the expected operating duration, expected communication channels, or expected operating time, Based on the predicted operating characteristics, the predicted backend sessions for providing backend services to the first vehicle are determined, To provide the backend service to the first vehicle based on the predicted backend session, The computing system according to claim 1, further configured to perform the following:
9. A computer implementation method, The first communication is obtained from a first vehicle via a first channel over a network, wherein the first channel is associated with a first communication protocol. The method involves generating ongoing session data associated with the first communication, wherein the ongoing session data defines a first online session between a remote computing system and the first vehicle via the first channel. The first vehicle determines a network event from the first online session associated with the first communication protocol, wherein the network event is associated with an event timestamp. In response to determining the network event, generate first session log data associated with the first online session, wherein the first session log data includes the event timestamp and identifies the first channel. Outputting the first session record data in a session history dataset associated with the first vehicle for storage in memory, wherein the session history dataset associated with the first vehicle includes at least second session record data for a second online session between the remote computing system and the first vehicle via a second channel different from the first channel, and the second channel is associated with a second communication protocol different from the first communication protocol. The process involves calculating aggregated data for the first vehicle based on the session history dataset and at least one second session history dataset associated with a fleet of vehicles including the first vehicle. Methods that include...
10. One or more non-temporary computer-readable media for storing instructions, wherein the instructions are controlled by a control circuit provided in the computing system. The first communication is obtained from a first vehicle via a first channel over a network, wherein the first channel is associated with a first communication protocol. To generate ongoing session data associated with the first communication, wherein the ongoing session data defines a first online session between the computing system and the first vehicle via the first channel, The control circuit determines a network event associated with the first vehicle from the first online session associated with the first communication protocol, wherein the network event is associated with an event timestamp. In response to determining a disconnection, generate first session log data associated with the first online session, wherein the first session log data includes the event timestamp and identifies the first channel. To store in memory, the first session record data in the session history dataset associated with the first vehicle is output, It is possible to do this, The session history dataset associated with the first vehicle includes at least second session record data for a second online session between the computing system and the first vehicle via a second channel different from the first channel, wherein the second channel is associated with a second communication protocol different from the first communication protocol. One or more non-temporary computer-readable media.