Configurable Deployment of Vehicle Data Services
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TOYOTA MOTOR NORTH AMERICA INC
- Filing Date
- 2023-06-15
- Publication Date
- 2026-06-22
AI Technical Summary
Existing vehicle data services are not configurable at the customer level, limiting user control over data visibility and selection, and centralized databases lack the security and privacy features necessary for managing vehicle data and user profiles effectively.
A system and method for linking a mobile device with a vehicle's controller area network (CAN) to configure and display data services using a blockchain-based distributed ledger, enabling secure, customizable data sharing and management of vehicle data and user profiles.
Enables secure, customizable data sharing and management of vehicle data, ensuring privacy and user control, while allowing seamless integration of vehicle-to-vehicle communication and service authorization.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Background Art
[0001] Generally, vehicles or means of transportation, such as passenger cars, motorcycles, trucks, airplanes, trains, etc., provide transportation needs for passengers and / or goods in various ways. The functions related to the means of transportation can be identified and utilized by various computing devices such as smartphones or computers located on and / or away from the means of transportation.
Summary of the Invention
[0002] An exemplary embodiment provides a method including one or more of linking a mobile device and a vehicle, configuring a data service request in the mobile device, receiving the data service request from the mobile device in the vehicle's controller area network, and displaying a data set in the vehicle according to the configuration.
[0003] Another exemplary embodiment provides a system including a memory communicatively connected to a processor, the processor performing one or more of linking a mobile device and a vehicle, configuring a data service request in the mobile device, receiving the data service request from the mobile device in the vehicle's controller area network, and displaying a data set in the vehicle in response to the mobile device configuring the data service request.
[0004] A further exemplary embodiment provides a computer-readable storage medium with instructions that, when read by a processor, cause the processor to perform one or more of linking a mobile device and a vehicle, configuring a data service request in the mobile device, receiving the data service request from the mobile device in the vehicle's controller area network, and displaying a data set in the vehicle according to the configuration.
Brief Description of the Drawings
[0005]
Figure 1
Figure 2A
Figure 2B
Figure 2C
Figure 2D
Figure 2E
Figure 2F
Figure 2G
Figure 2H
Figure 2I
Figure 2J
Figure 2K
Figure 2L
Figure 2M
Figure 2N
Figure 3A
Figure 3B
Figure 3C
Figure 4
Figure 5A
Figure 5B
Figure 6A
Figure 6B
Figure 6C
Figure 6D
Figure 7
[0006] It will be readily understood that the components described herein and shown in the figures can be arranged and designed in a wide variety of different configurations. Accordingly, the following detailed description of at least one embodiment of a method, apparatus, computer-readable storage medium, and system, as represented in the accompanying figures, is not intended to limit the scope of the claimed application and represents only the selected embodiments. The multiple embodiments described herein are not intended to limit the scope of the solution. The computer-readable storage medium can be a non-transitory computer-readable medium or a non-transitory computer-readable storage medium.
[0007] Communication between a transport means and a particular entity such as a remote server, other transport means, and local computing devices (e.g., smartphones, personal computers, computers incorporated into transport means, etc.) can be transmitted, received, and processed by one or more "components" that can be hardware, firmware, software, or a combination thereof. The component can be part of any of the entity or computing device or a particular other computing device. In one example, the determination of consensus related to a blockchain transaction can be made by one or more computing devices or components (which can be any element described and / or depicted herein) associated with the transport means and by one or more of the components located external to or remote from the transport means.
[0008] The functions, structures, or features described in this specification can be combined in any suitable manner in one or more embodiments. For example, the use of phrases such as "exemplary embodiments", "some embodiments" throughout this specification, or other similar terms indicates that the specific functions, structures, or features described in relation to the embodiments can be included in at least one example. Thus, even if phrases such as "exemplary embodiments", "in some embodiments", "in other embodiments" or other similar terms appear throughout this specification, they do not necessarily all refer to the same group of embodiments, and the described functions, structures, or features can be combined in any suitable manner in one or more embodiments. In the figures, any connection between elements can enable one-way and / or two-way communication, even if the depicted connection is a one-way or two-way arrow. In this solution, the vehicle or means of transportation can include one or more of a passenger car, a truck, a walking area battery electric vehicle (BEV), an e-Palette, a fuel cell bus, a motorcycle, a scooter, a bicycle, a boat, a recreational vehicle, an airplane, and any object that can be used to transport people and / or goods from one place to another.
[0009] In addition, although the term "message" may be used in the description of embodiments, other types of network data such as packets, frames, and datagrams can also be used. Furthermore, specific types of messages and signaling can be depicted in the preferred embodiments, but they are not limited to specific types of messages and signaling.
[0010] An exemplary embodiment provides a method, system, component, non-transitory computer-readable medium, device, and / or network that provides at least one of a means of transportation (also referred to herein as a vehicle or passenger vehicle), a data collection system, a data monitoring system, a verification system, an approval system, and a vehicle data distribution system. Vehicle condition status data received in the form of communication messages such as wireless data network communications and / or wired communication messages can be processed to identify the condition status of the vehicle / means of transportation and provide feedback regarding the status and / or changes of the means of transportation. In one example, a user profile can be applied to a particular means of transportation / vehicle to approve current vehicle events, service stops at a service station, subsequent vehicle rental services, and enable vehicle-to-vehicle communication.
[0011] In a communication infrastructure, a distributed database is a distributed storage system that includes a plurality of nodes that communicate with each other. A blockchain is an example of a distributed database that includes an append-only and immutable data structure (i.e., a distributed ledger) that enables maintaining records among untrusted parties. Untrusted parties are referred to herein as peers, nodes, or peer nodes. Each peer maintains a copy of the database records, and no peer can modify the database records without reaching consensus among the distributed peers. For example, peers can execute a consensus protocol to verify blockchain storage entries, group storage entries into blocks, and construct a hash chain through the blocks. This process forms a ledger by ordering storage entries as necessary for consistency. In a public or permissionless blockchain, anyone can participate without having specific identifying information. Public blockchains are involved in cryptocurrencies and can use consensus based on various protocols such as proof-of-work (PoW). Conversely, a permissioned blockchain database can guarantee transactions among a group of entities that share a common goal but do not fully trust or cannot trust each other, such as businesses that exchange funds, goods, information, and the like. This solution can function in permissioned and / or permissionless blockchain settings.
[0012] A smart contract is a trusted decentralized application that leverages the tamper-resistant properties of a shared or distributed ledger (which can be in the form of a blockchain) and the underlying agreement between member nodes, referred to as an endorsement or endorsement policy. Generally, blockchain entries are "approved" before being committed to the blockchain, while unapproved entries are ignored. With a typical endorsement policy, the smart contract executable code can specify an endorser for entries in the form of a set of peer nodes required for endorsement. When a client sends an entry to a peer specified in the endorsement policy, the entry is executed to verify the entry. After verification, the entry enters an ordering phase, in which the consensus protocol generates an ordered sequence of approved entries grouped into blocks.
[0013] A node is a communication entity in a blockchain system. A "node" can perform logical functions in the sense that multiple different types of nodes can operate on the same physical server. Nodes are grouped within a trust domain and associated with a logical entity that controls the nodes in various ways. Nodes can include different types such as a client or presenting client node that presents an entry call to an endorser (e.g., a peer) and broadcasts the entry proposal to an ordering service (e.g., an ordering node). Another type of node is a peer node, which can receive a client-presented entry, commit the entry, and maintain the state and a copy of the blockchain entry ledger. A peer can also act as an endorser. An ordering service node or orderer is a node that performs a communication service for all nodes and implements delivery guarantees such as broadcasting to each of the peer nodes in the system when committing an entry to modify the blockchain world state. The world state can typically consist of initial blockchain entries that include control and configuration information.
[0014] The ledger is an ordered and tamper-resistant record of all state transitions of the blockchain. State transitions can occur as a result of calls (i.e., entries) to smart contract executable code presented by participating parties (such as client nodes, ordering nodes, endorser nodes, peer nodes, etc.). Entries can result in a set of key-value pairs of assets committed to the ledger as one or more operands such as creation, update, deletion, and the like. The ledger includes a blockchain that stores immutable and ordered records in blocks (also referred to as a chain). The ledger also includes a state database that maintains the current state of the blockchain. Usually, there is one ledger per channel. Each peer node maintains a copy of the ledger for each channel of which it is a member.
[0015] The chain is an entry log constructed as hash-linked blocks, where each block contains a sequence of N entries, where N is greater than or equal to 1. The block header includes the hash of the block's entries and the hash of the header of the previous block. In this way, all entries in the ledger can be ordered and cryptographically bound together. Therefore, it is impossible to tamper with the ledger data without breaking the hash link. The hash of the most recently added blockchain block represents all entries on the chain that occurred before it, thereby ensuring that all peer nodes are in a consistent and trusted state. The chain is stored in a peer node file system (i.e., local, attached storage, cloud, etc.) and can efficiently support the append-only nature of the blockchain workload.
[0016] The current state of the immutable ledger represents the latest value for all keys included in the chain's entry log. Since the current state represents the latest known value of keys in the channel, it may be referred to as the world state. Calls to smart contract executable code execute entries against the current state data of the ledger. To efficiently handle the interactions of the smart contract executable code, the latest value of a key may be stored in the state database. The state database may simply be an indexed view of the chain's entry log and can thus be regenerated from the chain at any time. The state database can be automatically restored (or generated if necessary) when the peer node starts up and before entries are accepted.
[0017] A blockchain differs from a traditional database in that it is a distributed, immutable, and secure storage rather than a central storage, where nodes must share changes to the records in the storage. Some of the properties inherent in a blockchain and that assist in its implementation include, but are not limited to, an immutable ledger, smart contracts, security, privacy, decentralization, consensus, endorsement, accessibility, and the like.
[0018] Exemplary embodiments provide services for a particular vehicle and / or user profiles applicable to the vehicle. For example, the user can be the owner of the vehicle or an operator of a vehicle owned by another party. The vehicle may require services at specific intervals, and the service request may require approval before permission to receive the service. Also, the service center can provide services to vehicles within a nearby area based on the vehicle's current route plan and the relative level of service requirements (e.g., emergency, critical, moderate, minor, etc.). The vehicle's requests can be monitored via one or more vehicle and / or road sensors or cameras that report the sensed data to a central controller computer device inside and / or away from the vehicle. This data is transferred to a management server for consideration and operation. The sensors can be located on one or more of the interior of the means of transportation, the exterior of the means of transportation, on a fixed object away from the means of transportation, and on another means of transportation close to the means of transportation. The sensors can be associated with the speed of the means of transportation, the brakes of the means of transportation, the acceleration of the means of transportation, the fuel level, the service request, the gear shift of the means of transportation, the steering of the means of transportation, and the like. Sensors as described herein can also be devices such as wireless devices inside and / or close to the means of transportation. Also, the sensor information can be used to identify whether the vehicle is operating safely and whether the occupants have been involved in any unexpected vehicle conditions, such as during vehicle access and / or utilization periods. Vehicle information collected before, during, and / or after vehicle operation can be identified and stored in a transaction on a shared / distributed ledger, and the transaction can be generated and committed to an immutable ledger as determined by a consortium that grants permissions and thus in a "distributed" manner by a blockchain membership group or the like.
[0019] Each interested party (i.e., the owner, user, company, agency, etc.) may want to limit the exposure of private information, and thus, the blockchain and its immutability can be used to manage permissions for each specific user vehicle profile. Smart contracts can be used to provide compensation, quantify the score / grading / consideration of the user profile, apply permissions for vehicle events, determine when services are needed, identify collision events and / or degradation events, identify events of safety concern, identify the parties to the event, and distribute to registered entities attempting to access the vehicle event data. Also, results can be identified and the necessary information can be shared among registered companies and / or individuals based on the consensus method associated with the blockchain. This could not be implemented with a conventional centralized database.
[0020] To create maps of terrain and roads that the means of transportation can use for navigation and other purposes, the various driving systems of this solution can utilize software, sensor arrays, and machine learning capabilities, as well as light detection and ranging (LiDAR) projectors, radars, ultrasonic sensors, and the like. In some embodiments, instead of LiDAR, GPS, maps, cameras, sensors, and the like can also be used in autonomous vehicles.
[0021] In certain embodiments, the solution includes authorizing a vehicle for a service via an automated and rapid authentication scheme. For example, driving to a charging station or fuel pump can be done by the vehicle's operator or an autonomous transportation means, and authorization to receive charge or fuel can be done without any delay if the authorization is received by the service and / or the charging station. The vehicle can provide a communication signal that provides the vehicle's identification information, which is linked to a currently active profile that is authorized to receive services that can be later modified by compensation. Additional measures can be used to provide further authentication. For example, another identifier can be wirelessly transmitted from the user's device to the service center to replace or supplement a first authentication operation between the transportation means and the service center using an additional authorization operation.
[0022] The shared and received data can be stored in a database, which generally maintains the data in a particular location within a single database (e.g., a database server). This location is often a central computer, such as a desktop central processing unit (CPU), a server CPU, or a mainframe computer. Information stored in a centralized database is usually accessible from multiple different points. A centralized database is easy to manage, maintain, and control, and is particularly for security purposes since the centralized database is in a single location. Within a centralized database, the fact that all data is in a single storage location also means that a given dataset has only one primary record, so data redundancy is minimized. A blockchain can be used to store data and transactions related to transportation means.
[0023] Any of the operations described herein may be performed by one or more processors (e.g., microprocessors, sensors, electronic control units (ECUs), head units, and the like) with or without memory that may be located on-board the transportation means and / or off-board the transportation means (e.g., servers, computers, mobile / wireless devices, etc.). The one or more processors may communicate with other memories and / or other processors that are on-board or off-board in other transportation means to utilize data being transmitted by and / or to the transportation means. The one or more processors and other processors may transmit data, receive data, and utilize this data to perform one or more of the operations described or depicted herein.
[0024] FIG. 1 shows an exemplary diagram of a configurable deployment 100 of a vehicle data service according to an exemplary embodiment. System 100 may include a vehicle that can transport passengers and / or cargo. In one embodiment, the vehicle may be powered at least in part by electrical energy (i.e., an electric vehicle). The vehicle includes one or more processors and associated memory devices, including but not limited to a main processor or vehicle processor 120, a navigation processor, a communication processor, an ECU, a sensor processor, and the like.
[0025] An individual associated with the vehicle (e.g., the vehicle owner or a family member of the vehicle owner) may have a communication device or other device. The communication device may include a smartphone, a tablet, a smartwatch, a wearable computer, and the like. The device may include a mobile device processor 110 and a memory device accessible to the mobile device processor 110 that stores applications and data. The mobile device may communicate wirelessly with the vehicle processor 120 in a wired connection, e.g., a universal serial bus (USB) cable, or a wireless connection, e.g., Wi-Fi or Bluetooth®.
[0026] System 100 may also include a server 130. The server 130 may include one or more computers communicatively connected to the vehicle processor 120 and the mobile device processor 110. The server 130 may include one or more processors and a memory device for storing applications and data. In one embodiment, the server 130 may be associated with a vehicle manufacturer including repair facilities, sales facilities, entertainment facilities, and the like. In one embodiment, the server 130 may be located on a network or in the cloud and / or connected to a vehicle charging station.
[0027] In one embodiment, the server 130 may link a mobile device to a vehicle. The vehicle may be associated with the server 130, for example, by purchasing the vehicle. In one embodiment, the server 130 may be associated with a vehicle manufacturer. As part of the purchase transaction, the server 130 may transmit a notification to the vehicle processor 120. The notification may include a link to a website where the vehicle owner may enter information to register the vehicle with the server 130. The vehicle information may include a VIN number, manufacturer name or ID, manufacturing time / date, place of manufacture, vehicle options, vehicle owner name, address, phone number, email address, and the like. In one embodiment, the server 130 may authenticate the ownership information with the vehicle information. For example, the authentication may require a digital key stored in a memory device of the accessible server 130 or obtained from the vehicle processor 120 as part of the vehicle information. The authentication process may link the ownership to a specific vehicle.
[0028] Server 130 may receive vehicle information and transmit a notification to the specified email address or phone number in the information. A user of the mobile device may receive a notification including an SMS text message or an email having a link. The notification may include a link to a website where the vehicle owner may enter information for associating the mobile device and the vehicle with server 130, such as confirmation of common ownership regarding the mobile device and the vehicle. Server 130 may send a vehicle link notification 114 to vehicle processor 120 and a mobile device link notification 116 to mobile device processor 110.
[0029] In one embodiment, mobile device processor 110 may compose a message such as a data service request 118 and send a data service request 122 to vehicle processor 120. In one embodiment, data service request 118 may be a CAN data service request. Currently, CAN data services may be developed in the cloud and may not be configurable at the customer level in the vehicle's head unit (HU) or mobile device application. The customer may not be able to select what the customer sees or does not see, or how the customer sees it. The CAN data service or data service request 118 may include driving characteristics, driving history, telematics, mapping data, group-related video data, vehicle seat settings, and the like. For example, data service request 122 may include a request regarding telematics or sensor data for a period, a range of values, or a specified threshold. As another example, data service request 122 may request driving characteristics for a particular individual regarding a particular purpose (e.g., brakes), a period, an area or within a range of distances from a certain location, and / or multiple vehicles.
[0030] In one embodiment, the vehicle processor 120 may receive a data service request 122 through the vehicle's CAN bus (124). For example, the HU processor or the main vehicle processor may receive the data service request 122 and transmit the data service request 122 to the vehicle processor 120 on the CAN bus. In one embodiment, the vehicle processor 120 may interpret the data service request (126). For example, the data service request 122 may include information about the type of request (e.g., requests related to driving characteristics, driving history, telematics, mapping data, group-related video data, seat settings, and the like), a period, a range of values, or a specification of a threshold, and where the response to the data service request will be provided (e.g., visually, as text-to-speech in the vehicle, or both, and displayed on the HU or one or more mobile devices, etc.).
[0031] In one embodiment, the vehicle processor 120 may construct a data set related to the data service request (128). The data set may include various data items from the interpreted data service request 126. The vehicle may obtain data related to the data set from one or more accessible memory devices of the vehicle (e.g., a memory device accessible to the vehicle processor 120), from the server 130, and / or from the mobile device processor 110 or other mobile devices. For example, the vehicle processor 120 may obtain a data set template from the server 130 and insert data items from the vehicle's accessible memory device into the template. When partially or fully inserting the data items into the data template, the vehicle processor 120 may display the data set on the HU or another display associated with the vehicle (132). Alternatively, the vehicle processor 120 may present the data set audibly through the vehicle's speakers. In another embodiment, the vehicle processor 120 may transmit the data set to the mobile device processor 110, and the mobile device processor 110 may present the data set visually and / or audibly on the mobile device.
[0032] In one embodiment, the vehicle processor 120 may determine that a mobile device and one or more other mobile devices are within the vehicle, modify the data service request 122 based on the combination of mobile devices, and display the modified data based on the combination.
[0033] In one embodiment, there may be several passengers or vehicle occupants within the vehicle. Each occupant may have an associated mobile device, and the occupant may use the mobile device to communicate and transmit data to / from other devices and computers. The vehicle processor 120 may determine that multiple mobile devices are within the vehicle at the current time. For example, the first mobile device may be connected to a USB port of the vehicle, or the second mobile device may be connected to the vehicle processor 120 through a Bluetooth® wireless connection.
[0034] In one embodiment, the data service request 122 may include various preferences associated with a first vehicle occupant. For example, the preferences may include a music playlist, a podcast, or other content preferred by the first vehicle occupant. In response to receiving the data service request 122 from the mobile device processor 110 corresponding to the first vehicle occupant and detecting the mobile device of the second vehicle occupant, the vehicle processor 120 may transmit a notification to the mobile device of the second vehicle occupant requesting the content preferences of the second vehicle occupant. The processor of the mobile device of the second vehicle occupant may receive the notification and, in response, provide a playlist including the content preferences of the second vehicle occupant to the vehicle processor 120. The vehicle processor 120 may modify the data service request based on the combination of mobile devices by identifying common items in the two playlists and presenting the common items visually and / or audibly to the vehicle occupants.
[0035] In one embodiment, the vehicle processor 120 may determine that the mobile device is not in the vehicle, determine that the mobile device is close to one or more other vehicles related to the vehicle, and transmit a data service request from the mobile device to one or more other vehicles.
[0036] In one embodiment, the vehicle processor 120 may determine that the mobile device is not in the vehicle by a wired or wireless method. For example, the vehicle processor 120 may detect a mobile device connected at the USB port of the vehicle. If there is no mobile device connected by the USB port, the vehicle processor 120 may determine that there is no wired mobile device in the vehicle. For example, the vehicle processor 120 may detect a mobile device connected in the Bluetooth® connection of the vehicle. If there is no mobile device connected by the Bluetooth® connection, the vehicle processor 120 may determine that there is no wireless mobile device in the vehicle.
[0037] In one embodiment, after determining that the mobile device is not inside the vehicle, the vehicle processor 120 may determine that the mobile device is near one or more other vehicles associated with the vehicle. Association may mean ownership by an entity, e.g., a family, a business entity, or a group of individuals associated with one or more categories. In one embodiment, the associated vehicles may communicate one or more vehicle identifiers among the associated vehicles. In one embodiment, the associated vehicles may be paired in a wireless interface such as Bluetooth (registered trademark). For example, a user associated with the mobile device may access an application in a memory device associated with the mobile device processor 110 to input an identifier for each of the associated vehicles. The identifier may include parameters such as a VIN number, a license plate number, a MAC address, an IP address, an email address, a phone number, and / or an alphanumeric value. In one embodiment, the vehicle processor 120 may transmit an identifier corresponding to the associated vehicle and may determine which associated vehicle is near according to which associated vehicle responds. Each of the responding vehicles may transmit back a unique identifier to the mobile device processor 110.
[0038] In one embodiment, the vehicle processor 120 receives a data service request 122 from the mobile device processor 110 and transmits the data service request 122 to one or more of the associated vehicles. In one embodiment, each of the one or more associated vehicles provides back a data set to the vehicle processor 120. The provided data set may include the requested information in the data service request 122 that is unique to the receiving vehicle. In one embodiment, the vehicle processor 120 receives the data set from the nearby associated vehicles that respond, combines the data in the received data set, and may visually and / or audibly present the combined data set in the vehicle or on the mobile device.
[0039] In one embodiment, the vehicle processor 120 determines that the mobile device is in another vehicle, receives a data service request from the mobile device in the CAN of the other vehicle, configures the data service request in the other vehicle in the mobile device, and may display data in the other vehicle according to the configuration. In one embodiment, the mobile device may be connected to the processor of the other vehicle by a wired connection or a wireless connection. The mobile device processor 110 and the processor of the other vehicle may exchange various information, such as the GPS coordinates of the mobile device and the other vehicle and / or a user profile regarding the user of the mobile device. The mobile device processor 110 may execute an application that provides the GPS coordinates and the user profile to the vehicle processor 120 of the vehicle. For example, the vehicle processor 120 may track the location and identification information of the user associated with the mobile device. The vehicle processor 120 may compare the received GPS coordinates and, if the GPS coordinates match, determine that the mobile device is in the other vehicle.
[0040] In another embodiment, the user of the mobile device may configure a data service request 118 in the mobile device, and the mobile device processor 110 may send the data service request 122 to the processor of the other vehicle. In one embodiment, the processor of the other vehicle may receive the data service request through the CAN bus of the other vehicle. For example, the HU processor or the main vehicle processor may receive the data service request and transmit the data service request to the processor of the other vehicle in the CAN bus. In one embodiment, the processor of the other vehicle may interpret the data service request. For example, the data service request may include a display of the type of request (e.g., a request to provide a user profile regarding the user associated with the mobile device, a request regarding a service associated with the other vehicle, and the like).
[0041] In one embodiment, the processor of the other vehicle may construct a data set regarding a data service request. The data set may include various data items from the interpreted data service request. The vehicle may obtain data regarding the data set from one or more accessible memory devices of the other vehicle (e.g., a memory device accessible to the processor of the other vehicle), from the server 130, and / or from the mobile device processor 110 or other mobile devices. For example, the processor of the other vehicle may obtain a data set template from the server 130 and place data items from the accessible memory device of the other vehicle into the template. When partially or fully placing data items into the data template, the processor of the other vehicle may display the data set on a HU associated with the other vehicle or another display. Alternatively, the processor of the other vehicle may present the data set audibly through a speaker of the other vehicle. In another embodiment, the processor of the other vehicle may send the data set to the mobile device processor 110, and the mobile device processor 110 may visually and / or audibly present the data set on the mobile device.
[0042] In another embodiment, the vehicle processor 120 may determine that the mobile device is within a rental vehicle, obtain a user profile corresponding to the user of the mobile device, and display rental vehicle parameters within the rental vehicle corresponding to the user profile. In one embodiment, the other vehicle may be a rental vehicle, a shared ride, or a passenger vehicle of a friend or family member, etc. In one embodiment, the mobile device may be connected to the vehicle processor of the rental vehicle through a wired connection, e.g., a USB connection, or through a wireless connection, e.g., a Bluetooth® connection.
[0043] The mobile device processor 110 and the rental vehicle processor can exchange various information including the GPS coordinates of the mobile device and the rental vehicle and / or a user profile regarding the user of the mobile device. The mobile device processor 110 may execute an application that provides the GPS coordinates and the user profile to the vehicle processor 120 of the vehicle. For example, the vehicle processor 120 may track the location and identification information of the user associated with the mobile device. The vehicle processor 120 may compare the received GPS coordinates and, if the GPS coordinates match, determine that the mobile device is within the other vehicle. The rental vehicle processor may display a part of the user profile received from the mobile device. For example, a part of the user profile may include the destination address, the current time, the route to the destination, and the like. The rental vehicle processor may configure a data set corresponding to a part of the user profile and display rental vehicle parameters within the rental vehicle. The rental vehicle parameters may include a description of the rental vehicle, the rental time, the destination, the route to the destination, and the like. In one embodiment, the rental vehicle processor may display the rental vehicle parameters on a display associated with the HU of the rental vehicle. In another embodiment, the rental vehicle processor may transmit the rental vehicle parameters to the mobile device processor 110, and the mobile device processor 110 may display the rental vehicle parameters on the display of the mobile device.
[0044] In one embodiment, the data service request 122 may include a purchase service. The vehicle processor 120 may determine that one or more other vehicles associated with the vehicle are eligible to receive the purchase service, notify the one or more other vehicles of the data service request 122 including the purchase service, and display data within the other vehicles according to the purchase service.
[0045] The purchased service can be a music or movie streaming service, or a subscription for traffic data upgrade related to the vehicle's navigation function. The subscription can include vehicles owned by a group of vehicles, such as entities like a family. Prior to the data service request 122, the vehicle user may provide identification communication information regarding other related vehicles and input information into the vehicle's HU. For example, the identification information can include an email address, an IP address, a MAC address, a VIN number, a license plate number, and the like. The data service request 122 can include an indication of eligibility regarding other related vehicles. When the vehicle processor 120 receives the data service request 122, the vehicle processor 120 identifies other related vehicles as being eligible to receive the subscription. The vehicle processor 120 sends a notification to each of the related vehicles informing them of their eligibility to receive the subscription. The vehicle processor in each of the related vehicles can receive the notification and display data in response to the notification. For example, each of the related vehicles can display information regarding the subscription, the length of the service, the purchaser, the subscription terms, and / or the subscription cost on the HU display.
[0046] In one embodiment, the vehicle processor 120 receives a user profile from a mobile device, determines areas of common interest and thresholds between the user profiles in the vehicle's data, and can display within the vehicle the areas of common interest and data values related to the thresholds when the thresholds are exceeded. In one embodiment, the thresholds can indicate levels of significance in data values related to vehicle safety, vehicle efficiency, vehicle performance, and valuable driver behavior. For example, the threshold can indicate a level at which it may be more difficult for the vehicle to safely control the vehicle in a particular road or weather condition, or the maximum parameter level previously achieved by the driver regarding the vehicle.
[0047] In one embodiment, an application in a mobile device can be used to configure a vehicle telematics display on a vehicle's HU display. A user associated with the mobile device can utilize the application to transmit a portion of a user profile from the mobile device to a vehicle processor 120. The vehicle processor 120 can determine a driver name and a request regarding the brakes' telematics in the vehicle from a portion of the user profile. The brakes' telematics can represent an area of interest that can be a group of vehicle parameters in which the user may be interested. The vehicle processor 120 can obtain a history of brake data and a threshold value regarding the identified driver from an accessible memory device. For example, the threshold value can represent a common area of interest regarding the user profile and can reflect a maximum measured brake force value, an amount of brake energy, a maximum length of time the brakes are applied, and the like.
[0048] In one embodiment, the vehicle processor 120 can display to the vehicle HU a common area of interest (e.g., brake history), a threshold value, and current brake data when the threshold value is exceeded. In one embodiment, when the threshold value is exceeded, the vehicle processor 120 can store the current brake data as a new threshold value in an accessible memory device.
[0049] In one embodiment, the vehicle processor 120 can link the vehicle with another mobile device, configure another data service request in the other mobile device, receive the other data service request from the mobile device in a CAN of another vehicle, and determine to display one of the data service request and the other data service request.
[0050] In one embodiment, the vehicle processor 120 can link another mobile device to the vehicle. For example, a user having a mobile device can use an application to add another new user to the vehicle. The application can send a notification to the vehicle processor 120 through the mobile device processor 110, where the notification can include the name of the new user and communication information for communicating with the new user's mobile device. The vehicle processor 120 can store the name and communication information of the new user in an accessible memory device and send a request to the new mobile device to verify the new user. The new user can view the request to verify the new user on the display of the new mobile device and select to verify. The new mobile device can send the verification to the vehicle processor 120, and the vehicle processor 120 can link the new mobile device to the vehicle based on the verification.
[0051] In one embodiment, the processor of the other mobile device can construct another data service request and send the other data service request to the vehicle processor 120. In one embodiment, the other data service request can be a CAN data service request. Currently, CAN data services can be developed in the cloud and may not be configurable at the customer level in the vehicle's head unit (HU) or mobile device application. The customer may not be able to select what the customer sees or does not see, or how the customer sees it. The CAN data service or the other data service request can include driving characteristics, driving history, telematics, mapping data, group-related video data, and / or seat settings of the vehicle. For example, the other data service request can include a request regarding telematics or sensor data for a period, a range of values, or a specified threshold. As another example, the other data service request can request driving characteristics for a specific individual regarding a specific purpose (e.g., brakes), a period, an area or within a range of distances from a location, and / or multiple vehicles.
[0052] In one embodiment, the vehicle processor 120 may receive the other data service request through the vehicle's CAN bus. For example, the HU processor or the main vehicle processor may receive the other data service request and transmit the other data service request to the vehicle processor 120 on the CAN bus. In one embodiment, the vehicle processor 120 may interpret the other data service request. For example, the other data service request may be for a type of request (e.g., driving characteristics, driving history, telematics, mapping data, group-related video data, seat settings, and requests of the like), a period, a range of values, or a specified threshold, and may include an indication of where the response to the data service request is provided (e.g., visually, as text-to-speech in the vehicle, or both, and displayed on the HU or one or more mobile devices, etc.).
[0053] In one embodiment, the vehicle processor 120 may construct a data set related to the other data service request. The data set may include various data items from the interpreted data service request. The vehicle may obtain data related to the data set from one or more accessible memory devices of the vehicle (e.g., a memory device accessible to the vehicle processor 120), from the server 130, and / or from the mobile device processor 110 or the processor of another mobile device. For example, the vehicle processor 120 may obtain a data set template from the server 130 and insert data items from an accessible memory device of the vehicle into the template.
[0054] In one embodiment, the vehicle processor 120 may determine to display one of the data service request 122 and the other data service request. In one embodiment, the vehicle processor 120 may determine that the most recently received data service request should be displayed. In another embodiment, the vehicle processor 120 may determine that the most urgent data service request should be displayed. The most urgent data service request may be determined by the vehicle processor 120 examining the urgency data value associated with each data set. For example, a brake-related data service request may have a higher urgency value than a navigation data service request, and the navigation data service request may have a higher urgency value than an entertainment-related data service request. In another embodiment, the vehicle processor 120 may determine that a data service request from a user with a higher priority should be displayed. For example, the vehicle processor 120 may determine that a data service request from a user who is the owner of the vehicle has a higher priority than a data service request from a user who is a family member of the vehicle owner, and that a data service request from a user who is a non-owner family member has a higher priority than a data service request from a user who is not a family member.
[0055] Partially or completely, when putting data items corresponding to higher-priority data service requests into the data template, the vehicle processor 120 may display the data set on the HU associated with the vehicle or another display. Alternatively, the vehicle processor 120 may present the data set to be audible through the vehicle's speakers. In another embodiment, the vehicle processor 120 may send the data set to the mobile device processor 110, and the mobile device processor 110 may visually and / or audibly present the data set on the mobile device.
[0056] In another embodiment, the vehicle processor 120 may determine that a driver different from the normal driver is operating the vehicle, identify a common destination of the vehicle with the previous destination by the normal driver, and display the optimal route to the common destination from the previous destination route data.
[0057] In one embodiment, an interior camera in the vehicle may capture an image of the driver and provide the image to the vehicle processor 120. The vehicle processor 120 may use a face recognition application to compare the captured image with a stored image of the normal vehicle driver (e.g., the owner of the vehicle) in an accessible memory device. The application may currently determine that a driver different from the normal driver is operating the vehicle.
[0058] The vehicle processor 120 may request a destination of travel from the new vehicle driver, and the new vehicle driver may be provided with an audible moving destination that is typed into the HU display input field or selected from a drop-down list of stored destinations. For example, the vehicle processor 120 may identify a common destination of the vehicle by comparing the destination of travel with the stored destinations. In one embodiment, the vehicle may include a navigation processor that accesses a memory device containing route information. The route information may include an optimal route to a common destination from previous destination route data. The vehicle processor 120 may obtain the optimal route information from the navigation processor and display the optimal route on the display of the HU in the vehicle.
[0059] Flow diagrams depicted herein, such as FIGS. 1, 2C, 2D, 2E, 3A, 3B, and 3C, are separate examples, but may be the same or different embodiments. Any of the operations in a particular flow diagram may be adopted in another flow diagram and shared with another flow diagram. The exemplary operations are not intended to limit any embodiment or the subject matter of the corresponding claims.
[0060] All flowcharts and corresponding processes obtained from FIGS. 1, 2C, 2D, 2E, 3A, 3B, and 3C may be part of the same process or may share sub - processes with each other. Thus, it is important to note that while no single specific operation is required, the figures can be combined into a single preferred embodiment that performs specific operations from one exemplary process and one or more additional processes. All exemplary processes relate to the same physical system and can be used separately or interchangeably.
[0061] FIG. 2A shows a transportation means network diagram 200 according to an exemplary embodiment. The network comprises elements including a transportation means 202 including a processor 204 and a transportation means 202' including a processor 204'. The transportation means 202, 202' communicate with each other via a processor, a memory, and other elements (not shown) including other elements capable of providing a transceiver, a transmitter, a receiver, a storage, a sensor, and communication. Communication between the transportation means 202 and 202' can occur directly, via a private network and / or a public network (not shown), or via other transportation means and elements comprising one or more of a processor, a memory, and software. Although depicted as a single transportation means and processor, multiple transportation means and processors may exist. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein may be utilized and / or provided by this element.
[0062] Figure 2B shows another transportation means network diagram 210 according to an exemplary embodiment. The network comprises elements including a transportation means 202 including a processor 204 and a transportation means 202' including a processor 204'. The transportation means 202, 202' communicate with each other via the processors 204, 204' and other elements (not shown) capable of providing transmitters, receivers, storage, sensors, and other elements for communication. The communication between the transportation means 202 and 202' can occur directly, or via a private network and / or a public network (not shown), or via other transportation means and elements comprising one or more of a processor, memory, and software. The processors 204, 204' can further communicate with one or more elements 230 including sensors 212, wired devices 214, wireless devices 216, databases 218, mobile phones 220, transportation means 222, computers 224, I / O devices 226, and voice applications 228. The processors 204, 204' can further communicate with elements comprising one or more of a processor, memory, and software.
[0063] Although described as a single transportation means, processor, and element, there can be multiple transportation means, processors, and elements. Information or communication can occur to and / or from any of the processors 204, 204' and elements 230. For example, the mobile phone 220 can provide information to a processor 204 that can initiate an operation on the transportation means 202, can further provide information or additional information to a processor 204' that can initiate an operation on the transportation means 202', and can further provide information or additional information to the mobile phone 220, the transportation means 222, and / or the computer 224. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein can be utilized and / or provided by this element.
[0064] Figure 2C shows yet another transportation means network diagram 240 according to an exemplary embodiment. The network comprises elements including a transportation means 202, a processor 204, and a non-transitory computer-readable medium 242C. The processor 204 is communicatively connected to the computer-readable medium 242C and the element 230 (depicted in Figure 2B). The transportation means 202 can be a transportation means, a server, or any device having a processor and a memory.
[0065] The processor 204 performs one or more of the following: linking a mobile device and a vehicle 244C, configuring a data service request in a mobile device 246C, receiving a data service request from the mobile device in a vehicle's controller area network 248C, and displaying a data set in the vehicle according to the configuration 250C.
[0066] Figure 2D shows a further transportation means network diagram 250 according to an exemplary embodiment. The network comprises elements including a transportation means 202, a processor 204, and a non-transitory computer-readable medium 242D. The processor 204 is communicatively connected to the computer-readable medium 242D and the element 230 (depicted in Figure 2B). The transportation means 202 can be a transportation means, a server, or any device having a processor and a memory.
[0067] The processor 204 determines that the mobile device and one or more other mobile devices are in a vehicle, modifies a data service request based on the combination of mobile devices, and based on the combination, displays the modified data 244D, determines that the mobile device is not in the vehicle, determines that the mobile device is close to one or more other vehicles related to the vehicle, and transmits a data service request from the mobile device to one or more other vehicles 245D, determines that the mobile device is in another vehicle, receives a data service request from the mobile device in the controller area network of the other vehicle, configures the data service request in the other vehicle in the mobile device, and displays the data in the other vehicle according to the configuration 246D, when the data service request includes a purchase service, determines that one or more other vehicles related to the vehicle are eligible to receive the purchase service, notifies one or more other vehicles of the data service request including the purchase service, and displays the data in the other vehicle according to the purchase service 247D, receives a user profile from the mobile device, determines in the vehicle data a common area of interest and a threshold between user profiles, and displays in the vehicle the common area of interest and the data value related to the threshold when the threshold is exceeded 248D, and links the vehicle with another mobile device, configures another data service request in the other mobile device, receives the other data service request from the mobile device in the controller area network of the other vehicle, and determines to display one of the data service request and the other data service request 249D, and performs one or more of the above.
[0068] Figure 2E shows a further additional transportation means network diagram 260 according to an exemplary embodiment. Referring to Figure 2E, the network diagram 260 includes a transportation means 202 connected to other transportation means 202' and an update server node 203 in a blockchain network 206. The transportation means 202 and 202' may represent transportation means / vehicles. The blockchain network 206 may have a ledger 208 that stores software update verification data and a source 207 of verification for future use (e.g., in an audit).
[0069] This example describes only one transportation means 202 in detail, but multiple such nodes may be connected to the blockchain 206. It should be understood that the transportation means 202 may include additional components, and some of the components described herein may be removed and / or modified without departing from the scope of the present application. The transportation means 202 may have a computing device or a server computer, or the like, and may include a processor 204, and the processor 204 may be a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or another hardware device. Although a single processor 204 is depicted, it should be understood that the transportation means 202 may include multiple processors, multiple cores, or the like without departing from the scope of the present application. The transportation means 202 may be a transportation means, a server, or any device having a processor and a memory.
[0070] The processor 204 is to receive an event confirmation from one or more of the elements described or depicted herein, the confirmation comprising a blockchain consensus among peers represented by any of the elements 244E, and to execute a smart contract to record the confirmation in the blockchain based on the blockchain consensus 246E. The consensus is formed among any element 230 and / or one or more of any of the elements described or depicted herein including, for example, a means of transportation, a server, a wireless device, or the like. In another example, the means of transportation 202 can be any element 230 and / or one or more of any of the elements described or depicted herein including, for example, a server, a wireless device, or the like.
[0071] The processor and / or the computer-readable medium 242E can be wholly or partially present inside or outside the means of transportation. The steps or functions stored in the computer-readable medium 242E can be wholly or partially performed in any order by any of the processor and / or the elements. Further, additions, omissions, combinations, later executions, or the like can be made to one or more of the steps or functions.
[0072] Figure 2F shows Figure 265 depicting the power supply of one or more elements. In one example, the transportation means 266 may provide the electric power stored in its battery to one or more elements including other transportation means 268, charging stations 270, and the electrical grid 272. The electrical grid 272 is connected to one or more of the charging stations 270, and the charging stations 270 may be connected to one or more of the transportation means 268. This configuration enables the distribution of the electricity / power received from the transportation means 266. The transportation means 266 may also interact with other transportation means 268 via vehicle-to-vehicle (V2V) technology, cellular communication, WiFi, and the like. The transportation means 266 may also interact with other transportation means 268, charging stations 270, and / or the electrical grid 272 wirelessly and / or via wire. In one example, the transportation means 266 is routed (or routes itself) to the electrical grid 272, the charging stations 270, or other transportation means 268 in a safe and efficient manner. Using one or more embodiments of the present solution, the transportation means 266 may provide energy to one or more of the elements described herein in various advantageous ways as described and / or depicted herein. Further, it may enhance the safety and efficiency of the transportation means and may have a beneficial impact on the environment as described and / or depicted herein.
[0073] The term "energy" may be used to denote any form of energy received, stored, used, shared, and / or lost by a transportation means. Energy may be referred to in conjunction with the voltage source and / or current supply of the charge provided from an entity to the transportation means during a charging / usage operation. Energy may also be in the form of fossil fuels (for example, for use in hybrid transportation means), or alternative power sources including lithium-based, nickel-based, hydrogen fuel cells, atomic / nuclear energy, nuclear fusion-based energy sources, and energy generated on-the-fly during an energy sharing and / or usage operation that increases or decreases the energy level of one or more transportation means at a given time, but is not limited thereto.
[0074] In one example, the charging station 270 manages the amount of energy transmitted from the transport means 266 such that sufficient charge remains in the transport means 266 to reach the destination. In one example, a wireless connection is used to wirelessly direct the amount of energy transfer between transport means 268, which may both be moving. In one embodiment, wireless charging can occur via a fixed charger and the battery of the transport means aligned with each other (such as a charging mat in a garage or parking space). In one example, an unused vehicle, such as vehicle 266 which may be autonomous, is instructed to provide a certain amount of energy to the charging station 270 and return to its original location (e.g., its original location, or a different destination). In one example, a mobile energy storage unit (not shown) collects surplus energy from at least one other transport means 268 and is used to transmit the stored surplus energy at the charging station 270. In one example, factors such as distance, time, and traffic conditions, road conditions, environmental / weather conditions, vehicle conditions (such as weight), the schedule of passengers during vehicle use, and the expected schedule of passengers waiting for the vehicle determine the amount of energy transmitted to the charging station 270. In one example, the transport means 268, the charging station 270, and / or the electrical grid 272 can provide energy to the transport means 266.
[0075] In one embodiment, a location such as a building, a residence, or the like (not depicted) is communicatively connected to one or more of the electrical grid 272, the transport means 266, and / or the charging station 270. The rate at which electricity flows through one or more of the location, the transport means 266, and other transport means 268 is modified according to external conditions such as weather. For example, when the external temperature is extremely high or extremely low, increasing the likelihood of a power outage, the flow of electricity to the connected vehicles 266 / 268 is slowed to help minimize the likelihood of a power outage.
[0076] In one example, the solution described and depicted herein can be used to determine the impact of the load on the transport means and / or system, provide energy to the transport means and / or system based on future demand and / or priorities, provide information between a device including a module and a vehicle, and enable the processor of the device to communicate wirelessly with the vehicle regarding the amount of energy stored in the vehicle's battery. In one example, the solution can also be used to provide a charge from the transport means to a location based on factors such as the temperature of the location, the cost of energy, and the power level of the location. In one example, the solution can also be used to manage the amount of energy remaining in the transport means after a portion of the charge has been transmitted to a charging station. In one example, the solution can also be used to notify the vehicle to provide the amount of energy of the battery in the transport means, and the amount of energy transmitted is based on the distance of the transport means to the module receiving the energy.
[0077] In one example, the solution can also be utilized to use a mobile energy storage unit, which moves to a means of transportation that has excess energy and stores the energy deposited into the electrical grid using a determined route. In one example, the solution can also be utilized to determine the priority of the decision of the means of transportation regarding the demand for providing energy to the grid, and the priority of the current demand regarding the means of transportation, for example, the priority of passengers or future passengers or the current load or future load. In one example, the solution can also be utilized to determine that when the vehicle is not in use, the vehicle is piloted to a location to discharge excess energy to the energy grid and then return to the previous location. In one example, the solution can also be utilized to determine the amount of energy required by a means of transportation based on one or more conditions such as weather, traffic, road conditions, the condition of the passenger vehicle, and the passengers and / or goods within another means of transportation, and route the means of transportation to another means of transportation to provide energy by instructing the means of transportation to provide energy. In one example, the solution can also be utilized to transmit energy from one moving vehicle to another moving vehicle. In one example, the solution can also be utilized to extract energy by a means of transportation based on the energy consumed by the means of transportation to reach a location to meet another means of transportation and provide services, and the estimated energy consumption to return to the original location. In one example, the solution can also be utilized to provide the remaining distance required to reach a charging station, and the charging station determines the amount of energy extracted from the means of transportation, and the remaining charge amount is based on the remaining distance. In one example, the solution can also be utilized to manage a means of transportation that is charged simultaneously by, for example, both a charging station with a wired connection and another means of transportation with a wireless connection at more than one point simultaneously.In one example, the solution may also be utilized to apply priorities to the distribution of energy to the transportation means, where the priorities are given to the transportation means that provide a portion of the stored charge of the transportation means to another entity such as the electrical grid, a residence, and the like.
[0078] In one embodiment, the transportation means 266 and 268 can be utilized as bi-directional transportation means. The bi-directional transportation means can function as a mobile micro-grid that assists in supplying power to the grid 272 and / or reduces power consumption when the grid is stressed. In addition to receiving charge for the transportation means, the bi-directional transportation means incorporates bi-directional charging, where the transportation means can take energy from the transportation means and "push" the energy back to the grid 272, which is otherwise referred to as "V2G" in other cases. In bi-directional charging, electricity flows in both the direction to and from the transportation means. When the transportation means is charged, alternating current (AC) electricity from the grid 272 is converted to direct current (DC). This can be done by one or more of the converters in the converter of the transportation means itself or the charger 270. The energy stored in the battery of the transportation means can be sent back to the grid in the opposite direction. The energy is converted from DC to AC typically through a converter located in the charger 270, which is otherwise referred to as a bi-directional charger. Further, the solution as described and depicted with respect to Figure 2F can be utilized in this network and / or system, as well as other networks and / or systems.
[0079] Figure 2G is Figure 275 showing the interconnections between different elements. This solution can be stored and / or executed, in whole or in part, on one or more computing devices 278’, 279’, 281’, 282’, 283’, 284’, 276’, 285’, 287’, and 277’ associated with various entities and all communicably connected to communicate with network 286, and / or by said one or more computing devices. Database 287 is communicably connected to the network and enables storage and retrieval of data. In one example, the database is an immutable ledger. One or more of the various entities can be a means of transportation 276, one or more service providers 279, one or more public buildings 281, one or more transportation infrastructures 282, one or more residential houses 283, an electric grid / charging station 284, a microphone 285, and / or another means of transportation 277. Other entities and / or devices such as one or more private users using a smartphone 278, a laptop 280, an augmented reality (AR) device, a virtual reality (VR) device, and / or any wearable device can also cooperate with this solution. The smartphone 278, the laptop 280, the microphone 285, and other devices can be connected to one or more of the connected computing devices 278’, 279’, 281’, 282’, 283’, 284’, 276’, 285’, 287’, and 277’. One or more public buildings 281 can include various institutions. One or more public buildings 281 can utilize a computing device 281’. One or more service providers 279 can include a sales agency, a tow truck service, a collision center, or other repair shops. One or more service providers 279 can utilize a computing device 279’. These various computer devices can be connected to each other directly and / or communicably via a wired network, a wireless network, a blockchain network, and the like. In one example, the microphone 285 can be utilized as a virtual assistant.In one example, the one or more transportation infrastructures 282 may include one or more traffic signals, one or more sensors including one or more cameras, vehicle speed sensors or traffic sensors, and / or other transportation infrastructures. The one or more transportation infrastructures 282 may utilize a computing device 282’.
[0080] In one example, the transportation means 277 / 276 may transport people, objects, permanently or temporarily attached devices, and the like. In one example, the transportation means 277 may communicate with the transportation means 276 via V2V communication through the computers 276’ and 277’ associated with each transportation means, and may be referred to as transportation means, passenger cars, vehicles, automobiles, and the like. The transportation means 276 / 277 may be a self-propelled wheeled vehicle such as a passenger car, a sports utility vehicle, a truck, a bus, a wagon, or other motor or battery-driven, or fuel cell-driven transportation means. For example, the transportation means 276 / 277 may be an electric vehicle, a hybrid vehicle, a hydrogen fuel cell vehicle, a plug-in hybrid vehicle, or any other type of vehicle having a fuel cell stack, a motor, and / or a generator. Other examples of vehicles include bicycles, scooters, trains, airplanes, boats, and any other form of vehicle capable of transportation. The transportation means 276 / 277 may be semi-autonomous or autonomous. For example, the transportation means 276 / 277 may be self-piloted and operated without human input. An autonomous vehicle may have one or more sensors and / or a navigation unit and use these to drive autonomously.
[0081] In one example, the solution described and depicted herein can be utilized to determine access to a means of transportation via blockchain consensus. In one example, the solution can also be utilized to perform profile verification before enabling use of the means of transportation by a passenger. In one example, the solution can also be utilized to cause the means of transportation to indicate (visually but also, in another example, verbally, etc.) on or from the means of transportation actions that a user needs to perform and that need to be confirmed as being correct actions (which can be pre-recorded). In one example, the solution can also be utilized to provide the means of transportation with the ability to determine, based on a risk level associated with the data and the driving environment, a way to split data and distribute a portion of the split data with a lower risk level in a safe driving environment to a passenger and, after the passenger has left the means of transportation, distribute the remaining portion of the split data with a higher risk level to the passenger later. In one example, the solution can also be utilized to use blockchain and / or smart contracts to address movement of a vehicle across boundaries (countries / states, etc.) and apply rules of a new area to the vehicle.
[0082] In one example, the solution can also be utilized to enable the transport means to continue operating outside the boundary when a consensus has been reached by the transport means based on the operation of the transport means and the characteristics of the occupants of the transport means. In one example, the solution can also analyze the available data upload / download speed of the transport means, the file size, and the speed / direction at which the transport means is moving to determine the distance required to complete the data upload / download and can be utilized to assign a secure area boundary for the data upload / download being performed. In one example, the solution can also perform normally dangerous maneuvers in a safe manner and command the transport means of interest and other nearby transport means to enable the transport means of interest to exit in a safe manner, such as when the system determines that an exit is approaching or when the transport means appears not to be ready to exit (e.g., is in the wrong lane or is moving at a speed not suitable for exiting in the future). In one example, the solution can also be utilized to verify the diagnosis of another transport means using one or more vehicles while both the one or more vehicles and the other transport means are in motion.
[0083] In one example, the solution can also be used to detect the use of a lane at a particular location and time and inform the occupants of the transportation means or instruct the transportation means whether to recommend a lane change or not. In one example, the solution can also be used to eliminate the need to send information via email and the need for the driver / occupant to respond by making payments via email or directly. In one example, the solution can also be used to provide services to the occupants of the transportation means, the services provided are based on subscriptions, and permissions are obtained from other transportation means connected to the occupant's profile. In one example, the solution can also be used to record changes in the state of a lent object. In one example, the solution can also be used to request a blockchain consensus from other transportation means near a damaged transportation means. In one example, the solution can also be used to receive media from a server such as an insurance entity server or a computer of a transportation means that may be related to an accident. The server accesses one or more media files, accesses the damage to the transportation means, and stores the damage assessment on the blockchain. In one example, the solution can also be used to obtain a consensus and determine the severity of an event from several devices at various times prior to the event related to the transportation means.
[0084] In one example, the solution can also be used to solve the problem of lack of video evidence about an accident related to a transportation means. This solution details an inquiry by the transportation means involved in the accident regarding media related to the accident from other transportation means that may have been near the accident. In one example, the solution can also be used to utilize the transportation means and other devices (e.g., a pedestrian's mobile phone, a streetlight camera, etc.) to record specific parts of a damaged transportation means.
[0085] In one example, the solution can also be used to warn the occupants when the transport means is being steered towards a dangerous area and / or event, and to notify the occupants or a central controller of the transport means about possible dangerous areas that are on or near the current path of the transport means. In one example, the solution can also be used to detect when at least one other transport means is being used to assist in decelerating the transport means so that the impact on traffic is minimized when the transport means is moving at high speed. In one example, the solution can also be used to identify dangerous driving situations, where media is captured by vehicles involved in the dangerous driving situation. A geo-fence is established based on the distance of the dangerous driving situation, and further media is captured by at least one other vehicle within the established geo-fence. In one example, the solution can also be used to send a notification to one or more occupants of the transport means that the transport means is approaching a traffic control sign on the road, and then to receive an indication of bad driving from other nearby transport means if the transport means goes beyond the sign. In one example, the solution can also be used to partially disable the transport means by (in certain embodiments) limiting the speed, limiting the ability to approach another vehicle, limiting the speed to a maximum value, and allowing only a given number of miles (about 1.609 km) per period.
[0086] In one example, the solution can also be used to overcome the need for dependence on software updates and to correct problems associated with the transport means when the transport means is not operating correctly. Through the observation of other transport means on the route, the server receives data from a plurality of other transport means that may be observing dangerous or incorrect operation of the transport means. Through analysis, the observation can result in a notification to the transport means when the data suggests dangerous or incorrect operation. In one example, the solution can also be used to notify between the transport means and a dangerous situation that may involve persons unrelated to the transport means. In one example, the solution can also be used to send data to the server by either a device associated with an accident of the transport means or a device near the accident. Based on the severity of the accident or near the accident, the server notifies the sender of the data. In one example, the solution can also be used to provide recommendations regarding the operation of the transport means to either the driver or passenger of the transport means based on data analysis. In one example, the solution can also be used to establish a geopence associated with the physical structure to determine the liability for payment for the transport means. In one example, the solution can also be used to adjust whether a vehicle can be disembarked at a location using both the current state and the proposed future state of the location and the navigation destinations of other vehicles. In one example, the solution can also be used to adjust the ability to automatically prepare for the disembarkation of a vehicle at a location such as a transport means rental entity.
[0087] In one example, the solution can also be utilized to move a transportation means to another location based on a user's event. More specifically, the system tracks the user's device and modifies the transportation means to move closer to the user based on the result of the original or modified event. In one example, the solution can also be utilized to enable verification of available locations within an area through the transportation means present within the area. An approximate time when a location may become available is also determined based on verification from the transportation means present. In one example, the solution can also be utilized to move the transportation means to a closer parking space when a certain parking space becomes available and the elapsed time from the first parking is less than the average event time. Further, when the event is completed or depending on the location of a device associated with at least one passenger of the transportation means, the transportation means is moved to a final parking space. In one example, the solution can also be utilized to plan for parking prior to approaching congestion. The system interacts with the transportation means to provide some service below the regular rate and / or guide the transportation means to an alternative parking location based on the priority of the transportation means, thereby improving the optimization of the parking situation prior to arrival.
[0088] In one example, the solution can also be used to sell fractional ownership of transportation means or to determine prices and availability for rideshare applications. In one example, the solution can also be used to provide an accurate and timely report of the sales activities of a sales agency that is far superior to what is currently available. In one example, the solution can also be used to enable a sales agency to claim assets on the blockchain. By using the blockchain, consensus is obtained before any asset is transferred. Further, the process is automated and payments can be initiated on the blockchain. In one example, the solution can also be used to prepare an agreement made with multiple entities (such as a service center), where consensus is obtained and an operation (such as a diagnosis) is performed. In one example, the solution can also be used to associate digital keys with multiple users. The first user can be an operator of the transportation means, and the second user can be a party responsible for the transportation means. The key is approved by the server, where the proximity of the key is verified against the location of the service provider. In one example, the solution can also be used to determine the services required at the destination of the transportation means. The location of one or more service sites that can provide the required services, which are within an area on the route to the destination and where the execution of the services is available, is located. The navigation of the transportation means is updated at the location of the determined service. A smart contract including a compensation value for the service is identified, and the blockchain transaction is stored in the distributed ledger for the transaction.
[0089] In one example, the solution may also be used to associate the service provider's means of transportation with the profiles of the occupants of the means of transportation to determine services and items that may be of interest to the occupants within the means of transportation. The services and items are determined by the occupants' history and / or preferences. The means of transportation then receives an offer from the service provider's means of transportation and, in another example, meets with the means of transportation providing the service / items. In one example, the solution may also be used to detect a range of means of transportation and send an offer of a service (such as an offer of maintenance, an offer of a product, or the like) to the means of transportation. An agreement is made between the system and the means of transportation, and the service provider is selected by the system to provide the agreement. In one example, the solution may also be used to assign one or more means of transportation as road managers, and the road managers assist in traffic control. The road managers may generate road displays (such as traffic lights, displays, and sounds) to assist in the flow of traffic. In one example, the solution may also be used to warn the driver of the means of transportation by a device, which may be a traffic light or may be near an intersection. The warning is sent in the event of an event such as when the traffic light turns green and the means of transportation in front of the list of means of transportation does not move.
[0090] Figure 2H is another block diagram 290 showing the interconnection between different elements in an example. A transport means 276 is presented, including ECUs 295, 296 and a head unit (otherwise known as an infotainment system in other cases) 297. An electronic control unit (ECU) is a system incorporated in automotive electronics that controls one or more of the electrical systems or subsystems within the transport means. The ECU may include, but is not limited to, the management of the engine, braking system, transmission system, door locks, dashboard, airbag system, infotainment system, electronic differential, and active suspension of the transport means. The ECU is connected to the CAN bus 294 of the transport means. The ECU can also communicate with the computer 298 of the transport means via the CAN bus 294. The processor / sensor 298 of the transport means (such as the computer of the transport means) can communicate with external elements such as the server 293 via a network 292 (such as the Internet). Each ECU 295, 296 and head unit 297 may include its own security policy. The security policy defines the allowed processes that can be executed in an appropriate context. In one example, the security policy may be provided partially or completely in the computer 298 of the transport means.
[0091] ECUs 295, 296, and the head unit 297 may each include a custom security feature element 299 that defines an approved process and the context in which the operation of that process is permitted. By context-based approval to determine whether a process can be executed, the ECU can maintain a secure operation and prevent unauthorized access from elements such as the controller area network (CAN bus) of the transportation means. If the ECU encounters an unauthorized process, the ECU may prevent the process from operating. An automotive ECU uses various contexts such as the context of proximity, such as nearby objects, the distance to approaching objects, speed, the trajectory relative to other moving objects, and the indication of whether the transportation means is moving or parked, the context of operation, such as the current speed of the transportation means, the transmission state, devices connected to the transportation means via a wireless protocol, the use of infotainment, cruise control, parking assistance, driving assistance, and other user-related contexts, location-based contexts, and / or other contexts to determine whether a process is operating within its permitted boundaries.
[0092] In one example, the solutions described and depicted herein can be used to partially disable a means of transportation by (in certain embodiments) restricting speed, restricting the ability to approach another vehicle, restricting speed to a maximum value, and allowing only a given number of miles (about 1.609 km) per period. In one example, the solution can also be used to facilitate the exchange of ownership of a vehicle using a blockchain, and data is sent to a server by either a device associated with an accident with the means of transportation or a device near the accident. Based on the severity of the accident or near the accident, the server notifies the sender of the data. In one example, the solution can also be used to help a means of transportation avoid an accident, such as when the means of transportation is involved in an accident, by a server that queries other means of transportation near the accident. The server attempts to obtain data from other means of transportation, enabling the server to understand the nature of the accident from multiple perspectives. In one example, the solution can also be used to determine that the sound from a means of transportation is abnormal and send data related to the sound and the location of the possible source to a server, and the server can determine the possible cause and avoid a potentially dangerous situation. In one example, the solution can also be used to establish a boundary of a location via a system when a means of transportation is involved in an accident. This boundary is based on the decibels associated with the accident. Multimedia content for devices within the boundary is obtained to assist in further understanding the unfolding of the accident. In one example, the solution can also be used to associate a vehicle with an accident and then capture media obtained by a device near the location of the accident. The captured media is stored as a media segment. The media segment is sent to another computing device that constructs a sound profile of the accident. This sound profile will assist in understanding further details surrounding the accident.
[0093] In one example, the solution can also be used to record audio, video, movement, etc. using sensors when a means of transportation contacts or can contact another means of transportation (while in motion or parked), to record the area where a possible event has occurred, and the system captures data from one or more of the means of transportation and / or sensors that may be present on fixed or movable objects. In one example, the solution can also be used to determine that a means of transportation is damaged by using sensor data to identify a new state of the means of transportation during an event of the means of transportation and comparing that state to the state profile of the means of transportation, thereby making it possible to safely and securely capture important data from the means of transportation that is likely to be involved in a harmful event.
[0094] In one example, the solution can also be used to warn the occupants of a means of transportation when the means of transportation determines via one or more sensors that it is approaching or proceeding in the wrong direction on a one-way road. The means of transportation has sensors / cameras / maps that communicate with the system of this solution. The system recognizes the geographical location of the one-way road. The system can inform the occupants, for example, audibly, that they are "approaching a one-way road". In one example, the solution can also be used to enable a means of transportation to earn rewards, enable the owner of an autonomous vehicle to monetize the data collected and stored by their vehicle's sensors, create an incentive for the vehicle owner to share their data and provide additional data to an entity to improve the performance of future vehicles, and provide services to the vehicle owner.
[0095] In one example, the solution can also be used to increase or decrease a vehicle's functionality in response to the vehicle's operation over a period of time. In one example, the solution can also be used to assign fractional ownership to a means of transportation. Sensor data associated with one or more means of transportation and devices near the means of transportation is used to determine the state of the means of transportation. The fractional ownership of the means of transportation is determined based on the state, and the responsibility for the new means of transportation is defined. In one example, the solution can also be used to provide data to replacement / upfitting parts, and the data allows the parts to use the approved functionality of the replacement / upfitting parts in response to an attempt to disrupt the approved functionality and the approved functionality not being disrupted.
[0096] In one example, the solution can also be used to enable a passenger to be guaranteed by an individual that the passenger is inside a means of transportation and should reach a specific destination. Further, the system guarantees that a driver (in the case of a non-autonomous means of transportation) and / or other passengers are authorized to interact with the passenger. Pickup, drop-off, and location are also mentioned. All of the above are stored in the blockchain in an immutable manner. In one example, the solution can also be used to determine a driver's characteristics through an analysis of driving style and other factors, and to take measures when the driver is not driving normally, such as when the driver has driven in a specific state before, for example, during the day, at night, in the rain, in the snow, etc. Further, the attributes of the means of transportation are also taken into account. The attributes include weather, whether headlights are on, whether navigation is being used, whether HUD is being used, whether a certain volume of media is being played, etc. In one example, the solution can also be used to notify a passenger inside a means of transportation of a dangerous situation when an item inside the means of transportation indicates that the passenger may not be aware of the dangerous situation.
[0097] In one example, the solution can also be used to attach the calibration device to equipment fixed to the vehicle, and various sensors on the means of transportation can automatically self-adjust based on what should be detected by the calibration device as compared to what is actually detected. In one example, the solution can also be used to enable a remote diagnostic function by requiring consensus from multiple service centers using a blockchain when a means of transportation that requires service sends malfunction information, and the consensus is required from other service centers regarding what the severity threshold for the data is. Once the consensus is received, the service center can send the malfunction security level to the stored blockchain. In one example, the solution can also be used to determine the difference between sensor data external to the means of transportation and sensor data of the means of transportation itself. The means of transportation requests software from the server to correct the problem. In one example, the solution can also be used to enable messaging of means of transportation that are near or within an area when an event (e.g., a collision) occurs.
[0098] Referring to FIG. 2I, the operating environment 290A of a connected means of transportation according to some embodiments is shown. As depicted, the means of transportation 276 includes a CAN bus 291A that connects elements 292A - 299A of the means of transportation. Other elements may be connected to the CAN bus but are not depicted herein. The depicted elements connected to the CAN bus include a sensor set 292A, an electronic control unit 293A, an autonomous function or advanced driver assistance system (ADAS) 294A, and a navigation system 295A. In some embodiments, the means of transportation 276 includes a processor 296A, a memory 297A, a communication unit 298A, and an electronic display 299A.
[0099] Processor 296A includes an arithmetic logic unit, a microprocessor, a general-purpose controller, and / or a similar processor array, and performs calculations to provide an electronic display signal to display unit 299A. Processor 296A may include various computing architectures, including processing data signals and implementing a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Transport means 276 may include one or more processors 296A. Other processors, operating systems, sensors, displays, and physical configurations (not depicted) that are communicatively connected to each other may be used in this solution.
[0100] Memory 297A is a non-transitory memory that stores instructions or data that can be accessed and executed by processor 296A. The instructions and / or data may include code for performing the techniques described herein. Memory 297A may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, a flash memory, or another memory device. In some embodiments, memory 297A may also include a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or any other mass storage device for permanently storing information, including non-volatile memory or similar permanent storage devices and media. A portion of memory 297A may be reserved for use as a buffer or virtual random access memory (virtual RAM). Transport means 276 may include one or more memories 297A without departing from the solution.
[0101] The memory 297A of the transport means 276 can store one or more of the following types of data, namely, the navigation route data 295A and the autonomous function data 294A. In some embodiments, the memory 297A stores data that may be necessary for the navigation application 295A to provide its functions.
[0102] The navigation system 295A can represent at least one navigation route including a starting point and an end point. In some embodiments, the navigation system 295A of the transport means 276 receives a request from the user for a navigation route, and the request includes a starting point and an end point. The navigation system 295A can query a real-time data server 293, such as a server that provides a driving direction, (via the network 292) about the navigation route data corresponding to the navigation route including the starting point and the end point. The real-time data server 293 transmits the navigation route data to the transport means 276 via the wireless network 292, and the communication system 298A stores the navigation data 295A in the memory 297A of the transport means 276.
[0103] The ECU 293A controls the operation of a number of systems of the transport means 276 including the ADAS system 294A. The ECU 293A can disable any dangerous and / or unselected autonomous functions during the period of a journey controlled by the ADAS system 294A in response to an instruction received from the navigation system 295A. In this way, the navigation system 295A can control whether to operate or enable the ADAS system 294A so that the ADAS system 294A can operate on a given navigation route.
[0104] Sensor set 292A may include any sensors that generate sensor data in the transportation means 276. For example, sensor set 292A may include a short-range sensor and a long-range sensor. In some embodiments, the sensor set 292A of the transportation means 276 includes the following vehicle sensors, namely, cameras, LiDAR sensors, ultrasonic sensors, automotive engine sensors, radar sensors, laser altimeters, manifold absolute pressure sensors, infrared detectors, motion detectors, thermostats, voice detectors, carbon monoxide sensors, carbon dioxide sensors, oxygen sensors, mass air flow sensors, engine coolant temperature sensors, throttle position sensors, crankshaft position sensors, valve timers, air-fuel ratio meters, blind spot meters, curve feelers, defect detectors, Hall effect sensors, parking sensors, speed guns, speedometers, speed sensors, tire pressure monitoring sensors, torque sensors, transmission fluid temperature sensors, turbine speed sensors (TSS), variable reluctance sensors, vehicle speed sensors (VSS), moisture sensors, wheel speed sensors, GPS sensors, mapping functions, and one or more of any other types of automotive sensors. The navigation system 295A may store sensor data in the memory 297A.
[0105] The communication unit 298A transmits and receives data to and from the network 292 or another communication channel. In some embodiments, the communication unit 298A may include a DSRC transceiver, a DSRC receiver, and any other hardware or software necessary to make the transportation means 276 a DSRC-equipped device.
[0106] The transportation means 276 may communicate with other transportation means 277 via V2V technology. In one example, V2V communication includes detecting radar information corresponding to the relative distance to an external object, receiving GPS information of the transportation means, setting an area as the area where other transportation means 277 are located based on the detected radar information, calculating the probability that the GPS information of the target vehicle is located in the set area, and identifying the transportation means and / or objects corresponding to the radar information and GPS information of the target vehicle based on the calculated probability.
[0107] In one example, the solutions described and depicted herein can be utilized to manage the emergency deployment and functions of a transport means when it is determined that the transport means has entered an area without network access. In one example, the solution can also be utilized to manage and provide functions (such as voice, video, navigation, etc.) in a transport means without network connection. In one example, the solution can also be utilized to determine when the profile of a person near the transport means matches the profile attributes of the profile of at least one passenger within the transport means. A notification is sent from the transport means to establish communication.
[0108] In one example, the solution can also be utilized to analyze the availability of passengers within each transport means where voice communication is available, based on the amount of time remaining within the transport means and the context of the communication being conducted. In one example, the solution can also be utilized to determine two threat levels regarding road obstacles, receive gestures that may indicate that the obstacles do not reach a warning threshold, and be used by the transport means to proceed along the road. In one example, the solution can also be utilized to delete confidential data from the transport means when the transport means has received damage such that it is rendered inoperable.
[0109] In one example, the solution can also be used to verify that customer data to be removed is truly removed from all necessary locations within an enterprise that has declared GDPR compliance. In one example, the solution can also be used to offer a consideration from one means of transportation to another in exchange for data related to safety or important notifications, etc., to enhance the autonomous capabilities of a lower level of autonomous vehicle. In one example, the solution can also be used to provide the ability for a means of transportation to receive data based on a first biometric associated with a passenger. The means of transportation then decrypts the encrypted data based on the verification of a second biometric, and the second biometric is a continuum of the first biometric. The means of transportation provides the decrypted data to the passenger only when the passenger can receive it, deletes the confidential portion of the decrypted data when a confidential portion is provided, and deletes the non-confidential portion after the period associated with the biometric has elapsed. In one example, the solution can also be used to provide the ability for a means of transportation to verify an individual based on the weight and gripping pressure applied to the steering wheel of the means of transportation. In one example, the solution can also be used to provide a function that exists but is not currently enabled in a passenger vehicle to present a function reflecting the characteristics of the passenger to the occupants of the vehicle.
[0110] In one example, the solution can also be used to enable the reflection of modifications regarding the means of transport, in particular inside and outside the means of transport, and to assist at least one passenger in one example. In another example, the reproduction of the passenger's work environment and / or home environment is disclosed. The system can attempt to "reproduce" the user's work environment / home environment while the user is inside the means of transport if the means of transport determines that the user is in "work mode" or "home mode". All data related to the inside and outside of the means of transport and all the various passengers using the means of transport are stored in the blockchain and executed via smart contracts. In one example, the solution can also be used to detect the passenger's gestures and assist in communication with nearby means of transport, and the means of transport can be controlled accordingly. In one example, the solution can also be used to use a gesture definition data store to provide the means of transport with the ability to detect the intended gestures. In one example, the solution can also be used to provide the means of transport with the ability to take various measures based on the user's pace and gestures. In one example, the solution can also be used to ensure that the driver of the means of transport, who is currently involved in various operations (such as driving while talking to navigation), does not exceed the number of dangerous operations before permission for gestures.
[0111] In one example, the solution can also be used to assign a situation to each occupant within a means of transportation and to verify gestures from the occupants based on the occupant's situation. In one example, the solution can also be used to collect details of sounds related to a collision (such as where, in which direction, whether it is getting louder or softer, from which device, data associated with the device, e.g., type, manufacturer, owner, as well as the number of sounds occurring simultaneously and the time the sound was emitted) and provide them to the system when the analysis of the data helps in determining details regarding the collision. In one example, the solution can also be used to determine whether the operation of the means of transportation is dangerous. The means of transportation includes a plurality of components that interact to control the means of transportation, and each component is associated with a key of a separate component. An encryption key is sent to the means of transportation to reduce its functionality. In response to receiving the encryption key, the means of transportation disables one or more of the component keys. The disabling of one or more component keys results in one or more of restricting the means of transportation from moving faster than a given speed, restricting the means of transportation from getting closer to another means of transportation than a certain distance, and restricting the means of transportation from moving farther than a threshold distance.
[0112] In one example, the solution can also be used to provide a display from a particular means of transportation (trying to vacate a location) to another particular means of transportation (trying to occupy the location), and the blockchain is used for authentication and coordination. In one example, the solution can also be used to determine partial responsibility for a means of transportation. It is used by the system to update co-ownership when multiple people own a single means of transportation and the use of the means of transportation can be changed over a period of time. Other embodiments include uses that involve not the use of the means of transportation but the availability of the means of transportation and minimal ownership of the means of transportation based on the decisions of the operator of the means of transportation and other factors.
[0113] In one example, the solution may also be used in a transportation means for the user to permit their subscription for people in a closed group such as family or friends. For example, a user may want to share membership, and in that case, the associated transaction is stored in a blockchain or a conventional database. When a material for a regular subscription is requested by a user who is not the main subscriber, the blockchain node (i.e., the transportation means) can confirm that the person requesting the service is an approved person with whom the subscriber has shared the profile. In one example, the solution may also be used to enable a person to use an auxiliary transportation means to reach the intended destination. Functional relationship values (e.g., values indicating various parameters and their importance when determining which type of alternative transportation means should be used) are used when determining the auxiliary transportation means. In one example, the solution may also be used to enable passengers in an accident to access other transportation means and continue to their original destination.
[0114] In one example, the solution may also be used to communicate a software / firmware upload to a first subset of transport means. This first set of transport means tests the update and, when the test is successful, the update is communicated to a further set of transport means. In one example, the solution may also be used to communicate a software / firmware update from a master transport means to a vehicle, where the update is communicated through the vehicle's network from a first subset, then a larger subset, etc. A portion of the update may first be sent and then the remainder may be sent from the same vehicle or a different vehicle. In one example, the solution may also be used to provide an update for a computer of the transport means to the transport means and the device of the operator / occupant of the transport means. The update may be approved by all drivers and / or all occupants. The software update is provided to the vehicle and the device. The user does not need to do anything other than go near the vehicle and the function occurs automatically. A notification indicating that the software update is complete is sent to the device. In one example, the solution may also be used to verify that an OTA software update is being performed by an authorized technician and that the situation regarding the originator of the verification code, the procedure for wirelessly receiving the software update, the information included in the software update, and the result of the verification is being generated by a component of one or more transport means.
[0115] In one example, the solution can also be utilized to provide the ability for a second component to parse software updates located within a first component. Then, a first portion of important updates and a second portion of non-important updates are identified, and in the transportation means, the identified first portion is assigned to a certain process and the identified first portion is operated in that process for a certain period. Depending on a positive result based on that period, after that period, the identified first portion is operated in another process. In one example, the solution can also be utilized to provide passengers with a selection of services, where the services are based on the profile of the passengers of the transportation means and a shared profile shared with the passengers' profiles. In one example, the solution can also be utilized to store user profile data in a blockchain and intelligently present offers and recommendations to the user based on the user's automatically collected purchase history and preferences obtained from the user profile on the blockchain.
[0116] To make the transportation means sufficiently secure, the transportation means needs to be protected from unauthorized physical access and unauthorized remote access (e.g., cyber threats). In one example, to prevent unauthorized physical access, the transportation means is equipped with a secure access system such as keyless entry. On the other hand, in one example, security protocols are added to the computers and computer networks of the transportation means to facilitate secure remote communication with the transportation means.
[0117] An electronic control unit (ECU) is a node within a means of transportation that controls tasks ranging from tasks such as windshield wiper operation to tasks such as an antilock braking system. ECUs are often interconnected with each other through a central network of the means of transportation, which can be referred to as a CAN bus. State-of-the-art functions such as autonomous driving strongly rely on new and complex ECU implementations such as advanced driver assistance systems (ADAS), sensors, and the like. These new technologies have helped improve the safety and driving experience of the means of transportation, but these new technologies also increase the number of external communication units within the means of transportation and make the external communication units more vulnerable to attacks. The following are some examples of protecting the means of transportation from physical and remote intrusions.
[0118] FIG. 2J shows a keyless entry system 290B for preventing unauthorized physical access to a means of transportation 291B according to an exemplary embodiment. Referring to FIG. 2J, in one example, a key fob 292B transmits commands to the means of transportation 291B using a radio frequency signal. In this example, the key fob 292B includes a transmitter 2921B having an antenna capable of transmitting short-range radio signals. The means of transportation 291B includes a receiver 2911B having an antenna capable of receiving short-range radio signals transmitted from the transmitter 2921B. The key fob 292B and the means of transportation 291B also each include CPUs 2922B and 2913B that control their respective devices. Here, there is memory for the CPUs 2922B and 2913B (or accessible to the CPUs). In one example, each of the key fob 292B and the means of transportation 291B includes a power supply unit 2924B and 2915B that powers their respective devices.
[0119] When the user presses the button 293B of the key fob 292B (or in other cases, when the fob is activated, etc.), the CPU 2922B starts within the key fob 292B and transmits a data stream output via the antenna to the transmitter 2921B. In other embodiments, the user's intention is recognized in the key fob 292B via other means such as a microphone for receiving voice, a camera for capturing images and / or videos, or other sensors commonly used in the art for detecting the user's intention including the reception of gestures, movements, eye movements, and the like. The data stream can be a long signal from 64 bits to 128 bits in length, including one or more of a preamble, a command code, and a rolling code. The signal can be transmitted at a speed between 2KHz and 20KHz, but the embodiments are not limited thereto. Accordingly, the receiver 2911B of the transport means 291B captures the signal from the transmitter 2921B, demodulates the signal, and transmits the data stream to the CPU 2913B. The CPU 2913B decodes the signal and transmits a command (such as locking or unlocking a door) to the command module 2912B.
[0120] If the key fob 292B and the transport means 291B use a fixed code between them, a replay attack can be carried out. In this case, if an attacker can capture / find out the fixed code during short-range communication, the attacker can replay this code to achieve access to the transport means 291B. To improve security, the key fob and the transport means 291B can use a rolling code that changes after each use. Here, the key fob 292B and the transport means 291B are synchronized with an initial seed 2923B (e.g., a random number or a pseudo-random number, etc.). This is called pairing. The key fob 292B and the transport means 291B also include a shared algorithm that modifies the initial seed 2914B each time the button 293B is pressed. The next key press takes the result of the previous key press as input and converts it into the next number in the sequence. In some cases, the transport means 291B can store a plurality of next codes (e.g., 255 next codes) if the key presses of the key fob 292B are not detected by the transport means 291B. Therefore, a large number of key presses of the key fob 292B that are not recognized by the transport means 291B do not prevent the transport means from becoming asynchronous.
[0121] In addition to the rolling code, the key fob 292B and the transport means 291B can adopt other methods to make the attack even more difficult. For example, various frequencies can be used to transmit the rolling code. As another example, two-way communication between the transmitter 2921B and the receiver 2911B can be used to establish a secure session. As another example, the code can have a limited expiration date or timeout. Furthermore, the solution as described and depicted with respect to FIG. 2J can be utilized in this network and / or system as described and depicted herein, as well as in other networks and / or systems.
[0122] Figure 2K shows the CAN bus 290C within a means of transportation according to an exemplary embodiment. Referring to Figure 2K, CAN 290C includes a CAN bus 297C having high and low terminals, and a plurality of electronic control units (ECUs) 291C, 292C, 293C, etc. connected to the CAN bus 297C via a wired connection. The CAN bus 297C is designed to enable microcontrollers and devices to communicate with each other in an application without using a host computer. The CAN bus 297C implements a message-based protocol (i.e., the ISO 11898 standard) that enables the ECUs 291C - 293C to send commands to each other at the root level. On the other hand, the ECUs 291C - 293C represent controllers that control an electrical system or subsystem within the means of transportation. Examples of electrical systems include power steering, antilock brakes, air conditioning, tire pressure monitoring, cruise control, and numerous other functions.
[0123] In this example, ECU 291C includes a transceiver 2911C and a microcontroller 2912C. The transceiver can be used to send and receive messages to and from the CAN bus 297C. For example, the transceiver 2911C can convert data from the microcontroller 2912C into the format of the CAN bus 297C, and also convert data from the CAN bus 297C into the format for the microcontroller 2912C. On the other hand, in one example, the microcontroller 2912C interprets messages and determines which messages to send using the ECU software installed in the microcontroller 2912C.
[0124] To protect CAN290C from cyber threats, various security protocols can be implemented. For example, a subnetwork (such as subnetwork A and B, etc.) can be used to divide CAN290C into smaller sub-CANs to limit the ability of an attacker who remotely accesses the transportation means. In the example of Figure 2K, ECUs 291C and 292C can be part of the same subnetwork, while ECU 293C is part of an independent subnetwork. Further, a firewall 294C (or a gateway, etc.) can be added to prevent messages from crossing the CAN bus 297C across the subnetwork. If an attacker achieves access to a certain subnetwork, the attacker does not have access to the entire network. In one example, to make the subnetwork even more secure, the most important ECUs are not placed in the same subnetwork.
[0125] Although not shown in Figure 2K, other examples of security control within the CAN include an intrusion detection system (IDS), which can be added to each subnetwork to read all passing data and detect malicious messages. If a malicious message is detected, the IDS can notify the vehicle user. Other possible security protocols can include encryption / security keys that can be used to obfuscate messages. As another example, in one example, an authentication protocol is implemented that enables a message to authenticate itself.
[0126] In addition to protecting the internal network of the transport means, the transport means can also be protected when communicating with an external network such as the Internet. One advantage of having a connection of the transport means to a data source such as the Internet is that information from the transport means can be sent through the network to a remote location for analysis. Examples of transport means information include GPS, on-board diagnostics, tire pressure, and the like. Since these communication systems include a combination of telecommunications and informatics, such communication systems are often referred to as telematics. Further, the solution as described and depicted with respect to FIG. 2K can be utilized in this network and / or system, as well as other networks and / or systems, including those described and depicted herein.
[0127] FIG. 2L shows a secure end-to-end transport means communication channel according to an exemplary embodiment. Referring to FIG. 2L, the telematics network 290D includes a transport means 291D and a host server 295D disposed at a remote location (e.g., a web server, a cloud platform, a database, etc.) and connected to the transport means 291D via a network such as the Internet. In this example, a device 296D associated with the host server 295D can be installed inside the transport means 291D within the network. Further, although not shown, the device 296D can be connected to other elements of the transport means 291D, such as a CAN bus, an on-board diagnostic (ODBII) port, a GPS system, a SIM card, a modem, and the like. The device 296D can collect data from any of these systems and transmit the data to the server 295D via the network.
[0128] Secure management of data begins with the transportation means 291D. In some embodiments, the device 296D may collect information before, during, and after movement. The data may include GPS data, movement data, passenger information, diagnostic data, fuel data, speed data, and the like. However, the device 296D may simply communicate and return the collected information to the host server 295D in response to the ignition and completion of movement of the transportation means. Further, the communication may be initiated only by the device 296D and not by the host server 295D. Thus, in one example, the device 296D does not receive communications initiated by an external source.
[0129] To perform the communication, the device 296D may establish a secure private network between the device 296D and the host server 295D. Here, the device 296D may include an anti-tampering SIM card that provides secure access to the carrier network 294D via the radio tower 292D. When preparing to send data to the host server 295D, the device 296D may establish a one-way secure connection with the host server 295D. The carrier network 294D may communicate with the host server 295D using one or more security protocols. As a non-limiting example, the carrier network 294D may communicate with the host server 295D via a VPN tunnel that enables access through the firewall 293D of the host server 295D. As another example, the carrier network 294D may use data encryption (e.g., AES encryption, etc.) when sending data to the host server 295D. In some cases, the system may use multiple security measures such as both VPN and encryption to further secure the data.
[0130] In addition to communicating with external servers, the transportation means can also communicate with each other. In particular, a vehicle-to-vehicle (V2V) communication system enables the transportation means to communicate with each other, with roadside infrastructure (such as traffic lights, signs, cameras, parking meters, etc.), and with others of the same kind through a wireless network. The wireless network can include one or more of a Wi-Fi network, a cellular network, a dedicated short-range communication (DSRC) network, and the like. The transportation means can use V2V communication to provide information regarding, among other things, the speed, acceleration, brakes, and direction of the transportation means to other transportation means. Thus, the transportation means can receive insights into the state ahead before that state becomes visible, and thus can greatly reduce collisions. Further, the solution as described and depicted with respect to FIG. 2L can be utilized in this network and / or system, including what is described and depicted herein, as well as in other networks and / or systems.
[0131] FIG. 2M shows an example 290E of transportation means 293E and 292E that perform secure V2V communication using security certificates, according to an exemplary embodiment. Referring to FIG. 2M, the transportation means 293E and 292E can communicate via V2V communication through a short-range network, a cellular network, or the like. Before transmitting a message, the transportation means 293E and 292E can sign the message using their respective public key certificates. For example, the transportation means 293E can sign a V2V message using the public key certificate 294E. Similarly, the transportation means 292E can sign a V2V message using the public key certificate 295E. In one example, the public key certificates 294E and 295E are respectively associated with the transportation means 293E and 292E.
[0132] When receiving communications from each other, the transport means can confirm the signature with a certification authority 291E or the like. For example, the transport means 292E can have the certification authority 291E confirm that the public key certificate 294E used by the transport means 293E for signing V2V communications is a certified one. When the transport means 292E successfully confirms the public key certificate 294E, the transport means recognizes that the data is from a legitimate source. Similarly, the transport means 293E can have the certification authority 291E confirm that the public key certificate 295E used by the transport means 292E for signing V2V communications is a certified one. Furthermore, the solution as described and depicted with respect to FIG. 2M can be utilized in this network and / or system, including what is described and depicted herein, as well as in other networks and / or systems.
[0133] FIG. 2N shows a further additional FIG. 290F depicting an example of transport means interacting with a security processor and a wireless device, according to an exemplary embodiment. In some embodiments, the computer 224 shown in FIG. 2B can include a security processor 292F as shown in the process 290F of the example of FIG. 2N. In particular, the security processor 292F can perform approval, authentication, encryption (e.g., encryption), and the like for data transmissions sent between the ECU and other devices on the vehicle's CAN bus, as well as for data messages sent between different vehicles.
[0134] In the example of FIG. 2N, the security processor 292F may include an approval module 293F, an authentication module 294F, and an encryption module 295F. The security processor 292F may be implemented within the computer of the transportation means and may communicate with other transportation means elements, such as the ECU / CAN network 296F, wired and wireless devices 298F, such as a wireless network interface, an input port, and the like. The security processor 292F may ensure that data frames (such as CAN frames, etc.) transmitted internally within the transportation means (e.g., via the ECU / CAN network 296F) are secure. Similarly, the security processor 292F may ensure that messages transmitted between different transportation means and devices attached or connected to the computer of the transportation means via wires are also secure.
[0135] For example, the approval module 293F may store passwords, usernames, PIN codes, biometric scans, and the like for various transportation means users. The approval module 293F may determine whether a user (or technician) has the permission to access certain settings, such as those of the computer of the transportation means. In some embodiments, the approval module may communicate with a network interface to download any necessary approval information from an external server. When a user requests to make changes to the settings of the transportation means or modify the technical details of the transportation means via a console or GUI within the transportation means or via an attached / connected device, the approval module 293F may request the user to identify itself in some way before the settings are changed. For example, the approval module 293F may require a username, password, PIN code, biometric scan, a predefined line drawing or gesture, and the like. Accordingly, the approval module 293F may determine whether the user has the required permission (such as access, etc.) requested.
[0136] The authentication module 294F can be used to authenticate the internal communication between ECUs in the vehicle's CAN network. As an example, the authentication module 294F can provide information for authenticating the communication between ECUs. As an example, the authentication module 294F can send a bit signature algorithm to the ECUs of the CAN network. The ECU can use the bit signature algorithm to insert authentication bits into the CAN fields of the CAN frame. All ECUs on the CAN network usually receive each CAN frame. Each time a new CAN frame is generated by one of the ECUs, the bit signature algorithm can dynamically change things such as the position and amount of the authentication bits. The authentication module 294F can also provide a list of ECUs that are exempted (are in the safelist) and do not need to use authentication bits. The authentication module 294F can communicate with a remote server to retrieve updates and the like for the bit signature algorithm.
[0137] The encryption module 295F can store an asymmetric key pair used by the transport means to communicate with other external user devices and means of transport. For example, the encryption module 295F can provide the private key used by the transport means to encrypt / decrypt communication, while the corresponding public key can be provided to other user devices and the transport means so that other devices can decrypt / encrypt the communication. The encryption module 295F can communicate with a remote server to receive new keys, updates to keys, keys for new means of transport or users, and the like. The encryption module 295F can also send any updates to the local private / public key pair to the remote server.
[0138] Figure 3A shows a flow diagram 300 according to an exemplary embodiment. Referring to Figure 3A, the flow diagram includes one or more of linking a mobile device and a vehicle 302, configuring a data service request in the mobile device 304, receiving the data service request from the mobile device in a controller area network of the vehicle 306, and displaying a data set in the vehicle according to the configuration 308.
[0139] Figure 3B shows another flowchart 320 according to an exemplary embodiment. Referring to Figure 3B, the flowchart determines that a mobile device and one or more other mobile devices are in a vehicle, modifies a data service request based on the combination of mobile devices, and based on the combination, displays the modified data 322, determines that the mobile device is not in the vehicle, determines that the mobile device is close to one or more other vehicles related to the vehicle, and transmits a data service request from the mobile device to one or more other vehicles 323, determines that the mobile device is in another vehicle, receives a data service request from the mobile device in the controller area network of the other vehicle, configures the data service request in the other vehicle in the mobile device, and displays data in the other vehicle according to the configuration 324, when the data service request includes a purchase service, determines that one or more other vehicles related to the vehicle are eligible to receive the purchase service, notifies one or more other vehicles of the data service request including the purchase service, and displays data in the other vehicle according to the purchase service 325, receives a user profile from the mobile device, determines in the vehicle data a common area of interest and a threshold between user profiles, and displays in the vehicle the common area of interest and data values related to the threshold when exceeding the threshold 326, and links another mobile device to the vehicle, configures another data service request in the other mobile device, receives the other data service request from the mobile device in the controller area network of the other vehicle, and determines to display one of the data service request and the other data service request 327, including one or more of them.
[0140] Figure 3C shows yet another flow diagram 340 according to an exemplary embodiment. Referring to Figure 3C, the flow diagram includes receiving an event confirmation from one or more of the elements described or depicted herein, the confirmation comprising a blockchain consensus among peers represented by any of the elements 342, and executing a smart contract to record the confirmation in the blockchain based on the blockchain consensus 344.
[0141] Figure 4 shows a machine learning transportation means network diagram 400 according to an exemplary embodiment. Network 400 includes transportation means 402 coupled to a machine learning subsystem 406. The transportation means includes one or more sensors 404.
[0142] The machine learning subsystem 406 includes a learning model 408, which is a mathematical artifact created by a machine learning training system 410 that generates predictions by finding patterns within one or more training data sets. In some embodiments, the machine learning subsystem 406 is present within the transportation means 402. In other embodiments, the machine learning subsystem 406 is present external to the transportation means 402.
[0143] The transportation means 402 transmits data from one or more sensors 404 to the machine learning subsystem 406. The machine learning subsystem 406 provides the data from one or more sensors 404 to the learning model 408, and the learning model 408 returns one or more predictions. The machine learning subsystem 406 transmits one or more instructions to the transportation means 402 based on the predictions from the learning model 408.
[0144] In a further embodiment, the transport means 402 may transmit data from one or more sensors 404 to a machine learning training system 410. In yet another example, the machine learning subsystem 406 may transmit data from the sensors 404 to the machine learning subsystem 410. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein may utilize the machine learning network 400 as described herein.
[0145] FIG. 5A shows an exemplary vehicle configuration 500 for managing database transactions associated with a vehicle, according to an exemplary embodiment. Referring to FIG. 5A, when a particular transport means / vehicle 525 is involved in a transaction (e.g., a vehicle service, a dealership transaction, a delivery / pickup, a transportation service, etc.), the vehicle may receive (510) and / or give / transfer (512) an asset according to the transaction. The transport means processor 526 is present within the vehicle 525, and there is communication between the transport means processor 526, the database 530, the transport means processor 526, and the transaction module 520. The transaction module 520 may record information such as assets, parties, credits, service descriptions, dates, times, locations, results, notifications, unexpected events, etc. The transaction in the transaction module 520 may be replicated within the database 530. The database 530 may be one of an SQL database, an RDBMS, a relational database, a non-relational database, a blockchain, a distributed ledger, may be on-board in the transport means, may be off-board in the transport means, may be accessible directly and / or through a network, or may be accessible to the transport means.
[0146] Figure 5B shows an exemplary vehicle configuration 550 that manages database transactions conducted between various vehicles according to an exemplary embodiment. When a vehicle reaches a situation where a service needs to be shared with another vehicle, vehicle 525 can engage with another vehicle 508 to perform various operations such as sharing, transmitting, and obtaining service requests. For example, vehicle 508 may be scheduled for battery charging and / or may have a problem with its tires and may be within the route to pick up the goods for delivery. The transportation means processor 528 exists within vehicle 508, and there is communication between the transportation means processor 528, the database 554, and the transaction module 552. Vehicle 508 can notify another vehicle 525 that is within its network and operating on its blockchain member service. The transportation means processor 526 exists within vehicle 525, and there is communication between the transportation means processor 526, the database 530, the transportation means processor 526, and the transaction module 520. Then, vehicle 525 can receive information via a wireless communication request and pick up the goods from vehicle 508 and / or a server (not shown). The transaction is logged in the transaction modules 552 and 520 of both vehicles. Credits are transmitted from vehicle 508 to vehicle 525, and the record of the service transmitted is logged in the database 530 / 554 assuming that the blockchains are different from each other, or is logged in the same blockchain used by all members. The database 554 can be one of an SQL database, an RDBMS, a relational database, a non-relational database, a blockchain, a distributed ledger, can be on-board in the transportation means, can be off-board in the transportation means, and can be accessible directly and / or through a network.
[0147] FIG. 6A shows a blockchain architecture configuration 600 according to an exemplary embodiment. Referring to FIG. 6A, the blockchain architecture 600 may include a group of blockchain member nodes 602-606 as part of a particular blockchain element, such as a blockchain group 610. In an exemplary embodiment, in a permissioned blockchain, only members who have permission to access blockchain data, rather than all parties, are accessible. Blockchain nodes are involved in a number of activities, such as the addition and verification process (consensus) of blockchain entries. One or more of the blockchain nodes may approve an entry based on an endorsement policy and may provide an ordering service to all blockchain nodes. The blockchain node may initiate a blockchain operation (such as authentication), attempt to write to a blockchain ledger stored on the blockchain, and a copy thereof may also be stored on the underlying physical infrastructure.
[0148] Once a blockchain transaction 620 is received and approved by a consensus model determined by a member node, it is stored in the computer's memory. The approved transaction 626 is stored in the current block of the blockchain and committed to the blockchain via a commit procedure, which includes hashing the data content of the transactions within the current block and referencing the previous hash of the previous block. Within the blockchain, there may be one or more smart contracts 630 that define the conditions for the agreement and operation of transactions included within the smart contract executable application code 632, such as registered recipients, vehicle functions, requirements, permissions, sensor thresholds, etc. The code can be configured to identify whether the requesting entity is registered to receive vehicle services, what service functions the entity is eligible / required to receive considering the entity's profile status, and whether to monitor the entity's operation in subsequent events. For example, when a service event occurs and the user is in the vehicle, monitoring of sensor data can be triggered, and specific parameters such as the vehicle's charge level can be identified as exceeding / falling below a specific threshold over a specific period, and as a result, the current situation can be changed, which may require sending a warning to the management parties (i.e., the vehicle owner, vehicle operator, server, etc.), and the service can be identified and stored for reference. The vehicle sensor data collected can be based on the type of sensor data used to collect information about the vehicle's situation. The sensor data can also be the basis for vehicle event data 634 such as the location traveled, average speed, maximum speed, acceleration, whether there was any collision, whether the expected route was taken, where the next destination is, whether safety measures are being implemented, whether the vehicle has sufficient charge / fuel, etc. All such information can be the basis for the smart contract conditions 630, which are then stored in the blockchain.For example, the sensor thresholds stored in the smart contract can be used as a basis for determining whether the detected service is required and when and where the service should be performed.
[0149] FIG. 6B shows the configuration of a shared ledger according to an exemplary embodiment. Referring to FIG. 6B, an example 640 of blockchain logic includes a blockchain application interface 642 as an API or a plug-in application that couples to a computing device and an execution platform for a particular transaction. The blockchain configuration 640 may include one or more applications coupled to an application programming interface (API) to access and execute stored program / application code (e.g., smart contract executable code, smart contracts, etc.), and the program / application code may be created according to a customized configuration required by the participants, maintain its own state, control its own assets, and receive external information. This can be deployed and installed as an entry by appending to the distributed ledger on all blockchain nodes.
[0150] The smart contract application code 644 provides a basis for blockchain transactions by establishing application code that enables transaction conditions and states when executed. The smart contract 630, when executed, generates a particular approved transaction 626, which is then transferred to the blockchain platform 652. The platform includes security / approval 658, a computing device 656 that performs transaction management, and a storage unit 654 as a memory for storing transactions and smart contracts in the blockchain.
[0151] A blockchain platform may include blockchain data of various layers, services (such as encryption trust services and virtual execution environments, etc.), and underlying physical computer infrastructure that can be used to provide access to auditors who are attempting to receive and store new entries and access data entries. The blockchain may expose an interface that processes program code and provides access to the virtual execution environment necessary to participate in the physical infrastructure. Encryption trust services can be used to verify entries such as asset exchange entries and keep information private.
[0152] The blockchain architecture configurations of FIGS. 6A and 6B can process and execute program / application code through one or more interfaces exposed and services provided by the blockchain platform. As a non-limiting example, smart contracts can be created to execute reminders, updates, and / or other notifications that are the subject of changes or updates, etc. The smart contracts themselves can be used to identify approval and access requirements and the rules associated with the use of ledgers. For example, the information may include new entries that can be processed by one or more processing entities (such as processors or virtual machines, etc.) included in the blockchain layer. The result may include a decision to reject or approve new entries based on criteria defined by the smart contract and / or peer consensus. The physical infrastructure can be utilized to retrieve any of the data or information described herein.
[0153] Within the smart contract executable code, the smart contract is created via a high-level application and programming language and can then be written to the blocks within the blockchain. The smart contract can include executable code that is registered, stored, and / or replicated using a blockchain (e.g., a distributed network of blockchain peers). The entry is the execution of the smart contract code, which can occur in response to the conditions associated with the smart contract being satisfied. The execution of the smart contract can trigger a reliable modification to the state of the digital blockchain ledger. Modifications to the blockchain ledger resulting from the execution of the smart contract can be automatically replicated throughout the distributed network of blockchain peers by one or more consensus protocols.
[0154] The smart contract can write data to the blockchain in the format of key-value pairs. Further, the smart contract code can read the values stored in the blockchain and use those values during application operation. The smart contract code can write the outputs of various logical operations into the blockchain. The code can be used to create temporary data structures within a virtual machine or other computing platform. The data written to the blockchain can be made public and / or encrypted to remain private. Temporary data used / generated by the smart contract is held in memory by the supplied execution environment and then deleted once the data required by the blockchain is identified.
[0155] Smart contract executable code may include the code interpretation of a smart contract along with additional functionality. As described herein, smart contract executable code may be program code deployed on a computing network, where the program code is executed and verified by chain validators together during a consensus process. Smart contract executable code receives a hash and extracts from the blockchain a hash associated with a data template created by using a previously stored function extractor. When the hash of the hash identifier matches the hash created from the stored identifier template data, the smart contract executable code then sends an approval key to the requested service. Smart contract executable code may write data associated with encryption details to the blockchain.
[0156] FIG. 6C shows a blockchain configuration for storing blockchain transaction data according to an exemplary embodiment. Referring to FIG. 6C, an exemplary configuration 660 provides a vehicle 662, a user device 664, and a server 666 that share information with a distributed ledger (i.e., a blockchain) 668. In an event where a known established user profile is attempting to rent a vehicle using an established rating profile, the server may represent a service provider entity that queries the vehicle service provider to share user profile rating information. The server 666 may receive and process data related to the service requirements of the vehicle. When a service event occurs, such as vehicle sensor data indicating a need for fuel / charge or maintenance services, smart contracts may be used to call rules, thresholds, collection of sensor information, etc., which may be used to call a vehicle service event. Blockchain transaction data 670 is stored for each transaction, such as access events, subsequent updates to the service status of the vehicle, and event updates. The transaction may include the parties, requirements (e.g., 18 years old, eligible candidates for services, valid driver's license, etc.), compensation levels, distance traveled between events, registered recipients permitted access to the event and provision of vehicle services, rights / permissions, sensor data retrieved during vehicle event operations to log details of the next service event and identify the status of the vehicle, and thresholds used to determine whether the service event has been completed and whether the status of the vehicle has changed.
[0157] FIG. 6D shows the content of blockchain block 680 that can be added to the distributed ledger and block structures 682A - 682n according to an exemplary embodiment. Referring to FIG. 6D, a client (not shown) can present an entry to a blockchain node to perform activities on the blockchain. As an example, the client can be an application that functions on behalf of a requester such as a device, person, or entity to propose an entry to the blockchain. Multiple blockchain peers (e.g., blockchain nodes) can maintain the state of the blockchain network and a copy of the distributed ledger. Various types of blockchain nodes / peers can exist within a blockchain network, including an approval peer that simulates and approves an entry proposed by a client, and a commit peer that verifies an endorsement, validates the entry, and commits the entry to the distributed ledger. In this example, a blockchain node can perform the role of an endorser node, a committer node, or both.
[0158] This system includes a blockchain that stores immutable and ordered records in blocks, and a state database (current world state) that maintains the current state of the blockchain. One distributed ledger may exist per channel, and each peer maintains its own copy of the distributed ledger for each channel of which it is a member. This blockchain is an entry log constructed as hash-linked blocks, where each block contains a sequence of N entries. A block may contain various components such as those shown in FIG. 6D. The linkage of blocks can be generated by adding a hash regarding the header of the previous block into the block header of the current block. In this way, all entries in the blockchain are ordered and cryptographically linked to prevent the tampering of blockchain data without breaking the hash link. Further, because they are linked, the latest block in the blockchain represents all entries that have occurred before it. This blockchain can be stored on a peer file system (local or attached storage) that supports the workload of an append-only blockchain.
[0159] The current state of the blockchain and the distributed ledger can be stored in the state database. Here, the current state data represents the latest values for all keys included in the chain entry log of the blockchain. The invocation of smart contract executable code executes an entry against the current state in the state database. To make the interaction of the smart contract executable code extremely efficient, the latest values of all keys are stored in the state database. The state database may include an indexed view of the entry log of the blockchain, and thus it can be regenerated from the chain at any time. The state database can be automatically restored (or generated if necessary) at the startup of the peer before an entry is accepted.
[0160] The approval node receives an entry from the client and approves the entry based on the simulated result. The approval node holds a smart contract that simulates the entry proposal. When the approval node approves an entry, the approval node creates an entry endorsement, and the entry endorsement is a signed response from the approval node to the client application, indicating the endorsement of the simulated entry. The method of approving an entry depends on the endorsement policy that can be specified within the smart contract executable code. An example of the endorsement policy is that the majority of the approving peers must approve the entry. Different channels may have different endorsement policies. The approved entry is transferred by the client application to the ordering service.
[0161] The ordering service receives the approved entry, orders the entry within a block, and distributes the block to the commit peers. For example, the ordering service may start a new block when the threshold of entries is reached, when the timer times out, or under another condition. In this example, the blockchain node is the commit peer that received the data block 682A to be stored on the blockchain. The ordering service can be composed of an orderer cluster. The ordering service does not process entries or smart contracts, nor does it maintain a shared ledger. Instead, the ordering service can receive the approved entry and specify the order in which the entry is committed to the distributed ledger. The architecture of the blockchain network can be designed such that a specific implementation of "ordering" (e.g., Solo, Kafka, BFT, etc.) is a pluggable component.
[0162] Entries are written to the distributed ledger in a consistent order. The order of the entries is established to ensure that updates to the state database are valid when the entry is committed to the network. Unlike cryptocurrency blockchain systems (e.g., Bitcoin) where ordering occurs by solving an encryption puzzle or by mining, in this example, the parties to the distributed ledger can select the ordering mechanism that best suits the network.
[0163] Referring to FIG. 6D, a block 682A (also referred to as a data block) stored on a blockchain and / or a distributed ledger may include a plurality of data segments such as block headers 684A to 684n, transaction-specific data 686A to 686n, and block metadata 688A to 688n. It should be understood that the various blocks and their contents described, such as block 682A and its contents, are for illustrative purposes only and do not mean to limit the scope of the exemplary embodiments. In some cases, both block header 684A and block metadata 688A may be smaller than the transaction-specific data 686A that stores entry data, but this is not a requirement. Block 682A may store transaction information for N entries (e.g., 100, 500, 1000, 2000, 3000, etc.) within block data 690A to 690n. Block 682A may also include a link to a previous block (e.g., on the blockchain) within block header 684A. In particular, block header 684A may include the hash of the header of the previous block. Block header 684A may also include a unique block number, the hash of block data 690A of the current block 682A, and the like. The block number of block 682A is unique and can be assigned in an increasing / sequential order starting from zero. The first block in the blockchain may be referred to as a genesis block that includes information about the blockchain, its members, and the data stored therein.
[0164] The block data 690A can store the entry information of each entry recorded in the block. For example, the entry data includes the type of the entry, version, timestamp, channel ID of the distributed ledger, entry ID, epoch, visibility of the payload, path of the smart contract executable code (deployment transmission), name of the smart contract executable code, version of the smart contract executable code, input (smart contract executable code and functions), client (creator) identification information such as public key and certificate, client signature, endorser identification information, endorser signature, proposal hash, event of the smart contract executable code, response status, namespace, read set (list of keys and versions read by the entry, etc.), write set (list of keys and values, etc.), start key, end key, list of keys, query summary of the Merkle tree, and one or more of the same kind. The entry data can be stored for each of the N entries.
[0165] In some embodiments, the block data 690A may also store transaction-specific data 686A that adds additional information to the hash link chain of blocks in the blockchain. Thus, the data 686A may be stored in the immutable log of blocks in the distributed ledger. Some of the advantages of storing the data 686A are reflected in the various embodiments disclosed and depicted herein. The block metadata 688A may store multiple fields of metadata (e.g., as a byte array, etc.). The metadata fields may include signatures in block creation, references to the last configuration block, entry filters that identify valid and invalid entries within the block, the last offset of the ordering service that ordered the block, and the like. The signature, the last configuration block, and the orderer's metadata may be added by the ordering service. On the other hand, a committer of a block (such as a blockchain node) may add valid / invalid information based on an endorsement policy, verification of read / write sets, and the like. The entry filter may include a byte array of a size equal to the number of entries in the block data 610A and a verification code that identifies whether the entry was valid / invalid.
[0166] Other blocks 682B - 682n in the blockchain also have a header, a file, and a value. However, unlike the first block 682A, each of the headers 684A - 684n in the other blocks includes the hash value of the previous block. The hash value of the previous block may simply be the hash of the header of the previous block or the hash value of the entire previous block. By including the hash value of the previous block in each of the remaining blocks, tracking can be done block by block back from the Nth block to the genesis block (and the associated original file) as indicated by the arrow 692, establishing an auditable and immutable chain of custody.
[0167] The above-described embodiments can be implemented in hardware, a computer program executed by a processor, firmware, or a combination of the above. The computer program can be embodied on a computer-readable medium such as a storage medium. For example, the computer program can be present in a random access memory ("RAM"), flash memory, read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), register, hard disk, removable disk, compact disk read-only memory ("CD-ROM"), or any other form of storage medium known in the art.
[0168] A preferred storage medium can be connected to the processor such that the processor can read information from and write information to the storage medium. Alternatively, the storage medium can be integrated with the processor. The processor and the storage medium can be present within an application-specific integrated circuit ("ASIC"). Alternatively, the processor and the storage medium can be present as separate components. For example, FIG. 7 shows an exemplary computer system architecture 700 that can represent any of the above-described components or can be integrated with any of the above-described components.
[0169] FIG. 7 is not intended to imply any limitation with respect to the use or functionality scope of the embodiments of the present application described herein. Nevertheless, the computing node 700 is implementable and / or capable of performing any of the above-described functions herein.
[0170] Within the computing node 700, there exists a computer system / server 702 operable in the environment or configuration of many other general-purpose or special-purpose computing systems. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with the computer system / server 702 include personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable household appliances, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, and the like, but are not limited thereto.
[0171] The computer system / server 702 may be described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 702 may be executed in a distributed cloud computing environment where tasks are performed by remote processing devices coupled through a communications network. In a distributed cloud computing environment, program modules may be located in both local computer system storage media including memory storage devices and remote computer system storage media.
[0172] As shown in FIG. 7, the computer system / server 702 within the cloud computing node 700 is shown in the form of a general-purpose computing device. The components of the computer system / server 702 may include, but are not limited to, one or more processors or processing units 704, a system memory 706, and a bus that couples various system components including the system memory 706 to the processor 704.
[0173] The bus represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of various bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Extended ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
[0174] The computer system / server 702 typically includes various computer system readable media. Such media can be any available media accessible by the computer system / server 702, including both volatile and non-volatile media, removable and non-removable media. In one example, system memory 706 implements the flow diagrams of other figures. System memory 706 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 708 and / or cache memory 710. The computer system / server 702 can further include other removable / non-removable volatile / non-volatile computer system storage media. By way of mere example, memory 706 can be provided for reading from and writing to a non-removable non-volatile magnetic medium (commonly referred to as a "hard drive" and not shown). Although not shown, a magnetic disk drive for reading from and writing to a removable non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media, can be provided. In such cases, each can be connected to the bus by one or more data media interfaces. As further depicted and described below, memory 706 can include at least one program product having a set of program modules (e.g., at least one) configured to execute the functions of various embodiments of the present application.
[0175] A program / util utility having a set (at least one) of program modules may be stored, by way of example and not limitation, in memory 706, as well as in an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include an implementation of a networking environment. The program modules generally execute the functions and / or methods of the various embodiments of the present application described herein.
[0176] As will be appreciated by one of ordinary skill in the art, aspects of the present application may be embodied as a system, method, or computer program product. Accordingly, aspects of the present application may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects that may generally all be referred to herein as a “circuit,” “module,” or “system.” Furthermore, aspects of the present application may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0177] The computer system / server 702 can also include I / O devices 712 (such as I / O adapters) that may include a keyboard, a pointing device, a display, a voice recognition module, etc., one or more devices that enable a user to interact with the computer system / server 702, and / or any device that enables the computer system / server 702 to communicate with one or more other computing devices (such as a network card or a modem). The computer system / server 702 can communicate with one or more external devices via the I / O interface of the device 712. Additionally, the computer system / server 702 can communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (such as the Internet), via a network adapter. As depicted, the device 712 communicates with other components of the computer system / server 702 via a bus. Although not shown, it should be understood that other hardware and / or software components can be used with the computer system / server 702. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data storage systems.
[0178] Preferred embodiments of at least one of a system, a method, and a non-transitory computer-readable medium are shown in the accompanying drawings and described in the foregoing detailed description, but the present application is not limited to the disclosed embodiments, and it will be understood that many rearrangements, modifications, and substitutions are possible as defined by the following claims. For example, the functions of the systems of the various figures can be performed by one or more of the modules or components described herein, or in a distributed architecture, and can include a transmitter, a receiver, or a pair of both. For example, all or part of the functions performed by individual modules can be performed by one or more of these modules. Further, the functions described herein can be performed at various times in relation to various events internal or external to the modules or components. Also, the information transmitted between the various modules can be transmitted between the modules via at least one of a data network, the Internet, a voice network, an Internet protocol network, a wireless device, a wired device, and / or a plurality of protocols. Also, messages transmitted or received by any of the modules can be transmitted or received directly and / or via one or more of the other modules.
[0179] One of ordinary skill in the art will understand that "system" can be embodied as a personal computer, a server, a console, a personal digital assistant (PDA), a mobile phone, a tablet computing device, a smart phone, or any other suitable computing device, or a combination of devices. Presenting the functions described above as being performed by a "system" is not intended to limit the scope of the present application in any way, but rather is intended to provide an example of one of a number of embodiments. In fact, the methods, systems, and devices disclosed herein can be implemented in a local and distributed form consistent with computing technology.
[0180] Note that some of the system functions described in this specification are presented as modules to more specifically emphasize the independence of their implementation modes. For example, a module can be implemented as a hardware circuit comprising custom very large scale integration (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other individual components. A module can also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, graphics processing units, or the like.
[0181] A module can also be implemented at least partially in software for execution by various types of processors. For example, an identified unit of executable code can comprise one or more physical or logical blocks of computer instructions that can be organized, for example, as objects, procedures, or functions. Still, the executable files of the identified modules need not be physically located together and can comprise different instructions stored in different locations that, when logically combined, comprise the module and achieve the specified purpose for the module. Further, a module can be stored on a computer-readable medium, which can be, for example, a hard disk drive, a flash device, random access memory (RAM), a tape, or any other such medium used to store data.
[0182] In fact, the modules of executable code can be single instructions or multiple instructions, and furthermore, they can be distributed across several different memory devices among different programs in several different code segments. Similarly, the arithmetic data can be identified and shown within a module herein, embodied in any suitable form, and organized within any suitable type of data structure. The arithmetic data can be collected as a single data set or distributed in different locations including different storage devices, and can exist at least partially as mere electronic signals on a system or network.
[0183] It will be readily understood that the components of the present application schematically described and shown in the figures herein can be arranged and designed in a wide variety of different configurations. Accordingly, the detailed description of the embodiments is not intended to limit the scope of the present application as claimed, but represents only selected embodiments of the present application.
[0184] Those skilled in the art will readily understand that the above can be performed in different orders of steps and / or with hardware elements of different configurations than those disclosed. Accordingly, although the present application is described based on these preferred embodiments, it will be apparent to those skilled in the art that certain modifications, variations, and alternative structures are obvious.
[0185] Although the preferred embodiments of the present application are described, the described embodiments are merely exemplary, and it should be understood that the scope of the present application should be determined only by the appended claims when considering all equivalents and modifications (e.g., protocols, hardware devices, software platforms, etc.) of the claims.
Claims
1. Receiving a request from a first mobile device linked to the first vehicle by a Controller Area Network (CAN) bus of the first vehicle, wherein the first mobile device is configured before transmitting the request to the CAN bus, and the processor of the first vehicle receives the request from the CAN bus. In response to the aforementioned request, the processor generates a first configuration dataset by configuring the dataset associated with the aforementioned request, The processor controls the display device to display the first configuration dataset, It is determined that the first mobile device is not located inside the first vehicle, Determining that the first mobile device is within the Bluetooth® communication range of the second vehicle, that the first vehicle and the second vehicle have a common owner, and that the request is forwarded from the first mobile device to the second vehicle, Methods that include...
2. Determining that the first mobile device and the second mobile device are located inside the first vehicle, To generate a modified request by modifying the request based on the combination of the first mobile device and the second mobile device, Based on the aforementioned modified request, the modified data will be displayed, The method according to claim 1, including the method described in claim 1.
3. The method according to claim 1, wherein generating the first configuration dataset comprises configuring the dataset using the user profile of the first vehicle.
4. The request includes a purchase service, and the method is Based on the identified association with the first vehicle, it is determined that the second vehicle is eligible to receive the purchase service, To notify the second vehicle of the aforementioned request, The data is displayed in the second vehicle according to the purchase service, The method according to claim 1, further comprising:
5. Receiving the user profile of the first vehicle from the first mobile device, Based on the profile, determine the region of interest related to the first vehicle, In response to exceeding a threshold related to the region of interest, the display device is made to display the region of interest and data values related to the region of interest from the first configuration dataset. The method according to claim 1, including the method described in claim 1.
6. Linking the first vehicle to a second mobile device, The CAN bus allows for receiving different requests from the second mobile device, In response to the aforementioned different requirements, a second configuration dataset is generated by configuring a second dataset associated with the aforementioned different requirements, Controlling the display device to display either the first configuration dataset or the second configuration dataset identified for display, The method according to claim 1, including the method described in claim 1.
7. A system, Memory for storing instructions, A processor that communicates with the aforementioned memory, The instruction is provided, The first mobile device receives a request from the first vehicle via the Controller Area Network (CAN) bus of the first vehicle, the first mobile device configures the request before sending it to the CAN bus, and the processor receives the request from the CAN bus. In response to the aforementioned request, the dataset associated with the aforementioned request is modified to generate a first configuration dataset, Control the display device to display the first configuration dataset, It is determined that the first mobile device is not located inside the first vehicle. It is determined that the first mobile device is within the Bluetooth® communication range of the second vehicle, and the first vehicle and the second vehicle have a common owner. The request is transferred from the first mobile device to the second vehicle. A system comprising the processor as described above.
8. The processor is It is determined that the first mobile device and the second mobile device are located inside the first vehicle. The request is modified based on the combination of the first mobile device and the second mobile device, and the modified request is generated. Based on the aforementioned modified request, display the modified data. The system according to claim 7, configured as described above.
9. The processor is The first configuration dataset is generated, The system according to claim 7, configured to construct the dataset using the user profile of the first vehicle.
10. The request includes a purchase service, The aforementioned processor, Based on the identified association with the first vehicle, it is determined that the second vehicle is eligible to receive the purchase service. The second vehicle is notified in response to the aforementioned request. In accordance with the aforementioned purchase service, data is displayed in the second vehicle. The system according to claim 7, configured as described above.
11. The processor is The user profile of the first vehicle is received from the first mobile device. Based on the profile, the areas of interest related to the first vehicle are determined. In response to exceeding a threshold related to the region of interest, the display device is made to display the region of interest and data values related to the region of interest from the first configuration dataset. The system according to claim 7, configured as described above.
12. The processor is The first vehicle is linked to a second mobile device. The CAN bus receives different requests from the second mobile device. In response to the aforementioned different requests, modify the second dataset associated with the aforementioned different requests to generate a second configuration dataset, Control the display device to display either the first configuration dataset or the second configuration dataset identified for display. The system according to claim 7, configured as described above.
13. A computer-readable storage medium comprising instructions, wherein, when the instructions are executed by a processor associated with a first vehicle, the instructions are directed to the processor: The first vehicle's processor receives a request from a first mobile device linked to the first vehicle via a Controller Area Network (CAN) bus, wherein the first mobile device configures the request before transmitting it to the CAN bus, and the first vehicle's processor receives the request from the CAN bus. In response to the aforementioned request, the processor generates a first configuration dataset by configuring the dataset associated with the aforementioned request, The processor controls the display device to display the first configuration dataset, It is determined that the first mobile device is not located inside the first vehicle, The determination that the first mobile device is within the Bluetooth® communication range of the second vehicle, and that the first vehicle and the second vehicle have a common owner, Transferring the request from the first mobile device to the second vehicle, A computer-readable storage medium that enables the following process.
14. The instruction is given to the processor, Determining that the first mobile device and the second mobile device are located inside the first vehicle, To generate a modified request by modifying the request based on the combination of the first mobile device and the second mobile device, Based on the aforementioned modified request, the modified data will be displayed, A computer-readable storage medium according to claim 13, which enables the following:
15. The computer-readable storage medium according to claim 13, wherein generating the first configuration dataset comprises configuring the dataset using the user profile of the first vehicle.
16. The request includes a purchase service, and the instruction is to the processor, Based on the identified association with the first vehicle, it is determined that the second vehicle is eligible to receive the purchase service, To notify the second vehicle of the aforementioned request, The data is displayed in the second vehicle according to the purchase service, A computer-readable storage medium according to claim 13, which enables the following:
17. The instruction is given to the processor, Receiving the user profile of the first vehicle from the first mobile device, Based on the profile, determine the region of interest related to the first vehicle, Controlling the display device to display the region of interest and data values related to the region of interest from the first configuration dataset in response to exceeding a threshold related to the region of interest, A computer-readable storage medium according to claim 13, which enables the following: