Systems, methods, and non-temporary storage media for updating vehicle configurations
The vehicle configuration update system dynamically generates updates based on vehicle attributes, addressing inefficiencies in existing systems by providing tailored configurations through a configuration builder, enhancing flexibility and efficiency in managing fleet updates.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MERCEDES BENZ GROUP AG
- Filing Date
- 2023-11-09
- Publication Date
- 2026-05-01
AI Technical Summary
Existing vehicle configuration systems lack flexibility and efficiency in managing updates across a fleet of vehicles with diverse characteristics and regulatory requirements, necessitating extensive storage and maintenance of pre-defined configuration images for every possible configuration.
A vehicle configuration update system that dynamically generates configuration updates based on vehicle attributes and interacts with subsystem configuration integrators to tailor updates to individual vehicles, using a configuration builder to manage and integrate updates through an electronic communication network.
Enables flexible and efficient configuration updates tailored to each vehicle's unique characteristics, reducing the need for extensive storage and allowing real-time adaptation to regulatory changes and feature enhancements.
Smart Images

Figure 0007854576000002 
Figure 0007854576000003 
Figure 0007854576000004
Abstract
Description
Technical Field
[0001] The subject matter disclosed herein relates to automotive subsystems that can be configured via an electronic communication network.
Background Art
[0002] Today's latest automobiles are typically configured to integrate multiple subsystems manufactured by various stakeholders. Such subsystems may include, for example, an electronic fuel injection device, an entertainment subsystem, an environmental control subsystem, brakes, door locks / windows, a navigation system, or may be incorporated therein. The operation of such subsystems can be at least partially controlled by one or more electronic control units (ECUs).
Summary of the Invention
[0003] One or more embodiments disclosed herein relate to a vehicle configuration update system for managing vehicle configuration updates. The system (e.g., a computing system) comprises a communication device and one or more processors. The communication device may be configured to communicate with a communication network and to communicate with a vehicle through the communication network. One or more processors are configured to perform the method, such as by communicating with the communication device and executing instructions on a non-temporary computer-readable medium which is part of a controller or other product. The method may include communicating one or more update query messages to one or more subsystem configuration integrators via the communication device in response to an event, each subsystem configuration integrator being a service or module that controls each of a plurality of vehicle subsystems of a vehicle, and one or more update query messages are for querying at least one of the plurality of vehicle subsystems whether the event causes at least one vehicle subsystem to change the operation of at least one vehicle subsystem. The method may further include receiving one or more update decision messages from one or more subsystem configuration integrators via a communication device to indicate whether an event causes at least one of a plurality of vehicle subsystems to change the operation of at least one vehicle subsystem; generating configuration information for applying a new configuration to the vehicle, the configuration information being generated at least in part based on one or more update decision messages from one or more subsystem configuration integrators, and the updated or replaced configuration information being for controlling the operation of the plurality of vehicle subsystems; generating one or more configuration update messages describing the updated or replaced configuration information based on the configuration information; and, concurrently with the event, initiating the transmission of one or more configuration update messages to the vehicle via a communication device and a communication network to enable the vehicle to access at least a portion of the configuration information.
[0004] In one particular implementation, the event includes receiving one or more update request messages from the vehicle, which are intended to request that updated or replaced configuration information be applied to the vehicle.
[0005] In another specific implementation, the event is an ignition event in the vehicle, and therefore at least one of one or more update request messages from the vehicle is received in response to an ignition event in the vehicle (e.g., the driver turning the key to start the car).
[0006] In another specific implementation, configuration information is generated based at least partially on the identity of the vehicle driver. In yet another specific implementation, configuration information is generated based on the vehicle model, trim. (Trim level) The vehicle is generated based at least partially on the number of years, and one or more processors are configured to receive one or more vehicle description messages from the vehicle via a communication device, which include parameters indicating the vehicle's attributes, and to determine the vehicle's model, trim, or year from the parameters of the one or more vehicle description messages.
[0007] In yet another specific implementation, a vehicle configuration update request message indicates an event or condition that triggers a request for a new vehicle configuration, and one or more processors are configured to respond to receiving a vehicle configuration update request message by communicating one or more update query messages to one or more computing devices operated by or associated with one or more subsystem configuration integrators, and one or more update query messages are associated with one or more of several vehicle subsystems, and the event is intended to query whether to trigger one or more vehicle subsystems to change their operation.
[0008] In one example, one or more processors are configured to receive one or more query response messages from one or more computing devices operated by or associated with one or more subsystem configuration integrators. The one or more query response messages indicate whether an event or condition triggers one or more vehicle subsystems to change their operation, and configuration file or one or more subsystem update request messages are generated based on the one or more query response messages.
[0009] In yet another specific implementation, the event includes receiving one or more key-value pairs from a communication network, and generating configuration information includes identifying one or more vehicle subsystems at least partially based on one or more key-value pairs, and generating configuration information at least partially based on the identified one or more vehicle subsystems.
[0010] For example, identifying a vehicle subsystem further includes parsing one or more key-value pairs into segments associated with the subsystem, and generating a configuration based at least partially on the key-value pairs associated with the segments.
[0011] In yet another specific implementation, generating configuration information further includes exchanging messages with computing devices associated with one or more subsystem configuration integrators to obtain configuration parameters of subsystems associated with one or more subsystem configuration integrators, and integrating the obtained configuration parameters of subsystems associated with one or more subsystem configuration integrators in order to provide configuration information.
[0012] In yet another specific implementation, at least one of the one or more transmitted configuration update messages includes one or more universal resource identifiers accessible by a computing device installed in the same location as the vehicle in order to retrieve at least a portion of the configuration information. In yet another specific implementation, the operation of at least one of one or more subsystems of the vehicle is controllable by one or more associated electronic control units (ECUs) within the vehicle, and the generated configuration information includes computer-readable instructions that can be executed by at least one of the one or more associated ECUs. In yet another specific implementation, at least a portion of the configuration information includes images and / or audio content. [Brief explanation of the drawing]
[0013] The subject matter to be claimed is specifically identified and explicitly claimed in the concluding section of this specification. However, both the configuration and / or the method of operation, along with their purpose, features, and / or advantages, can be best understood by referring to the following detailed description when read together with the accompanying drawings.
[0014] [Figure 1] This is a schematic diagram identifying configurable subsystems of a vehicle according to an embodiment. [Figure 2] This is a schematic diagram of a system for updating the vehicle configuration according to an embodiment. [Figure 3] This is a message flow diagram illustrating the communication between entities for updating the vehicle configuration according to the embodiment. [Figure 4] This is a flowchart of the process for generating an updated vehicle configuration according to the embodiment. [Figure 5] This is a schematic block diagram of an example computing system based on its implementation configuration.
[0015] In the following detailed description, references will be made to the accompanying drawings that form part of this specification, where similar reference numerals may indicate similar parts that correspond and / or are similar throughout. It will be understood that the drawings are not necessarily drawn to scale, for example, for illustrative purposes and / or clarity. For example, dimensions of some embodiments may be exaggerated compared to others. Furthermore, it should be understood that other embodiments may be available. Furthermore, structural and / or other modifications may be made without departing from the claimed subject matter. Throughout this specification, references to “claimed subject matter” refer to the subject matter intended to be covered by one or more claims, or any part thereof, and are not necessarily intended to refer to the complete set of claims, a particular combination of a set of claims (e.g., a method claim, an apparatus claim, etc.), or a specific claim. For example, directions and / or references such as up, down, top, bottom may be used to facilitate the description of the drawings and are not intended to limit the application of the claimed subject matter. Therefore, the following detailed description should not be construed as limiting the claimed subject matter and / or equivalents. [Modes for carrying out the invention]
[0016] Throughout this specification, references to a particular implementation, form, embodiment, etc., mean that the specific features, structures, characteristics, etc. described in relation to a particular implementation and / or embodiment are included in at least one implementation and / or embodiment of the claimed subject matter. Therefore, for example, the appearance of such phrases in various places throughout this specification is not necessarily intended to refer to the same implementation and / or embodiment, or any one particular implementation and / or embodiment. Furthermore, it should be understood that the specific features, structures, characteristics, and / or similar described can be combined in various ways in one or more implementations and / or embodiments, and are therefore within the scope of the intended claims. Generally, and naturally as is always the case with patent application specifications, these and other issues may vary in the context of a particular use. In other words, throughout this disclosure, the specific context of description and / or use provides useful guidance regarding reasonable inferences to be drawn. However, similarly, “in this context” generally means, without further limitation, at least the context of this patent application.
[0017] The operation of a vehicle subsystem is typically controlled by one or more electronic control units (ECUs) comprising embedded processors and / or controllers that behave based on and / or according to a specific “configuration.” Such configurations can be expressed, to name just a few, at least partially, by specific code (such as software / firmware routines), settings (such as control parameter values), or media content. A configuration may apply to a specific vehicle subsystem or to the entire vehicle, and may be used to control how a vehicle subsystem behaves during its operation, or how the vehicle as a whole behaves. Thus, a vehicle configuration can refer to a set of code, settings, or other content that affects the operation of the vehicle subsystem. Such content may be called configuration content or configuration parameters.
[0018] In one embodiment, these configuration parameters or configuration content may be modified / adapted to update the configuration implemented by these parameters / content. More specifically, such a vehicle configuration may be updated and / or replaced from time to time, periodically, and / or in response to a specific event to replace an existing vehicle configuration with a new vehicle configuration. For example, a vehicle may communicate remotely (e.g., wirelessly) with a server to receive updated software / firmware routines, control parameters, and / or media content to update its configuration and / or implement a “new configuration”. In one implementation, the configuration of a vehicle subsystem may be implemented or embodied by configuration information such as a configuration file, also called a configuration file image. Such an image may comprise electronic documents and / or electronic files expressed as signals and / or states, and may be stored in a non-volatile memory device (e.g., formatted as one or more JavaScript Object Notation files) accessible by an ECU to control the operation of the vehicle subsystem (JavaScript is a registered trademark; the same applies hereafter). The image may describe (also called an image representation) the configuration of the vehicle subsystem.
[0019] Certain embodiments disclosed herein relate to systems and methods that can enable updates to the configuration of one or more vehicles in a fleet via an electronic communication network. For example, one or more vehicles in a fleet of vehicles may be scheduled to receive new and / or updated navigation services to be deployed in a controlled manner, thereby allowing a small percentage (e.g., 1.0%) of the production fleet to be scheduled to receive the new and / or updated services before other vehicles in the production fleet. In another example, the systems and methods described herein may enable updates to the configuration of a vehicle to address a problem identified in a diagnostic operation and / or to comply with a government ordinance. In yet another example, certain embodiments disclosed herein may enable controlled configuration updates to introduce new features of an autonomous / unmanned driving system, which, according to data collected from an initial feature deployment operation, allows for adjustment to the new features for the entire production fleet.
[0020] One technique for updating / replacing the configuration of vehicles in a fleet may include maintaining a prepared image (e.g., signals and / or states) in memory (representing, for example, updated software / firmware routines, control parameters, and / or media content) and transmitting portions of such prepared images to the vehicles in order to perform the configuration update. For different vehicles with different characteristics, different years of manufacture, and / or subject to different regulatory requirements, for example, a configuration update service may maintain a very large library of prepared images to achieve the relevant configuration update. Furthermore, vehicle configuration characteristics may include, to name just a few examples, years, model, and trim, which may be considered when determining the updated vehicle configuration. (Trim level) It's not just the vehicle itself that can be customized; location, time, day of the week, and the driver / owner's personal profile can also be adjusted. Therefore, it is virtually impossible to store and / or maintain prepared images for every possible configuration that may apply to a particular fleet of vehicles.
[0021] According to one embodiment, a service that updates the configuration of a vehicle can dynamically, or in other words "on the fly", generate the configuration of the vehicle based on attributes that distinguish the vehicle from other vehicles in the fleet at the time of, and / or simultaneously with, the update. Such attributes that distinguish vehicles in the fleet can include, for example, a specific model, age, trim, prepaid upgrade, owner / principal driver attributes (e.g., associated with a user account), to provide some examples of differentiating attributes. In one implementation, such updates to the vehicle configuration can be generated and distributed at regular intervals and / or in response to specific events such as requests from the vehicle control system. Such dynamic generation of parameters for "on the fly" vehicle configuration updates allows for greater flexibility in providing configuration updates tailored to the unique aspects of a particular vehicle, and can avoid storing and / or maintaining prepared images or other pre-defined configuration information for all possible configurations applicable to a fleet of particular vehicles.
[0022] FIG. 1 is a schematic diagram identifying some configurable subsystems of vehicle 100 according to an embodiment. As pointed out above, vehicle 100 can be constructed from, or otherwise include, subsystems including, for example, a fuel injection subsystem 114 having an electronic fuel injection device, an entertainment subsystem 110, an environmental control subsystem 118, a navigation subsystem 120, a braking subsystem having brakes 112, a door lock subsystem having door locks 116 and 1 and a door window 140, a wireless communication subsystem having a mobile data transceiver (not shown) and a wireless network transceiver (not shown), a telematics logging subsystem (not shown). These subsystems can also be referred to as vehicle subsystems. As pointed out above, the operation of such subsystems can be controlled, at least in part, by an ECU incorporated within the vehicle.
[0023] According to one embodiment, an ECU controlling the operation of a subsystem may include, for example, a microprocessor / microcontroller, non-volatile memory (e.g., flash memory) or other non-temporary computer-readable media, and a bus for facilitating communication between such microprocessor / microcontroller and non-volatile memory and other devices and / or within them. The functions of such an ECU controlling the operation of a subsystem may be defined at least in part by the relevant subsystem configuration components. More specifically, the configuration of a vehicle subsystem may be defined by code, settings, or other content. This content may have different components such as different code implementing different functions of the vehicle subsystem, different combinations of settings controlling different characteristics of the vehicle subsystem, or more generally, different content combined to control the operation of the vehicle subsystem. These different components may also be called subsystem configuration components. Such subsystem components of an ECU may include code and / or data, which may be represented at least partially by signals and / or states stored and / or maintained in non-volatile memory to represent and / or represent such code or data, such as, to name just a few, executable instructions and / or computer-readable instructions, media content (e.g., images and / or audio content), and configurable control parameters.
[0024] According to one embodiment, an ECU incorporated in a subsystem of vehicle 100 is integrated to communicate with a main ECU and / or a host ECU, for example, to facilitate communication between ECUs of different subsystems and to facilitate updating of subsystem configuration components stored in a non-volatile memory device. In a particular implementation, such a main and / or host ECU may include one or more communication devices for communicating with entities external to vehicle 100 through, for example, a wireless communication network. For example, such a main and / or host ECU may be capable of radio frequency (RF) and / or baseband processing to transmit messages to other devices on such a wireless communication network and receive messages from other devices according to any one of several commercially available wireless communication protocols, and may include one or more wireless transceiver devices.
[0025] According to one embodiment, the main ECU and / or the host ECU may receive configuration information such as a configuration file that may include a configuration image represented by signals and / or states for use in updating subsystem configuration components of a plurality of subsystems of vehicle 100, such as when updating code or settings used in controlling the operation of the subsystems. The main ECU and / or the host ECU may divide such a received configuration image into portions that are distributed to ECUs that control the operation of related subsystems of vehicle 100 on a bus / network. An ECU that receives such a distributed portion of the configuration image can update, for example, a related portion of a related subsystem configuration component stored in non-volatile memory. For example, an ECU that receives a portion of the configuration image can use that portion to update the code executed by the ECU and / or update the settings or other data used by the ECU. In a particular implementation, vehicle 100 may include one or more subsystems that operate under the control of related ECUs dedicated to the subsystems.
[0026] According to one embodiment, the main ECU and / or host ECU can exchange messages with another device via a wireless communication network to facilitate updates of subsystem components of a subsystem of the vehicle 100 (e.g., subsystem components of an ECU associated with such a subsystem). In a particular implementation, the main ECU and / or host ECU may receive one or more messages from the wireless network. These messages may include all or part of files, code, content, parameters, etc., that are applied when updating the subsystem components of a subsystem of the vehicle 100. Such updates may be performed, for example, in response to a specific event and / or in a pre-planned update cycle.
[0027] Figure 2 is a schematic diagram of a system 200 for updating the configuration of a vehicle 210 according to one embodiment. The system 200 may include a vehicle 210, a configuration builder 212, and one or more subsystem configuration integrators 214. The vehicle 210 may implement features of vehicle 100, such as the integration of multiple configurable subsystems operating under the control of one or more ECUs.
[0028] The configuration builder 212 may form a vehicle configuration update system, which is described in more detail below. These components of the system 200 may communicate with each other via a communication network. More specifically, the configuration builder 212 may be able to communicate wirelessly with the vehicle 210 and with one or more computing devices operated by or otherwise associated with the subsystem configuration integrator 214. In this example, the configuration builder 212 may generate configuration information for updating the configuration of the vehicle 210. The configuration builder 212 may be a computing system comprising one or more computing devices, which may include one or more processors, and may include non-temporary storage media (also called memory devices) that store instructions executable by one or more processors. The computing system may exchange messages with the host and / or main ECU of the vehicle 210 via a communication network to facilitate updates to the configuration of the vehicle 210. According to one embodiment, the configuration builder 212 may be controlled and / or operated by an automotive original equipment manufacturer (OEM) integrating vehicle subsystems developed and / or manufactured by a plurality of subsystem configuration integrators 214.
[0029] In one embodiment, the subsystem configuration integrator may be an entity that supplies vehicle subsystems to an automotive OEM. The subsystem configuration integrator may, for example, manufacture and configure the vehicle subsystems. The subsystem configuration integrator 214 may comprise, for example, different departments having an OEM manufacturing organization and / or different external vendors or suppliers. To communicate with the configuration builder 212, the subsystem configuration integrator may use computing devices such as servers, which are operated, controlled (directly or indirectly), or more generally associated with the subsystem configuration integrator. These computing devices can communicate with the configuration builder 212.
[0030] In one embodiment, the configuration builder 212 may be implemented on one or more computing devices configured to operate as servers. In a particular implementation, the configuration builder 212 may be hosted on one or more servers maintained within a “cloud computing” system, and one or more servers may communicate with the vehicle 210 and other devices via a communication network. Such a computing system may include communication devices for communicating with devices via a communication network and may include one or more processors configured to perform various operations such as the steps shown in Figure 4. The computing system can facilitate updating the vehicle's configuration and is therefore sometimes referred to as a vehicle configuration update system.
[0031] According to one embodiment, the configuration builder 212 may determine, identify, or select portions of a configuration image or other configuration file to be applied when updating and / or replacing the configuration of the vehicle 210. The selected portions may be determined, identified, or selected at least in part on features and / or attributes specific to the vehicle 210 (e.g., model, year, trim) and / or situational factors (e.g., location, time, day of the week).
[0032] As noted above, all or part of the configuration images applied when updating and / or replacing the configuration of one or more subsystems of the vehicle 210 may be created and / or updated from time to time (i.e., periodically) and / or in response to specific events (for example, in response to communication between the vehicle 210 and a remote server to request updated software / firmware routines, control parameters, and / or media content in order to update the configuration).
[0033] In one example, such a configuration image or other configuration information (or part thereof) may be created and / or updated to update and / or replace the configuration of a single subsystem of vehicle 210. In other words, the configuration image or other configuration information may be updated to provide a new configuration for the subsystem. In another example, such an image (or part thereof) may be created and / or updated to update and / or replace the configurations of multiple subsystems of vehicle 210. In other words, the configuration image may be updated to provide a new configuration for multiple subsystems.
[0034] In certain implementations, the configuration builder 212 may be adapted to create and / or update configuration information (e.g., configuration images) based on specific conditions and / or events, for example, in order to provide new configurations for a single subsystem and / or multiple subsystems.
[0035] In one implementation, the configuration builder 212 may determine, identify, or select configuration information, such as a portion of a configuration image, to be applied when updating the configuration of the vehicle 210, at least in part on the basis of interaction (e.g., exchange of messages) with the subsystem configuration integrator 214. For example, the configuration builder 212 may exchange messages with a specific subsystem configuration integrator 214 to obtain updates to components of the configuration associated with that specific subsystem configuration integrator 214 (e.g., subsystem configuration components). In one example, the subsystem configuration integrator 214 may be the vendor of the door lock subsystem. In this example, the configuration builder may exchange messages with the subsystem configuration integrator 214 to update the configuration of the door lock subsystem. The update to the configuration of the door lock subsystem may include, for example, updated software / firmware to make the door lock subsystem compliant with new regulations.
[0036] In this example, the configuration builder 212 may send one or more messages to a specific subsystem configuration integrator 214 associated with the door lock subsystem. More specifically, the messages may be sent to a computing device operated by or associated with the subsystem configuration integrator. The one or more messages sent to the subsystem configuration integrator may include, for example, a subsystem update request message requesting a portion of the configuration updates associated with a door lock subsystem (e.g., subsystem configuration components) manufactured and / or serviced by the specific subsystem configuration integrator 214. In one embodiment, such a request from an update request message may include instructions for a specific subsystem and / or attribute of the vehicle 210. In one implementation, such a request may also consider, include, or describe rules maintained in a rule repository 218. In this example, the rules may be based, for example, on safety and / or regulatory rules to ensure the proper operation of the vehicle 210.
[0037] In this example, a specific subsystem configuration integrator 214 may then respond to a subsystem update request message with a subsystem update response message. The response message may include configuration information such as signals and / or status images, or other content for updating the operation of the vehicle subsystem associated with the subsystem configuration integrator 214. In some examples, the configuration information may include a subsystem update module, which is described in more detail below. This configuration information may be combined with other components of the updated configuration to form a configuration file and may be sent by the configuration builder 212 to the host and / or main ECU of the vehicle 210.
[0038] In one embodiment, the configuration builder 212 uses the vehicle ID in the subsystem. composition The integrator 214 may communicate with the subsystem and receive a key-value pair in response. compositionThis may relate to the operation of the related subsystems of the integrator 214. In another embodiment, the configuration builder 212 may present queries to the subsystem configuration integrator 214 (for example, according to SQL or SQL-like format) or communicate in other ways. The queries may include update query messages that specify certain required attributes (but not necessarily all attributes) of the vehicle. These attributes may be sufficient to enable the subsystem configuration integrator 214 to generate images, files, or other configuration information to perform updates and / or replacements of at least some of the configuration. That is, Subsystem configuration The configuration information generated by Integrator 214 is: Subsystem configuration It may be used to implement or specify a new configuration for the vehicle subsystem associated with the integrator 214.
[0039] In one embodiment, to obtain such attributes of vehicle 210, the configuration builder 212 may interact with a separate service (e.g., a web service). In a particular implementation, the configuration builder 212 may separately provide an identifier (e.g., VIN) to an external service (e.g., a “capabilities” service not shown) via a query to obtain various attributes of vehicle 210. The external service may respond to a query, also called a vehicle attribute query, with various attributes of vehicle 210. Such a query may include an attribute query message, which may be formatted at least partially as an SQL query / request, for example, “capabilities.vin ={request.vin},GET capabilities.model,capabilities.year”. However, it should be understood that this is merely an example of how the configuration builder 212 may request and / or obtain attributes of vehicle 210 for use when communicating with the subsystem configuration integrator 214 (e.g., to obtain updated subsystem configuration components).
[0040] In the process of obtaining a new configuration for vehicle 210, the configuration builder 212 can exchange messages with multiple subsystem configuration integrators 214. The new configuration may be an updated configuration or a replacement configuration. These messages may be for obtaining relevant subsystem configuration components that are combined and / or integrated to provide the new configuration (e.g., obtaining updated code or updated settings). For example, the configuration builder 212 may obtain or otherwise receive a first subsystem configuration component, a second subsystem configuration component, a third subsystem configuration component, and so on. In this example, various subsystem configuration components may be received from different subsystem configuration integrators, such as the first subsystem configuration integrator, the second subsystem configuration integrator, and the third subsystem configuration integrator, respectively.
[0041] According to one embodiment, a new configuration of vehicle 210 may be constrained by one or more rules maintained in a rule repository 218. For example, a configuration builder may obtain two respective subsystem configuration components from two subsystem configuration integrators to form an updated configuration of vehicle 210. However, these two subsystem configuration components may conflict with each other if they are not properly integrated. In one particular example, such a conflict may occur if the subsystem configuration components of two interrelated subsystems (e.g., from different subsystem configuration integrators 214) are incompatible and / or violate regulations. When integrating these subsystem configuration components of the updated configuration, the configuration builder 212 may include or execute a rule arbiter 220 to resolve any conflicts between the subsystem configuration components obtained from the subsystem configuration integrators 214.
[0042] According to one embodiment, different subsystem configuration integrators 214 may be dedicated to and / or specialized in the maintenance and / or servicing of specific relevant subsystems of the vehicle 210. For example, one subsystem configuration integrator 214 may specialize in the maintenance and / or servicing of the vehicle 210's environmental control subsystem, and another subsystem configuration integrator 214 may specialize in the maintenance and / or servicing of the vehicle 210's entertainment subsystem. In this example, yet another subsystem configuration integrator 214 may specialize in the maintenance and / or servicing of a door lock subsystem having a door lock mechanism. In a particular implementation of the system 200, the features implemented in, or expressed by, the subsystem configuration components of the subsystems manufactured and / or serviced by the subsystem configuration integrators 214 may evolve rapidly. In other words, the operation or features of a particular vehicle subsystem may need to be updated quickly. The need for this rapid update can be at least partially due to many triggering factors, such as performance upgrades, content refreshes, defect (e.g., software bugs) detection, reliability improvements, and changes in regulations, to name just a few examples of how and why the characteristics of subsystem configuration components may change. Tracking all of these triggering factors for many different vehicle subsystems and generating configuration information to update the configurations of all these vehicle subsystems can be extremely time-consuming and resource-intensive. Therefore, concentrating the ability to create fully updated subsystem configuration components for many different vehicle subsystems using the configuration builder 212 may be impractical or unfeasible. As a result, it may be more realistic and feasible to have individual subsystem configuration integrators 214 perform the essential feature updates of the subsystem configuration components associated with each subsystem configuration integrator 214 that is associated with these configuration components.For example, the configuration builder 212 may generate subsystem update modules, as discussed below, to update their respective associated vehicle subsystems, depending on the individual subsystem configuration integrators.
[0043] As noted above, the service may determine updates to the vehicle configuration at the start of the update process and generate images, files, or other configuration information to be applied when updating the vehicle configuration, and the configuration information may be generated dynamically "on the fly" based at least in part on attributes that distinguish the vehicle from other vehicles in the fleet. Figure 3 is a message flow diagram showing inter-entity communication for determining the updated configuration of vehicle 310 in response to an event, according to one embodiment. Such an event may include sending a message 342 to a configuration builder 312 requesting the updated configuration. Message 342 may also be referred to herein as a vehicle configuration update request message.
[0044] In one embodiment, the transmission of message 342 may be triggered by any one of several conditions and / or events, which include, for example, the ignition of vehicle 310, a change in the geofenced location of vehicle 310, a request from an update scheduler, and a backend software update. Such a backend software update may enable the careful deployment of access to a new version of the backend service (for example, initially enabling only a small number of vehicles in a particular region to connect to the new version), followed by the deployment of access to an extended cohort of vehicles. Such a backend software update may be, for example, part of a general-purpose / global software update, or part of a software update performed on a node of a federated learning system.
[0045] According to one embodiment, the configuration builder 312 can process the contents of message 342 to determine, for example, attributes of vehicle 310 such as a specific model, year, trim, and prepaid renewal, as well as other contextual attributes such as the driver's location or identity (for example, if there are multiple drivers associated with vehicle 310), and provide some examples of contextual attributes. In one particular implementation, message 342 may include a unique identifier referring to vehicle 310, allowing the configuration builder 312 to determine the attributes of vehicle 310 by accessing a database or other data repository.
[0046] In one embodiment, message 342 may also include a namespace that can be parsed into segments by the configuration builder 312 to identify a subsystem for which an updated configuration is requested. In a particular implementation, the parsed segments of such a namespace may include key-value pairs. The configuration builder 312 may associate the key-value pairs with a particular identified vehicle subsystem and / or one or more subsystem configuration integrators 314, the subsystem configuration integrators 314 for providing updated subsystem configuration components for such identified vehicle subsystem. According to one embodiment, the namespace in the request of message 342 may include concatenation of characters. The namespace may present its basic configuration as a tree of key-value pairs that can be overridden subject to applicable rules and / or conflicts found. In a particular implementation, such key-value pairs in the namespace may be formatted, for example, according to JavaScript Object Notation (JSON) (see, for example, IETF RFC 8259). In alternative implementations, a different “line-level” data format (e.g., JSONb or Google Protocol Buffers) may be implemented to improve efficiency while allowing the client and / or backend process to use natural language processing for message 342. For example, message 342 may include, for instance, a service endpoint, a timeout / retry period, debug / logging flags, or other items that can be transported in a message formatted for JSON and sent according to the relevant communication protocol.
[0047] In some examples, vehicle 310 may send a vehicle configuration update request message 342 in response to a geofence event to disable a service that is not legal in a particular area (for example, the payload of the request message may include an enable / disable flag). In another example, such a request message 342 may request service activation (for example, for an update initiated / executed by a backend server), which may involve payment for service activation.
[0048] In the example in Figure 3, after the configuration builder 312 processes the configuration update request message 342, the configuration builder 312 may then send one or more messages 344 to one or more subsystem configuration integrators 314 requesting updates to the components of the vehicle configuration for the relevant subsystem. More specifically, the messages 344 may be sent to one or more servers or other computing devices operated by or otherwise associated with the subsystem configuration integrator 314. The messages 344 may also be referred to herein as subsystem update request messages. That is, the configuration builder 312 may send subsystem update request messages 344 to a specific subsystem configuration integrator 314 or communicate in other ways. The messages 344 may request content, or more specifically, configuration information for updating the operation of the vehicle subsystem associated with the integrator 314. For example, the requested content may include updated code or updated settings, which update the configuration components for the vehicle subsystem associated with the integrator 314.
[0049] As noted above, the configuration builder 312 may determine the content of the request in message 344 based on rules accessed from a rule repository (e.g., rule repository 218) that can constrain specific characteristics of the subsystem configuration components of the updated configuration. For example, message 344 may indicate one or more restrictions and / or constraints to be incorporated into the requested update of the subsystem configuration components.
[0050] According to one embodiment, the configuration builder 312 may determine an updated configuration targeting specific features of a target vehicle model and year. In one embodiment, the configuration builder 312 may access one or more backends and / or external sources (not shown) to obtain a set of configurations identifiable according to a specific definition language. For example, such a set of configurations may be accessible according to an SQL query such as the following example.
number
[0051] According to one embodiment, a configuration set may be obtained based on responses from multiple SQL queries. As described above, configuration components may conflict with each other. In block 350 of Figure 3, the configuration builder 312 may perform actions to determine applicable rules for resolving conflicts. In block 354, the configuration builder 312 may use rules to mediate conflicts. For example, a particular request to update the configuration of vehicle 310 may be associated with conflicting configuration components if the conflicting queries provide a “true” result. In that example, in block 354, the configuration builder 312 may apply priority and / or a chain-of-command technique to resolve the conflict. The resolution of such conflicts may be performed according to one or more rules. An example of such a rule may specify a timeout for waiting for an acknowledgment and / or response to a message. The default value for such a timeout may be 30 seconds, but the rule may specify that if a particular vehicle 310 is located in Japan, the value of such a timeout is set to 45 seconds (for example, to allow the message to cross the Pacific Ocean). Another example of such a rule might be specifying that for a particular vehicle, the timeout for waiting for an acknowledgment and / or response to a message should be 2 minutes (for example, to allow for debugging and / or troubleshooting of any problems / malfunctions).
[0052] As shown in Figure 3, in response to one or more subsystem update request messages 344, the subsystem configuration integrator 314 may, in block 346, prepare updates to one or more subsystem configuration components for an updated configuration, the updated configuration being associated with one or more subsystems of the vehicle 310. As noted above, such subsystem configuration components of an updated configuration may include configuration information, which may include signals and / or states of a configuration image (e.g., instructions, media content, and / or configurable control parameters). The configuration image may be stored in a non-volatile memory device local to the ECU that controls the operation of the associated subsystem. In one embodiment, the update may be represented as a subsystem update module, which may be part of content (e.g., a package) containing code and / or settings for updating the operation of the associated subsystem. Such updates to the subsystem configuration components determined in block 346 may then be returned to the configuration builder 312 in one or more messages 348. Messages 348 may also be called subsystem update response messages. In one implementation, message 348 may include one or more links and / or URIs for accessing a module, or it may include the module itself, which is integrated to provide images or other files for use when updating related subsystem configuration components.
[0053] In one particular implementation, when the configuration builder 312 initiates sending messages 344 to multiple different subsystem configuration integrators 314, the configuration builder 312 may send multiple messages 344 to multiple different subsystem configuration integrators 314 simultaneously. In another particular implementation, the configuration builder 312 may send multiple messages 344 to different subsystem configuration integrators 314 at once. Such sequential transmission allows the configuration builder 312 to initiate sending the first message 344 to the first subsystem configuration integrator 314 and receive a message 348 from the first subsystem configuration integrator 314 containing updated subsystem configuration components for the first vehicle subsystem before sending the second message 344 containing a request for updated subsystem configuration components for the second vehicle subsystem. This may, for example, allow the configuration builder 312 to adjust the request in the second message 344 for the updated subsystem configuration component of the second vehicle subsystem based at least partially on the updated subsystem configuration component of the first vehicle subsystem received in the first message 348. In these examples, the subsystem configuration component may be updated, for example, by a subsystem update module that includes updated code and / or updated settings to update the existing code and / or settings of the subsystem configuration component. The updated subsystem configuration component can lead the associated vehicle subsystem to have updated behavior.
[0054] As described above, the configuration builder 312 may determine whether different subsystem configuration components for updating different vehicle subsystems conflict with and / or violate any implementation rules. Such determination may be at least partially based on updates to subsystem configuration components received in one or more messages 348 (for example, based on messages from different source subsystem configuration integrators 314). Here, in block 350, the configuration builder 312 may determine any applicable rules (for example, by accessing a rule repository such as rule repository 218). The configuration builder 312 can then communicate with rule repository 318 (which may be one embodiment of rule repository 218) to resolve conflicts. For example, in block 350, the configuration builder 312 may determine rules that a vehicle or vehicle subsystem configuration must follow. The configuration builder 312 can then communicate the parameters of the updated subsystem configuration component to rule repository 318 in message 352 to identify and / or resolve any conflicts and / or rule violations. The rule repository 318 may communicate and return a message 356 to the configuration builder 312 that may provide an indication of conflicts and / or rule violations (or an indication that there are no conflicts or rule violations).
[0055] The configuration builder 312 can incorporate the instructions provided by message 356 into a method for generating configuration information for the updated configuration, or more specifically, a configuration file. More specifically, in block 358, the configuration builder 312 may determine / define the updated vehicle configuration based on the instructions in message 356.
[0056] In one embodiment, determining the updated vehicle configuration in block 358 may include packaging the updates to the subsystem configuration components as a concatenation of updated modules of the subsystem configuration components. In other words, the configuration builder 312 may generate a configuration image or configuration file based on the subsystem update modules contained in message 348 from the subsystem configuration integrator. This concatenation of modules may be encapsulated in a signal packet sent to the vehicle 310. In one implementation, the updated modules may be sent in one or more messages 360 (e.g., in a TCP / IP session). Messages 360 may be used to update the vehicle configuration of the vehicle 310, or more generally, to provide the vehicle 310 with a new vehicle configuration, and may be called configuration update messages. In another implementation, one or more outgoing messages 360 may include one or more URIs / links that enable the vehicle 310 to download the updated modules from a server (not shown). The main ECU and / or host ECU of the vehicle 310 may then extract the updated modules of the subsystem configuration components from the received signal packets used when updating the subsystem configuration components of the relevant subsystems of the vehicle 310.
[0057] In one embodiment, the vehicle 310 may comprise one or more computing devices configured as “client” devices, while the configuration builder 312 may comprise one or more computing devices configured as “server devices.” In one example, the vehicle 310 may implement a “cloud gateway” and identify itself to the configuration builder 312. For example, in addition to providing the requested configuration namespace, message 342 may transmit a unique identifier associated with the vehicle 310. The response message 360 may include caching information and a configuration tree. Such a configuration tree may contain any number of nodes (e.g., up to a maximum size) specifying the requested configuration update. In one embodiment, the exchange of messages 342 and 360 may be performed at least partially according to the Hypertext Transfer Protocol (HTTP), which is implemented using caching tools and software known to those skilled in the art. In another embodiment, the exchange of messages 342 and 360 may be performed at least partially according to the Message Queuing Telemetry Transport (MQTT) protocol. According to one embodiment, message 342 transmitted according to HTTP may be authenticated using the Mutual Transport Layer Security (mTLS) process and formatted as an HTTP GET message. Message 342 transmitted according to MQTT may be authenticated using commercial client authorization technology. According to one embodiment, configuration builder 312 may verify that the value of {UID} in message 342 matches the user identifier in the client certificate and adhere to the so-called "if-modified-since" header. If configuration builder 312 determines that a particular configuration currently determined in block 358 is the same as the configuration in "{expiration}", configuration builder 312 may return a response in message 360 indicating "no changes" instead of the entire payload containing the configuration, in order to facilitate efficient use of communication network resources.
[0058] In one implementation, sending message 342 via MQTT may result in publication to a topic (for example, called "subject"). For example, sending message 342 via MQTT by vehicle 310 may result in publication of the message, including the current radio station, to the relevant topic " / car / {carID} / entertainment / radio". In another example, sending message 360 via MQTT by configuration builder 312 may result in publication to the relevant topic " / car / {carID} / config / {domain}".
[0059] According to one embodiment, the namespace specified in an HTTP GET message may represent a unique component to enable collision avoidance. For example, the namespaces of two different HTTP GET messages (for the "networking" and "navigation" subsystems) may include a "retry-period" parameter that returns different values.
[0060] As shown in the example above, the module for the updated configuration can be obtained by the vehicle 310 by accessing a universal resource identifier (URI) embedded in the payload of message 360. Such an embedded URI may be associated with its own caching infrastructure. In another specific implementation, such a URI may be embedded in the MQTT response message. In yet another specific implementation, a JSON structure may be swapped out with a different type of document to include the embedded URI.
[0061] According to one embodiment, the configuration builder 312 may receive several parameters specifying the request for a configuration to be updated within an HTTP GET message in message 342, but the configuration builder 312 may access a backend / external source (not shown) to obtain additional information for determining the updated configuration of a particular vehicle. In a particular example, the configuration builder 312 may obtain parameters from an HTTP GET message (e.g., VIN) in message 342 to query such a backend / external source to obtain additional information (e.g., from a subsystem configuration integrator 314).
[0062] According to one embodiment, the configuration of the vehicle 310 may be updated on a schedule or in response to a specific event. For example, the vehicle 310 may send a message 342 requesting an updated configuration periodically (e.g., daily, weekly, monthly). In another example, the vehicle 310 may send a message 342 requesting an updated configuration in response to a specific event, such as the ignition of the vehicle 310 and / or other explicit user input (e.g., a selection in a console or mobile application). In certain implementations, the update of the vehicle 310's configuration may be tailored to a specific driver and / or user (e.g., determined immediately before sending message 342). Here, to enable tailoring the vehicle 310's configuration for a specific driver and / or user, the HTTP GET message in message 342 may further include an identifier for the driver and / or user to whom the requested configuration update is tailored. In another implementation, the updated configuration from the configuration builder 312 can anticipate multiple different contexts for different users and / or drivers and adapt accordingly in real time.
[0063] As described above, sending message 360 may include message caching. According to one embodiment, message caching may be defined at least partially by a server implemented in the configuration builder 312 to enable a reduction in the number of changes in the client implemented on the vehicle side. The HTTP client implemented in the vehicle 310 may not include a cache control header. For network efficiency, an "if-modified-since" header may be used. An implementation of message 342 by MQTT request structure may include an if-modified-since header without other cache directives.
[0064] In one embodiment, the configuration builder 312 may provide an updated configuration of the vehicle 310 in message 360 and determined parameters in message 342, which are generated in response to the receipt of message 342 in a so-called "pull" model (for example, message 360 is sent periodically in response to a request in message 342 for an updated configuration, or in response to a specific event). In another embodiment, the configuration builder 312 may provide an updated configuration of the vehicle 310 in message 360, which is implemented in a so-called "push" model (for example, without requiring an explicit request in message 342). To implement such a push model for the delivery of updated configurations, the configuration builder 312 may have, for example, a priori knowledge that enables the implementation of a push model for the delivery of updated configurations, such as all rules applicable to the vehicle 310, priori knowledge of namespaces that should be applicable to the VIN associated with the vehicle 310, or immediate access to them. In another embodiment, push delivery of updated configurations may be implemented on a subscription model that uses MQTT messaging and allows for the retrieval of non-VIN-specific configurations at least partially based on known VINs associated with the vehicle 310. To ensure that the “pushed” delivery of update modules to configurations is delivered and / or implemented, the configuration builder 312 may wait for a certain duration following the transmission of message 360 for an acknowledgment message (not shown) from the vehicle 310. If no such acknowledgment message is received, the configuration builder 312 may resend the update to the configuration in a subsequent message 360 and wait again for an acknowledgment message from the vehicle 310 (for example, if the transmitted updated configuration was lost). In another embodiment, the “hold message” feature of MQTT messaging may be implemented to ensure the receipt of the updated configuration.
[0065] Figure 4 is a flowchart of a process 400 for defining an updated vehicle configuration according to one embodiment. In this context, the “configuration” of a vehicle as referred to herein means the collective state of adaptable / modifiable parameters that affect the operation of at least one aspect of the vehicle. As noted above, such adaptable / modifiable parameters may include, to name just a few, code (e.g., software / firmware routines), settings used by the code (e.g., control parameter values), and other content such as media content (e.g., images and / or audio content). In one embodiment, the process 400 may be performed by a configuration builder 212 / 312 which can be implemented or executed by a computing system (e.g., a server). The configuration builder 212 / 312 in this context may function as a vehicle update configuration system. The process 400 may include blocks 402-406, also referred to as operations 402-406. As described above, the configuration builder 212 / 312 may include one or more processors for performing various operations of process 400 and may include communication devices for exchanging messages with various other systems via a communication network.
[0066] In one embodiment, block 402 comprises a configuration builder (e.g., configuration builder 212 or 312) and one or more subsystem configurations. Entrance This may include the exchange of messages with an integrator (e.g., subsystem configuration integrator 214 or 314). Such message exchange in block 402 may include, for example, one or more subsystem update request messages 344 followed by one or more subsystem update response messages 348. More specifically, the configuration builder or other computing system sends the subsystem update request message 344 to the subsystem configuration integrator 314 It may also communicate with the subsystem configuration integrator. 314 Subsystem update response message 348 You may receive it.
[0067] In one embodiment, a subsystem update request message 344 may request one or more modules for updating subsystem configuration components of one or more related subsystems of a vehicle (e.g., vehicle 210 or 310). As described above, subsystem configuration components may be parts of content such as code, configuration, or media content that implement the configuration of the vehicle subsystem. In this example, a module may be a package or other part of updated content, such as updated code, updated configuration, and / or updated media content, used to update the content of the subsystem configuration component. In this example, one or more subsystem update response messages 348 may provide one or more requested modules. In a particular implementation, message 344 may be at least partially based on key-value pairs parsed from a namespace associated with the vehicle whose configuration is being updated.
[0068] In one implementation, one or more processors of the configuration builder 212 / 312 can execute block 402 by communicating one or more subsystem update request messages (e.g., one or more messages 344) to one or more subsystem configuration integrators via the communication device of the vehicle configuration update system.
[0069] In one embodiment, one or more subsystem update request messages may be communicated in response to an event such as the receipt of a vehicle configuration update request message from vehicle 310. More specifically, a configuration builder 212 / 312 may receive such a message requesting a new vehicle configuration to be applied to vehicle 310. This new vehicle configuration is used to update or replace an existing vehicle configuration of vehicle 310. In this example, block 402 may be executed in response to the receipt of a vehicle configuration update request message.
[0070] In one embodiment, a subsystem update request message in block 402 may be transmitted to or associated with one or more computing devices operated by or connected to one or more subsystem configuration integrators, or otherwise communicated. Each of the one or more subsystem configuration integrators may be an entity that manages and / or controls the operation of each of the multiple vehicle subsystems of the vehicle. The one or more subsystem update request messages communicated in block 402 may be for requesting content to update the operation of one or more of the multiple vehicle subsystems.
[0071] In one embodiment, block 402 may further include one or more processors receiving one or more subsystem update response messages via a communication device from computing devices operated by or associated with one or more subsystem configuration integrators. The subsystem update response messages from the vehicle subsystem integrators may include content for updating the operation of the vehicle subsystem associated with the integrator. For example, a subsystem update response message may include a subsystem update module. As described above, such a module may be part of content (e.g., a package) that includes code or configuration for updating the operation of the vehicle subsystem.
[0072] In one particular implementation, the exchange of messages in block 402 may occur and / or be triggered in response to a specific event, such as the reception of message 342 at the configuration builder 312, in a “pull” model for the delivery of configuration updates. In another particular implementation, the exchange of messages in block 402 may occur and / or be triggered in response to a scheduler initiating the delivery of configuration updates in a “push” model.
[0073] In one embodiment, the configuration builder 212 / 312 may query a subsystem configuration integrator, or more specifically, a computing device associated with it, regarding whether an update is needed for the configuration of a particular vehicle subsystem. For example, a vehicle configuration update message 342 may indicate which event or condition triggers a request for a new vehicle configuration. In this example, the configuration builder 212 / 312 may communicate one or more update query messages to one or more computing devices associated with one or more subsystem configuration integrators. The update query message may be associated with one or more of several vehicle subsystems and is used to query whether an event triggers one or more vehicle subsystems to change their operation.
[0074] In the example above, a computing device associated with one or more subsystem configuration integrators may respond to the configuration builder 212 / 312 with one or more query response messages indicating whether an event triggers one or more vehicle subsystems to modify their operation. For example, a first subsystem configuration integrator may return a first response message indicating that a particular event triggers an updated configuration that updates the operation of a first vehicle subsystem, while a second subsystem configuration integrator may return a second response message indicating that the event does not trigger an updated configuration of a second vehicle subsystem. Such response messages may be used by the configuration builder 212 / 312 to generate a configuration file in block 404.
[0075] Block 404 may include the configuration builder 212 / 312 generating a configuration file or other configuration information for applying a new configuration to the vehicle 310. In one embodiment, the configuration file may be a file image that is at least in part based on the messages exchanged in Block 402 and may be an image of signals and / or states representing an update and / or replacement of the vehicle's configuration. Such signals and / or states in such a generated image may be referred to herein as “configuration information” for applying the updated or replacement configuration to the vehicle.
[0076] In certain implementations, block 404 may include configuration builder 212 or 312 generating a configuration file based on one or more subsystem update modules received in block 402. For example, block 402 may involve integrating update modules received from multiple subsystem configuration integrators 214 or 314 and enabling updates to such vehicle configurations based at least in part on exchanged messages. In certain implementations, the integrated update modules (e.g., including configuration parameters associated with a particular subsystem configuration) may be formatted and / or packaged for delivery to a vehicle to enable updates to associated subsystems of the vehicle, based at least in part on configuration parameters obtained from one or more subsystem configuration integrators 214 or 314.
[0077] According to one embodiment, block 404 may include one or more processors of a vehicle configuration update system generating configuration information for applying an updated or replacement configuration to a vehicle. Block 404 may generate such configuration information at least in part based on one or more subsystem update response messages (e.g., one or more messages 348) from one or more subsystem configuration integrators. Such an updated or replacement configuration may control the operation of multiple vehicle subsystems.
[0078] In one embodiment, the configuration builder 312 / 212 can execute block 404 by determining whether there are conflicts among the multiple subsystem update modules included in the update response message 348 of block 402. The configuration builder 212 / 312 may generate a configuration file in a manner based on whether there are conflicts among the multiple subsystem modules.
[0079] Block 404 may enable one or more processors to further generate the content of one or more configuration update messages (e.g., one or more messages 360) that include or reference configuration files or other configuration information based on the configuration information. In one particular implementation, such a configuration update message may reference an updated or replaced configuration by, for example, providing a URI that is selectable for downloading one or more electronic files or electronic documents containing the configuration information. In another particular implementation, such a configuration update message may reference an updated or replaced configuration by, for example, transporting, encapsulating, and / or attaching one or more electronic files or electronic documents containing the configuration information. However, it should be understood that this is merely an example of how a configuration update message may reference an updated or replaced configuration, and the subject matter of the claims is not limited thereto. In one example, Block 404 may further generate configuration information based at least in part on the identity of the vehicle driver. In another example, block 404 may generate configuration information based at least partially on the vehicle's model, trim, or year, or a combination thereof, which is determined at least partially on parameters obtained from at least one update request message received from the vehicle.
[0080] In one embodiment, an update query message received in block 402 may include one or more key-value pairs, and block 404 may further include identifying a vehicle subsystem based at least partially on one or more key-value pairs, and generating configuration information based at least partially on the identified subsystem of the vehicle. Block 404 can identify a vehicle subsystem by parsing one or more key-value pairs into segments associated with the subsystem, and generating configuration information based at least partially on the key-value pairs associated with the segments. In a particular implementation, block 404 can generate configuration information by exchanging messages with a computing device associated with one or more subsystem configuration integrators to obtain configuration parameters of the subsystem associated with one or more subsystem configuration integrators, and integrating the obtained configuration parameters of the subsystem associated with one or more subsystem configuration integrators provides the configuration information.
[0081] Block 406 may include initiating the transmission of one or more configuration update messages (e.g., one or more messages 360) to the vehicle in order to enable the vehicle to access a configuration file, which may be an image of signals and / or states containing modules that enable updating the vehicle's configuration to a new vehicle configuration. According to one embodiment, a transmitter device may be coupled to a transmitting medium and include circuitry for modulating signals in the transmitting medium based on information. Upon receiving the modulated signal, a receiver device coupled to the transmitting medium may apply detection and / or demodulation operations to restore the information. In this context, a device may initiate the transmission of a message by issuing a signal and / or command to the transmitter device to transmit the message over the transmitting medium (e.g., by modulating signals in the transmitting medium based on a message). In one implementation, such a message transmitted in block 406 may transport all or part of the image of signals and / or states generated in block 404. In another implementation, such a message transmitted in block 406 may include one or more universal resource identifiers (URIs) accessible by a computing device installed at the same location as the vehicle in order to instruct the vehicle to download all or part of such image of signals and / or states containing modules.
[0082] In certain implementations, upon receiving at least a portion of the image generated in block 404, the vehicle's host and / or main ECU may perform one or more steps to update the subsystem components of the relevant subsystem. Such updates to the subsystem components of the relevant subsystem may be performed, for example, by refreshing signals and / or states stored in a non-volatile memory device accessible by the ECU controlling the operation of the relevant subsystem.
[0083] In one embodiment, the transmission of a configuration update message to the vehicle in block 406 may occur simultaneously with the event that triggered the message exchange in block 402, or more specifically, the transmission of a subsystem update request message to the subsystem configuration integrator. In one particular implementation, such an event may include the receipt of a vehicle configuration update request message from the vehicle requesting an update and / or replacement of the vehicle's configuration. For example, such an update query message from the vehicle may be initiated in response to an ignition event in the vehicle. In this context, “simultaneous” as used herein means the characterization of events and / or states that occur and / or exist over approximately the same period of time. For example, the transmission of a configuration update message may occur within a predetermined period after the vehicle configuration update request message has been received. The predetermined period may be, for example, a predetermined average period for generating configuration information to update the vehicle's configuration. In a particular implementation, the transmission of one or more messages 360 in block 406 occurs simultaneously with the event that initiates the message exchange, by occurring with virtually no delay following the event. For example, such a message that may be sent in block 406 may occur within the drive time following the ignition event that initiates message exchange in block 402. This, at least in part, through interaction with multiple subsystem configuration integrators in block 402, may enable the creation of an image for configuration updates in block 404 tailored to a specific vehicle (e.g., model, trim, year, geography) under specific contexts, conditions, etc., "on the fly". This may enable the service of a very large number of diverse configurations for a diverse fleet of vehicles without using a database that statically stores an exhaustive set of predefined configurations for any vehicle in a diverse fleet.
[0084] Unless otherwise specified, in the context of this patent application, the term “or” used to associate a list such as A, B, or C is intended to mean A, B, and C in an inclusive sense, and A, B, or C in an exclusive sense. In this understanding, “and” is intended to mean A, B, and C in an inclusive sense, and “and / or” can be used, though not required, with sufficient care to clarify that all of the aforementioned meanings are intended. Furthermore, the terms “one or more” and / or similar terms are used in the singular to describe any feature, structure, property, etc., and “and / or” is also used to describe multiple features, structures, properties, etc., and / or any other combination thereof. Similarly, the terms “based on” and / or similar terms are understood not to necessarily convey an exhaustive list of factors, but rather to allow for the existence of additional factors not explicitly described. Thus, the term “based on” is intended to convey at least a subset of factors, meaning “at least partially based on.”
[0085] Furthermore, with regard to the circumstances subject to testing, measurement, and / or specification relating to the degree of the claimed subject matter, it is intended that specific circumstances be understood as follows: As an example, assume that in a given circumstances, the value of a physical characteristic is measured.
[0086] To the extent that the claimed subject matter relates to one or more specific measurements, such as, but not limited to, physical manifestations that can be physically measured, such as temperature, pressure, voltage, current, and electromagnetic radiation, it is considered that the claimed subject matter does not fall under the legal exception of abstract concepts to legal subject matter. Rather, it is argued that physical measurement is not a mental step and is similarly not an abstract concept.
[0087] From this perspective (in line with these measurement results), various techniques are being used to process one or more measurements to better estimate not only potentially random components but also the underlying deterministic components. These techniques can, of course, vary depending on the details surrounding a given situation.
[0088] The terms “type” and / or “similar” are used with features, structures, properties, etc., using “optical” or “electrical” as simple examples, and mean that they apply to and / or relate to features, structures, properties, etc., at least in part, and do not generally prevent features, structures, properties, etc. from being “type” and / or “similar” (e.g., “optical type” or “optical-like”) if the minor modifications, even if they may not be considered to be perfectly identical to the features, structures, properties, etc., are sufficiently minor and the features, structures, properties, etc. are still considered to be substantially present in the presence of such modifications.
[0089] With technological advancements, it has become more common to adopt a distributed computing and / or communication approach in which, for example, parts of a process such as signal processing of signal samples can be allocated among various devices, including one or more client devices and / or one or more server devices, via a computing and / or communication network. A network may comprise two or more devices, such as network devices and / or computing devices, and / or devices such as network devices and / or computing devices, and as a result, signal communications, such as in the form of signal packets and / or signal frames (e.g., comprising one or more signal samples), can be exchanged between other types of devices, such as between server devices and / or client devices, and between wired and / or wireless devices coupled via wired and / or wireless networks.
[0090] Examples of distributed computing systems include so-called Hadoop distributed computing systems that use a map-reduce architecture. In the context of this patent application, the terms map-reduce architecture and / or similar terms are intended to refer to distributed computing system implementations and / or embodiments for processing and / or generating larger sets of signal samples using map and / or reduce operations for processes performed over a network of devices. Map operations and / or similar terms refer to processing signals (e.g., signal samples) for generating one or more key-value pairs and distributing one or more pairs to one or more devices in a system (e.g., a network). Reduce operations and / or similar terms refer to processing signals (e.g., signal samples) via summarization operations (e.g., counting the number of students in a queue, determining name frequency, etc.). In one embodiment, such an architecture may be employed by marshalling distributed server devices, executing various tasks in parallel, and / or managing communications such as signal transfer between various parts of the system (e.g., a network). As stated above, one non-limiting but well-known example is the Hadoop distributed computing system. This refers to open-source implementations and / or embodiments of the map-reduce architecture, but may also include other embodiments such as the Hadoop Distributed File System (HDFS). Therefore, generally, “Hadoop” and / or similar terms (e.g., “Hadoop-type”) refer to implementations and / or embodiments of a scheduler for executing larger processing jobs using a map-reduce architecture on a distributed system. Furthermore, in the context of this patent application, the use of the term “Hadoop” is intended to include currently known versions and / or versions to be developed in the future.
[0091] In the context of this patent application, the term "network device" refers to any device that can communicate via and / or as part of a network, and may include computing devices. Network devices may be capable of communicating signals (e.g., signal packets and / or frames) via wired and / or wireless networks, etc., but they may also be capable of performing operations associated with computing devices, such as arithmetic and / or logical operations, processing and / or storing as tangible physical memory states in memory, etc. (e.g., storing signal samples), and / or, for example, they may operate as server devices and / or client devices in various embodiments. Network devices that can operate as server devices, client devices, and / or other devices may include, for example, dedicated rack-mount servers, desktop computers, laptop computers, set-top boxes, tablets, netbooks, smartphones, wearable devices, integrated devices combining two or more features of the aforementioned devices, or any combination thereof. As described above, signal packets and / or frames may be exchanged, for example, between wired and / or wireless devices coupled via wired and / or wireless networks, or between server devices and / or client devices, and other types of devices, including, for example, any combination thereof. Please note that the terms server, server device, server computing device, server computing platform, and / or similar terms are used interchangeably. Similarly, the terms client, client device, client computing device, client computing platform, and / or similar terms are used interchangeably. In some examples, for ease of explanation, these terms may be used in the singular, such as referring to a "client device" or a "server device," but the explanation is intended to include one or more client devices and / or one or more server devices as necessary.Similarly, any reference to "database" is understood to mean one or more databases and / or parts thereof, as appropriate.
[0092] For the sake of clarity, it should be understood that network devices (also called networking devices) may be embodied and / or described in terms of computing devices, and vice versa. However, it should be further understood that this description should not be interpreted as limiting the claimed subject matter to only one embodiment, such as computing devices and / or network devices, but rather that it may be embodied as various devices or combinations thereof, including, for example, one or more exemplary examples.
[0093] A network may include currently known and / or later developed configurations, derivatives, and / or improvements, including, for example, past, present, and / or future mass storage devices such as network-attached storage (NAS), storage area networks (SAN), and / or other forms of device-readable media. A network may include a part of the internet, one or more local area networks (LANs), one or more wide area networks (WANs), wired connections, wireless connections, other connections, or any combination thereof. Thus, a network may be worldwide in scope and / or to some extent. Similarly, subnetworks, which may employ different architectures and / or be substantially compliant with different protocols such as network computing and / or communication protocols (e.g., network protocols), and / or be substantially compatible, may interoperate within a larger network.
[0094] In the context of this patent application, the term subnetwork and / or similar terms, when used, for example, in relation to a network, refer to a network and / or a portion thereof. Subnetworks may also include links, such as physical links, that connect and / or combine nodes so that signal packets and / or frames can be communicated between devices at particular nodes, including via wired links, wireless links, or a combination thereof. Various types of devices, such as network devices and / or computing devices, may be made available and / or, in at least some cases, transparent, in order to enable interoperability between devices. In the context of this patent application, the term “transparent,” when used in relation to devices in a network, refers to a device that communicates over a network through one or more intermediate devices, such as one or more intermediate nodes, but a communicating device does not necessarily specify one or more intermediate nodes and / or one or more intermediate devices of one or more intermediate nodes, and / or, therefore, a network may include devices that communicate through one or more intermediate nodes and / or one or more intermediate devices of one or more intermediate nodes, but can participate in signal communication as if such intermediate nodes and / or intermediate devices were not necessarily involved. For example, a router may provide links and / or connections between otherwise separate and / or independent LANs.
[0095] The Internet refers to a distributed global network of interoperable networks that conform to the Internet Protocol (IP). Note that there are several versions of the Internet Protocol. The term Internet Protocol (IP) and / or similar terms are intended to refer to any version currently known and / or subsequently developed. The Internet includes local area networks (LANs), wide area networks (WANs), wireless networks, and / or long-distance public networks that can enable, for example, signaling packets and / or frames to be communicated between LANs. The term World Wide Web (WWW or Web) and / or similar terms may also be used, but this refers to a portion of the Internet that conforms to the Hypertext Transfer Protocol (HTTP). For example, network devices may engage in an HTTP session through the exchange of appropriately substantially compatible and / or substantially compliant signaling packets and / or frames to send messages between network devices. Note that there are several versions of the Hypertext Transfer Protocol. The term Hypertext Transfer Protocol (HTTP) and / or similar terms are intended to refer to any version currently known and / or subsequently developed. Similarly, it should be noted that in various parts of this specification, the term “Internet” can be replaced with the term “World Wide Web ("Web")” without significantly altering the meaning, and therefore, if such replacement makes the description correct, it may be understood as such. In other embodiments, network devices may exchange messages in signaling packets using the Message Queuing Telemetry Transport (MQTT) protocol.
[0096] The scope of the claimed subject matter is not particularly limited to the Internet and / or the Web, however, the Internet and / or the Web may, without limitation, provide useful examples of embodiments, at least for illustrative purposes. As shown, the Internet and / or the Web may comprise a global system of interoperable networks, including interoperable devices within those networks. The Internet and / or the Web has evolved into a publicly self-sustaining facility potentially accessible to billions of people worldwide. Also, in one embodiment, as stated above, the terms “WWW” and / or “Web” refer to a portion of the Internet compliant with hypertext transfer protocols. Thus, in the context of this patent application, the Internet and / or the Web may include services for organizing stored digital content, such as text, images, and videos, for example, through the use of hypermedia. Note that electronic files and / or electronic documents can be stored using networks such as the Internet and / or the Web.
[0097] Throughout this specification, the terms electronic file and / or electronic document are used to refer to a set of stored memory states and / or sets of physical signals associated in such a way as to form a file (e.g., an electronic one) and / or electronic document at least logically. That is, it does not implicitly refer to any particular syntax, format and / or approach used with respect to the associated set of memory states and / or associated set of physical signals. For example, if a particular type of file storage format and / or syntax is intended, it is explicitly referred to. Furthermore, it should be noted that the association of memory states may be logical, for example, and not necessarily tangible or physical. Thus, for example, the signal and / or state components of a file and / or electronic document should be logically associated, but their storage may reside in one or more different locations within tangible physical memory, for example, in one embodiment.
[0098] For example, using a hypertext markup language ("HTML"), digital content can be specified in the form of an electronic file and / or electronic document, such as a web page or website, and / or its format can be specified. In one embodiment, an extended markup language ("XML") can also be used to specify digital content in the form of an electronic file and / or electronic document, such as a web page or website, and / or its format can be specified.
[0099] In the context of this patent application, the term “website” and / or similar terms refer to web pages that are electronically associated and form a particular set. Also, in the context of this patent application, “web page” and / or similar terms refer to electronic files and / or electronic documents accessible over a network, including, in exemplary embodiments, specifying a Uniform Resource Indicator (URI) accessible over the Web. As suggested above, in one or more embodiments, a web page may include digital content coded (e.g., via computer instructions) using one or more languages, such as markup languages including HTML and / or XML, but the claimed subject matter is not limited in this respect. Also, in one or more embodiments, an application developer may write code (e.g., computer instructions) in the form of JavaScript (or other programming languages) executable by a computing device to provide digital content for populating electronic documents and / or electronic files in an appropriate format, for example, for use in a particular application. The use of the term “JavaScript” and / or similar terms intended to refer to one or more specific programming languages is intended to refer to any version of one or more identified, currently known, and / or subsequently developed programming languages. Therefore, JavaScript is merely one example of a programming language. As stated above, the subject matter claimed is not intended to be limited to examples and / or illustrations.
[0100] In the context of this patent application, the terms “document,” “electronic document,” “content,” “digital content,” “item,” and / or similar terms mean signals and / or states in physical formats such as digital signals and / or digital state formats that may be perceived by a user when displayed, played, or haptatively generated, and / or may be executed in other ways by a device such as a digital device including a computing device, but which may not necessarily be readily perceptible to humans in other ways (for example, if in a digital format). Similarly, in the context of this patent application, digital content provided to a user in a form that the user can readily perceive the underlying content itself (for example, content presented in a human-consumable form such as listening to sound, feeling touch, and / or viewing images) is referred to with respect to the user as “consuming” the digital content, “consuming” the digital content, “consumable” the digital content, and / or similar terms. In one or more embodiments, electronic documents and / or electronic files may include, for example, web pages of markup language code (e.g., computer instructions) that are executed or will be executed by computing and / or networking devices. In another embodiment, the electronic document and / or electronic file may include part and / or area of a web page. However, the subject matter of the claims is not intended to be limited in these respects.
[0101] Furthermore, in one or more embodiments, an electronic document and / or electronic file may include several components. As stated above, in the context of this patent application, a component is physical but not necessarily tangible. For example, a component referencing an electronic document and / or electronic file may, in one or more embodiments, include text in the form of, for example, physical signals and / or physical states (e.g., that can be physically displayed). Typically, a memory state includes, for example, tangible components, while a physical signal is not necessarily tangible, although a signal can become tangible (e.g., be made tangible), for example, when it appears on a tangible display. Also, in one or more embodiments, a component referencing an electronic document and / or electronic file may include graphical objects such as images, digital images and / or sub-objects containing their attributes, which also include physical signals and / or physical states (e.g., that can be physically displayed). In one embodiment, digital content may include, for example, text, images, audio, video and / or other types of electronic documents and / or electronic files (e.g., parts thereof).
[0102] Furthermore, in the context of this patent application, the term parameter (e.g., one or more parameters) refers to material that describes a collection of signal samples, such as one or more electronic documents and / or electronic files, and exists in the form of physical signals and / or physical states, such as memory states. For example, one or more parameters that refer to an electronic document and / or electronic file containing an image may include, for example, the time the image was captured, such as the latitude and longitude of an image capture device such as a camera. In another example, one or more parameters may include the model, trim, or year of a car. In yet another example, one or more parameters related to digital content, such as digital content including a technical paper, may include, for example, one or more authors. The claimed subject matter is intended to encompass meaningful descriptive parameters in any format, insofar as one or more parameters include physical signals and / or states, and examples of parameters may include a collective name (e.g., an electronic file and / or electronic document identifier name), a creation technique, a purpose for creation, a date and time of creation, a logical path if stored, a coding format (e.g., a type of computer instruction such as a markup language), and / or standards and / or specifications used to be protocol-compliant (e.g., substantially compliant and / or substantially compatible) for one or more uses.
[0103] Signal packet communication and / or signal frame communication, also called signal packet transmission and / or signal frame transmission (or simply “signal packet” or “signal frame”), may be communicated between nodes of a network, where nodes may include, for example, one or more network devices and / or one or more computing devices. Exemplary examples, but not limited to them, a node may include one or more sites that use local network addresses, such as the local network address space. Similarly, devices such as network devices and / or computing devices may be associated with their nodes. Furthermore, it should be noted that in the context of this patent application, the term “transmission” is intended as another term for a type of signal communication that may occur in any one of a variety of situations. Therefore, it is not intended to imply a specific direction of communication and / or a specific starting point of a communication path for “transmission” communication. For example, in the context of this patent application, the mere use of the term “transmit” is not intended to have any specific meaning with respect to one or more signals being transmitted, such as whether a signal is being transmitted “to” a particular device, whether a signal is being transmitted “from” a particular device, and / or which end of the communication path may initiate the transmission in “push-type” or “pull-type” signal transfer. In the context of this patent application, push and / or pull-type signal transfers are distinguished by which end of the communication path initiates the signal transfer.
[0104] Therefore, signal packets and / or frames may be communicated from a site via an access node connected to the Internet, through a communication channel and / or communication path, including, for example, a part of the Internet and / or the Web, or vice versa. Similarly, signal packets and / or frames may be forwarded, for example, via a network node to a target site connected to a local network. For example, signal packets and / or frames communicated over the Internet and / or the Web may be routed via either a "push" or "pull" path, for example, one or more gateways, servers, etc., capable of routing the signal packets and / or frames, which may substantially depend on the availability of the network path of the network node to the target and / or destination address and the target and / or destination address. The Internet and / or the Web includes a network of interoperable networks, but not all of those interoperable networks are necessarily available and / or accessible to the public.
[0105] In the context of a particular patent application, network protocols, such as those for communication between devices in a network, may be characterized, at least in part, substantially in accordance with a layered description, such as a seven-layer type approach and / or description of the so-called Open System Interconnection (OSI). Network computing and / or communication protocols (also called network protocols) refer to a set of signaling rules for communication transmission, such as those that may occur between devices in a network. In the context of this patent application, the term “between” and / or similar terms are understood to include “among” where appropriate for the particular use, and vice versa. Similarly, in the context of this patent application, the terms “compatible with,” “compliant with,” and / or similar terms are understood to include substantial compatibility and / or substantial compliance, respectively.
[0106] Network protocols, such as those characterized substantially according to the aforementioned OSI model, have several layers. These layers are called the network stack. Various types of communication, such as network communication (e.g., transmission), can occur across various layers. The lowest level layer in the network stack, such as the so-called physical layer, can characterize how symbols (e.g., bits and / or bytes) are communicated as one or more signals (and / or signal samples) over a physical medium (e.g., twisted-pair copper wire, coaxial cable, fiber optic cable, wireless air interface, or a combination thereof). Moving to higher levels in the network protocol stack, additional operations and / or features may be available through involvement in communications that are substantially compatible with and / or substantially compliant with specific network protocols at these higher levels. For example, higher levels of a network protocol may affect, for instance, device authorization, user authorization, etc.
[0107] With respect to aspects relating to networks including communications and / or computing networks, a wireless network may connect devices, including client devices, to the network. A wireless network may use standalone, ad-hoc, mesh, wireless LAN (WLAN) networks, cellular networks, etc. A wireless network may further include systems such as terminals, gateways, and routers connected by wireless links, which can move freely and randomly and / or be arbitrarily organized, so that the network topology can change even more rapidly at times. A wireless network may further employ multiple network access technologies, including versions of currently known and / or later developed technologies such as Long-Term Evolution (LTE), WLAN, Wireless Router (WR) Mesh, and second, third, or fourth generation (2G, 3G, 4G, or 5G) cellular technologies. Network access technologies may enable wide-area coverage for devices such as computing devices and / or network devices with varying degrees of mobility.
[0108] The network uses the Pan-European Digital Mobile Telephone System (GSM): This enables radio frequency and / or other radio type communications via radio network access technologies and / or air interfaces, such as Global System for Mobile communication, Universal Mobile Telecommunications System (UMTS), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), 3GPP Long Term Evolution (LTE), LTE Advanced, Wideband Code Division Multiple Access (WCDMA), Bluetooth, Ultra-Wideband (UWB), and 802.11b / g / n (3GPP, WCDMA, and Bluetooth are registered trademarks).
[0109] In one exemplary embodiment, as shown in Figure 5, the embodiment of the system may include a local network (e.g., device 504 and medium 540) and / or other types of networks such as computing networks and / or communication networks. Therefore, for illustrative purposes, Figure 5 shows an embodiment of the system 500 that may be used to implement either or both types of networks. Network 508 may include one or more network connections, links, processes, services, applications, and / or resources to facilitate and / or support communication, such as the exchange of communication signals between computing devices, such as 502 and other computing devices, such as 506, which may include one or more client computing devices and / or one or more server computing devices. By example, but not limited to, network 508 may include wireless and / or wired communication links, telephone and / or telecommunications systems, Wi-Fi networks, Wi-MAX networks, the Internet, local area networks (LANs), wide area networks (WANs), or any combination thereof.
[0110] The exemplary device in Figure 5 may, in one embodiment, include features of, for example, a client computing device and / or a server computing device. Furthermore, it should be noted that the term computing device generally refers to at least a processor and memory connected by a communication bus, whether used as a client and / or a server or otherwise. "Processor" is understood to mean a specific structure such as the central processing device (CPU) of a computing device, which may include, for example, a control unit and an execution unit. In one embodiment, a processor may comprise a device that interprets and executes instructions for processing input signals and providing output signals. In other examples, "processor" may mean other types of structures such as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or a programmable logic controller (PLC). Thus, at least in the context of this patent application, computing device and / or processor is understood to refer to a structure sufficient to be within the meaning of 35 U.S.C § 112(f), and as a result, it is particularly intended that 35 U.S.C § 112(f) is not implied by the use of the terms "computing device," "processor," and / or similar terms. However, if for some reason not immediately apparent it is determined that the foregoing understanding is not valid, then it is intended that, in accordance with the section of 35 U.S.C § 112(f) where the use of the terms “computing device,” “processor” and / or similar terms necessarily implies, a corresponding structure, material and / or act for performing one or more functions is described in at least Figures 2, 3 and 4, and in the text relating to the foregoing figures of this patent application.
[0111] In Figure 5, computing device 502 ("first device" in the figure) may interface with computing device 504 ("second device" in the figure), and computing device 504 may, for example, also have the characteristics of a client computing device and / or a server computing device in one embodiment. The processor (e.g., processing device) 520 and memory 522, which may include primary memory 524 and secondary memory 526, may communicate, for example, via a communication bus 528. In the context of this patent application, the term "computing device" refers to a system and / or device, such as a computing apparatus, that includes the ability to process (e.g., perform calculations) and / or store digital content such as electronic files, electronic documents, measurements, text, images, video, and audio in the form of signals and / or states. Therefore, in the context of this patent application, computing device includes hardware, software, firmware, or any combination thereof (software itself It may include (other than) the computing device 504 shown in Figure 5, and the claimed subject matter is not limited to this particular example.
[0112] In one embodiment, one or more features of the computing device 504 may be implemented as a main and / or host ECU in a vehicle (e.g., vehicle 210 and / or 310) that can exchange messages with a configuration builder (e.g., configuration builder 212 and / or 312) via a network 508. Here, such an implementation of the main and / or host ECU may perform one or more steps to bring about an update to the vehicle's configuration, at least partially based on the signals and / or state image generated in block 404. In another embodiment, one or more features of the computing device 504 may perform one or more aspects of process 400 and / or one or more subsystem configuration integrators (e.g., subsystems) via the network 508. compositionIt may be implemented as a computing device for a configuration builder (e.g., configuration builder 212 and / or 312) that can exchange messages with an integrator 214 and / or 314 or a vehicle (e.g., vehicle 210 and / or 310).
[0113] In one or more embodiments, devices such as computing devices and / or networking devices may comprise a wide range of digital electronic devices, including, but not limited to, desktop and / or notebook computers, high-definition televisions, digital multipurpose disc (DVD) and / or other optical disc players and / or recorders, game consoles, satellite television receivers, cellular phones, tablet devices, wearable devices, personal digital assistants, mobile voice and / or video playback and / or recording devices, Internet of Things (IoT) type devices, or any combination thereof. Furthermore, unless otherwise specified, processes described with reference to flowcharts and / or otherwise may be performed and / or influenced in whole or in part by computing devices and / or networking devices. Devices such as computing devices and / or networking devices may vary in terms of capabilities and / or characteristics.
[0114] As previously suggested, communication between computing devices and / or network devices and wireless networks may follow known and / or developed network protocols, including, for example, the Pan-European Digital Mobile Telephone System (GSM), GSM Evolutionary High-Speed Data Rate (EDGE), 802.11b / g / n / h, and / or Worldwide Interoperability for Microwave Access (WiMAX).
[0115] Computing devices and / or network devices may include and / or run various currently known and / or developed operating systems, derivatives and / or versions thereof, including computer operating systems such as Windows, iOS, and Linux, and mobile operating systems such as iOS, Android, and Windows Mobile (Windows, Linux, and Android are registered trademarks; the same applies hereinafter).
[0116] In Figure 5, computing device 502 may provide one or more sources of executable computer instructions in the form of physical states and / or signals (e.g., stored in memory states). Computing device 502 may communicate with computing device 504 by a network connection, such as via network 508. As mentioned above, the connection is physical but does not necessarily have to be tangible. Computing device 504 in Figure 5 shows various tangible physical components, but other implementations and / or embodiments may include alternative configurations that may have additional or fewer tangible components that function differently while achieving similar results, so the claimed subject matter is not limited to computing devices having only these tangible components. Rather, the examples are provided merely as illustrations. It is not intended that the scope of the claimed subject matter be limited to the exemplary examples.
[0117] Memory 522 may comprise any non-temporary storage medium. Memory 522 may comprise, for example, primary memory 524 and secondary memory 526, and additional memory circuits, mechanisms, or combinations thereof may be used. Memory 522 may comprise, for example, random access memory, read-only memory, etc., in the form of one or more storage devices and / or systems, such as disk drives including optical disc drives, tape drives, solid-state memory drives, etc.
[0118] Memory 522 may include a non-temporary storage medium used to store a program of executable computer-readable instructions. For example, the processor 520 may fetch such an executable computer-readable instruction from memory and proceed to execute the fetched instruction. Memory 522 may also include a memory controller for accessing a device-readable medium 540 capable of carrying and / or creating accessible digital content, which may include, for example, code and / or instructions executable by the processor 520 and / or some other device, such as a controller capable of executing computer instructions. Under the direction of the processor 520, non-temporary memory, such as a memory cell that stores a physical state (e.g., memory state), including a program of executable computer instructions, may be executed by the processor 520, for example, to generate signals that are communicated over a network, as previously mentioned. The generated signals may also be stored in memory, as previously suggested.
[0119] Memory 522 may store electronic files and / or electronic documents relating to one or more users, and may also include a computer-readable medium capable of carrying and / or creating accessible content, such as code and / or instructions executable by any other device, such as a processor 520 and / or a controller, which can execute computer instructions. As stated above, the terms electronic file and / or electronic document are used throughout this specification to refer to a set of stored memory states and / or a set of physical signals associated in a manner that constitutes an electronic file and / or electronic document. That is, it does not implicitly refer to any particular syntax, format and / or approach used with respect to the associated set of memory states and / or associated set of physical signals. Furthermore, it should be noted that the association of memory states may be, for example, logical, and not necessarily tangible physical. Thus, the signal and / or state components of an electronic file and / or electronic document should be logically associated, but its storage may reside in one or more different locations within tangible physical memory, for example, in one embodiment.
[0120] Unless otherwise specified, as is evident from the foregoing description, throughout this specification, any description using terms such as “process,” “calculate,” “calculate,” “determine,” “establish,” “obtain,” “identify,” “select,” and “generate” may refer to the actions and / or processes of specific devices, such as dedicated computers and / or similar dedicated computing and / or network devices. Accordingly, in the context of this specification, dedicated computers and / or similar dedicated computing and / or network devices can process, manipulate, and / or convert signals and / or states, typically in the form of physical electronic and / or magnetic quantities, within the memory, registers, and / or other storage devices, processing devices, and / or display devices of dedicated computers and / or similar dedicated computing and / or network devices. Accordingly, in the context of this particular patent application, as referred to, the term “specific device” includes general-purpose computing and / or network devices, such as general-purpose computers, when programmed to perform specific functions (e.g., according to program software instructions).
[0121] In some situations, the operation of a memory device, such as a change of state from binary 1 to binary 0 or vice versa, may involve transformations such as physical transformations. In certain types of memory devices, such physical transformations may include the physical transformation of the product to a different state or material. For example, such a physical transformation may be brought about by a change of state that includes physical changes such as a change in the amount of accumulated charge or a change in magnetic orientation. Similarly, physical changes may include transformations of molecular structure, such as from a crystalline form to an amorphous form or vice versa. In yet other memory devices, a change of physical state may include quantum mechanical phenomena such as superposition and entanglement, which may include, for example, qubits. The foregoing is not intended to be an exhaustive list of all examples in which a change of state from binary 1 to binary 0 or vice versa in a memory device may include transformations such as physical but non-transient transformations. Rather, the foregoing are intended as illustrative examples.
[0122] Referring again to Figure 5, the processor 520 may comprise one or more circuits, such as digital circuits, to perform at least part of a calculation procedure and / or process. By example, but not by limitation, the processor 520 may include one or more processors, such as controllers, microprocessors, microcontrollers, application-specific integrated circuits, digital signal processors, programmable logic devices, field-programmable gate arrays, or any combination thereof. In various implementations and / or embodiments, the processor 520 typically processes signals substantially in accordance with fetched executable computer instructions, for example, manipulating signals and / or states, constructing signals and / or states, and the signals and / or states generated in such a manner are communicated and / or stored in memory.
[0123] Figure 5 also shows device 504 as including a component 532 that can operate with input / output devices so that signals and / or states can be properly communicated between devices, such as device 504 and an input device and / or device 504 and an output device. The user can generate input signals using an input device such as a computer mouse. The user can utilize output devices such as a display and a printer, and / or any other devices capable of providing signals to the user and / or generating stimuli, such as visual stimuli, auditory stimuli, and / or other similar stimuli.
[0124] The preceding description described various aspects of the claimed subject matter. For explanatory purposes, details such as quantities, systems, and / or configurations were described as examples. In other examples, well-known features were omitted and / or simplified so as not to obscure the claimed subject matter. While certain features have been illustrated and / or described herein, many modifications, substitutions, changes, and / or equivalents will be conceivable to those skilled in the art. Therefore, it should be understood that the attached claims are intended to encompass all modifications and / or changes that fall within the scope of the claimed subject matter.
Claims
1. A vehicle configuration update system for managing vehicle configuration updates, wherein the vehicle configuration update system is: A communication device configured to communicate over a communication network, The system comprises one or more processors that communicate with the aforementioned communication device, The one or more processors described above are: The vehicle receives a vehicle configuration update request message, which is a message requesting a new vehicle configuration to be applied to the vehicle, and the new vehicle configuration is intended to update or replace the existing vehicle configuration of the vehicle. The communication device communicates one or more subsystem update request messages to one or more computing devices operated by or associated with one or more subsystem configuration integrators in response to the vehicle configuration update request messages, each of the one or more subsystem configuration integrators is an entity that controls or manages the operation of each of the multiple vehicle subsystems of the vehicle, and the one or more subsystem update request messages are for requesting content to update the operation of one or more of the multiple vehicle subsystems. The communication device receives one or more subsystem update response messages, which are one or more messages for updating the operation of the one or more vehicle subsystems, from one or more computing devices operated by or associated with the one or more subsystem configuration integrators, each of which comprises one or more subsystem update response messages, each of which comprises one or more subsystem update modules, and each of the subsystem update modules comprises separate content, including code or settings for updating the operation of the vehicle subsystem associated with the subsystem update module. A configuration file is generated for applying the new vehicle configuration to the vehicle, the configuration file is generated based on one or more subsystem update modules, and the configuration file is for controlling the operation of the multiple vehicle subsystems. Based on the aforementioned configuration file, one or more configuration update messages are generated that include or reference the aforementioned configuration file. The system is configured to initiate the transmission of one or more configuration update messages to the vehicle via the communication device and the communication network, in order to enable the vehicle to access the configuration file and operate with the new vehicle configuration. Vehicle configuration update system.
2. The one or more processors are configured to receive a plurality of subsystem update modules and to determine whether there are conflicts among the plurality of subsystem update modules, and the one or more processors are configured to generate the configuration file in a manner based on whether there are conflicts among the plurality of subsystem update modules. The vehicle configuration update system according to claim 1.
3. The aforementioned vehicle configuration update request message indicates an event or condition that triggers the request for the new vehicle configuration. The one or more processors are configured to communicate one or more update query messages to the one or more computing devices operated by or associated with the one or more subsystem configuration integrators in response to receiving the vehicle configuration update request message. The one or more update query messages are associated with one or more of the multiple vehicle subsystems, and the event is intended to trigger one or more of the vehicle subsystems to inquire whether to change their operation. The vehicle configuration update system according to claim 1.
4. The one or more processors are configured to receive one or more query response messages from the one or more computing devices operated by or associated with the one or more subsystem configuration integrators. The one or more query response messages are intended to indicate whether the event or condition triggers one or more vehicle subsystems and modifies their operation. The configuration file or the update request message for one or more subsystems is generated based on the one or more query response messages. The vehicle configuration update system according to claim 3.
5. The vehicle configuration update request message from the vehicle is received in response to an ignition event in the vehicle. The vehicle configuration update system according to claim 1.
6. The aforementioned configuration file is generated based on the identity of the vehicle's driver. The vehicle configuration update system according to claim 5.
7. The aforementioned configuration file is generated at least partially based on the vehicle's model, trim, or year, or a combination thereof. The one or more processors are configured to receive one or more vehicle description messages from the vehicle via the communication device, which include parameters indicating the attributes of the vehicle, and to determine the model, trim, or year of the vehicle from the parameters of the one or more vehicle description messages. The vehicle configuration update system according to claim 5.
8. The one or more processors are configured to start transmitting the one or more configuration update messages simultaneously with receiving the vehicle configuration update request message. The vehicle configuration update system according to claim 1.
9. A method performed by a computing system, the method is Receiving a vehicle configuration update request message from a vehicle via a communication device, which is a message requesting a new vehicle configuration to be applied to the vehicle, wherein the new vehicle configuration is intended to update or replace the existing vehicle configuration of the vehicle. One or more processors communicate one or more subsystem update request messages to one or more computing devices operated by or associated with one or more subsystem configuration integrators, via the communication device of the vehicle configuration update system, in response to the vehicle configuration update request messages, wherein each of the one or more subsystem configuration integrators is an entity that controls or manages the operation of each of the multiple vehicle subsystems of the vehicle, and the one or more subsystem update request messages are for requesting content to update the operation of one or more of the multiple vehicle subsystems. The one or more processors receive one or more subsystem update response messages from the one or more subsystem configuration integrators via the communication device, each of which is one or more messages for updating the operation of the one or more vehicle subsystems, and each of the one or more subsystem update response messages includes one or more subsystem update modules, each of which is individual content including code or settings for updating the operation of the vehicle subsystem associated with the subsystem update module. The one or more processors generate a configuration file for applying an updated or replacement configuration to the vehicle, wherein the configuration file is generated based on the one or more subsystem update modules, and the configuration file is for controlling the operation of the multiple vehicle subsystems. The one or more processors generate one or more configuration update messages that include or reference the configuration file, based on the configuration file. The one or more processors initiate sending the one or more configuration update messages to the vehicle via the communication network, via the communication device, in order to enable the vehicle to access the configuration file and operate with the new vehicle configuration. Methods that include...
10. A non-temporary storage medium storing computer-readable instructions, wherein the computer-readable instructions are obtained by one or more processors of a computing system. The system receives a vehicle configuration update request message from the vehicle via a communication network and communication device, which is a message requesting a new vehicle configuration to be applied to the vehicle, and the new vehicle configuration is intended to update or replace the existing vehicle configuration of the vehicle. In response to the vehicle configuration update request message, via the communication network and communication devices, one or more update request messages are communicated to one or more computing devices operated by or associated with one or more subsystem configuration integrators, each of the one or more subsystem configuration integrators being an entity that controls or manages each of the multiple vehicle subsystems of the vehicle, and the one or more update request messages are for requesting content to update the operation of one or more of the multiple vehicle subsystems. The communication device receives one or more subsystem update response messages, which are one or more messages for updating the operation of the one or more vehicle subsystems, from one or more computing devices operated by or associated with the one or more subsystem configuration integrators, each of which comprises one or more subsystem update response messages, each of which comprises one or more subsystem update modules, and each of the subsystem update modules comprises separate content, including code or settings for updating the operation of the vehicle subsystem associated with the subsystem update module. A configuration file is generated to apply the new vehicle configuration to the vehicle, the configuration file is generated based on one or more subsystem update modules, and the configuration file is for controlling the operation of the multiple vehicle subsystems. Based on the aforementioned configuration file, one or more configuration update messages are generated that include or reference the aforementioned configuration file. To enable the vehicle to access the configuration file and operate with the new vehicle configuration, the communication device initiates sending one or more configuration update messages to the vehicle via the communication network. A non-temporary storage medium capable of performing a certain action.
Citation Information
Patent Citations
Center device
JP2020027671A
On-vehicle update device, update processing method, and update processing program
JP2021138368A
Control apparatus and terminal apparatus
JP2022149662A