Remote control system and remote control method for a vehicle
By combining multiple message queues, idempotent operations, and timeout services, the problem of low delivery rate of remote vehicle control commands is solved, the stability and security of the system are improved, and the successful execution of commands is ensured.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHONGQING CHANGAN TECH CO LTD
- Filing Date
- 2023-08-16
- Publication Date
- 2026-05-29
AI Technical Summary
In existing technologies, the delivery rate of remote control commands for vehicles is low, especially when the network is unstable, which can easily lead to the failure of sending remote control commands.
Multiple message queues are used to send remote control requests. The vehicle-side layer performs idempotent operations and uses a timeout service to determine whether the remote control command has been lost. If the command is lost, it is resent. The main and backup actuators work together to ensure that the command is successfully executed.
This improves the delivery rate of remote control commands, reduces the possibility of the same command being executed repeatedly at the vehicle level, and enhances the stability and security of the system.
Smart Images

Figure CN117014481B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of automotive remote control technology, specifically to a remote control system and remote control method for automobiles. Background Technology
[0002] Vehicle remote control systems based on the Internet of Vehicles (IoV) allow car owners to remotely control their vehicles without physically approaching them, performing functions such as locking and unlocking doors, locating the vehicle, turning on the air conditioning, starting the engine, and cutting off fuel and power. Remote vehicle control enhances convenience and comfort. The quality of a vehicle remote control system is primarily assessed in three aspects: first, the time required from triggering the request to completing the operation (shorter time equates to a better user experience); second, the stability of the function, i.e., the quality of service provided even under unstable communication signal conditions; and third, the security of the service, ensuring it does not pose a threat to the user's life or property.
[0003] Currently, existing technologies generally use SMS or the internet to send commands. Sending commands via SMS relies heavily on the success rate of SMS delivery; if the SMS fails to send, the delivery rate of remote control commands will be affected. While sending remote control commands via the internet can better solve the timeliness problem of SMS, it places high demands on the stability of the remote control system. Network packet loss or service errors can easily lead to the failure of remote control command transmission to the vehicle. Therefore, existing vehicle remote control technologies suffer from a low remote control command delivery rate. Summary of the Invention
[0004] The purpose of this application is to provide a remote control system and remote control method for automobiles, in order to solve the problem of low remote control command delivery rate in existing vehicle remote control technologies.
[0005] To achieve the above objectives, the first aspect of this application provides a remote control system for a vehicle, comprising:
[0006] The application layer is configured to send remote control requests;
[0007] The platform layer, which communicates with the application layer, is configured to convert remote control requests into multiple remote control commands and send these commands to the vehicle-side layer.
[0008] The platform layer includes:
[0009] The application layer gateway service communicates with the application layer and is configured to receive and replicate remote control requests sent by the application layer to obtain multiple remote control requests, and send multiple remote control requests to multiple remote control execution engines through multiple message queues.
[0010] Multiple remote control execution engines communicate with the application layer gateway service. Each remote control execution engine is configured to convert received remote control requests into remote control commands and send the remote control commands to the corresponding vehicle-side layer gateway service.
[0011] Multiple vehicle-side layer gateway services communicate with multiple remote control execution engines. Each vehicle-side layer gateway service is configured to forward received remote control commands to the vehicle-side layer.
[0012] The vehicle-side layer communicates with the platform layer and is configured to receive multiple remote control commands, perform idempotent operations on the multiple remote control commands to obtain the target remote control command, and execute the target remote control command.
[0013] In this embodiment of the application, the vehicle end layer includes:
[0014] Multiple communication services communicate with multiple vehicle-side layer gateway services, and each communication service is configured to receive remote control commands forwarded by the corresponding vehicle-side layer gateway service;
[0015] The remote control service communicates with multiple communication services and is configured to perform idempotent operations on multiple remote control commands to obtain the target remote control command, and parse the target remote control command to obtain the parsed target remote control command.
[0016] The actuator communicates with the remote control service and is configured to execute parsed target remote control commands.
[0017] In this embodiment, the actuator includes a main actuator and a standby actuator, and the remote control service is further configured to:
[0018] Determine if communication with the main executor is normal;
[0019] If communication with the main executor is determined to be normal, the main executor is invoked.
[0020] If an anomaly is detected in communication with the main executor, the backup executor is invoked, and the invocation of the backup executor is checked to determine whether it was successful. If the invocation of the backup executor fails, a remote control failure alert is sent.
[0021] In this embodiment of the application, the vehicle end layer includes:
[0022] The wake-up service is configured to wake up the vehicle layer when the vehicle layer is not connected to the platform layer.
[0023] In this embodiment of the application, the wake-up service is further configured to:
[0024] Obtain the IoT card number at the vehicle-side layer;
[0025] The vehicle-side layer is woken up via SMS based on the IoT card number, and it is determined whether the SMS wake-up was successful.
[0026] If the SMS wake-up attempt fails, the vehicle-side layer will be woken up again by SMS until the wake-up attempt succeeds or the number of retries for SMS wake-up reaches the first preset number.
[0027] If the number of retries for SMS wake-up reaches the first preset number, ring wake-up is performed on the vehicle-side layer, and it is determined whether the ring wake-up is successful.
[0028] If the ringing wake-up attempt fails, the vehicle end layer will be re-tried to ring the wake-up attempt until the wake-up attempt succeeds or the number of retries for ringing the wake-up attempt reaches the second preset number.
[0029] If the number of retries for ringing wake-up reaches the second preset number, a wake-up failure result will be returned.
[0030] In this embodiment of the application, each remote control execution engine includes:
[0031] The routing service communicates with the wake-up service and is configured to determine whether the vehicle-side layer is connected to the platform layer. If the vehicle-side layer is not connected to the platform layer, the wake-up service is invoked to wake up the vehicle-side layer.
[0032] In this embodiment of the application, each remote control execution engine includes:
[0033] The data conversion service, which communicates with the application layer gateway service, is configured to convert received remote control requests into remote control commands.
[0034] The storage service communicates with the data transformation service and is configured to store remote control commands.
[0035] In this embodiment of the application, the platform layer also includes a global service, which is configured as follows:
[0036] Determine whether the platform layer has received a historical data query command;
[0037] If the platform layer determines that it has received a historical data query instruction, it performs an idempotent operation on the historical data corresponding to the historical data query instruction.
[0038] In this embodiment of the application, the platform layer is further configured to:
[0039] Determine if remote control commands have been lost;
[0040] In the event of a lost remote control command, the system queries the storage service for the remote control command stored in the storage service to identify the timed-out command and then resends it.
[0041] A second aspect of this application provides a remote control method for a vehicle, applied to a remote control system for a vehicle. The remote control system includes an application layer, a platform layer, and a vehicle-side layer. The platform layer communicates with both the application layer and the vehicle-side layer. The platform layer includes an application layer gateway service, multiple remote control execution engines, and multiple vehicle-side layer gateway services. The application layer gateway services communicate with the application layer, and the multiple remote control execution engines communicate with both the application layer gateway services and the multiple vehicle-side layer gateway services. The remote control method includes:
[0042] Send remote control requests through the application layer;
[0043] The application layer gateway service receives and replicates remote control requests sent by the application layer to obtain multiple remote control requests, and sends multiple remote control requests to multiple remote control execution engines through multiple message queues.
[0044] Each of the multiple remote control execution engines converts the received remote control request into a remote control command and sends the remote control command to the corresponding vehicle-side layer gateway service.
[0045] The received remote control commands are forwarded to the vehicle layer by each of the multiple vehicle-side layer gateway services.
[0046] The vehicle-side layer receives multiple remote control commands, performs idempotent operations on these commands to obtain the target remote control command, and then executes the target remote control command.
[0047] The beneficial effects of this application are:
[0048] (1) This application sends multiple remote control requests to multiple remote control execution engines through multiple message queues, which can improve the delivery rate of remote control commands;
[0049] (2) This application performs idempotent operations on multiple remote control commands through the vehicle-side layer to obtain the target remote control command, which can reduce the possibility of the vehicle-side layer repeatedly executing the same remote control command.
[0050] (3) This application determines whether the remote control command is lost through a timeout service. If the command is lost, it determines the timeout and resends it, which can further improve the delivery rate of the remote control command.
[0051] Other features and advantages of the embodiments of this application will be described in detail in the following detailed description section. Attached Figure Description
[0052] The accompanying drawings are provided to further illustrate the embodiments of this application and form part of the specification. They are used together with the following detailed description to explain the embodiments of this application, but do not constitute a limitation on the embodiments of this application. In the drawings:
[0053] Figure 1 The diagram schematically illustrates the technical architecture of a remote control system for a vehicle according to an embodiment of this application.
[0054] Figure 2 The illustration schematically shows a timing diagram of a platform layer translating a remote control request according to an embodiment of this application;
[0055] Figure 3 This schematically illustrates an architecture diagram of a vehicle-side layer according to an embodiment of this application;
[0056] Figure 4 The illustration schematically shows a timing diagram of a vehicle-side layer processing remote control command according to a specific embodiment of this application;
[0057] Figure 5 This illustration schematically shows an architecture diagram of a platform layer according to an embodiment of this application;
[0058] Figure 6 A flowchart illustrating a wake-up process for a vehicle-side layer according to an embodiment of this application is shown schematically.
[0059] Figure 7 This illustration schematically shows a business architecture diagram of a remote control system for a vehicle according to a specific embodiment of this application;
[0060] Figure 8 A flowchart illustrating a remote control method for a car according to an embodiment of this application is shown schematically.
[0061] The breakdown is as follows: 110 - Application Layer; 120 - Platform Layer; 121 - Application Layer Gateway Service; 122 - Remote Control Execution Engine; 123 - Vehicle Layer Gateway Service; 130 - Vehicle Layer; 131 - Communication Service; 132 - Remote Control Service; 133 - Actuator; 134 - Wake-up Service; 201 - Data Conversion Service; 202 - Routing Service; 203 - Storage Service; 204 - Timeout Service; 401 - Main Actuator; 402 - Backup Actuator; 501 - Global Service. Detailed Implementation
[0062] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are only for illustration and explanation of the embodiments of this application and are not intended to limit the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.
[0063] It should be noted that if the embodiments of this application involve directional indicators (such as up, down, left, right, front, back, etc.), the directional indicators are only used to explain the relative positional relationship and movement of the components in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indicators will also change accordingly.
[0064] Furthermore, if the embodiments of this application involve descriptions such as "first" or "second," these descriptions are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, features defined with "first" or "second" may explicitly or implicitly include at least one of those features. Additionally, the technical solutions of various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. If the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.
[0065] Figure 1 This diagram schematically illustrates the technical architecture of a remote control system for a vehicle according to an embodiment of this application. Figure 1 As shown in the figure, this application provides a remote control system for a car, which may include:
[0066] Application layer 110 is configured to send remote control requests;
[0067] Platform layer 120, communicating with application layer 110, is configured to convert remote control requests into multiple remote control commands and send these commands to the vehicle-side layer.
[0068] Platform layer 120 may include:
[0069] Application layer gateway service 121 communicates with application layer 110 and is configured to receive and copy remote control requests sent by application layer 110 to obtain multiple remote control requests, and send multiple remote control requests to multiple remote control execution engines 122 through multiple message queues.
[0070] Multiple remote control execution engines 122 communicate with application layer gateway service 121. Each remote control execution engine 122 is configured to convert received remote control requests into remote control instructions and send the remote control instructions to the corresponding vehicle-side layer gateway service 123.
[0071] Multiple vehicle-side layer gateway services 123 communicate with multiple remote control execution engines 122, and each vehicle-side layer gateway service 123 is configured to forward received remote control commands to the vehicle-side layer 130.
[0072] The vehicle-side layer 130 communicates with the platform layer 120 and is configured to receive multiple remote control commands, perform idempotent operations on the multiple remote control commands to obtain the target remote control command, and execute the target remote control command.
[0073] In this embodiment, the remote control system for a vehicle includes an application layer 110, a platform layer 120, and a vehicle-side layer 130. The application layer 110 can be a mobile phone, an open application programming interface (API), or a wearable device; no limitation is made here. The application layer 110 can send remote control requests to the platform layer 120. The platform layer 120 includes an application layer gateway service 121, multiple remote control execution engines 122, and multiple vehicle-side layer gateway services 123. The application layer gateway service 121 communicates with the application layer 110. The multiple vehicle-side layer gateway services 123 communicate with the vehicle-side layer 130. Figure 2 A timing diagram illustrating a platform-layer conversion of a remote control request according to an embodiment of this application is shown schematically. Figure 2 As shown, platform layer 120 can receive remote control requests sent by application layer 110 through application layer gateway service 121. Upon receiving a remote control request, application layer gateway service 121 can generate a request identifier corresponding to the remote control request and duplicate the request identifier to obtain multiple identical request identifiers. These multiple request identifiers are then sent to multiple remote control execution engines 122 through multiple message queues (MQ). In one example, to simultaneously meet the requirements of reducing resource waste and improving the delivery rate of remote control requests, application layer gateway service 121 can send two identical request identifiers to two remote control execution engines 122 through dual message queues.
[0074] After receiving multiple request identifiers, each of the multiple remote control execution engines 122 can determine its corresponding remote control request based on the received request identifier, convert the remote control request into a remote control command, and then send the remote control command to its corresponding vehicle-side layer gateway service 123. It should be noted that the multiple remote control execution engines 122 can be deployed in different data centers, so that if any data center experiences an anomaly, the remaining remote control execution engines 122 can still continue to be used. Each remote control execution engine 122 includes a data conversion service 201, a routing service 202, and a storage service 203. The data conversion service 201, routing service 202, and storage service 203 communicate using a synchronous remote procedure call (RPC) protocol, ensuring message delivery rate and allowing the caller to detect and handle call failures. The data conversion service 201 can convert remote control requests into remote control commands, enabling the remote control requests to be converted into remote control commands that the vehicle-side layer 130 can recognize. After the conversion is complete, the data conversion service 201 can send the remote control command to the storage service 203. The storage service 203 can persist the remote control command. After the storage service 203 persists the remote control command, the routing service 202 can route the remote control command to the corresponding vehicle-side layer gateway service 123 according to the content of the remote control command. In addition, the routing service 202 can also be used to determine whether the vehicle-side layer 130 is connected to the platform layer 120. If the vehicle-side layer 130 is not connected to the platform layer 120, the wake-up service of the vehicle-side layer 130 is invoked to wake up the vehicle-side layer 130. Subsequently, multiple vehicle-side layer gateway services 123 can send multiple remote control commands to the vehicle-side layer 130.
[0075] To ensure delivery rate, platform layer 120 sends multiple identical remote control commands to vehicle layer 130. After receiving these commands, to reduce the likelihood of repeated execution of the same command, vehicle layer 130 can perform idempotent operations on the commands to deduplicate them and obtain the target command. Further, vehicle layer 130 needs to parse the target command to obtain and execute it. This ensures that application layer 110 can remotely control vehicle layer 130.
[0076] This application improves the delivery rate of remote control commands by having an application layer that sends remote control requests, converts them into multiple remote control commands, sends these commands to the platform layer of the vehicle-side layer, receives the commands, performs idempotent operations on them to obtain the target remote control command, and executes the target remote control command.
[0077] like Figure 2 As shown in this embodiment, the platform layer 120 can also be configured as follows:
[0078] Determine if remote control commands have been lost;
[0079] In the event of a lost remote control command, the system queries the storage service for the remote control command stored in the timeout service 204 to identify the timed-out command and then resends it.
[0080] In this embodiment, the platform layer may further include a timeout service 204. The platform layer 120 can determine whether a remote control command has been lost. If a remote control command is determined to be lost, the timeout service 204 can query the remote control commands stored in the storage service 203 to identify the timed-out remote control command. A timed-out remote control command refers to a lost remote control command. Subsequently, the timeout service 204 can resend the timed-out remote control command. This reduces the possibility of lost remote control commands.
[0081] Figure 3 This diagram schematically illustrates an architecture of a vehicle-side layer according to an embodiment of this application. Figure 3 As shown in this embodiment, the vehicle end layer may include:
[0082] Multiple communication services 131 communicate with multiple vehicle-side layer gateway services 123, and each communication service 131 is configured to receive remote control commands forwarded by the corresponding vehicle-side layer gateway service 123.
[0083] Remote control service 132 communicates with multiple communication services 131 and is configured to perform idempotent operations on multiple remote control commands to obtain target remote control commands and parse the target remote control commands to obtain parsed target remote control commands.
[0084] Actuator 133 communicates with remote control service 132 and is configured to execute parsed target remote control commands.
[0085] In this embodiment, the vehicle-side layer 130 may include multiple communication services 131, a remote control service 132, and an actuator 133. The multiple communication services 131 communicate with multiple vehicle-side layer gateway services 123, and each communication service 131 can receive remote control commands forwarded by its corresponding vehicle-side layer gateway service 123. After receiving multiple remote control commands forwarded by the multiple vehicle-side layer gateway services 123, the multiple communication services 131 can send the multiple remote control commands to the remote control service 132. The remote control service 132 performs idempotent operations on the multiple remote control commands to obtain the target remote control command. Furthermore, to enable the vehicle-side layer 130 to recognize the remote control command, the remote control service 132 can parse the target remote control command to obtain the parsed target remote control command. Subsequently, the remote control service 132 can invoke the actuator 133 to execute the parsed target remote control command. In this way, the vehicle-side layer 130 can perform specific actions based on the multiple remote control commands.
[0086] like Figure 3 As shown in this embodiment, the vehicle end layer 130 may include:
[0087] Wake-up service 134 is configured to wake up vehicle layer 130 when vehicle layer 130 is not connected to platform layer 120.
[0088] In this embodiment, the vehicle-side layer may include multiple communication services 131, remote control services 132, actuators 133, and wake-up services 134. The wake-up service 134 communicates with the routing service 202 of the platform layer 120. The routing service 202 can be used to determine whether the vehicle-side layer 130 is connected to the platform layer 120. If the vehicle-side layer 130 is not connected to the platform layer 120, the routing service 202 can invoke the wake-up service 134. Thus, the wake-up service 134 can wake up the vehicle-side layer 130 even when it is not connected to the platform layer 120.
[0089] In this embodiment, the actuator 133 includes a main actuator and a standby actuator, and the remote control service 132 can also be configured to:
[0090] Determine if communication with the main executor is normal;
[0091] If communication with the main executor is determined to be normal, the main executor is invoked.
[0092] If an anomaly is detected in communication with the main executor, the backup executor is invoked, and the invocation of the backup executor is checked to determine whether it was successful. If the invocation of the backup executor fails, a remote control failure alert is sent.
[0093] In this embodiment, the actuator 133 may include a main actuator and multiple backup actuators. The remote control service 132 can determine whether the communication between the remote control service 132 and the main actuator is normal. If the communication with the main actuator is normal, the remote control service 132 can invoke the main actuator to execute the parsed target remote control command. If the communication with the main actuator is abnormal, the remote control service 132 can invoke the backup actuator to execute the parsed target remote control command, and further determine whether the invocation of the backup actuator is successful. If the remote control service 132 fails to invoke the backup actuator, the remote control service 132 can send a remote control failure alert. In this way, the remote control service 132 can invoke the actuator 133 to execute the parsed target remote control command.
[0094] Figure 4 This schematically illustrates a timing diagram of a vehicle-side layer processing remote control commands according to a specific embodiment of this application. For example... Figure 4 As shown, after the platform layer's vehicle-side gateway service 123 sends multiple remote control commands to multiple communication services 131 of the vehicle-side layer 130, the multiple communication services 131 can forward the multiple remote control commands to the remote control service 132. The remote control service 132 performs idempotent operations on the multiple remote control commands to obtain the target remote control command. Furthermore, to enable the vehicle-side layer 130 to recognize the remote control command, the remote control service 132 can parse the target remote control command and determine whether the target remote control command has been processed. If processed, the process ends. If not processed, the main executor 401 is called to execute the parsed target remote control command, and the call is checked for success. If the call is successful, the process ends. If the call fails, the backup executor 402 is called to execute the parsed target remote control command, and the call is similarly checked for success. If the call is successful, the process ends. If the call to the backup executor 402 fails, a remote control failure notification is sent.
[0095] Figure 5 This diagram schematically illustrates an architecture of a platform layer according to an embodiment of this application. Figure 5 As shown in the embodiments of this application, each remote control execution engine 122 may include:
[0096] Data conversion service 201, which communicates with application layer gateway service 121, is configured to convert received remote control requests into remote control commands.
[0097] Storage service 203, communicating with data conversion service 201, is configured to store remote control commands.
[0098] In this embodiment, each remote control execution engine 122 may include a routing service 202, a data conversion service 201, and a storage service 203. The data conversion service 201 communicates with the application layer gateway service 121, determines the corresponding remote control request based on the received request identifier, and converts the remote control request into a remote control command. The storage service 203 communicates with the data conversion service 201 and can persist the remote control commands. Thus, in the event of a lost remote control command, the timeout service 204 can query the remote control commands stored in the storage service 203 to identify the timed-out remote control command and resend it.
[0099] like Figure 5 As shown in the embodiments of this application, each remote control execution engine 122 may include:
[0100] The routing service 202 communicates with the wake-up service 134 and is configured to determine whether the vehicle-side layer 130 is connected to the platform layer 120. If the vehicle-side layer 130 is not connected to the platform layer 120, the wake-up service 134 is invoked to wake up the vehicle-side layer 130.
[0101] In this embodiment, each remote control execution engine 122 of the platform layer 120 may include a routing service 202. After the storage service 203 persists the remote control command, the routing service 202 can route the remote control command to the corresponding vehicle-side layer gateway service 123 according to the content of the remote control command. Furthermore, the routing service 202 also communicates with the wake-up service 134 of the vehicle-side layer 130, and can be used to determine whether the vehicle-side layer 130 is connected to the platform layer 120. If the vehicle-side layer 130 is not connected to the platform layer 120, the routing service 202 can call the wake-up service 134 of the vehicle-side layer 130 to wake up the vehicle-side layer 130. Thus, the platform layer 120 can call the wake-up service 134 of the vehicle-side layer 130 to wake up the vehicle-side layer 130.
[0102] like Figure 5 As shown in this embodiment, the platform layer 120 may further include a global service 501, which can be configured as follows:
[0103] Determine whether platform layer 120 has received a historical data query command;
[0104] If the platform layer 120 receives a historical data query instruction, it performs an idempotent operation on the historical data corresponding to the historical data query instruction.
[0105] In this embodiment, the platform layer 120 may further include a global service 501. The global service 501 can determine whether the platform layer 120 has received a historical data query instruction sent by the application layer 110. If it is determined that the platform layer 120 has received a historical data query instruction, since there are multiple historical data entries corresponding to the historical data query instruction in the platform layer 120, and these multiple historical data entries are identical, the global service 501 needs to perform an idempotent operation on the historical data corresponding to the historical data query instruction. This reduces the possibility that the application layer 110 will query duplicate historical data.
[0106] Figure 6 A flowchart illustrating a wake-up process for a vehicle-side layer according to an embodiment of this application is shown schematically. Figure 6 As shown in the embodiments of this application, the wake-up service can also be configured as follows:
[0107] Obtain the IoT card number at the vehicle-side layer;
[0108] The vehicle-side layer is woken up via SMS based on the IoT card number, and it is determined whether the SMS wake-up was successful.
[0109] If the SMS wake-up attempt fails, the vehicle-side layer will be woken up again by SMS until the wake-up attempt succeeds or the number of retries for SMS wake-up reaches the first preset number.
[0110] If the number of retries for SMS wake-up reaches the first preset number, ring wake-up is performed on the vehicle-side layer, and it is determined whether the ring wake-up is successful.
[0111] If the ringing wake-up attempt fails, the vehicle end layer will be re-tried to ring the wake-up attempt until the wake-up attempt succeeds or the number of retries for ringing the wake-up attempt reaches the second preset number.
[0112] If the number of retries for ringing wake-up reaches the second preset number, a wake-up failure result will be returned.
[0113] In this embodiment, the wake-up service can obtain the IoT card number of the vehicle-side layer and invoke SMS wake-up to wake up the vehicle-side layer based on the IoT card number. Further, the wake-up service can determine whether the SMS wake-up is successful. If the SMS wake-up is unsuccessful, the wake-up service re-initiates SMS wake-up until it succeeds or the number of retries reaches a first preset number. The first preset number is a pre-set upper limit for the number of retries for SMS wake-up, which can be set according to actual conditions. If the number of retries for SMS wake-up reaches the first preset number, the wake-up service can switch the wake-up strategy, i.e., switch from invoking SMS wake-up to invoking ringing wake-up, thereby performing ringing wake-up on the vehicle-side layer and determining whether ringing wake-up is successful. If the ringing wake-up is unsuccessful, the wake-up service can re-invoke ringing wake-up on the vehicle-side layer until it succeeds or the number of retries reaches a second preset number. The second preset number is a pre-set upper limit for the number of retries for ringing wake-up, which can be set according to actual conditions. If the number of retries for ringing wake-up reaches the second preset number, the wake-up service returns a wake-up failure result to the routing service.
[0114] Figure 7 This diagram schematically illustrates the business architecture of a remote control system for a vehicle according to a specific embodiment of this application. Figure 7 As shown in a specific embodiment of this application, the remote control system for a vehicle includes an application layer 110, a platform layer 120, and a vehicle-side layer 130. In terms of business architecture, the application layer 110 can be a mobile phone, an open API, or a wearable device; no limitation is made here. The platform layer 120 can be divided into a gateway layer, a business layer, and a data layer. The gateway layer is used for request forwarding and connection maintenance. The business layer is used for command issuance, timeout retransmission, and remote wake-up. The data layer is used for data conversion, data storage, and data caching. The vehicle-side layer 130 is divided into a gateway layer, a business layer, and an execution layer. The gateway layer is used for connection management and remote wake-up. The business layer is used for precondition judgment and request routing. The execution layer is used for remote control execution and result feedback. In this way, the overall business of the vehicle's remote control system can be completed.
[0115] Figure 8 A flowchart illustrating a remote control method for a vehicle according to an embodiment of this application is shown schematically. Figure 8As shown in the illustration, this application also provides a remote control method for a vehicle, applied to a remote control system for a vehicle. The remote control system may include an application layer, a platform layer, and a vehicle-side layer. The platform layer communicates with both the application layer and the vehicle-side layer. The platform layer may include an application layer gateway service, multiple remote control execution engines, and multiple vehicle-side layer gateway services. The application layer gateway service communicates with the application layer, and the multiple remote control execution engines communicate with both the application layer gateway service and the multiple vehicle-side layer gateway services. The remote control method may include:
[0116] Step 801: Send a remote control request through the application layer;
[0117] Step 802: Receive and copy the remote control requests sent by the application layer through the application layer gateway service to obtain multiple remote control requests, and send the multiple remote control requests to multiple remote control execution engines through multiple message queues;
[0118] Step 803: Each of the multiple remote control execution engines converts the received remote control request into a remote control command and sends the remote control command to the corresponding vehicle-side layer gateway service.
[0119] Step 804: Each of the multiple vehicle-side gateway services forwards the received remote control command to the vehicle-side layer. The platform layer then converts the remote control request into multiple remote control commands and sends the multiple remote control commands to the vehicle-side layer.
[0120] Step 805: Receive multiple remote control commands through the vehicle-side layer, perform idempotent operations on the multiple remote control commands to obtain the target remote control command, and execute the target remote control command.
[0121] In this embodiment, the vehicle's remote control system includes an application layer, a platform layer, and a vehicle-side layer. The application layer can be a mobile device, an exposed API, or a wearable device; no limitation is made here. The application layer can send remote control requests to the platform layer. The platform layer includes an application layer gateway service, multiple remote control execution engines, and multiple vehicle-side layer gateway services. The application layer gateway service communicates with the application layer. The multiple vehicle-side layer gateway services communicate with the vehicle-side layer. The platform layer can receive remote control requests sent by the application layer through the application layer gateway service. Upon receiving a remote control request, the application layer gateway service can generate a request identifier corresponding to the remote control request and copy the request identifier to obtain multiple identical request identifiers. These multiple request identifiers are then sent to multiple remote control execution engines through multiple message queues. In one example, to simultaneously meet the requirements of reducing resource waste and improving the delivery rate of remote control requests, the application layer gateway service can send two identical request identifiers to two remote control execution engines through dual message queues.
[0122] After receiving multiple request identifiers, each remote control execution engine can determine the corresponding remote control request based on the received request identifier, convert the remote control request into a remote control command, and then send the remote control command to its corresponding vehicle-side layer gateway service. It should be noted that the multiple remote control execution engines can be deployed in different data centers, so that if any data center experiences an anomaly, the remaining remote control execution engines can still be used. Each remote control execution engine includes a data conversion service, a storage service, and a routing service. The data conversion service, storage service, and routing service communicate using a synchronous remote procedure call protocol, ensuring message delivery rate and allowing the caller to detect and handle call failures. The data conversion service converts remote control requests into remote control commands, making them recognizable by the vehicle-side layer. After conversion, the data conversion service sends the remote control command to the storage service. The storage service can persist the remote control command. After the storage service persists the remote control command, the routing service routes the remote control command to the corresponding vehicle-side layer gateway service based on its content. Subsequently, multiple vehicle-side gateway services can send multiple remote control commands to the vehicle-side layer.
[0123] To ensure delivery rate, the platform layer sends multiple identical remote control commands to the vehicle-side layer. After receiving these commands, to reduce the likelihood of the vehicle-side layer repeatedly executing the same command, it can perform idempotent operations on the commands to deduplicate them and obtain the target command. Furthermore, the vehicle-side layer needs to parse the target command to obtain and execute it. This ensures that the application layer can remotely control the vehicle-side layer.
[0124] This application improves the delivery rate of remote control commands by having an application layer that sends remote control requests, converts them into multiple remote control commands, sends these commands to the platform layer of the vehicle-side layer, receives the commands, performs idempotent operations on them to obtain the target remote control command, and executes the target remote control command.
[0125] This application also provides a machine-readable storage medium storing instructions for causing a machine to execute the aforementioned remote control method for a vehicle.
[0126] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0127] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0128] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0129] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0130] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0131] Memory may include non-persistent memory in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0132] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0133] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0134] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A remote control system for a car, characterized in that, include: The application layer is configured to send remote control requests; The platform layer, which communicates with the application layer, is configured to convert the remote control request into multiple remote control commands and send the multiple remote control commands to the vehicle-side layer. The platform layer includes: The application layer gateway service communicates with the application layer and is configured to receive and copy remote control requests sent by the application layer to obtain multiple remote control requests, and send the multiple remote control requests to multiple remote control execution engines through multiple message queues. The plurality of remote control execution engines communicate with the application layer gateway service. Each remote control execution engine is configured to convert the received remote control request into a remote control instruction and send the remote control instruction to the corresponding vehicle-side layer gateway service. Multiple vehicle-side layer gateway services communicate with the multiple remote control execution engines, and each vehicle-side layer gateway service is configured to forward received remote control commands to the vehicle-side layer; The vehicle-side layer communicates with the platform layer and is configured to receive the plurality of remote control commands, perform idempotent operations on the plurality of remote control commands to obtain a target remote control command, and execute the target remote control command.
2. The remote control system for automobiles according to claim 1, characterized in that, The vehicle end layer includes: Multiple communication services communicate with the multiple vehicle-side layer gateway services, and each communication service is configured to receive remote control commands forwarded by the corresponding vehicle-side layer gateway service; The remote control service communicates with the plurality of communication services and is configured to perform idempotent operations on the plurality of remote control commands to obtain a target remote control command, and parse the target remote control command to obtain a parsed target remote control command. The actuator, which communicates with the remote control service, is configured to execute the parsed target remote control command.
3. The remote control system for automobiles according to claim 2, characterized in that, The actuator includes a main actuator and a standby actuator, and the remote control service is further configured to: Determine whether the communication with the main actuator is normal; If communication with the main executor is determined to be normal, the main executor is invoked. If an anomaly is detected in communication with the main executor, the backup executor is invoked, and it is determined whether the invocation of the backup executor is successful. If the invocation of the backup executor fails, a remote control failure alert is sent.
4. The remote control system for automobiles according to claim 1, characterized in that, The vehicle end layer includes: The wake-up service is configured to wake up the vehicle layer when the vehicle layer is not connected to the platform layer.
5. The remote control system for a vehicle according to claim 4, characterized in that, The wake-up service is also configured to: Obtain the IoT card number of the vehicle-side layer; The vehicle-side layer is woken up via SMS based on the IoT card number, and it is determined whether the SMS wake-up is successful. If the SMS wake-up attempt fails, the vehicle-side layer will be woken up again by SMS until the wake-up attempt succeeds or the number of retries for SMS wake-up reaches the first preset number. If the number of retries for SMS wake-up reaches the first preset number, the vehicle-side layer is woken up by ringing, and it is determined whether the ringing wake-up is successful. If the ringing wake-up attempt fails, the vehicle end layer will be re-tried to ring the wake-up attempt until the wake-up attempt succeeds or the number of retries for ringing the wake-up attempt reaches the second preset number. If the number of retries for ringing wake-up reaches the second preset number, a wake-up failure result will be returned.
6. The remote control system for a vehicle according to claim 4, characterized in that, Each remote control execution engine includes: The routing service, which communicates with the wake-up service, is configured to determine whether the vehicle-side layer is connected to the platform layer. If the vehicle-side layer is not connected to the platform layer, the wake-up service is invoked to wake up the vehicle-side layer.
7. The remote control system for automobiles according to claim 1, characterized in that, Each remote control execution engine includes: A data conversion service, communicating with the application layer gateway service, is configured to convert the received remote control request into the remote control instruction; The storage service, which communicates with the data conversion service, is configured to store the remote control commands.
8. The remote control system for a vehicle according to claim 1, characterized in that, The platform layer also includes a global service, which is configured as follows: Determine whether the platform layer has received a historical data query instruction; If the platform layer determines that it has received a historical data query instruction, it performs an idempotent operation on the historical data corresponding to the historical data query instruction.
9. The remote control system for a vehicle according to claim 1, characterized in that, The platform layer is also configured to: Determine whether the remote control command has been lost; In the event that the remote control command is lost, the system queries the storage service for the remote control command stored in the storage service to identify the timed-out remote control command and then resends the timed-out remote control command.
10. A method for remotely controlling a car, characterized in that, A remote control system for automobiles includes an application layer, a platform layer, and a vehicle-side layer. The platform layer communicates with both the application layer and the vehicle-side layer. The platform layer includes an application layer gateway service, multiple remote control execution engines, and multiple vehicle-side layer gateway services. The application layer gateway service communicates with the application layer. The multiple remote control execution engines communicate with both the application layer gateway service and the multiple vehicle-side layer gateway services. The remote control method includes: Send remote control requests through the application layer; The application layer gateway service receives and replicates the remote control requests sent by the application layer to obtain multiple remote control requests, and sends the multiple remote control requests to multiple remote control execution engines through multiple message queues. Each of the plurality of remote control execution engines converts the received remote control request into a remote control instruction and sends the remote control instruction to the corresponding vehicle-side layer gateway service. The received remote control commands are forwarded to the vehicle layer by each of the multiple vehicle layer gateway services. The vehicle-side layer receives the multiple remote control commands, performs idempotent operations on the multiple remote control commands to obtain the target remote control command, and executes the target remote control command.