The FCA Uconnect Global API’s define a standard data communication protocol for the Telematics Unit in the vehicle to interface with the cloud based Service Delivery Platform (SDP). The in-vehicle unit consists of either a Telematics Box Module (TBM) or Head Unit (HU), while the SDP can be hosted in any one of many cloud based infrastructures including Amazon Web Services (AWS).
The primary objective of this API is to create interoperability between the FCA regions including APAC, EMEA, LATAM, and NAFTA which with proper adoption will result in efficiency improvements and cost reductions as platforms become more global. Additionally, the API will improve the FCA Connected Vehicle Platform design for performance, scalability, flexibility, security, maintainability, and cost effectiveness.
The API is based on industry best-practices for the Internet of Things (IoT) including the use of the secure MQTT and HTTP communication protocols. The need to minimize costly wireless network traffic has also lead to the use of Protocol Buffers for efficiently formatting the data into messages between the client (TBM or HU) and the services (SDP).
Additional information about these standards and practices can be found at the addresses listed below
Currently every SDP provider has their own proprietary communication interface with the vehicle. Everyone is essentially sending very similar data and we have a good understanding of the required data elements. Rather than continually adapting the vehicle HU/TBM to interface with different SDP providers, this API provides a common interface which is intended to be leveraged on a global basis.
The API reference implementation utilizes MQTT 3.1.1. However, the protocol message structures can be transferred over other messaging protocols as required.
Here it is.
No, Any compliant MQTT client library can be used. The reference implementation utilized AWS IoT for the availability, admin console, policy configuration, and management of device certificates for mutual authentication.
MQTT defines three levels of Quality of Service (QoS). The QoS defines how hard the broker/client will try to ensure that a message is received. Messages may be sent at any QoS level, and clients may attempt to subscribe to topics at any QoS level.
QoS Level 1 should be used for publishing a message at least once. The MessageId and CorrelationId can be used to implement de-duplication logic as required.
The protocol buffer messaging structure utilizes OneOf which is defined in Proto Language Version 3 and supported in version 3. The Simulator client and service utilize Version 3.3.0 of the compiler or better.
The protocol buffer messaging structure utilizes OneOf which is defined in Proto Language Version 3 and supported in version 3. This specification is based on Protobuf language Version 3 - the compiler is version 3.30 or better
Changing Protocol Buffer Versions comes with inherent risks and shall not be done in vehicle or at the server except with FCA approval and following our change and release control processes
The protocol buffer messaging structure utilizes OneOf which is defined in Version 3 and supported in version 3. This specification is based on Protobuf language Version 3 - the compiler is version 3.30 or better
Modifying the protocol buffer .proto files shall only be done at new service versions and must be modified by FCA Interface Architecture and through the change and release control processes
The protocol buffer messaging structure utilizes OneOf which is defined in Version 3 and supported in version 3. This specification is based on Protobuf language Version 3 - the compiler is version 3.30 or better
Yes. At the discretion of the sender, messages may be compressed using the format described in RFC 1952 with the default DEFLATE compression method. Messages compressed in this way can reliably be distinguished from uncompressed messages by the magic number in the gzip message header. Receivers can assume compression if the first two bytes of a message are [0x1f,0x8b] because no valid protocol buffers wire format message can start with this particular sequence.
The clientId shall be identified by Uconnect Security during the design phase of the solution. The recommended approach is to utilize the CN of the Public Certificate assigned to the TBM/HU device. Either through back-end feeds or during the initial CommCheck, the clientID should be associated with a specific VIN
Before establishing an MQTT connection, a client must have a certificate for mutual authentication in accordance with security specification CS.00165
The Global V2C API includes an interface to allow the TBM/HU to download a X.509 Public Certificate created from an out of band CSR process between the TBM/HU and Global PKI.
The business requirements for the TBM/HU and SDP can be found in the System Function Specification (SFS) documents at the followin link: here
The implementation requirements for the TBM/HU and SDP can be found in the CTS (Component Technical Specification) and CTDD (Component Technical Design Documents) documents at the followin link: here
Given we are not using MQTT QoS 1 there is the potential to receive a duplicate message. The HU/TBM client endpoint shall utilize the messageId to reject any duplicate messages. The SDP service endpoint shall utilize the clientId and messageId to reject any duplicate messages.
As MQTT defines Quality of Service1 (QoS1), if the Quality of Service is set to 1 then the broker/client will deliver the message atleast once and receiver sends an acknowledgment to the sender. and The message is deleted from the sender after it has received an acknowledgment from the receiver.
An undelivered message may be removed after a specification defined timeout period, as would be the case with Remote Operations
The UconnectMessage contains several IDs for the messages, each is used to create traceability throughout the system. i.e determining duplicates can be done using any combination of MessageID and either SessionID or ServiceID.
Messages and their IDs have the following structure
Yes, listed below.
| Nbr | Type | KPI Requirement |
|---|---|---|
| 1 | Request/Response Message from Vehicle to Cloud | 5 sec |
| 2 | Request/Response Message from Cloud to Vehicle | 5 sec |
| 3 | Push Message from Vehicle to Cloud | <3 sec |
| 4 | Push Message from Cloud to Vehicle | <3 sec |
For logging purposes, MQTT packet identifier can be used to find a sender's packets in a receivers's log files. Sender can append the Packet Identifier with the timestamp in the packet.
If its KPI for Round trip , Message ID/CorrelationId with other information can be used for Logging.
Establishing and passing a session id for every message is the best practice for the purposes of auditing and analytics, as well as correlating multi-point and multi-channel feature messages (i.e. Ecall)
For Hight Priority messages an SMS will be sent to wake the vehicle. For all messages with a prescribed KPI or performance target, the message time to live should be less than the performance target. This should be defined in a requirements document give by the specific feature team
Teams have worked together, in particular for SQDF to complie some recommended methods of dealing with this. It is represented in table show below:
The common proto is utilized to wrap one or more messages in an extensible manner for delivery between the client and services. This proto also includes common header elements necessary to implement required messaging patterns.
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.26 | 2019-06-24 | Added Burst Mode Messages for Corrections |
| 1.26 | 2019-06-24 | Added UploadCoachingDataV2 |
| 1.25 | 2019-05-24 | Added L2+ APIS publishDataHeader, dataLogMessageResponse, dataLogMessageRequest, correctionsMessage |
| 1.24 | 2019-05-22 | Fixed spelling error in completeActivationRequest |
| 1.23 | 2019-05-07 | Changed recommended topic for AckMessage |
| 1.23 | 2019-05-07 | Added language to SessionID to clarify that it must be unique |
| 1.22 | 2018-12-20 | Added UploadCoachingDataResponse |
| 1.22 | 2018-09-20 | Added PhoneNumber update requests |
| 1.21 | 2018-09-06 | Added Added navAuth |
| 1.20 | 2018-08-04 | Added messages for PHEV and AutoSVL |
| 1.19 | 2018-06-04 | Added Privacy Mode Messages |
| 1.18 | 2018-06-04 | Added PCLogUploads, UpdateRSAPhoneNumbers, Moved CrankInhibit to RemoteInhibitRequest, added VehicleLocationUpdate |
| 1.17 | 2018-06-04 | Added TheftAlarmSuppression. Added CreatePin, ValidatePin, LegalDocuments for Activation |
| 1.16 | 2018-04-23 | Removed stolenVehicleControlRequest and Response Messages message |
| 1.16 | 2018-04-23 | Removed remoteOperationStatus message |
| 1.15 | 2018-04-19 | Removed cancelRequest message |
| 1.15 | 2018-03-12 | Added Error Codes table to the Ack Message documentation |
| 1.14 | 2018-03-12 | Merged Eco Coaching and Brand Pages to make Connected Pages |
| 1.13 | 2018-03-12 | Added Eco Coaching Message< and split Auth from VehicleAuth/td> |
| 1.12 | 2017-11-2 | Update to Proto3 |
| 1.11 | 2017-10-09 | Add apiVersionId to track API version. |
| 1.10 | 2017-09-27 | Add isTransient and failureReasonCode to AckMessage. |
| 1.9 | 2017-09-20 | Moved Device,VehicleInfo,DRM to Separate proto file. |
| 1.8 | 2017-08-07 | Update Location type. |
| 1.7 | 2017-07-10 | Added DRM. |
| 1.6 | 2017-07-10 | Added additional fields to VehicleStatus. |
| 1.5 | 2017-06-30 | Device is added. |
| 1.4 | 2017-04-19 | VehicleInfo is added. |
| 1.3 | 2017-04-12 | OriginSource , duplicate fields are removed and added estimatedPositionError to location. |
| 1.2 | 2017-03-21 | Added Destination. |
| 1.1 | 2017-03-02 | Added correlationId, refactored extension mechanism. |
| 1.0 | 2016-06-14 | Release of initial Proto |
The UconnectMessage is the top level protocol buffer message for this API and contains header elements that are common to all messages.
Use of correlationId/messageId
The transport layer between the vehicle and services for the API is MQTT, which supports only the publish/subscribe messaging pattern. MQTT does not have any inherent mechanism for correlating sequences of messages, so the UconnectMessage includes messageId and correlationId attributes for this purpose.
While a particular implemenation may make messageId a monotonically increasing unique sequence, it is not a requirement to do so and applications should not count on such behavior. Awareness of how an implementation generates messageId may be helpful for maintenance and debug, but properties such as uniqueness across sessions or application restarts should not be assumed.
Following diagrams are intended as an illustration of the concept of request/response correlation and should not be considered as any kind of suggested application architecture.
The following Diagram depicts how Client should implement Request/Response with messageId/correlationId.

The following Diagram depicts how SDP should implement Request/Response with messageId/correlationId.

| Title | Description |
| New Request/Response Interaction | The SDP starts new Request Response interaction to a Topic. |
| Create Interaction Context | The SDP creates Message with required information |
| newMessageId = nextMessageID() | The SDP generates the messageId for the message by incrementing a sequence counter and assign it to newMessageID |
| Put(newMessageId,interactionContext) | |
| Create Message | The SDP creates message with interaction context. |
| message.messageID = newMessageID | Add the newly generated messageId to UconnectMessage. |
| Publish Message | The SDP publishes the message to MQTT broker topic. |
| Read Message | The TBM/HU reads the message from subscribed MQTT Broker topic. |
| Create Response | The TBM/HU creates response message with required information. |
| response.correlationID=message.messageID | The TBM/HU correlationId set to the messageId from the received Message. |
| Publish Response | The TBM/HU publishes response message to MQTT Broker topic. |
| Read Response | The SDP reads the response message from subscribed MQTT Broker topic. |
| interactionContext = get(response.correlationID) | The TBM/HU verifies the correlationId matches the messageId of the sent request and assigns received Response to a required message. |
| process Response | TBM/HU process response message . |
| delete(response.correlationID) | TBM/HU reads the message from MQTT Broker. |
The following Diagram depicts how SDP initiate publish with no response.

| Title | Description |
| New Publish Interaction | The SDP starts new Publish interaction to a Topic. |
| Create Message | The SDP creates Message with required information |
| message.messageID = 0 | The Message id is defaulted to 0 as there is no response and no correlation Id from TBM/HU. |
| Publish Message | The SDP Publish the message to required Topic through MQTT broker |
| Read Message | TBM/HU reads the message from MQTT Broker. |
| Field | Type | Label | Description |
| timestamp | int64 | optional | The milliseconds since (Jan 1, 1970 00:00:00 UTC) when the message is created. Should come from the system clock of the sender. |
| sessionId | bytes | optional | may contain any arbitrary sequence of bytes. Intended for implementations where parties to a session need to share a session identifier. Implementations that do so will be able to use sessionId and messageId to correlate logged messages for diagnostic/debug purposes. SessionID should be a UUID as specified in the FAQ. |
| messageId | int32 | optional | Assigned to each message by the creator, to allow receivers to reply with correlation. Single node clients can use a per application instance global variable that increments with every message, with a range of -2^31-2^31-1. Clients that are clustered should assign a range of messageIds to each node in the cluster, with the full range equally apportioned. |
| correlationId | int32 | optional | Must only be set from the messageId of a received message. If there is not a received message being responded to, do not set any value other than the default. Initiators of interactions should never set correlationId, it is for point to point request/response only. |
| messages | UconnectAny | repeated | A repeated set of UconnectAny messages supports embedding one or more feature specific messages into a single MQTT message. |
| apiVersionId | bytes | optional | The global api version to provide guidance to the backend for message routing in a multi-version environment. |
KeepAliveMessage provides a lightweight alternative to the base MQTT keep alive provided in the client library. The message will be used in the scenario where the client manages the keep alive instead of letting the MQTT client manage the keep alive.
This is different from original MQTT Keep Alive, imperical testing showed the custom KeepAliveMessage resulted in smaller messages over the network. This is in place as an optional approach to using the default keepalive.
KeepAliveMessage should be published on an established system level topic. We recommend /fcasdp/KAL/${iot:ClientId}
| Field | Type | Label | Description |
| timestamp | int64 | optional | The milliseconds since (Jan 1, 1970 00:00:00 UTC) when the message is created. Should come from the system clock of the sender. |
| Field | Type | Label | Description |
| response | AckMessage.ResponseEnum | optional | Success or Failure |
| isTransient | bool | optional | Indicates if the error is transient and to attempt a retry. |
| failureReasonCode | int32 | optional | App or System Supplied Reason Code for Failures - See Error Codes page in wiki for details |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| FAILURE | 1 | Failure |
The UconnectAny message Uses OneOf, so only one message can appear per UconnectAny, the UconnectAny message is repeatable, so feature specific messages are decoupled from the top level message. It is a placeholder to allow a repeated set of extensions.
| Field | Type | Label | Description |
| ackMessage | AckMessage | optional | Ack message definition |
| sqdfPublish | SQDFPublish | optional | Publish SQDF messages |
| sqdfResponse | SQDFResponse | optional | SQDF Message Publish Response |
| sqdfRequest | SQDFRequest | optional | SQDFMessage Request |
| vehicleConfigPublish | VehicleConfigPublish | optional | Publish a Vehicle configuration message |
| vehicleConfigRequest | VehicleConfigRequest | optional | Request a vehicle configuration |
| activationRequest | ActivationRequest | optional | Activation Request |
| activationResponse | ActivationResponse | optional | Response to Activation Request |
| initiateDiscrepancyCheck | InitiateDiscrepancyCheck | optional | Initiate a descrepency check |
| discrepancyCheck | DiscrepancyCheck | optional | Descripency Check message |
| applicationUpdateNotification | ApplicationUpdateNotification | optional | Application Update Notification |
| updateStatusNotification | UpdateStatusNotification | optional | Application update status |
| loginRequest | LoginRequest | optional | Login request |
| loginResponse | LoginResponse | optional | Response to Login request |
| logoutRequest | LogoutRequest | optional | Logout request |
| logoutResponse | LogoutResponse | optional | Response to Logout request |
| vehAuthRequest | VehAuthRequest | optional | First (Bootstrap) Vehicle Authorization Request |
| vehAuthResponse | VehAuthResponse | optional | First (Bootstrap) Vehicle Authorization Response |
| createTokenRequest | CreateTokenRequest | optional | Request to create an access token |
| createTokenResponse | CreateTokenResponse | optional | Access Token response |
| refreshTokenRequest | RefreshTokenRequest | optional | Refresh Token Request |
| refreshTokenResponse | RefreshTokenResponse | optional | Refresh Token Response, includes new token and refresh token |
| ecallDataUpload | ECallDataUpload | optional | Data upload for eCall |
| ecallStatusUpdate | ECallStatusUpdate | optional | ECall Status update |
| ecallVehDataRequest | ECallVehDataRequest | optional | vehicle data to publish in Ecall Data upload |
| ecallVehDataResponse | ECallVehDataResponse | optional | response to vehicle data upload (Ack) |
| firmwareUpdateNotification | FirmwareUpdateNotification | optional | Firmware update required notification |
| firmwareUpdateResponse | FirmwareUpdateResponse | optional | Response to firmware update required message (ack) |
| pcUpdateConfigRequest | PCUpdateConfigRequest | optional | Parental Controls Configuration Update Request |
| pcUpdateConfigResponse | PCUpdateConfigResponse | optional | Response to Parental Controls Configuration Update Request |
| pcAlertPublish | PCConfiguredAlertPublish | optional | Parental Controls Alert Publish |
| poiSearchRequest | POISearchRequest | optional | Point of Interest Search Request |
| poiSearchResponse | POISearchResponse | optional | Search Response |
| poiSearchDestinationRequest | POISearchDestinationRequest | optional | Point of Interest Destination Search |
| poiSearchDestinationResponse | POISearchDestinationResponse | optional | Destination Search Response |
| initiateProvisioningPush | InitiateProvisioningPush | optional | Inititiate a Provisioning Push |
| provisioningRequest | ProvisioningRequest | optional | Provisioning Request |
| provisioningResponse | ProvisioningResponse | optional | Response to Provisioning Request |
| provisioningPush | ProvisioningPush | optional | Provisioning Push |
| provisioningPushAck | ProvisioningPushAck | optional | Ack for Provision Push request |
| remoteOperationRequest | RemoteOperationRequest | optional | Remote Operations Request |
| remoteOperationResponse | RemoteOperationResponse | optional | Response for Remote Operations (ack) |
| rsaDataUpload | RSADataUpload | optional | RSA Data |
| bcallStatusUpdate | BCallStatusUpdate | optional | Bcall Status for RoadSideAssist |
| destinationPush | DestinationPush | optional | Send Destination to Vehicle Push |
| destinationPushResponse | DestinationPushResponse | optional | Response for Send Destination to Vehicle |
| signature | Signature | optional | Security Signature |
| stolenModeChangeRequest | StolenModeChangeRequest | optional | SVLA Mode Change |
| stolenModeChangeResponse | StolenModeChangeResponse | optional | Response for SVLA Mode Change Request |
| stolenVehicleInfoNotification | StolenVehicleInfoNotification | optional | SVLA Vehicle info notification |
| theftAlarmSupressionRequest | TheftAlarmSuppressionRequest | optional | A remote request to suppress the theft alarm notification |
| theftAlarmSupressionNotify | TheftAlarmSuppressionNotify | optional | Notification of status to the server when Notification is suppressed from the HMI |
| theftAlarmNotification | TheftAlarmNotification | optional | Theft Alarm Notification |
| theftAlarmNotificationResponse | TheftAlarmNotificationResponse | optional | Response to TAN |
| vehicleDataAcquisitionPublish | VehicleDataAcquisitionPublish | optional | Vehicle Data Acquisition (used in ADA) |
| vehicleDataAcquisitionPolicyPublish | VehicleDataAcquisitionPolicyPublish | optional | Policy Publish for ADA |
| vehicleLocationRequest | VehicleLocationRequest | optional | Vehicle Location Request |
| vehicleLocationResponse | VehicleLocationResponse | optional | Vehicle Location Response |
| vehicleMessagePublish | VehicleMessagePublish | optional | Publish Message to Vehicle |
| vehicleMessageAck | VehicleMessageAck | optional | Ack for Vehicle Message |
| vehicleMessageDispositionPublish | VehicleMessageDispositionPublish | optional | disposition for message published to vehicle |
| vehicleMessageDispositionAck | VehicleMessageDispositionAck | optional | Ack for disposition |
| dataPackageStatusRequest | DataPackageStatusRequest | optional | Data package status request |
| dataPackageStatusResponse | DataPackageStatusResponse | optional | Data package status response |
| wifiPackageDataStatus | WifiPackageDataStatus | optional | Wifi Package Data Status |
| uploadTrackData | UploadTrackData | optional | Track data upload for performance pages |
| initiateIVHDiscrepancyCheck | InitiateIVHDiscrepancyCheck | optional | Initiate IVH Discrepancy Check |
| ivhDiscrepancyCheck | IVHDiscrepancyCheck | optional | IVH Discrepancy Check |
| contentUpdateNotification | ContentUpdateNotification | optional | Content Update notification |
| contentUpdateStatusNotification | ContentUpdateStatusNotification | optional | Content update status notification |
| commcheckRequest | CommCheckRequest | optional | commcheck Message |
| initiateCommCheck | InitiateCommCheck | optional | Initiate a comm check from server |
| commCheckResponse | CommCheckResponse | optional | commcheck response message |
| uploadPagesData | UploadPagesData | optional | Upload Vehicle Data for Eco Coaching or Brand Pages |
| rsaVehicleDataRequest | RSAVehicleDataRequest | optional | |
| rsaVehicleDataResponse | RSAVehicleDataResponse | optional | |
| lastMilePush | LastMilePush | optional | Sends "Last Mile" current and target location data to the SDP |
| lastMileResponse | LastMileResponse | optional | Response from SDP to LastMilePush |
| vehiclePolicyUpdateRequest | VehiclePolicyUpdateRequest | optional | Requests an Updated Policy |
| createPin | CreatePin | optional | Creates a PIN for New Activation |
| validatePin | ValidatePin | optional | Validates a PIN for an Existing Account |
| legalDocuments | LegalDocuments | optional | Updates Agreement Status for Legal Documents like T&C and Privacy |
| remoteInhibitRequest | RemoteInhibitRequest | optional | Remote inhibit request for SVL and FTD |
| remoteInhibitResponse | RemoteInhibitResponse | optional | Remote Inhibit Response |
| crankAttemptedNotification | CrankAttemptedNotification | optional | Crank attempted while the vehicle is inhibited |
| vehicleLocationUpdate | VehicleLocationUpdate | optional | Periodic Update of the Vehicle Location |
| updateNumbers | UpdateEcallPhoneNumbers | optional | Update the list of numbers for the region. Requires a generic Ack returned |
| updateRsaNumbers | UpdateRSAPhoneNumbers | optional | Update List of numbers for the RSA |
| pcLogUploads | PCLogUploads | optional | Upload Logs for Parental Controls |
| privacyModeRequest | PrivacyModeRequest | optional | Turn on and off Privacy Mode |
| privacyModeResponse | PrivacyModeResponse | optional | |
| privacyModeNotification | PrivacyModeNotification | optional | |
| chargeNowRequest | ChargeNowRequest | optional | Request an override to the charge schedule for a PHEV |
| chargeNowResponse | ChargeNowResponse | optional | Response to ChargeNow Request |
| chargeDataPublish | ChargeDataPublish | optional | PHEV Vehicle Data Upload |
| updateChargeSchedules | UpdateChargeSchedule | optional | update the PHEV charge schedules |
| initiateStolenVehicleMode | InitiateStolenVehicleMode | optional | Informs the SDP that the vehicle has auto-started SVL Mode |
| chargeDataRequest | ChargeDataRequest | optional | Request a ChargeDataPublish from the vehicle |
| completeActivationRequest | CompleteActivationRequest | optional | Return the Legal Documents for Activation |
| navAuthRequest | NavAuthRequest | optional | |
| navAuthResponse | NavAuthResponse | optional | |
| requestEcallPhoneNumbers | RequestEcallPhoneNumbers | optional | |
| requestRSAPhoneNumbers | RequestRSAPhoneNumbers | optional | |
| updateLegalDocs | UpdateLegalDocs | optional | Used to send update legal documents to the client. This can include T&C\n Or Privacy Agreements |
| legalDocsPublish | LegalDocsPublish | optional | |
| uploadCoachingData | UploadCoachingData | optional | |
| uploadCoachingDataResponse | UploadCoachingDataResponse | optional | |
| pinResponse | PinResponse | optional | |
| vehicleFinderConfig | VehicleFinderConfig | optional | |
| publishProfileData | PublishProfileData | optional | |
| publishProfileDataResponse | PublishProfileDataResponse | optional | |
| uploadCoachingDataV2 | UploadCoachingDataV2 | optional | |
| publishDataHeader | PublishDataHeader | optional | Message format used by CADM2 to publish data header data to the backend when an event occurs. |
| dataLogMessageResponse | DataLogMessageResponse | optional | Message format used by CADM2 to publish data log Message data to the backend. |
| dataLogMessageRequest | DataLogMessageRequest | optional | DataLog Message Request. |
| correctionsMessage | CorrectionsMessage | optional | Message containing Corrections data as message response from Corrections base station. |
| correctionsBurstMessageRequest | CorrectionsBurstMessageRequest | optional | Request Corrections Burst |
| correctionsBurstMessageResponse | CorrectionsBurstMessageResponse | optional | Request Corrections Burst |
| chargePowerPreference | ChargePowerPreference | optional | |
| requestProfileInfo | RequestProfileInfo | optional | |
| requestProfileInfoResponse | RequestProfileInfoResponse | optional | |
| requestProfileCategories | RequestProfileCategories | optional | |
| requestProfileCategoriesResponse | RequestProfileCategoriesResponse | optional | |
| adaBundleEvent | AdaBundleEvent | optional | |
| adaPolicy | AdaPolicy | optional | |
| adaBundleEventEncrypted | AdaBundleEventEncrypted | optional | |
| requestProfileDelete | RequestProfileDelete | optional | |
| requestProfileDeleteResponse | RequestProfileDeleteResponse | optional | |
| requestProfileDisconnect | RequestProfileDisconnect | optional | |
| requestProfileDisconnectResponse | RequestProfileDisconnectResponse | optional |
The Proto is to utilize the common Device Message.
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.3 | 2018-04-02 | Change deviceType enumeration to have only HU and TBM | added headUnitType string |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-10-09 | Update Device to include attributes from TBM CTS |
| 1.0 | 2017-09-20 | Release of initial Proto |
| Field | Type | Label | Description |
| deviceType | Device.DeviceType | optional | This identifies the type of the device. |
| deviceOS | Device.OperatingSystem | optional | Device Operating System |
| headUnitType | string | optional | Describes the HU type. Acceptable values include VP4R, VP2D and VP4C |
| manufacturerName | string | optional | Device Manufacturer Name |
| region | Device.ManufactureRegion | optional | Region the device was manufactured in. |
| screenSize | Device.DisplaySize | optional | Screen Size of the HU device |
| tbmSerialNum | string | optional | TBM Serial Number |
| tbmPartNum | string | optional | TBM Part Number |
| tbmHardwareVersion | string | optional | TBM Hardware Version |
| tbmSoftwareVersion | string | optional | TBM Software Version |
| simIccid | string | optional | ICCID for the SIM |
| simImsi | string | optional | MSI for the SIM |
| simMsisdn | string | optional | Number uniquely identifying a subscription in a mobile network. |
| nadImei | string | optional | IMIE Number for the NAD |
| nadHardwareVersion | string | optional | Modem Hardware Version |
| nadSoftwareVersion | string | optional | Modem Software Version |
| nadSerialNum | string | optional | Modem Serial Number |
| nadPartNum | string | optional | Model Part Number |
| wifiMac | string | optional | WiFi Mac Address |
| huSerialNum | string | optional | HU Serial Number |
| huPartNum | string | optional | HU Part Number |
| huHardwareVersion | string | optional | HU Hardware Version |
| huSoftwareVersion | string | optional | HU Software Version |
| isHUNavigationPresent | bool | optional |
| Name | Number | Description |
| QNX | 0 | QNX Operating System |
| Android | 1 | Android Operating System for R1 |
| CE | 2 | Windows CE Operating System |
| Name | Number | Description |
| Five | 0 | |
| Seven | 1 | |
| Eight | 2 | |
| Ten | 3 | |
| Twelve | 4 |
| Name | Number | Description |
| NAFTA | 0 | |
| China | 1 | |
| APAC | 2 | |
| EMEA | 3 | |
| LATAM | 4 |
| Name | Number | Description |
| ENUM | 0 | |
| TBM | 1 | |
| HU | 2 |
The common proto is utilized to use common DRM Message.
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.4 | 2018-08-21 | Updated DRM to remove the issuer and signature fields per Feature Architect. |
| 1.4 | 2018-05-28 | Updated DRM to fix VP2R support and make it generic. |
| 1.3 | 2018-05-14 | Release of DRMSignature and updated DRM |
| 1.2 | 2017-11-02 | Added Content Type and Signature support |
| 1.1 | 2017-11-02 | Update to Proto3 |
| 1.0 | 2017-09-20 | Release of initial Proto |
RSASSA-PKCS1-v1_5, see RFC8017 "PKCS #1: RSA Cryptography Specifications Version 2.2", section 8.2.Signature algorithm OID:
pkcs-1 { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) } sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
Applicable Key lenght 2048, 3072, 4096 or higher.
RSASSA-PKCS1-V1_5-SIGN (K, M)
K signer's RSA private key M message to be signed, octet string UTF8(drm.properties)
For UTF8 encoding see rfc3629, "UTF-8, a transformation format of ISO 10646"
| Field | Type | Label | Description |
| certificate | string | repeated | PEM-encoded X.509 certificate chain |
| Field | Type | Label | Description |
| signatureType | DRMSignature.SignatureType | optional | This defines the type of Signature used to sign the drmFile buffer. Optional fields to be used only when the signature is not a JarSigned file. |
| signature | bytes | optional | signature = drm.signature |
| x509Certificates | X509Certificates | optional | X.509 Certificate chain, where the first certificate is the one that shall be used to verify the signature and the last one is root of the DRM subtree. |
| Name | Number | Description |
| RSA2048_SHA256_RSASSA_PKCS1_V1_5 | 0 | RSA 2048 signature with SHA256 digest and signature scheme RSASSA_PKCS1_V1_5 |
| RSA3072_SHA256_RSASSA_PKCS1_V1_5 | 1 | RSA 3072 signature with SHA256 digest and signature scheme RSASSA_PKCS1_V1_5 |
| RSA4096_SHA256_RSASSA_PKCS1_V1_5 | 2 | RSA 4096 signature with SHA256 digest and signature scheme RSASSA_PKCS1_V1_5 |
Upload the DRM File using this message
| Field | Type | Label | Description |
| contentType | DRM.ContentTypes | optional | Defines the type of DRM content type. |
| drmFile | bytes | optional | The content of the drmFile shall be serialized in the following way: drmFile = BASE64(UTF8(drm.properties)). This contain the base64 encoded DRM file contents to support sending a file for features and services. drmFile = BASE64(UTF8(drm.properties)) or drmFile = BASE64(drm.jar) |
| drmSignature | DRMSignature | optional | info to choose the right certificate from ecu certificate store |
| Name | Number | Description |
| GENERIC | 0 | File Contents intended for any generic ECU |
| JVM | 1 | File contents intended for JAVA based systems |
| APK | 2 | File contents intended for Android based systems |
Not currently used
| Field | Type | Label | Description |
| registrationStatus | DRMRegistration.RegistrationStatusEnum | optional | This contains Uconnect Access registration status of the VIN the TU it is installed on. |
| operation | DRMRegistration.OperationEnum | optional | This indicates which stage of registration has been performed for VIN. |
| basicRegExpiryTimeStamp | int64 | optional | This indicates the expiration date of the user initiated basic registration date, displayed in millisecond values. |
| accountDN | string | optional | accountDN number of the TU being registered |
| expireTime | int64 | optional | The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. |
| fileLength | int32 | optional | file length in bytes |
| fileChecksum | int32 | optional | filechecksum information |
| expireTimeSpanBegin | int64 | optional | DRM expiration time start |
| expireTimeSpanEnd | int64 | optional | DRM expiration time end |
| emailId | string | optional | emailID if needed |
| Name | Number | Description |
| NOOP | 0 | Indicates there is no operation to be executed by the device. |
| RESET | 1 | Indicates the device shall be reset which involves disconnecting and re-connecting to the SDP. |
| RETURN_TO_NEW | 2 | Indicates the device shall be reset and cleared of user configuration data. |
| Name | Number | Description |
| NOT_REGISTERED | 0 | The user has not registered this vehicle with a Uconnect Account. |
| BASIC_STAGE | 1 | When the user requested the registration email, but has not yet completed the registration process. |
| FULL_STAGE | 2 | User has completed registration, but did not have a wallet account setup. |
| COMPLETE_STAGE | 3 | Final stage where the user has a wallet configured to allow purchasing of services. |
This API supports the In-Vehicle Activation process by submitting a request to the SDP when the vehicle is first activated by the customer.
UconnectAny | |---- ActivationRequest activationRequest (120) | |---- CreatePin createPin (514) |---- ValidatePin ValidatePin (515) * |---- CompleteActivationRequest CompleteActivationRequest (516) |---- ActivationResponse activationResponse (121)
Change Log
| Version | Date | Notes |
| 1.9 | 2019-05-12Seqeu | Added documnetLanguage to the Documents object |
| 1.8 | 2018-09-25 | Added ACTIVATION_IN_PROGRESS to responseEnum and update diagram and added update TC&C |
| 1.7 | 2018-09-22 | Merged CompleteActivation with PIN Create and T&C |
| 1.6 | 2018-05-22 | Added Enumeration, Legal Docs Needed, Added CompleteActivationRequest, Added LegalDocument ID |
| 1.5 | 2018-05-22 | Updated Sequence Diagram and added additional requests for CreatePin, ValidatePin and LegalDocument Agreements |
| 1.4 | 2017-11-2 | Update to Proto3 |
| 1.3 | 2017-09-27 | Update Response for error handling. |
| 1.2 | 2017-06-20 | Added mobileDevicePhoneNumber to Activation Request. |
| 1.1 | 2017-03-25 | Added Country and Language |
| 1.0 | 2017-02-15 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/UACT |
| Cloud receive from Vehicle | Subscribe | fcasdp/UACT/# |
| Vehicle send to Cloud | Publish | fcasdp/UACT/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the Vehicle and the SDP:

This message represents Activation request of vehicle for services and other configurations.
timestamp: 1488574019636
messageId: 1
messages
{
[com.fca.uconnect.global.activationRequest]
{
vehicleId: "123456"
firstName: "abc"
lastName: "xyz"
emailAddress: "abc@fca.com"
tcIndicator: AGREE
}
}
Plan to extend this as we get more requirements.
| Field | Type | Label | Description |
| vehicleId | string | optional | Unique ID for the Vehicle. This is either the VIN or an abstracted ID correalating to the VIN in back office |
| firstName | string | optional | First name of the person for whom services are to be activated. |
| lastName | string | optional | Last name of the person for whom services are to be activated. |
| emailAddress | string | optional | Email address of the person for whom services are to be activated. |
| language | string | optional | The values shall be formatted according to the ISO alpha-3/639.2 standard. |
| country | string | optional | The values shall be formatted according to the ISO Alpha-2 standard. |
| mobileDevicePhoneNumber | string | optional | An alternative to emailAddress for an out of band channel to communicate activation details to the user. |
| Field | Type | Label | Description |
| pin | bytes | optional | |
| accountValidation | ActivationRequest | optional |
| Field | Type | Label | Description |
| createPin | CreatePin | optional | |
| pin | bytes | optional | Deprecated |
| activationRequestData | ActivationRequest | optional | resend Activation Request Info |
| legalDocuments | LegalDocuments | repeated |
| Field | Type | Label | Description |
| documentID | string | optional | Document Identification |
| tcIndicator | LegalDocuments.TCIndicatorEnum | optional | Affirmation by the Telematics Unit that the person for whom services are to be activated has accepted a Terms and Conditions document. |
| privacyAgreemeent | LegalDocuments.TCIndicatorEnum | optional | Affirmation of the Privacy agreement for EMEA Customers and Canada |
| Name | Number | Description |
| DISAGREE | 0 | User did not agree. |
| AGREE | 1 | User agreed. |
| Field | Type | Label | Description |
| PinStatus | PinResponse.PinStatusEnum | optional | Used only with ValidatePin |
| Name | Number | Description |
| PIN_CREATED | 0 | A Pin was successfully created and a new account now exists - Deprecated |
| PIN_VALID | 1 | The Pin for the existing account was validated |
| PIN_INVALID | 2 | The supplied PIN was invalid |
| PIN_NOT_CREATED | 3 | Failed to create the new Pin and account - Deprecated |
| ACCOUNT_LOCKED | 4 | Too many failed attempts at Pin validation the use account is locked |
This message is in response to ActivationRequest.
timestamp: 1488740988983
messageId: 2
correlationId: 1
messages
{
[com.fca.uconnect.global.activationResponse]
{
responseEnum: ACTIVATED
}
}
| Field | Type | Label | Description |
| response | ActivationResponse.ResponseEnum | optional | Indicator of the status of the associated ActivationRequest. The correlationId in the containing UconnectMessage must be the same as the messageId of the ActivationRequest. |
| isTransient | bool | optional | Indicates a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific Error Code |
| Name | Number | Description |
| ACTIVATED | 0 | Activated successfully. Set Only After CompleteActivationRequest is sent |
| REGISTRATION_REQUIRED | 1 | Registration required for Activation - Please Create PIN with CompleteActivation |
| FAILURE | 2 | Failed due to system exception. |
| VALIDATE_PIN | 3 | Deprecated |
| SIGN_LEGAL | 4 | Deprecated |
| COMPLETE_ACTIVATION | 5 | An Account Exists, submit CompleteActivationRequest - No pin required |
| ACTIVATION_IN_PROGRESS | 6 | For China - RNR Requires completion. Provisioning will be completed after the RNR is done. |
| Field | Type | Label | Description |
| legalDocs | UpdateLegalDocs.LegalDocsDetailType | repeated | Used to send update legal documents to the client. This can include T&C\n Or Privacy Agreements |
| Field | Type | Label | Description |
| documentType | DocumentType | optional | |
| documentID | string | optional | |
| documentVersion | string | optional | |
| documentLanguage | string | optional |
| Field | Type | Label | Description |
| legalDocs | LegalDocs | repeated |
| Field | Type | Label | Description |
| documentTypes | DocumentType | optional | |
| documentID | string | optional | |
| documentVersion | string | optional | |
| document | bytes | optional |
The messages in ADA.Proto are intended for flexible data collection and diagnostic commands with direct communication to FCA ADA infrastructure .
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.0 | 2019-09-30 | Release of initial Proto. |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcaada/${iot:ClientId}/ADA |
| Cloud receive from Vehicle | Subscribe | fcaada/ADA/# |
| Vehicle send to Cloud | Publish | fcaada/ADA/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcaada/${iot:ClientId}/# |
Sequence Diagram with ADA Communication Strategy :

| Field | Type | Label | Description |
| timestamp | string | optional | Bundle upload time. Unit - UTC epoch in milliseconds. |
| vin | string | optional | Vehicle Identification Number. |
| id | int64 | optional | Policy id. |
| hash | string | optional | TBD. |
| period | int64 | optional | Period of plan for which data is being uploaded. |
| bundle | AdaBundle | repeated | List of data bundles. |
| Field | Type | Label | Description |
| data | string | repeated | Bundle data item. |
| Field | Type | Label | Description |
| id | int64 | optional | Unique identifier for a policy. |
| pname | string | optional | Policy name. |
| renew | int64 | optional | ADA checks for updated policy after renew period. Unit: milliseconds. |
| backup_window | int64 | optional | Number of transfer_windows in backup log. Unit: number. |
| delay | int64 | optional | Wait time from Application start before starting to process plans in the policy. Unit: milliseconds. |
| timestamp | int64 | optional | Policy creation time. Unit - UTC epoch in milliseconds. |
| plans | AdaPlan | repeated | List of plans |
| Field | Type | Label | Description |
| period | int64 | optional | Data collection frequency. Unit - milliseconds. |
| type | string | optional | Plan type; Possible values { "poll", "event", "popup" } |
| transfer_window | int64 | optional | Number of samples to be collected in each upload bundle. Unit: number |
| signals | AdaSignal | repeated | List of signals / data points to be collected |
| event | AdaEvent | repeated | Event definition |
To be replaced by Stack Evaluator's event object
| Field | Type | Label | Description |
| signalName | string | optional | Signal or datapoint being compared. Same as AdaSignal.name |
| signalType | string | optional | Type or source of datapoint. Same as AdaSignal.type |
| compareType | string | repeated | Comparison type. Possible values { "threshold", "signal" } |
| threshold | string | repeated | Threshold value |
| compareToSignals | string | repeated | List of signals |
| comparators | string | repeated | Possible values >, <, =, >=, <=. |
| Field | Type | Label | Description |
| bundle | string | optional | Encrypted AdaBundleEvent |
This API is to notify the AOTA client of an update. The AOTA client will manage downloading the update most likely through a different channel (https).
UconnectAny | |---- InitiateDiscrepancyCheck initiateDiscrepancyCheck | |---- DiscrepancyCheck discrepancyCheck | |---- ApplicationUpdateNotification applicationUpdateNotification | |---- UpdateStatusNotification updateStatusNotificationChange Log
| Version | Date | Notes |
| 1.4 | 2018-06-26 | Added status enumerations to separately identify Download and Install status |
| 1.3 | 2018-05-21 | Updated Sequence Diagram, minor documentation updates |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-09-27 | Update Notification response |
| 1.0 | 2017-07-11 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/AOTA |
| Cloud receive from Vehicle | Subscribe | fcasdp/AOTA/# |
| Vehicle send to Cloud | Publish | fcasdp/AOTA/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

This message is for SDP to request TBM/HU to initiate DescrepancyCheck for updates.
timestamp: 1490885867532
messageId: 11
messages
{
[com.fca.uconnect.global.initiateDescrepancyCheck]
{
}
}
| Field | Type | Label | Description |
| parameters | InitiateDiscrepancyCheck.ParametersEntry | repeated |
This message is to check if there is an update available for Application.
| Field | Type | Label | Description |
| drmFile | bytes | optional | This is the base64 encoded DRM File sent for the discrepancy check. |
| applicationInventory | ApplicationInventory | repeated |
This message is to Push the Application to Client when there is an update available.
timestamp: 1490885867532
messageId: 11
messages
{
[com.fca.uconnect.global.applicationUpdateNotification]
{
version: "2.0"
description: "Update for ABC"
expireDate: 360000
packageSize: 10000
url: "https://abc.com"
checksum: "CE114E4501D2F4E2DCEA3E17B546F339"
}
}
| Field | Type | Label | Description |
| appId | string | optional | Application identifier which is unique. |
| version | string | optional | Version of the Firmware that needs to be downloaded. |
| description | string | optional | Description of the application |
| expireDate | int64 | optional | Time till when the Software is available for update. |
| packageSize | int32 | optional | Size of the Application. |
| url | string | optional | URL to download the App update. |
| checksum | string | optional | Checksum of the FW package is to ensure integrity of downloading. |
| token | string | optional | Token which will be sent to download server to download the App. |
This message is to respond to SDP after Client installs Application Updates.
timestamp: 1490885867676
messageId: 1
correlationId: 11
messages
{
[com.fca.uconnect.global.updateStatusNotification]
{
status: SUCCESS
}
}
| Field | Type | Label | Description |
| status | UpdateStatusNotification.StatusEnum | optional | Indicator for the status of the Software. |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| appId | string | optional | assigned ID for an application |
| Name | Number | Description |
| SUCCESS_DOWNLOAD | 0 | Downloaded Successfully. |
| FAILURE_DOWNLOAD | 1 | Download failed from download server. |
| UPTODATE | 4 | This Software update is already installed. |
| SUCCESS_INSTALL | 5 | Installation Successful |
| FAILURE_INSTALL | 6 | Application installation failed. |
| SUCCESS_UNINSTALL | 7 | Application Uninstallation Successful |
| FAILURE_UNINSTALL | 8 | Application Uninstallation failed. |
This API supports the client sending both User and Device identifier and credentials to the SDP.
For Users the SDP replies with the login results. Upon successful login, the SDP will push a provisioning message to the client with personal account settings associated with the provided user identity. The API is also to support a personal account. The SDP must know the identity of the user prior to delivering personal account data to the vehicle.
For vehicle authorization, commmonly referred to as Bootstrap, the vehicle will send an initial auth key consisting of hash of client generated challengekey and a nonce (a trust id to be identified in implementation) and will recieve in return a server challenge key and nonce. These will be used to generate a temporary session key, which when passed to the server will return a valid sessionid. Once received, the valid sessionId should be used in the Uconnect Message.SessionID filed for all future Uconnect Messages until it is refreshed.
UconnectAny | |---- LoginRequest loginRequest (100) | |---- LoginResponse loginResponse (101) | |---- LogoutRequest LogoutRequest (102) | |---- LogoutResponse logoutResponse (103)
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.9 | 2019-05-07 | Added HDMAPS Topic |
| 1.8 | 2018-05-30 | Added Token Request and Response for Navigation - NavAutheRequest and Response |
| 1.7 | 2018-05-30 | Added Token Request and Response for Eco Coaching |
| 1.6 | 2018-03-12 | Removing bootstrap |
| 1.5 | 2017-12-11 | Adding bootstrap |
| 1.3 | 2017-11-2 | Update to Proto3 |
| 1.2 | 2017-09-27 | Update to include responses |
| 1.1 | 2017-03-22 | Session Id is Changed to Bytes |
| 1.0 | 2017-02-14 | Release of initial Proto |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/AUTH/ |
| Cloud receive from Vehicle | Subscribe | fcasdp/AUTH/# |
| Vehicle send to Cloud | Publish | fcasdp/AUTH/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/AUTH |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/HDMAPS/ |
| Cloud receive from Vehicle | Subscribe | fcasdp/HDMAPS/# |
| Vehicle send to Cloud | Publish | fcasdp/HDMAPS/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/HDMAPS |
The following sequence diagram shows the messages for implementing login/logout to support securely accessing the personal account information managed by the SDP:

*
| Field | Type | Label | Description |
| token | bytes | optional | Use for Token Refresh Requests |
| provider | NavAuthResponse.ProviderId | optional | ProviderID |
| Field | Type | Label | Description |
| serviceID | string | optional |
| Field | Type | Label | Description |
| response | NavAuthResponse.ResponseEnum | optional | |
| sessionId | bytes | optional | Session ID for the current login |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| tokenFile | bytes | optional | Use for token, or for Tom Tom the XML including token and services |
| ServiceIDs | servicesList | repeated | |
| tokenExpiration | string | optional | |
| providerEnum | NavAuthResponse.ProviderId | optional |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| NOT_AUTHORIZED | 1 | NOT_AUTHORIZED |
| FAILURE | 2 | FAILURE |
| Name | Number | Description |
| TOMTOM | 0 | |
| TELENAV | 1 |
| Field | Type | Label | Description |
| response | ProfileTokenResponse.ResponseEnum | optional | |
| sessionId | bytes | optional | Session ID for the current login |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| profileToken | bytes | optional | Returned Profile Token |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| NOT_AUTHORIZED | 1 | NOT_AUTHORIZED |
| FAILURE | 2 | FAILURE |
| Field | Type | Label | Description |
| access | LoginRequest.AccessLevelEnum | optional | Is this initial login or a pin authorized login. |
| identifier | string | optional | Login Id for current user. |
| credentials | string | optional | Password for current user |
| token | bytes | optional | For passing authorization tokens |
| Name | Number | Description |
| BASE | 0 | Base Enumeration |
| PIN_AUTHORIZED | 1 | Pin Authorized |
| TOKENAUTHORIZED | 2 | For Eco Coaching Profiles |
This is for loginResponse.
timestamp: 1488868821160
messageId: 1
correlationId: 1
messages
{
[com.fca.uconnect.global.loginResponse]
{
response: SUCCESS
sessionId: "-\0274\302]\325\324 \354K"
}
}
| Field | Type | Label | Description |
| response | LoginResponse.ResponseEnum | optional | |
| sessionId | bytes | optional | Session ID for the current login |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| NOT_AUTHORIZED | 1 | NOT_AUTHORIZED |
| FAILURE | 2 | FAILURE |
The LogoutRequest has no data elements.
timestamp: 1488869130664
messageId: 20
messages
{
[com.fca.uconnect.global.logoutRequest]
{
}
}
| Field | Type | Label | Description |
This will be response to LogoutRequest.
timestamp: 1488869130739
messageId: 22
correlationId: 20
messages
{
[com.fca.uconnect.global.logoutResponse]
{
response: SUCCESS
}
}
| Field | Type | Label | Description |
| response | LogoutResponse.LogoutResponseEnum | optional | This is an enum which identifies whether logout is successful or has failed. |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| FAILURE | 1 | Failure |
The Proto is to utilize the common Authorization and Comm Check Messages, often referred to as bootstrap.
UconnectAny | |---- CommCheckRequest | |---- CommCheckResponse | |---- SmallECUCommCheckRequest |---- AckMessage
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.2 | 2018-07-16 | Added SmallECU Comm check request message |
| 1.1 | 2018-07-16 | Added DRM Hash for the opportunity to combine CommCheck and ProvisioningRequest |
| 1.0 | 2017-12-11 | 1st Drafted |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/CCHK |
| Cloud receive from Vehicle | Subscribe | fcasdp/CCHK/# |
| Vehicle send to Cloud | Publish | fcasdp/CCHK/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the Vehicle and the SDP:
* 
| Field | Type | Label | Description |
| vehicleId | string | optional | VIN or other unique identifier for the vehicle this Telematics Unit is installed in. |
| device1 | Device | optional | |
| drmHash | bytes | optional | Hash of the DRM from the Signature |
| additionalModemParams | CommCheckRequest.AdditionalModemParamsEntry | repeated | This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters identified in the TC Client Specification |
| reason | CommCheckRequest.ReasonEnum | optional |
| Name | Number | Description |
| IGNITION_CYCLE_CHECK | 0 | IGNITION_CYCLE_CHECK |
| TBM_FLASH | 1 | TBM_FLASH |
| HU_FLASH | 2 | HU_FLASH |
| ON_DEMAND | 3 | ON_DEMAND |
| MISDN_MISMATCH | 4 | MISDN_MISMATCH |
| DISCREPENCY_CHECK | 5 | DISCREPENCY_CHECK |
| SOFTWARE_REFRESH | 6 | SOFTWARE_REFRESH |
| HU_SWAP | 7 | HU_SWAP |
| TBM_SWAP | 8 | TBM_SWAP |
| ENROLLMENT | 9 | ENROLLMEN |
| Field | Type | Label | Description |
| response | CommCheckResponse.ResponseEnum | optional | |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Comm check successful |
| FAILURE | 1 | Comm check failed |
| Field | Type | Label | Description |
| parameters | InitiateCommCheck.ParametersEntry | repeated | This can be used as key value pair for additional Modem Identifiers. And should contain key value pairs for parameters required to trigger the comm check |
| Field | Type | Label | Description |
| vehicleId | string | optional | |
| commCheckReason | SmallECUCommCheckRequest.CommCheckReasonEnum | optional | |
| ecuType | SmallECUCommCheckRequest.MasterECUDeviceType | optional | |
| deviceManufacturer | string | optional | |
| serialNumber | string | optional | |
| partNumber | string | optional | |
| hardwareNumber | string | optional | |
| hardwareVersion | string | optional | |
| softwareNumber | string | optional | |
| softwareVersion | string | optional | |
| drmHash | bytes | optional |
| Name | Number | Description |
| NOT_USED | 0 | |
| CADM2 | 1 | |
| SGW | 2 |
| Name | Number | Description |
| IGNITION_CYCLE_CHECK | 0 | IGNITION_CYCLE_CHECK |
| ON_DEMAND | 1 | ON_DEMAND |
| SOFTWARE_REFRESH | 2 | SOFTWARE_REFRESH |
| ECU_SWAP | 3 | HU_SWAP |
| ECU_FLASH | 4 | TBM_SWAP |
*This API is to upload Data Gathered for Pages Coaching and Connected Brand Pages.
UconnectAny | |---- UploadPagesData UploadPagesData (2000)
Change Log
| Version | Date | Notes |
| 1.3/td> | 2018-10-16 | Removed Eco Coaching |
| 1.2 | 2018-07-23 | Updated Sequence Diagram |
| 1.1 | 2018-05-18 | Added Token Elements Required for profile. |
| 1.0 | 2018-03-12 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PGS |
| Cloud receive from Vehicle | Subscribe | fcasdp/PGS/# |
| Vehicle send to Cloud | Publish | fcasdp/PGS/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | Publish message from vehicle | TBM | The in-vehicle UploadPagesData event which triggers the client device to send an UploadPagesData Message to the SDP. | ||
| 2. | Assign MessageId | TBM | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send UploadPagesData Message | TBM | UploadPagesData | /PGS/${iot:ClientId} | The client populates the UploadPagesData Message with the required elements and publishes to the PERFORMANCE topic. |
| 4.1 | Process Message | SDP | The SDP processes the message and generates an ACK Message with the status and assign correct correlationId. | ||
| 4.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 5 | send AckMessage | SDP | AckMessage | /PGS/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received UploadPagesData Message. |
| 6 | Process AckMessage | TBM | The client process AckMessage. |
| Field | Type | Label | Description |
| userID | string | optional | Same as ID used for the Personal Login, used for routing only |
| webSite | string | optional | Targeted Web Address |
| tripID | string | optional | Trip ID for ECO or Off Road Trip data |
| dataTyped | UploadPagesData.dataUploadTypeEnum | optional | Data Type EcoTrip, BrandTrip, Trail, Status, Event |
| tripData | bytes | optional | Data being uploaded |
| profileToken | bytes | optional | Token obtained for Eco Coaching Profile |
| Name | Number | Description |
| BASE | 0 | Required Default value |
| BRANDTRIP | 2 | Trip data for Brand/Offroad Pages |
| TRAIL | 3 | Performance Data for Trails Upload |
| STATUS | 4 | Status Data to be uploaded |
| EVENT | 5 | Event based data upload [i.e. Ingition Off/On] |
| Version | Date | Notes |
|---|---|---|
| 1.1 | 2019-09-05 | Included Burstmode Request and Response Messages |
| 1.0 | 2019-07-20 | Updated per 07/18 email from Harman |
| 1.0 | 2019-05-20 | Merged into Global API Repository and Release |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/CRNS |
| Cloud receive from Vehicle | Subscribe | fcasdp/CRNS/# |
| Vehicle send to Cloud | Publish | fcasdp/CRNS/${iot:ClientId}/ |
| Vehicle receive from Cloud | Subscribe | fcasdp/CRNS/# |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/BMCRNS |
| Cloud receive from Vehicle | Subscribe | fcasdp/BMCRNS/# |
| Vehicle send to Cloud | Publish | fcasdp/BMCRNS/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/BMCRNS |
The following sequence diagram depicts the flow of corrections messages between the TBM and the SDP for Burst Mode:
The following sequence diagram depicts the flow of corrections messages between the TBM and the SDP for Burst Mode:
| Field | Type | Label | Description |
| correctionBytes | bytes | optional |
| Field | Type | Label | Description |
| burstMode | bool | optional |
| Field | Type | Label | Description |
| burstCorrectionsBytes | bytes | optional |
| Version | Date | Notes |
|---|---|---|
| 1.1 | 2019-08-29 | Reworked based on DataLoggerExportFormat_v4.1.xlsx |
| 1.0 | 2019-05-20 | Merged into Global API Repository and Release |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/DLGR |
| Cloud receive from Vehicle | Subscribe | fcasdp/DLGR/# |
| Vehicle send to Cloud | Publish | fcasdp/DLGR/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/DLGR |
The following sequence diagram depicts the flow of DataLog Header messages between the TBM and the SDP:
The following sequence diagram depicts the flow of DataLog Request and Response messages between the TBM and the SDP:
| Field | Type | Label | Description |
| ulin | string | optional | Ulin shall be assigned a 20 digit Unique Log Identification Number (ULIN) that consists of the CADM2 ECU Serial Number (12 or 14 digit F18C Traceability Number) followed by a 6 digit sequential number. The sequential number shall be incremented with each data file stored over the life of the CADM2. Modules that use a 12 digit traceability number shall pad their traceability number with two trailing ?-? (ASCII 0x2D) to bring it up to the required 14 digits. |
| noOfTriggers | int32 | optional | Number of triggers in data file. |
| lockingTrigger | bool | optional | Data File Contains Locking Trigger. DataLogMemoryFull.Info |
| mapDatabaseVersion | string | optional | Map Database Version. |
| vin | string | optional | Vehicle Identification Number (VIN). |
| nextTrigger | PublishDataHeader.TriggerInfoType | repeated | Array of Trigger ids based on no. of Triggers in data file. |
| cadmSWVersion | PublishDataHeader.CadmSoftwareVersionType | optional | CADM Software Version Details. |
| dbVersion | PublishDataHeader.DatabaseVersionType | optional | Data Log Database Version. |
| firstTrigger | PublishDataHeader.TriggerInfoType | optional | Trigger id of the First Trigger event fired. |
| Name | Number | Description |
| DEFAULT | 0 | |
| ADAS_MRM_Initiated | 1 | Trigger fired when ADAS Minimum Risk Maneuver (MRM) Initiated |
| ADAS_Evasive_Steering_Event | 2 | Trigger Fired: ADAS Evasive Steering Event ((Steering Wheel Power (Rate * Torque) > 300 Nm deg/Sec for 100ms) |
| Low_Vehicle_Acceleration | 3 | Trigger Fired when Vehicle acceleration less than -6 m/s2 for 200 ms |
| Driver_Manual_Throttle_Override | 4 | Trigger Fired when Driver manual throttle override in excess of 90% pedal travel for 200 ms. |
| Perception_Layer_Error | 5 | Trigger fired when Perception Layer error. Fused tracked object changes from Bicycle or pedestrian to Vehicle (Car,tuck, motorcycle) or Vehicle to Bicycle or pedestrian. |
| AEB_Event_Active_or_FCA_Warning | 6 | Trigger Fired when "AEB Event Active (FCW, CMS, CMS-XTD, LSCM, PEB, EBA, ICA_L, ICA_R, AEB_P, AEB_P_Extended) OR FCW warning". |
| L2Plus2B_Steer_Torque_Command_Exceeded_Limit | 7 | Trigger fired when L2Plus2B Steer Torque Command in excess of 95% of limit for 200 ms. |
| CADM_Fault | 8 | Trigger Fired when CADM Fault transitions to Active. |
| CADM2_Fault | 9 | Trigger Fired when CADM2 Fault transitions to Active. |
| EPS_Fault | 10 | Trigger fired when EPS Fault transitions to Active. |
| BSM_Fault | 11 | Trigger fired when BSM Fault transitions to Active. |
| EPB_Fault | 12 | Trigger fired when EPB Fault transitions to Active. |
| DMSM_Fault | 13 | Trigger fires when DMSM Fault transitions to Active. |
| ABS_Intervention | 14 | Trigger fires when ABS intervention transitions to active. |
| ESC_Intervention | 15 | Trigger fires when ESC intervention transitions to active. |
| Maximum_Lateral_Encroachment_Threshold | 16 | Trigger fires when Maximum Lateral encroachment Threshold. |
| Highway_Assist_System_Primary_Fault | 17 | Trigger fires when Highway Assist System Primary Fault transitions to Active. |
| Highway_Assist_System_Secondary_Fault | 18 | Trigger fires when Highway Assist System Secondary Fault transitions to Active. |
| Field | Type | Label | Description |
| triggerRelativeTime | DataSetSignal | optional | |
| gpsLatitude | DataSetSignal | optional | |
| gpsLongitude | DataSetSignal | optional | |
| gpsAltitude | DataSetSignal | optional | |
| odometer | DataSetSignal | optional | |
| triggerID | PublishDataHeader.TriggerIds | optional | |
| gpsTime | PublishDataHeader.gpsTimeInfo | optional | GPS Time |
| Field | Type | Label | Description |
| fusedLaneBoundaries | string | repeated | Fused Lane Boundaries: Polynomial terms of Fused Lane Boundaries used for path planning |
| reasonForDisengagement | DataLogMessageObject.ReasonForDisengagement_Type | repeated | |
| absActiveFlag_BSM | DataLogMessageObject.Active_Enum | repeated | ABS Intervention Active Flag in BSM. ABSActive.Info |
| absActiveFlag_BSM2 | DataLogMessageObject.Active_Enum | repeated | ABS Intervention Active Flag in BSM2. ABSActive_B2.Info |
| escActiveFlag_BSM | DataLogMessageObject.Active_Enum | repeated | ESC Intervention Active Flag in BSM. ESCActive.Info |
| hdMapCenterline_lateralDistance | float | repeated | float array of length 40 |
| lrcfFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | LRCF Fault Status in CADM. LRCF_C1.Info |
| lrrfFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | LRRF Fault Status in CADM. LRRF_C1.Info |
| mrrflFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | MRRFL Fault Status in CADM. MRRRL_Fault_C1.Info |
| mrrrlFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | MRRRL Fault Status in CADM. MRRRL_Fault_C1.Info |
| mrrfrFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | MRRFR Fault Status in CADM. MRRFR_Fault_C1.Info |
| mrrrrFaultStatus | DataLogMessageObject.FaultStatus_Enum | repeated | MRRRR Fault Status in CADM. MRRRR_Fault_C1.Info |
| brakePrefillRequest | DataLogMessageObject.PrefillRequest_Enum | repeated | Brake Prefill Request in CADM. Prefill_Req.Info |
| prefillResponse | DataLogMessageObject.Active_Enum | repeated | Prefill Response. PrefillActive.Info |
| driverHeadPosition | DataLogMessageObject.Present_Enum | repeated | Driver Head Position. Driver_Presence.Info |
| hazardSwitchStatus | DataLogMessageObject.Set_Enum | repeated | Hazard Switch Status in BCM. HazardSwitchPresse.Info |
| guidancePath_lateralDistance | DataSetSignal | repeated | activePlannerBehaviour in CADM. Array of length 41 |
| SeatVibration_Req | DataLogMessageObject.SeatVib_Req_Enum | repeated | SeatVib_Req.Info Seat vibration status |
| SeatVibration_Sts | DataLogMessageObject.SeatVib_Sts_Enum | repeated | BCM_FD_12.SeatVib_Sts. Seat vibration status |
| wiperSwitchStatus | DataLogMessageObject.WiperSwitchStatus_Enum | repeated | Wiper Switch Status in BCM. Wiper_Move.info |
| driverModelStatus | DataLogMessageObject.DriverModelStatusEnum | repeated | Driver Model Status in CADM. Driver_Model.Info |
| fcwWarningStatus | DataLogMessageObject.FCWWarningStatusEnum | repeated | FCW Warning Status in CADM. AEB_DispPopupSts.Info |
| bsmFaultStatus | DataLogMessageObject.OpStatusEnum | repeated | BSM Fault Status in BSM. BSM_OpStat.Info |
| bsm2FaultStatus | DataLogMessageObject.OpStatusEnum | repeated | BSM 2 Fault Status. BRAKE2_FD_2.Brake_OpStat |
| cadmFaultStatus | DataLogMessageObject.OpStatusEnum | repeated | CADM Fault Status in CADM. CADM_OpStat.Info |
| cadm2FaultStatus | DataLogMessageObject.OpStatusEnum | repeated | CADM2 Fault Status in CADM2. CADM2_OpStat.Info |
| gnmmFaultStatus | DataLogMessageObject.GNMMFaultStatusEnum | repeated | GNMM Fault Status in GNMM. GNMM_Health.Info |
| dmsmFaultStatus | DataLogMessageObject.DMSMFaultStatusEnum | repeated | DMSM Fault Status in DMSM. DMSM_System_Stat.Info |
| powertrainMILLampStatus | DataLogMessageObject.EMSFailStatusEnum | repeated | Powertrain MIL Lamp Status in ECM. EMSFailSts.Info |
| swsmFaultStatus | DataLogMessageObject.SWSMFaultStatusEnum | repeated | SWSM Fault Status for Hands Off Status in SWSM. SWSM_1.ERR_ST_HOD |
| dalmFaultStatus | DataLogMessageObject.BCMFaultStatusEnum | repeated | DALM Fault Status in BCM. BCM_FD_12.DALM_Status |
| adasOperatingState_Cadm | DataLogMessageObject.HASEscalationStatusEnum | repeated | ADAS Operating State in CADM. HAS_Escalation_Sts.Info |
| adasOperatingState_Cadm2 | DataLogMessageObject.HASEscalationStatusEnum | repeated | ADAS Operating State in CADM2. HAS_Escalation_Sts_C2.Info |
| mrmState_Cadm | DataLogMessageObject.MRMStatusEnum | repeated | MRM State in CADM. MRM_Status.Info |
| mrmState_Cadm2 | DataLogMessageObject.MRMStatusEnum | repeated | MRM State in CADM2. MRM_Status_C2.Info |
| torqueOverlayEngageReqEPS_Cadm | DataLogMessageObject.HASLatCtrlRequestStatusEnum | repeated | Torque Overlay Engage Request to EPS for CADM. HAS_LAT_CTRL_RequestSts.Info |
| torqueOverlayEngageReqEPS_Cadm2 | DataLogMessageObject.HASLatCtrlRequestStatusEnum | repeated | Torque Overlay Engage Request to EPS for CADM2. HAS_LAT_CTRL_RequestSts_C2.Info |
| powertrainInterfaceEngageReq | DataLogMessageObject.PowertrainInterfaceEngageReq_Type | repeated | |
| brakeDecelInterfaceEngageReqType_Cadm | DataLogMessageObject.AEBTypeStatusEnum | repeated | Brake Decel Interface Engage Request Type in CADM. AEB_Type.Info |
| brakeDecelInterfaceEngageReqType_Cadm2 | DataLogMessageObject.AEBTypeStatusEnum | repeated | Brake Decel Interface Engage Request Type in CADM2. AEB_Type_C2.Info |
| electronicParkBrakeStatus | DataLogMessageObject.ElectronicParkBrakeStatusEnum | repeated | Electronic Park Brake Status in BSM. EPBSts.Info |
| steeringWheelHandsOnStatus | DataLogMessageObject.SteeringWheelHandsOnStatusEnum | repeated | Steering Wheel Hands On Status in SWSM. SWSM_1.HOFF_RCOG_SEN |
| epsHandsOnStatus_Primary | DataLogMessageObject.EPSHandsOnStatusEnum | repeated | EPS Hands On Status in EPS on FD-14. EPS_Hands_On_Sts.Info |
| epsHandsOnStatus_Secondary | DataLogMessageObject.EPSHandsOnStatusEnum | repeated | EPS Hands On Status in EPS on FD-2. EPS_FD_1.EPS_Hands_On_Sts |
| driverGazeLocation | DataLogMessageObject.DriverGazeLocationEnum | repeated | Driver Gaze Location. DM_Zone_Track.Info |
| prndlPosition | DataLogMessageObject.PRNDLPositionEnum | repeated | PRNDL Position in TCM. GearEngaged.Info |
| yawRate_BSM | DataSetSignal | repeated | Yaw Rate in BSM. YawRate_BSM.Info |
| yawRate_GNMM | DataSetSignal | repeated | Yaw Rate in GNMM. YawRate_GNMM.Info |
| rfTirePressure | DataSetSignal | repeated | RF Tire Pressure in RF_HUB. PressureValue_RHF_Tyre.Info |
| lfTirePressure | DataSetSignal | repeated | LF Tire Pressure in RF_HUB. PressureValue_LHF_Tyre.Info |
| rrTirePressure | DataSetSignal | repeated | RR Tire Pressure in RF_HUB. PressureValue_RHR_Tyre.Info |
| lrTirePressure | DataSetSignal | repeated | LR Tire Pressure in RF_HUB. PressureValue_LHR_Tyre.Info |
| batteryVolt1 | DataSetSignal | repeated | Battery Voltage 1 in BCM. BCM_FD_3.Battery_Volt_1 |
| batteryVolt2 | DataSetSignal | repeated | Battery Voltage 2 in BCM. BCM_FD_3.Battery_Volt_2 |
| torqueRequestEPS_Cadm | DataSetSignal | repeated | Torque Request to EPS for CADM. TorqueOverlaySteeringReq.Info |
| torqueRequestEPS_Cadm2 | DataSetSignal | repeated | Torque Request to EPS for CADM. TorqueOverlaySteeringReq.Info |
| epsMotorTorque_FD14 | DataSetSignal | repeated | EPS FD-14 Motor Torque in EPS. EPSMotorTorque.Info |
| epsMotorTorque_FD2 | DataSetSignal | repeated | EPS FD-2 Motor Torque in EPS. EPS_FD_1.EPSMotorTorque |
| powertrainTorqueReq | DataLogMessageObject.PowertrainTorqueReq_Type | repeated | |
| powertrainOutputTorque | DataSetSignal | repeated | Powertrain Output Torque in ECM/HCP. SumTorqueStatic.Info |
| brakeDecelRequest_Cadm | DataSetSignal | repeated | Brake Decel Request in CADM. Intervention.Info |
| brakeDecelRequest_Cadm2 | DataSetSignal | repeated | Brake Decel Request in CADM2 Intervention_C2.Info |
| brakeTorqueApplied_BSM | DataSetSignal | repeated | Brake Torque Applied in BSM. BrkTrq.info |
| brakeTorqueApplied_BSM2 | DataSetSignal | repeated | Brake Torque Applied in BSM2. BRAKE2_FD_2.BrkTrq_B2 |
| driverAppSteeringWheelTorque_Primary | DataSetSignal | repeated | Driver Applied Steering Wheel Torque in EPS on FD-14. Steering_Column_Torque.Info |
| driverAppSteeringWheelTorque_Secondary | DataSetSignal | repeated | Driver Applied Steering Wheel Torque in EPS FD-2. EPS_FD_1.Steering_Column_Torque |
| throttlePedalPosition | DataSetSignal | repeated | Throttle Pedal Position in ECM. PdlPosActual.Info |
| externalAmbientTemp | DataSetSignal | repeated | External Ambient Temperature in BCM. BCM_FD_10.ExternalTemperatureC |
| driverLongitudinalSetSpeed | DataSetSignal | repeated | Driver Longitudinal Set Speed in CADM. Set_Speed_KPH.Info |
| systemTargetSpeed | DataSetSignal | repeated | System Target Speed (kph or mph). ACC_DsrSpeedKPH.Info |
| vehicleSpeed | DataSetSignal | repeated | Vehicle Speed (kph or mph) in BSM. VehicleSpeedVSOSig.info |
| steeringAngle_Primary | DataSetSignal | repeated | Steering Angle in EPS on FD-14. LwsAngle.Info |
| steeringAngle_Secondary | DataSetSignal | repeated | Steering Angle in EPS on FD 2. EPS_FD_1.LwsAngle |
| lateralAcceleration_BSM | DataSetSignal | repeated | Lateral Acceleration (m/s2) in BSM. LatAcceleration_BSM.info |
| lateralAcceleration_GNMM | DataSetSignal | repeated | Lateral Acceleration (m/s2) in GNMM. LateralAcceleration_GNMM.Info |
| longAcceleration_BSM | DataSetSignal | repeated | Longitudinal Acceleration (m/s2) in BSM. LongAcceleration_BSM.Info |
| longAcceleration_GNMM | DataSetSignal | repeated | Longitudinal Acceleration (m/s2) in GNMM LongitudinalAcceleration_GNMM.Info |
| frontLongRangeCameraImg | DataLogMessageObject.FrontLongRangeCameraObjectType | repeated | Front Long Range Camera Image. 320 x 240 8 bit Grayscale |
| locHDMapCoordinate | DataLogMessageObject.LocHDMapCoordinateObjectType | repeated | |
| trackedObjects | DataLogMessageObject.TrackedObjectType | repeated | Tracked Object List in CADM. |
| steeringAngleType_Primary | DataLogMessageObject.SteeringAngleTypeEnum | repeated | Steering Angle Type in EPS on FD-14. LwsAngleType.Info |
| steeringAngleType_Secondary | DataLogMessageObject.SteeringAngleTypeEnum | repeated | Steering Angle Type in EPS on FD-2. EPS_FD_1.LwsAngleType |
| epsOverlayState_FD14 | DataLogMessageObject.OpStatusEnum | repeated | EPS Overlay State (FD-14) EPS Fault Status in EPS. Steering_OpStat_Prim.Info |
| epsOverlayState_FD2 | DataLogMessageObject.OpStatusEnum | repeated | EPS Overlay State (FD-2) EPS Fault Status in EPS. EPS_FD_1.Steering_OpStat_Sec |
| gpsPosition | DataLogMessageObject.GPSPositionType | repeated | GPS Position in GNMM |
| cameraObjectList | DataLogMessageObject.CameraObjectType | repeated | Camera Object List defined by cameraObjectType |
| driverSeatBeltStatus | DataLogMessageObject.DriverSeatBeltStatusEnum | repeated | Driver Seat Belt Status in ORC. SBR1RowDriverSeatSts.Info |
| driverDoorStatus | DataLogMessageObject.DriverDoorStatusEnum | repeated | Driver Door Status in BCM. DriverDoorSts.Info |
| fcwPersonalizationSetting | DataLogMessageObject.FCWPersonalizationSettingEnum | repeated | FCW Personalization Setting in CADM. FSFCWPlusSetting.Info |
| headLightSwitchStatus | DataLogMessageObject.HeadLightSwitchStatusEnum | repeated | Headlight Switch Status in BCM. BCM_FD_26.HLSPosition |
| ignitionSwitchStatus | DataLogMessageObject.IgnitionSwitchStatusEnum | repeated | Ignition Switch Status in BCM. BCM_FD_10.CmdIgnSts |
| edrDeploymentStatus | DataLogMessageObject.edrDeploymentImpactLocation | repeated | EDR Deployment status |
| cadm2SoftwareVersion | DataLogMessageObject.Cadm2SoftwareVersionType | optional | CADM2 Software Version details. |
| CADM2ModeStatus | DataLogMessageObject.CADM2ModeStatus_Enum | repeated | CADM2 Mode Status signals in CADM2 ECU. CADM2_Mode.Info |
| l2pHMIReqToAudioAmp | DataLogMessageObject.HMIReqToAudioAmp | repeated | |
| l2pHMIReqToCluster | DataLogMessageObject.l2pHMIReqToCluster_Type | repeated | |
| turnSignalSwitchStatus | DataLogMessageObject.TurnSignalSwitchStatus_Type | repeated | |
| dbsmInternalErrorSts | DataLogMessageObject.DBSM2_Internal_Error_Enum | repeated | |
| dbsmResponseErrorSts | DataLogMessageObject.DBSM2_Internal_Error_Enum | repeated | |
| dbsmOverCurrentDetectedSts | DataLogMessageObject.Overcurrent_Detected_Enum | repeated | |
| dbsmOverTemperatureDetectedSts | DataLogMessageObject.Overtemp_Detected_Enum | repeated | |
| dbsmSwitchStsOpenClose | DataLogMessageObject.Switch_Status_OpenClose_Enum | repeated | |
| dbsmUndervoltageDetectedSts | DataLogMessageObject.Undervoltage_Detected_Enum | repeated | |
| headLight_Status | DataLogMessageObject.HeadLightStatus_Type | repeated | |
| hppPolynomial | DataLogMessageObject.HPPPolynomial_Type | repeated | |
| cameraLaneBorderPolynomial | DataLogMessageObject.cameraLaneBorderPolynomialTerms_Type | repeated | Camera Lane Border (Polynomial Terms) in CADM. Internal |
| datalogTimestamp | DataSetSignal | repeated | Defined as the timestamp for each sample period that indicates the time that sample period was captured relative to the trigger event. Refer to VF 553 Range: -30000 to 6000ms |
| verticalAcceleration_GNMM | DataSetSignal | repeated | Vertical Acceleration (m/s2) in GNMM. VerticalAcceleration_GNMM.Info |
| rollRate_GNMM | DataSetSignal | repeated | Roll Rate in GNMM. RollRate_GNMM.Info |
| pitchRate_GNMM | DataSetSignal | repeated | Pitch Rate in GNMM.PitchRate_GNMM.Info |
| cvpamFaultStatus | DataLogMessageObject.cvpamFaultStatus_Type | repeated | |
| dalmColorStatus | DataLogMessageObject.dalmColorStatus_Type | repeated | |
| adasEngagedStatus | DataLogMessageObject.adasEngagedStatus_Type | repeated | |
| adasEngagedStatusCadm2 | DataLogMessageObject.adasEngagedStatusCadm2_Type | repeated | |
| brakeJerkReq | DataLogMessageObject.Active_Enum | repeated | Brake Jerk Request signal from CADM ECU. LC_Jerk.Info |
| Name | Number | Description |
| CENTER | 0 | |
| LEFT | 1 | |
| RIGHT | 2 | |
| SNA_TURN_INDICATOR | 3 |
| Name | Number | Description |
| NOT_PRESENT_SETSPEED | 0 | |
| PRESENT_SETSPEED | 1 |
| Name | Number | Description |
| No_Request_SeatVib | 0 | No_Request |
| Type_1 | 1 | |
| Type_2 | 2 | |
| Type_3 | 3 | |
| Type_4 | 4 |
| Name | Number | Description |
| INIT_SeatVib | 0 | |
| IDLE_SeatVib | 1 | Idle |
| ACTIVE_SeatVib | 2 | |
| FAULTED_SeatVib | 3 |
| Name | Number | Description |
| NO_ERROR_DBSM2 | 0 | |
| ERROR_DBSM2 | 1 |
| Name | Number | Description |
| NO_FAULT_OVER_CURRENT | 0 | No_Fault |
| Over_Current | 1 |
| Name | Number | Description |
| NO_FAULT_OVER_TEMP | 0 | |
| OVER_TEMP | 1 |
| Name | Number | Description |
| OPEN | 0 | |
| CLOSE | 1 |
| Name | Number | Description |
| NO_FAULT_UNDER_VOLTAGE | 0 | |
| UNDER_VOLTAGE | 1 |
| Name | Number | Description |
| Fail_Not_Present_FailSts | 0 | Fail_Not_Present_FailSts |
| Fail_Present | 1 | Fail_Present |
| Name | Number | Description |
| Blinded | 0 | Blinded |
| Not_Blinded | 1 | Not_Blinded |
| Name | Number | Description |
| False | 0 | |
| True | 1 |
| Name | Number | Description |
| NOT_FAULTED | 0 | |
| FAULTED | 1 |
| Name | Number | Description |
| NO_PREFILL_REQUESTED | 0 | |
| PREFILL_REQUESTED | 1 |
| Name | Number | Description |
| NOT_ACTIVE | 0 | |
| ACTIVE | 1 |
| Name | Number | Description |
| NOT_SET | 0 | |
| SET | 1 |
| Name | Number | Description |
| No_Code | 0 | |
| LKA_On | 1 | |
| LKA_Off | 2 | |
| LKA_Hands_Off | 3 | |
| HAS_Eyes_Off_Yellow | 4 | |
| Take_Control_Red | 5 | |
| HAS_Ready_Highway | 6 | |
| Blind_Spot_OFF | 7 | |
| HAS_Ready_ACC_Set | 8 | |
| HAS_Unavailable_Speed_to_High | 9 | |
| HAS_Unavailable_Trailer | 10 | |
| HAS_Unavailable_TempNAP | 11 | |
| HAS_Cancel_FOW | 12 | |
| HAS_Cancel_Lane | 13 | |
| HAS_Cancel_Curve | 15 | |
| Unsupport_Lane_Ahead_Take_Control | 16 | |
| MRM_In_Prog | 17 | |
| MRM_Complete | 18 | |
| HAS_Unavail_Lane | 19 | |
| HAS_Hands_Off_Yellow | 20 | |
| HAS_Hands_Off_Red | 21 | |
| HAS_Cancel_Hands_Off | 22 | |
| HAS_AEB_LKA_Cam_Blind | 23 | |
| HAS_AEB_Cam_Blind | 24 | |
| HAS_LKA_Cam_Blind | 25 | |
| HAS_Cam_Blind | 26 | |
| LKA_AEB_Cam_Blind | 27 | |
| LKA_Cam_Blind | 28 | |
| HAS_AEB_Radar_Blind | 29 | |
| HAS_Radar_Blind | 30 | |
| HAS_AEB_LKA_LIMITED_Fail | 31 | |
| HAS_AEB_LIMITED_Fail | 32 | |
| LKA_AEB_LIMITED_Fail | 33 | |
| HAS_AEB_LKA_Fail | 34 | |
| HAS_AEB_Fail | 35 | |
| HAS_LKA_Fail | 36 | |
| HAS_Fail | 37 | |
| LKA_AEB_Fail | 38 | |
| LKA_Fail | 39 | |
| HAS_Cancel | 40 | |
| HAS_ON | 42 | |
| HAS_OFF | 43 | |
| BSS_Blind_ALM_On | 44 | |
| BSS_Blind_ALM_Off | 45 | |
| BSS_OPR_ALM_Off | 46 | |
| BSS_OPR_ALM_On | 47 | |
| BSS_SRV_ALM_Off | 48 | |
| BSS_SRV_ALM_On | 49 | |
| HAS_Unavail_Road_Data | 50 | |
| HAS_Unavail_No_Eyes_On | 51 | |
| HAS_Unavail_Map_OOD | 52 | |
| HAS_Unavail_Locked_Out | 53 | |
| HAS_Cancel_Road_Data | 54 | |
| HAS_Cancel_Driver_Not_Attent | 55 | |
| HAS_Cancel_Brake_Event | 56 | |
| HAS_Cancel_Speed_Too_High | 57 | |
| HAS_Cancel_Control_Limit | 58 | |
| HAS_ACC_Unavailable_4WD_Low | 59 | |
| HAS_ACC_Unavailable_ESC_Off | 60 | |
| HAS_ACC_Unavailable_ESC_Event | 61 | |
| HAS_ACC_Unavailable_Brakes_Cooling | 62 | |
| HAS_ACC_Unavailable_EPB_Active | 63 | |
| HAS_ACC_Unavailable_Shift_D | 64 | |
| HAS_ACC_Unavailable_Door_Open | 65 | |
| HAS_ACC_Unavailable_Seatbelt_Unbuckled | 66 | |
| HAS_ACC_Unavailable_Road_to_Steep | 67 | |
| HAS_ACC_Unavailable_Low_RPM | 68 | |
| HAS_ACC_Unavailable_High_RPM | 69 | |
| HAS_ACC_Cancel | 70 | |
| HAS_ACC_AEB_Cancel_ESC_Off | 71 | |
| HAS_ACC_Cancel_ESC_Off | 72 | |
| HAS_ACC_Cancel_ESC_Event | 73 | |
| HAS_ACC_Cancel_Brakes_Cooling | 74 | |
| HAS_ACC_Cancel_EPB_Active | 75 | |
| HAS_ACC_Cancel_Shift_D | 76 | |
| HAS_ACC_Cancel_Door_Open | 77 | |
| HAS_ACC_Cancel_Seatbelt_Unbuckled | 78 | |
| HAS_ACC_Cancel_Road_to_Steep | 79 | |
| HAS_ACC_Cancel_Low_RPM | 80 | |
| HAS_ACC_Cancel_High_RPM | 81 | |
| HAS_ACC_User_Enabled | 83 | |
| HAS_ACC_Set | 84 | |
| LKA_Off_Check | 85 | |
| HAS_Curve_Too_Tight | 86 | |
| HAS_Lane_Split | 87 | |
| HAS_On_Reminder | 88 | |
| TxtMsg_TBD_1 | 89 | |
| TxtMsg_TBD_2 | 90 | |
| TxtMsg_TBD_3 | 91 | |
| TxtMsg_TBD_4 | 92 | |
| TxtMsg_TBD_5 | 93 | |
| TxtMsg_TBD_6 | 94 | |
| TxtMsg_TBD_7 | 95 | |
| TxtMsg_TBD_8 | 96 | |
| TxtMsg_TBD_9 | 97 | |
| TxtMsg_TBD_10 | 98 | |
| TxtMsg_TBD_11 | 99 | |
| TxtMsg_TBD_12 | 100 | |
| TxtMsg_TBD_13 | 101 | |
| TxtMsg_TBD_14 | 102 | |
| TxtMsg_TBD_15 | 103 | |
| Stay_In_Lane | 104 |
| Name | Number | Description |
| ABSOLUTE | 0 | Absolute |
| RELATIVE | 1 | |
| SNA_SAT | 3 |
| Name | Number | Description |
| Seat_Belt_Fasten | 0 | |
| Seat_Belt_Not_Fasten | 1 | |
| SNA_DriverSeatBelt | 2 |
| Name | Number | Description |
| OPEN_DOOR | 0 | |
| CLOSED_DOOR | 1 | |
| FAULTED_DOOR | 2 |
| Name | Number | Description |
| Off_Setting | 0 | |
| Audio_Setting | 1 | |
| AudioBrake_Setting | 2 | |
| Brake_Setting | 3 | |
| Not_Request | 4 |
| Name | Number | Description |
| OFF_DRL | 0 | Off DRL |
| Position_Lamps | 1 | Position Lamps |
| Low_Beam | 2 | Low Beam |
| Auto_HeadLightSwitch | 3 | Auto Headlight Status |
| Short_Circuit | 4 | Short Circuit |
| Open_Circuit | 5 | Open Circuit |
| SNA_HeadLightSwitch | 7 | SNA |
| Name | Number | Description |
| Off_Headlight | 0 | |
| On_Headlight | 1 |
| Name | Number | Description |
| Initialization | 0 | |
| IGN_LK | 1 | IGN_LK Ignition Switch Status |
| ACC_IGN | 3 | Acc Ignition Switch Status |
| RUN_IGN | 4 | RUN Ignition Switch Status |
| START_IGN | 5 | Start Ignition Switch Status |
| SNA_IGN | 7 |
| Name | Number | Description |
| CAR | 0 | |
| TRUCK | 1 | |
| MOTORCYCLE | 2 | |
| BICYCLE | 3 | |
| PEDESTRAIN | 4 | |
| GENERAL_OBJECT | 5 | |
| ANIMAL | 6 | |
| UNCERTAIN_VEHICLE | 7 |
| Name | Number | Description |
| LEFT_NEXT_NEXT | 0 | |
| LEFT_NEXT | 1 | |
| EGO_LANE | 2 | |
| RIGHT_NEXT | 3 | |
| RIGHT_NEXT_NEXT | 4 | |
| UNKNOWN | 5 |
| Name | Number | Description |
| OBJECT_CLASS_UNDETERMINED | 0 | |
| OBJECT_CLASS_CAR | 1 | |
| OBJECT_CLASS_MOTORCYCLE | 2 | |
| OBJECT_CLASS_TRUCK | 3 | |
| OBJECT_CLASS_PEDESTRIAN | 4 | |
| OBJECT_CLASS_POLE | 5 | |
| OBJECT_CLASS_TREE | 6 | |
| OBJECT_CLASS_ANIMAL | 7 | |
| OBJECT_CLASS_GOD | 8 | |
| OBJECT_CLASS_BICYCLE | 9 | |
| OBJECT_CLASS_UNIDENTIFIED_VEHICLE | 10 |
| Name | Number | Description |
| NONE | 0 | |
| LOW | 1 | |
| MEDIUM | 2 | |
| HIGH | 3 |
| Name | Number | Description |
| NOT_RELEVENT | 0 | |
| NO_CIPV | 1 | |
| CIPV | 2 |
| Name | Number | Description |
| PNG | 0 | PNG Image Type |
| JPEG | 1 | JPG Image Type |
| BMP | 2 | BMP Image Type |
| H264 | 3 | H264 Image Type |
| Name | Number | Description |
| ATTENTION_Unknown | 0 | Unknown |
| ATTENTION_Criteria_Met | 1 | |
| ATTENTION_Criteria_Not_Met | 2 | |
| FAULTED_DRIVERMODE | 3 |
| Name | Number | Description |
| NO_CODE | 0 | |
| Pre_Intervention_Warning | 1 | |
| Braking_Complete | 4 | |
| AEB_Unavailble_ESC_Off | 5 | |
| AEB_Unavailble_4WD_Low | 6 | |
| Active_Braking_Enabled | 7 | |
| Active_Braking_Disabled | 8 | |
| AEB_User_Disabled | 9 | |
| AEB_Radar_Blind | 10 | |
| Not_used1 | 11 | |
| AEB_Fail | 12 | |
| Not_used2 | 13 | |
| AEB_Cam_Blind | 14 | |
| Not_used3 | 15 | |
| AEB_LIMITED_Fail | 16 | |
| PEB_Off | 17 | |
| PEB_On | 18 | |
| PEB_Radar_Blind | 19 | |
| PEB_Fail | 20 | |
| PEB_Cam_Blind | 21 | |
| FCW_Limited_PEB_Off_Camera_Blinded | 22 | |
| FCW_Limited_PEB_Off_Camera_Fail | 23 | |
| Pre_Intervention_Warning_ICA_L | 24 | |
| Pre_Intervention_Warning_ICA_R | 25 | |
| AEB_Limit_Corner_Blind | 26 |
| Name | Number | Description |
| Inactive | 0 | Inactive |
| FullService | 1 | FullService |
| FailOperational | 2 | FailOperational |
| FailDegraded | 3 | FailDegraded |
| Emergency | 4 | |
| No_Function | 5 |
| Name | Number | Description |
| ACTIVE_CVPAM | 0 | |
| NOT_ACTIVE_BLOCKED | 1 | |
| NOT_ACTIVE_FAILURE | 2 | |
| SNA_CVPAM | 3 |
| Name | Number | Description |
| Not_Avail | 0 | |
| Avail_full_capacity | 1 | |
| Primary_IMU_NA | 2 | |
| GPS_GNSS_NA | 3 | |
| Correction_Data_NA | 4 | |
| SNA_GNMM | 7 |
| Name | Number | Description |
| STANDBY | 0 | Standby |
| TEMP_NA | 1 | |
| INTERNAL_ERROR | 2 | |
| FUNCTIONAL | 3 | Functional |
| Name | Number | Description |
| Fail_Not_Present | 0 | Fail_Not_Present |
| Fail_Flash_Light_Indication | 1 | Fail_Flash_Light_Indication |
| Fail_Fix_Light_Indication | 2 | Fail_Fix_Light_Indication |
| Flash_For_Service | 3 | Flash_For_Service |
| Name | Number | Description |
| NO_ERROR_SWSM | 0 | |
| HOD_EEPROM_ERROR | 1 | |
| HOD_ROM_ERROR | 2 | |
| HOD_WATCHDOG_ERROR | 3 | |
| HOD_CPU_ERROR | 4 | |
| HOD_GUARD_INTERRUPTION_ERROR | 5 | |
| HOD_SENSE_INTERRUPTION_ERROR | 6 | |
| HOD_CPU_DEFECT_OR_MAT_SHORTAGE | 7 | |
| UNDERVOLTAGE_ERROR | 8 | |
| OVERVOLTAGE_ERROR | 9 | |
| HOD_CODING_ERROR | 10 | |
| HOD_GENERIC_SYSTEM_ERROR | 11 | |
| SNA_SWSM | 15 |
| Name | Number | Description |
| No_Fault | 0 | No_Fault |
| Fault | 1 | Fault |
| Name | Number | Description |
| No_Req | 0 | No_Req |
| Yellow_Solid | 1 | |
| Yellow_Runway | 2 | |
| Red_Solid | 3 | |
| Red_Runway | 4 | |
| Blue_Solid | 5 | |
| Blue_Runway | 6 | |
| SNA_DALM | 15 |
| Name | Number | Description |
| No_State | 0 | No_State |
| State0 | 1 | State0 |
| State2 | 3 | State2 |
| State3a | 4 | State3a |
| State3b | 5 | State3b |
| State4a | 6 | State4a |
| State4b | 7 | |
| State5 | 8 |
| Name | Number | Description |
| NOT_ACTIVE_MRM | 0 | |
| MRM_IN_PROCESS | 1 | |
| VEHICLE_SECURE_REQUEST | 2 | Vehicle_Secure_Request |
| Vehicle_SECUREMENT_COMPLETE | 3 | Vehicle_Securement_Complete |
| CANCELED | 4 | Canceled |
| SNA_MRM | 7 | SNA_MRM |
| Name | Number | Description |
| IDLE | 0 | Idle |
| FAULTED_HAS | 1 | Faulted |
| HAS_REQUEST | 2 | HAS_Request |
| Name | Number | Description |
| NOT_ENABLED | 0 | Not_Enabled |
| ENABLED | 1 | Enabled |
| Name | Number | Description |
| NONE_AE | 0 | NONE |
| ACC | 1 | ACC |
| CMS | 2 | CMS |
| CMS_XTD | 3 | CMS_XTD |
| ABA | 4 | ABA |
| LSCM | 5 | LSCM |
| PEB | 6 | PEB |
| ICA_L | 7 | ICA_L |
| ICA_R | 8 | ICA_R |
| HAS_MRM | 9 | HAS_MRM |
| SNA_AEB | 15 |
| Name | Number | Description |
| Released | 0 | Released |
| Applied | 1 | Applied |
| DynamicBrkESC | 2 | DynamicBrkESC |
| DynamicBrkEPB | 3 | DynamicBrkEPB |
| Emergency_Braking | 4 | Emergency_Braking |
| Applying | 5 | Applying |
| Maintenance_Mode | 6 | Maintenance_Mode |
| Assembly_Check | 7 | Assembly_Check |
| Inspection_Mode | 8 | Inspection_Mode |
| Re_Clamping | 9 | Re_Clamping |
| Adjuste_Mode | 10 | Adjuste_Mode |
| Releasing | 11 | Releasing |
| Fault_EPB_Released | 12 | Fault_EPB_Released |
| Fault_EPB_Applied | 13 | Fault_EPB_Applied |
| Fault_Present | 14 | Fault_Present |
| SNA_EPB | 15 |
| Name | Number | Description |
| HANDS_OFF_DETECTED | 0 | HANDS_OFF_DETECTED |
| ENERGY_SAVING_MODE | 1 | ENERGY_SAVING_MODE |
| HANDS_OFF_NOT_DETECTED | 2 | HANDS_OFF_NOT_DETECTED |
| HANDS_NOT_AVAILABLE | 3 | |
| HANDS_OFF_ERROR | 4 | HANDS_OFF_ERROR |
| SNA_SWHO | 15 |
| Name | Number | Description |
| NOT_DETECTED | 0 | Not_Detected |
| DETECTED | 1 | Detected |
| Name | Number | Description |
| Unknown | 0 | Unknown |
| On_Road | 1 | On_Road |
| Cluster | 2 | Cluster |
| Left_Mirror | 3 | Left_Mirror |
| Right_Mirror | 4 | Right_Mirror |
| Radio | 5 | Radio |
| Rear_View_Mirror | 6 | Rear_View_Mirror |
| Off_Road | 7 | Off_Road |
| Name | Number | Description |
| Neutral | 0 | Neutral |
| ForwardGear_1 | 1 | ForwardGear_1 |
| ForwardGear_2 | 2 | ForwardGear_2 |
| ForwardGear_3 | 3 | ForwardGear_3 |
| ForwardGear_4 | 4 | ForwardGear_4 |
| ForwardGear_5 | 5 | ForwardGear_5 |
| ForwardGear_6 | 6 | ForwardGear_6 |
| ForwardGear_7 | 7 | ForwardGear_7 |
| ForwardGear_8 | 8 | ForwardGear_8 |
| ForwardGear_9 | 9 | ForwardGear_9 |
| PARKING | 13 | Parking |
| ReserveGear | 14 | Reserve Gear |
| SNA_PRNDL | 15 |
| Name | Number | Description |
| No_Request | 0 | No_Request |
| Slack_Removal | 1 | Slack_Removal |
| Abort | 2 | Abort |
| Level_8_Force_Retraction | 3 | Level_8_Force_Retraction |
| Level_7_Force_Retraction | 4 | |
| Level_6_Force_Retraction | 5 | Level_6_Force_Retraction |
| Level_5_Force_Retraction | 6 | Level_5_Force_Retraction |
| Level_4_Force_Retraction | 7 | Level_4_Force_Retraction |
| Level_3_Force_Retraction | 8 | Level_3_Force_Retraction |
| Level_2_Force_Retraction | 9 | Level_2_Force_Retraction |
| Level_1_Force_Retraction | 10 | Level_1_Force_Retraction |
| Haptic_Waring_4 | 11 | Haptic_Waring_4 |
| Haptic_Waring_3 | 12 | Haptic_Waring_3 |
| Haptic_Waring_2 | 13 | Haptic_Waring_2 |
| Haptic_Waring_1 | 14 | Haptic_Waring_1 |
| SNA_L2PlusSeatBeltMotorActuator | 15 |
| Name | Number | Description |
| OFF_AES_ACC_SysSts | 0 | OFF_AES_ACC_SysSts |
| ACC_Enabled | 1 | ACC_Enabled |
| ACC_Engaged | 2 | Engaged |
| ACC_Engaged_BrakeOnly | 3 | ACC_Engaged_BrakeOnly |
| ACC_Cancel | 4 | ACC_Cancel |
| NCC_Enabled | 5 | NCC_Enabled |
| NCC_Engaged | 6 | NCC_Engaged |
| NCC_Cancel | 7 | NCC_Cancel |
| HAS_BSoC | 8 | HAS_BSoC |
| SNA_AES | 15 |
| Name | Number | Description |
| Disabled | 0 | Disabled |
| Enabled_AES_HAS_Sts | 1 | Enabled_AES_HAS_Sts |
| Engaged | 2 | Engaged |
| Faulted_AES_HAS_Sts | 3 | Faulted_AES_HAS_Sts |
| Name | Number | Description |
| OFF | 0 | OFF |
| Grey | 1 | Grey |
| Green | 2 | Green |
| Yellow | 3 | |
| Red | 4 | Red |
| SNA_HAS | 7 |
| Name | Number | Description |
| Default | 0 | |
| Chime1 | 1 | Chime1 |
| Chime2 | 2 | Chime2 |
| Chime3 | 3 | Chime3 |
| Chime4 | 4 | Chime4 |
| Chime5 | 5 | Chime5 |
| Chime6 | 6 | Chime6 |
| Chime7 | 7 | Chime7 |
| Chime8 | 8 | Chime8 |
| Chime9 | 9 | Chime9 |
| Chime10 | 10 | Chime10 |
| Name | Number | Description |
| A | 0 | |
| B | 1 | |
| C | 2 | |
| D | 3 | |
| E | 4 |
| Name | Number | Description |
| No_Code_DisplaySts_OFF | 0 | OFF |
| ACC_LKA_HAS | 1 | ACC_LKA_HAS |
| ACC_LKA | 2 | ACC_LKA |
| ACC_HAS | 3 | ACC_HAS |
| ACC_DisplaySts_OFF | 4 | ACC_DisplaySts_OFF |
| LKA | 5 | LKA |
| Name | Number | Description |
| OFF_DisplaySts_Acc | 0 | OFF |
| Ready_TG1 | 1 | Ready_TG1 |
| Ready_TG2 | 2 | Ready_TG2 |
| Ready_TG3 | 3 | Ready_TG3 |
| Ready_TG4 | 4 | Ready_TG4 |
| ACC_E_NT_TG1 | 5 | ACC_E_NT_TG1 |
| ACC_E_NT_TG2 | 6 | ACC_E_NT_TG2 |
| ACC_E_NT_TG3 | 7 | ACC_E_NT_TG3 |
| ACC_E_NT_TG4 | 8 | ACC_E_NT_TG4 |
| ACC_E_WT_TG1 | 9 | ACC_E_WT_TG1 |
| ACC_E_WT_TG2 | 10 | ACC_E_WT_TG2 |
| ACC_E_WT_TG3 | 11 | ACC_E_WT_TG3 |
| ACC_E_WT_TG4 | 12 | ACC_E_WT_TG4 |
| NCC_Ready | 13 | NCC_Ready |
| NCC_Engaged_DisplaySts_ACC | 14 | NCC_Engaged_DisplaySts_ACC |
| Name | Number | Description |
| OFF_DisplaySts_Veh | 0 | OFF |
| Center_White | 1 | Center_White |
| Center_Green | 2 | Center_Green |
| Right_Crossing_1 | 3 | Right_Crossing_1 |
| Left_Crossing_1 | 4 | Left_Crossing_1 |
| Right_Crossing_2 | 5 | Right_Crossing_2 |
| Left_Crossing_2 | 6 | Left_Crossing_2 |
| Name | Number | Description |
| OFF_DisplaySts_Left_Right | 0 | OFF_DisplaySts_Left_Right |
| Gray | 1 | Gray |
| Green_Lane_DisplaySts | 2 | Green_Lane_DisplaySts |
| Yellow_Lane_DisplaySts | 3 | Yellow_Lane_DisplaySts |
| Yellow_Flashing | 4 | Yellow_Flashing |
| Red_Lane_DisplaySts | 5 | Red_Lane_DisplaySts |
| Dashed | 6 |
| Name | Number | Description |
| OFF_SVI | 0 | OFF_SVI |
| Green_SVI | 1 | Green_SVI |
| Yellow_SVI | 2 | Yellow_SVI |
| Red_SVI | 3 | Red_SVI |
| Name | Number | Description |
| AEB_Fail_Not_Present_FailSts | 0 | Fail_Not_Present_FailSts |
| AEB_Fail_Present | 1 | Fail_Present |
| Name | Number | Description |
| ICA_Blinded | 0 | Blinded |
| ICA_Not_Blinded | 1 | Not_Blinded |
| Name | Number | Description |
| No_Code_DDD_DispPopUpSts | 0 | No_Code_DDD_DispPopUpSts |
| Drowsniness_Detected | 1 | Drowsniness_Detected |
| DDD_Perm_Fail | 2 | DDD_Perm_Fail |
| SNA_DDD_DispPopUpSts | 3 |
| Name | Number | Description |
| No_Code_ACC_DispPopUpSts | 0 | No_Code |
| ACC_Unavailable | 1 | ACC_Unavailable |
| ACC_Unavailable_4WD_Low | 2 | ACC_Unavailable_4WD_Low |
| ACC_Unavailable_ESC_Off | 3 | ACC_Unavailable_ESC_Off |
| ACC_Unavailable_ESC_Event | 4 | ACC_Unavailable_ESC_Event |
| ACC_Unavailable_Brakes_Cooling | 5 | ACC_Unavailable_Brakes_Cooling |
| ACC_Unavailable_Below_Min_Speed | 6 | ACC_Unavailable_Below_Min_Speed |
| ACC_Unavailable_Above_Max_Speed | 7 | ACC_Unavailable_Above_Max_Speed |
| ACC_Unavailable_EPB_Active | 8 | ACC_Unavailable_EPB_Active |
| ACC_Unavailable_Shift_D | 9 | ACC_Unavailable_Shift_D |
| ACC_Unavailable_Door_Open | 10 | ACC_Unavailable_Door_Open |
| ACC_Unavailable_Seatbelt_Unbuckled | 11 | ACC_Unavailable_Seatbelt_Unbuckled |
| ACC_Unavailable_Road_to_Steep | 12 | ACC_Unavailable_Road_to_Steep |
| ACC_Unavailable_Wrong_Gear | 13 | ACC_Unavailable_Wrong_Gear |
| ACC_Unavailable_Low_RPM | 14 | ACC_Unavailable_Low_RPM |
| ACC_Unavailable_High_RPM | 15 | ACC_Unavailable_High_RPM |
| ACC_Unavailable_Clutch_Engaged | 16 | ACC_Unavailable_Clutch_Engaged |
| ACC_Cancel_DispPopUpSts | 17 | ACC_Cancel |
| ACC_AEB_Cancel_ESC_Off | 18 | ACC_AEB_Cancel_ESC_Off |
| ACC_Cancel_ESC_Off | 19 | ACC_Cancel_ESC_Off |
| ACC_Cancel_ESC_Event | 20 | ACC_Cancel_ESC_Event |
| ACC_Cancel_Brakes_Cooling | 21 | ACC_Cancel_Brakes_Cooling |
| ACC_Cancel_Below_Min_Speed | 22 | ACC_Cancel_Below_Min_Speed |
| ACC_Cancel_Above_Max_Speed | 23 | ACC_Cancel_Above_Max_Speed |
| ACC_Cancel_EPB_Active | 24 | ACC_Cancel_EPB_Active |
| ACC_Cancel_Shift_D | 25 | ACC_Cancel_Shift_D |
| ACC_Cancel_Door_Open | 26 | ACC_Cancel_Door_Open |
| ACC_Cancel_Seatbelt_Unbuckled | 27 | ACC_Cancel_Seatbelt_Unbuckled |
| ACC_Cancel_Road_to_Steep | 28 | ACC_Cancel_Road_to_Steep |
| ACC_Cancel_Wrong_gear | 29 | ACC_Cancel_Wrong_gear |
| ACC_Cancel_Low_RPM | 30 | ACC_Cancel_Low_RPM |
| ACC_Cancel_High_RPM | 31 | ACC_Cancel_High_RPM |
| ACC_Stop_Vehicle_Object_Detected | 32 | ACC_Stop_Vehicle_Object_Detected |
| ACC_Warning_Clutch_Engaged | 33 | ACC_Warning_Clutch_Engaged |
| ACC_Warning_Neutral_Engaged | 34 | ACC_Warning_Neutral_Engaged |
| ACC_Off_ESC_Fault | 35 | ACC_Off_ESC_Fault |
| ACC_Proximity_Warning | 36 | ACC_Proximity_Warning |
| NCC_Unavailable | 37 | NCC_Unavailable |
| NCC_Unavailable_4WD_Low | 38 | NCC_Unavailable_4WD_Low |
| NCC_Unavailable_ESC_Off | 39 | NCC_Unavailable_ESC_Off |
| NCC_Unavailable_ESC_Event | 40 | NCC_Unavailable_ESC_Event |
| NCC_Unavailable_Brakes_Cooling | 41 | NCC_Unavailable_Brakes_Cooling |
| NCC_Unavailable_Below_Min_Speed | 42 | NCC_Unavailable_Below_Min_Speed |
| NCC_Unavailable_Above_Max_Speed | 43 | NCC_Unavailable_Above_Max_Speed |
| NCC_Unavailable_EPB_Active | 44 | NCC_Unavailable_EPB_Active |
| NCC_Unavailable_Shift_D | 45 | NCC_Unavailable_Shift_D |
| NCC_Unavailable_Wrong_Gear | 46 | NCC_Unavailable_Wrong_Gear |
| NCC_Unavailable_Low_RPM | 47 | NCC_Unavailable_Low_RPM |
| NCC_Unavailable_High_RPM | 48 | NCC_Unavailable_High_RPM |
| NCC_Unavailable_Clutch_Engaged | 49 | NCC_Unavailable_Clutch_Engaged |
| NCC_Cancel_DispPopUpSts | 50 | NCC_Cancel |
| NCC_AEB_Cancel_ESC_Off | 51 | NCC_AEB_Cancel_ESC_Off |
| NCC_Cancel_ESC_Off | 52 | NCC_Cancel_ESC_Off |
| NCC_Cancel_ESC_Event | 53 | NCC_Cancel_ESC_Event |
| NCC_Cancel_Brakes_Cooling | 54 | NCC_Cancel_Brakes_Cooling |
| NCC_Cancel_Below_Min_Speed | 55 | NCC_Cancel_Below_Min_Speed |
| NCC_Cancel_Above_Max_Speed | 56 | NCC_Cancel_Above_Max_Speed |
| NCC_Cancel_EPB_Active | 57 | NCC_Cancel_EPB_Active |
| NCC_Cancel_Shift_D | 58 | NCC_Cancel_Shift_D |
| NCC_Cancel_Wrong_Gear | 59 | NCC_Cancel_Wrong_Gear |
| NCC_Cancel_Low_RPM | 60 | NCC_Cancel_Low_RPM |
| NCC_Cancel_High_RPM | 61 | NCC_Cancel_High_RPM |
| NCC_Warning_Clutch_Engaged | 62 | NCC_Warning_Clutch_Engaged |
| NCC_Warning_Neutral_Engaged | 63 | NCC_Warning_Neutral_Engaged |
| ACC_User_Enabled_D1 | 64 | ACC_User_Enabled_D1 |
| ACC_User_Enabled_D2 | 65 | ACC_User_Enabled_D2 |
| ACC_User_Enabled_D3 | 66 | ACC_User_Enabled_D3 |
| ACC_User_Enabled_D4 | 67 | ACC_User_Enabled_D4 |
| ACC_Set_D1_Target | 68 | ACC_Set_D1_Target |
| ACC_Set_D2_Target | 69 | ACC_Set_D2_Target |
| ACC_Set_D3_Target | 70 | ACC_Set_D3_Target |
| ACC_Set_D4_Target | 71 | ACC_Set_D4_Target |
| ACC_Set_D1_No_Target | 72 | ACC_Set_D1_No_Target |
| ACC_Set_D2_No_Target | 73 | ACC_Set_D2_No_Target |
| ACC_Set_D3_No_Target | 74 | ACC_Set_D3_No_Target |
| ACC_Set_D4_No_Target | 75 | ACC_Set_D4_No_Target |
| ACC_Override | 76 | ACC_Override |
| ACC_User_Disabled | 77 | ACC_User_Disabled |
| NCC_User_Enabled | 78 | NCC_User_Enabled |
| NCC_Set | 79 | NCC_Set |
| NCC_User_Disbaled | 80 | NCC_User_Disbaled |
| NCC_Override | 81 | NCC_Override |
| Front_Radar_Sensor_Plant_Mode | 82 | Front_Radar_Sensor_Plant_Mode |
| ACC_AEB_LKA_Cam_Blind | 83 | ACC_AEB_LKA_Cam_Blind |
| ACC_AEB_Cam_Blind | 84 | ACC_AEB_Cam_Blind |
| ACC_LKA_Cam_Blind | 85 | ACC_LKA_Cam_Blind |
| ACC_Cam_Blind | 86 | ACC_Cam_Blind |
| ACC_AEB_LKA_LIMITED_Fail | 87 | ACC_AEB_LKA_LIMITED_Fail |
| ACC_AEB_LIMITED_Fail | 88 | ACC_AEB_LIMITED_Fail |
| ACC_LKA_LIMITED_Fail | 89 | ACC_LKA_LIMITED_Fail |
| ACC_LIMITED_Fail | 90 | ACC_LIMITED_Fail |
| ACC_AEB_Radar_Blind | 91 | ACC_AEB_Radar_Blind |
| ACC_Radar_Blind | 92 | ACC_Radar_Blind |
| ACC_AEB_LKA_Fail | 93 | ACC_AEB_LKA_Fail |
| ACC_AEB_Fail | 94 | ACC_AEB_Fail |
| ACC_LKA_Fail | 95 | ACC_LKA_Fail |
| ACC_Fail | 96 | ACC_Fail |
| NCC_AEB_LKA_Fail | 97 | NCC_AEB_LKA_Fail |
| NCC_AEB_Fail | 98 | NCC_AEB_Fail |
| NCC_LKA_Fail | 99 | NCC_LKA_Fail |
| NCC_Fail | 100 | NCC_Fail |
| Alignment_Mode | 101 | Alignment_Mode |
| Misaligned_Radar | 102 | Misaligned_Radar |
| Name | Number | Description |
| Do_Not_Actuate | 0 | |
| Actuate | 1 |
| Name | Number | Description |
| NO_REQUEST_CHIME | 0 | |
| REQUEST_CHIME | 1 |
| Name | Number | Description |
| No_rght_rear_chime_on_req | 0 | |
| Right_rear_chime_on_req | 1 |
| Name | Number | Description |
| Not_Present | 0 | Not Present |
| Present | 1 | Present |
| Name | Number | Description |
| OFF_MODE | 0 | OFF |
| GATE | 1 | |
| CONTROL | 2 |
| Field | Type | Label | Description |
| locationLatitude | DataSetSignal | optional | |
| locationLongitude | DataSetSignal | optional | |
| locationHeading | DataSetSignal | optional |
| Field | Type | Label | Description |
| velocityLateral | DataSetSignal | optional | |
| velocityLongitudinal | DataSetSignal | optional |
| Field | Type | Label | Description |
| noOfSatellites | int32 | optional | # of Satellites in GNMM. Number_of_Satellites_GNMM.Info |
| precision | double | optional | Precision in GNMM. Precision_GNMM.Info |
| latitude | DataSetSignal | optional | Latitude(deg) in GNMM. Lat_GNMM.Info |
| longitude | DataSetSignal | optional | Longitude (deg) in GNMM. Long_GNMM.Info |
| altitude | DataSetSignal | optional | Altitude (m) in GNMM. Altitude_GNMM.Info |
| Field | Type | Label | Description |
| velocity_CameraObject | float | repeated | Velocity |
| confidence_CameraObject | double | repeated | |
| cameraObjectListNumber | int32 | repeated | Camera Object List defined by cameraObjectType |
| location | DataLogMessageObject.CameraObjectType_LocationEnum | repeated | Location |
| classification | DataLogMessageObject.CameraObjectType_ClassificationEnum | repeated | Classification |
| Field | Type | Label | Description |
| trackedObjectNumber | int32 | repeated | |
| classification | DataLogMessageObject.trackedObjects_ClassificationEnum | repeated | |
| location_TrackedObject | DataLogMessageObject.trackedObjectsLocation | repeated | |
| velocity_TrackedObject | DataLogMessageObject.trackedObjectsVelocity | repeated | |
| confidence_TrackedObject | DataLogMessageObject.trackedObjects_ConfidenceEnum | repeated | |
| cipvFlag | DataLogMessageObject.trackedObjects_cipFlagEnum | repeated |
| Field | Type | Label | Description |
| resolution | int32 | repeated | |
| image | bytes | optional | Data bytes for the Camera Image |
| fileType | DataLogMessageObject.CameraImageFileTypeEnum | repeated | File Type Enum |
| Field | Type | Label | Description |
| EARSRear | DataLogMessageObject.EDRDeploymentStatusEnum | optional | Impact location B in ORC. |
| EARSHighSeverityFront | DataLogMessageObject.EDRDeploymentStatusEnum | optional | Impact C location in ORC. |
| EARSLowSeverityFront | DataLogMessageObject.EDRDeploymentStatusEnum | optional | Impact F location in ORC |
| EARSRollover | DataLogMessageObject.EDRDeploymentStatusEnum | optional | impactI |
| EARSLeft | DataLogMessageObject.EDRDeploymentStatusEnum | optional | Impact K location in ORC. |
| EARSRight | DataLogMessageObject.EDRDeploymentStatusEnum | optional | Impact M location in ORC |
| Field | Type | Label | Description |
| ChimeRepRate | int32 | repeated | |
| RFChime_RqSts | bool | repeated | |
| LFChime_RqSts | bool | repeated | |
| RRChime_RqSts | bool | repeated | |
| LRChime_RqSt | bool | repeated | |
| ChimeTypSts | DataLogMessageObject.Chime_TypSts_Enum | repeated | |
| ChimePriorty | DataLogMessageObject.ChimePriorty_Enum | repeated |
| Field | Type | Label | Description |
| TurnLeverLatched | DataLogMessageObject.Set_Enum | optional | |
| TurnIndicatorSts | DataLogMessageObject.TurnIndicator_Enum | optional |
| Field | Type | Label | Description |
| LowBeam | DataLogMessageObject.HeadLightStatusEnum | optional | |
| HighBeam | DataLogMessageObject.HeadLightStatusEnum | optional |
| Field | Type | Label | Description |
| ACC_Engine_Torque_Enabled | DataLogMessageObject.PowertrainInterfaceEngageReqEnum | repeated | |
| _Enabled | DataLogMessageObject.PowertrainInterfaceEngageReqEnum | repeated |
| Field | Type | Label | Description |
| ACC_Engine_Torque | DataLogMessageObject.PowertrainInterfaceEngageReqEnum | repeated | ACC_Engine_Torque.Info |
| ACC_Wheel_Torque | DataSetSignal | repeated | ACC_Wheel_Torque.Info |
| Field | Type | Label | Description |
| Latitude | DataSetSignal | optional | |
| Longitude | DataSetSignal | optional |
| Field | Type | Label | Description |
| CurrentLane | DataLogMessageObject.Polynomial_Type | repeated | |
| LeftLane | DataLogMessageObject.Polynomial_Type | repeated | |
| RightLane | DataLogMessageObject.Polynomial_Type | repeated |
| Field | Type | Label | Description |
| PA_Lane_Dection | DataLogMessageObject.CVPAMFaultStatusEnum | optional | CVPAM Fault Status for PA Lane Dection Health in CVPAM. PA_Lane_Dection.Info |
| PA_Left_Sensor | DataLogMessageObject.CVPAMFaultStatusEnum | optional | CVPAM Fault Status for PA Left Sensor Det Health in CVPAM. PA_Left_Sensor.Info |
| PA_Front_Sensor | DataLogMessageObject.CVPAMFaultStatusEnum | optional | CVPAM Fault Status for PA Front Sensor Det Health in CVPAM.PA_Front_Sensor_Det_Health.Info |
| FrontSensorSts | DataLogMessageObject.CVPAMFaultStatusEnum | optional | CVPAM Fault Status indicates the activation state of the front sensors in CVPAM. FrontSensorSts.Info |
| PA_Right_Sensor | DataLogMessageObject.CVPAMFaultStatusEnum | optional | CVPAM Fault Status for PA Right Sensor Det Health in CVPAM.PA_Right_Sensor_Det_Health.Info |
| Field | Type | Label | Description |
| DalmRequest | DataLogMessageObject.DALMColorStatus | optional | |
| DalmRequestC2 | DataLogMessageObject.DALMColorStatus | optional |
| Field | Type | Label | Description |
| ACC_SystemSts | DataLogMessageObject.AES_ACC_SysSts_Enum | optional | Engaged status in CADM for ACC_SystemSts.Info |
| HAS_Status | DataLogMessageObject.AES_HAS_Status_Enum | optional | Engaged status in CADM for HAS_Status.Info |
| HAS_TelltaleSts | DataLogMessageObject.HAS_TellTaleSts_Enum | optional | Engaged status in CADM for HAS_TelltaleSts.Info. |
| Field | Type | Label | Description |
| Acc_SystemSts_CADM2 | DataLogMessageObject.AES_ACC_SysSts_Enum | optional | Adas Engaged Status in CADM2 ACC_SystemSts_C2.Info |
| HAS_Status | DataLogMessageObject.AES_HAS_Status_Enum | optional | Adas Engaged Status in CADM2. HAS_Status_C2.Info |
| Field | Type | Label | Description |
| InvalidLaneDetection | bool | optional | |
| LookaheadDistanceLow | bool | optional | |
| InvalidLaneWidth | bool | optional | |
| RadiusOfCurvatureTooLow | bool | optional | |
| RoadwayUnsupported | bool | optional | |
| UnsupportedRoadwayAhead | bool | optional | |
| SpeedTooHigh | bool | optional | |
| ACCNotInCorrectState | bool | optional | |
| TurnSignalOn | bool | optional | |
| DriverOverrideCondition | bool | optional | |
| SystemOverrideCondition | bool | optional | |
| TemporaryFault | bool | optional | |
| PermanentFault | bool | optional | |
| CameraBlindness | bool | optional | |
| WipersTooFast | bool | optional | |
| PowertrainStateUnsupported | bool | optional | |
| OpStatDegraded | bool | optional | |
| MapOutdated | bool | optional | |
| SubscriptionExpired | bool | optional | |
| DriverInattentive | bool | optional | |
| HazardsApplied | bool | optional | |
| UnsupportedSplitDirection | bool | optional | |
| DriverHandsNotDetected | bool | optional | |
| TrailerDetected | bool | optional | |
| PoorRoadConditions | bool | optional | |
| LANE_CURVE | bool | optional | |
| AirSuspensionSettingUnsupported | bool | optional | |
| VehicleNotCentered | bool | optional | |
| VehicleHeadingMismatch | bool | optional | |
| LateralSuppressionTriggered | bool | optional | |
| FullSuppressionTriggered | bool | optional | |
| DriverInattentionSuppression | bool | optional | |
| LaneMarkerCrossed | bool | optional | |
| SteeringAuthorityReached | bool | optional | |
| DriverLateralOverride | bool | optional | |
| UnsupportedIgnitionStatus | bool | optional | |
| InsufficientPathConfidence | bool | optional | |
| DriverModelUnknown | bool | optional | |
| AEB_NotAvail | bool | optional | |
| LogisticsModeInhibit | bool | optional | |
| GNMMError | bool | optional | |
| SWSMHandsOnDetectionError | bool | optional | |
| FeatureDeactivatedRemotely | bool | optional | |
| InvalidSwayBarSetting | bool | optional | |
| ProxiMismatch | bool | optional |
| Field | Type | Label | Description |
| ulin | string | optional | Ulin shall be assigned a 20 digit Unique Log Identification Number (ULIN) that consists of the CADM2 ECU Serial Number (12 or 14 digit F18C Traceability Number) followed by a 6 digit sequential number. The sequential number shall be incremented with each data file stored over the life of the CADM2. Modules that use a 12 digit traceability number shall pad their traceability number with two trailing ?-? (ASCII 0x2D) to bring it up to the required 14 digits. |
| sequenceNumber | int32 | repeated | This defines the sequence number being requested. If sequence value equals 0 (zero) then the request will be for the full datalog. |
| Field | Type | Label | Description |
| int32Value | int32 | optional | Signal Value of type int32. |
| int64Value | int64 | optional | Signal Value of type int64. |
| stringValue | string | optional | StringValue |
| doubleValue | double | optional | DoubleValue |
| floatValue | float | optional | floatValue |
| boolValue | bool | optional | BoolValue |
| bytesValue | bytes | optional | bytesValue |
| uInt32Value | uint32 | optional | uInt32Value |
| uInt64Value | uint64 | optional | uInt64Value |
| sInt32Value | sint32 | optional | sInt32Value |
| sInt64Value | sint64 | optional | sInt64Value |
| fixed32Value | fixed32 | optional | fixed32Value |
| fixed64Value | fixed64 | optional | fixed64Value |
| sFixed32Value | sfixed32 | optional | sFixed32Value |
| sFixed64Value | sfixed64 | optional | sFixed64Value |
| signalName | string | optional | The name of the signal to be collected |
| signalId | int32 | optional | Used as an additional identifier for onChangeDataSet signal definitions. The identifier can be either a global unique number or an index for the signal in the DataSet. |
| uom | SignalValueUOMEnum | optional | Identify the expected UOM in which the signal value will be provided. |
| Field | Type | Label | Description |
| ulin | string | optional | Ulin shall be assigned a 20 digit Unique Log Identification Number (ULIN) that consists of the CADM2 ECU Serial Number (12 or 14 digit F18C Traceability Number) followed by a 6 digit sequential number. The sequential number shall be incremented with each data file stored over the life of the CADM2. Modules that use a 12 digit traceability number shall pad their traceability number with two trailing ?-? (ASCII 0x2D) to bring it up to the required 14 digits. |
| datalogSequence | int32 | optional | Defines the sequence position of the datalog data based on the datalogSequenceTotal. Sequence will always start with 1. |
| datalogSequenceTotal | int32 | optional | Defines the total sequences that will complete a full datalog event. |
| dataLogMessageObj | DataLogMessageObject | repeated | |
| responseTyp | DataLogMessageResponse.DataLogResponseTypeEnum | optional |
| Name | Number | Description |
| SUCCESS_ULIN | 0 | Success |
| ULIN_NOT_AVAILABLE | 1 | ULIN_NOT_AVAILABLE when Unique ID is not available. |
| GENERAL_ERROR | 2 | General Error |
This is to define Emergency Call.When ECall is triggered, Phone call will be dialed out to the call center.The operator may expect to see the vehicle related information when the phone call is connected. Client gathers vehicle information and send it out. Before the phone call is connected, the user also has the chance to cancel the Ecall.
UconnectAny | |---- ECallDataUpload ecallDataUpload (160) | |---- ECallStatusUpdate ecallStatusUpdate (161) | |---- ECallVehDataRequest ecallVehDataRequest (162) | |---- ECallVehDataResponse ecallVehDataResponse (163)
Change Log
| Version | Date | Notes |
| 2.0 | 2018-06-19 | Added UpdateECallPhoneNumbers |
| 1.9 | 2017-05-12 | Sequence Diagram and Documentation Updates |
| 1.8 | 2017-11-2 | Update to Proto3 |
| 1.7 | 2017-09-27 | Add response to return error code. |
| 1.6 | 2017-09-20 | Added ACK Message and additional Enum fields to EcallStatus. |
| 1.5 | 2017-07-07 | Call Status is added to EcallVehDataRequest. |
| 1.4 | 2017-06-30 | Added new fields like trigger mode,Device. |
| 1.3 | 2017-04-19 | Moved VehicleInfo to UConnectCommon. |
| 1.2 | 2017-04-18 | Moved key value for status of each door/window/hood/trunk. |
| 1.1 | 2017-04-12 | Removed isTestCall,fuelRemaining,TyrePressure,VIN & isPositionTrusted and added odometer,language,country and estimatedHeadingError . |
| 1.0 | 2017-03-09 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/ECAL |
| Cloud receive from Vehicle | Subscribe | fcasdp/ECAL/# |
| Vehicle send to Cloud | Publish | fcasdp/ECAL/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | ECALL Event | TBM | The in-vehicle ECALL event which triggers the client device to send an ECALLDATA to the SDP. | ||
| 2. | Assign MessageId | TBM | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send ECallDataUpload Message | TBM | ECallDataUpload | /ECAL/${iot:ClientId} | The client populates the ECallDataUpload Message with the required elements and publishes to the ECAL topic. |
| 4.1 | Process Message | SDP | The SDP processes the message and waits for call through ECallStatusUpdate. | ||
| 4.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 5 | send AckMessage | SDP | AckMessage | /ECAL/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received ECallDataUpload Message. |
| 6 | Process AckMessage | TBM | The client process AckMessage. | ||
| opt | step 5 is opt means The interaction operator opt means that the combined fragment represents a choice of behavior where either the (sole) operand happens or nothing happens. | ||||
| 7. | Send ECallStatusUpdate message | TBM | ECallStatusUpdate | /ECAL/${iot:ClientId} | The client populates the ECallStatusUpdate Message with the required elements and publishes to the ECAL topic. |
| 8.1 | Process Message | SDP | The SDP processes the message. | ||
| 8.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 9. | send AckMessage | SDP | AckMessage | /ECAL/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received ECallStatusUpdate Message. |
| 10. | Process AckMessage | TBM | The client process AckMessage. | ||
| 11. | ECall Data Query Event | SDP | The SDP can continuously request client for Ecall Data through EcallVehDataRequest. | ||
| loop | step 11 to 15 are in loop means the interaction operator loop means that the combined fragment represents a loop. The loop operand will be repeated a number of times. The loop construct represents a recursive application of the seq operator where the loop operand is sequenced after the result of earlier iterations. | ||||
| 12. | Send ECallVehDataRequest Message | SDP | ECallVehDataRequest | ${iot:ClientId}/ECAL | The SDP publishes the ECALLVehDataRequest with NOT_TERMINATED enum and publishes to the ECAL topic for the client to receive. |
| 13. | Process Message | TBM | The client receives the message . | ||
| 14. | Send ECallVehDataResponse Message | TBM | ECallVehDataResponse | ${iot:ClientId}/ECAL | The Client populates the ECallVehDataResponse message to the ECAL topic for the client to receive. |
| 15. | Process Message | SDP | The SDP receives the message and verifies the data and proceed accordingly. | ||
| 16. | Send ECallStatusUpdate message | SDP | ECallStatusUpdate | ${iot:ClientId}/ECAL | The SDP populates the ECallStatusUpdate Message with the Call status as Terminated and publishes to the ECAL topic. |
| 17. | Process Message | TBM | The Client processes the message and Acknowledges that Call is Terminated. | ||
| 18. | Send ECallVehDataRequest Message | SDP | ECallVehDataRequest | ${iot:ClientId}/ECAL | The SDP publishes the ECALLVehDataRequest with TERMINATED enum to mention that this is the last request for data after the call is terminated and publishes to the ECAL topic for the client to receive . |
| 19. | Process Message | TBM | The client process the message . | ||
| 20. | Send ECallVehDataResponse Message | TBM | ECallVehDataResponse | ${iot:ClientId}/ECAL | The Client populates the ECallVehDataResponse message to the ECAL topic for the client to receive. |
| 21. | Process Message | SDP | The SDP receives the message and verifies the data and proceed accordingly. |
This message represents ECall DataUpload for emergencies and accidents.
timestamp: 1489600238258
messageId: 1
messages
{
[com.fca.uconnect.global.ecallDataUpload]
{
vehicleId: "1234AXFGFGHGH4566"
isPositionTrusted: true
timeStamp: 1489600238256
vehicleLocation
{
longitude: 43.9999
latitude: -84.54636
}
numberOfPassengers: 1
airBagStatus
{
driver: false
driverKnee: false
passenger: false
passengerKnee: false
leftSideCurtain: false
leftSeat: false
rightSeat: false
}
vehicleSpeed: 75.0
engineStatus: STOP
}
}
| Field | Type | Label | Description |
| vehicleInfo | VehicleInfo | optional | This message is to get the Vehicle Information. |
| vehicleData | VehicleData | optional | Get Vehicle Health Data |
| timeStamp | int64 | optional | The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender. |
| numberOfPassengers | int32 | optional | This represents number of passengers present in the Veh. |
| airBagStatus | ECallDataUpload.AirBagStatus | optional | This represents whether airbags are deployed or not. |
| seatOccupied | ECallDataUpload.SeatState | optional | This represents which seats are occupied in the vehicle. |
| beltBuckled | ECallDataUpload.SeatState | optional | This represents which seat belts are buckled. |
| vehicleStatus | VehicleStatus | optional | Status of each door/window/hood/trunk. |
| triggerMode | ECallDataUpload.TriggerModeEnum | optional | Trigger mode of the data upload. |
| deviceDetails | Device | optional | Device Identification Details. |
| crashDetected | ECallDataUpload.CrashDetectedEnum | optional | Crash Detected CanImpactEven toggle bit |
| crashDetails | ECallDataUpload.CrashDetection | repeated |
| Name | Number | Description |
| MANUAL | 0 | |
| AUTOMATIC | 1 |
| Name | Number | Description |
| NO | 0 | |
| YES | 1 |
| Field | Type | Label | Description |
| isDriver | bool | optional | Identifies as the main Driver Airbag |
| isDriverKnee | bool | optional | Identifies as the Driver Knee Airbag |
| isPassenger | bool | optional | Identifies as the main Passenger Airbag |
| isPassengerKnee | bool | optional | Identifies as the Passenger Knee Airbag |
| isLeftSideCurtain | bool | optional | Identifies as the Left Side Curtain Airbag |
| isRightSideCurtain | bool | optional | Identifies as the Right Side Curtain Airbag |
| isLeftSeat | bool | optional | Identifies as the Left Seat Airbag |
| isRightSeat | bool | optional | Identifies as the Right Seat Airbag |
| Field | Type | Label | Description |
| isFrontLeft | bool | optional | identifies whether Front Left Seat Occupied. |
| isFrontRight | bool | optional | identifies whether Front Right Seat Occupied. |
| isRearLeft | bool | optional | identifies whether Rear Left Seat Occupied. |
| isRearRight | bool | optional | identifies whether Rear Right Seat Occupied. |
| isRearMiddle | bool | optional | identifies whether Rear Middle Seat Occupied. |
| isTailLeft | bool | optional | identifies whether Tail Left Seat Occupied. |
| isTailRight | bool | optional | identifies whether Tail RightSeat Occupied. |
| Field | Type | Label | Description |
| isFrontPreTension | bool | optional | Front Pretention Event . |
| isEarsRear | bool | optional | Rear EARs event. |
| isHighSevFront | bool | optional | High Severity Front Event. |
| isSideEvent | bool | optional | Side Impact Event. |
| isRearEvent | bool | optional | Rear Impact Event. |
| isLowSevFront | bool | optional | Low Severity Front Event. |
| isNonEarRoll | bool | optional | Non-Ears Roll-over Event. |
| isEarRoll | bool | optional | EARs roll-over event. |
| isLeftSideEvent | bool | optional | Left Side Event. |
| isSideEvent2 | bool | optional | Side Event[5] |
| isRightSideEvent | bool | optional | Right Side Event. |
| isPedestrianCrash | bool | optional | Pedestrian Crash Event. |
| isUknownType | bool | optional | General Event Indicator. |
This message is to update the status of the call.
timestamp: 1489600243281
messageId: 2
messages
{
[com.fca.uconnect.global.ecallStatusUpdate]
{
ecallStatusEnum: DIAL
}
}
| Field | Type | Label | Description |
| ecallStatusEnum | ECallStatusUpdate.ECallStatusEnum | optional |
| Name | Number | Description |
| DIAL | 0 | Dialing |
| CANCELLED | 1 | This represents the call is cancelled. |
| TERMINATED | 2 | This represents the call is terminated. |
| DROPPED_CALL | 3 | This is sent when TBM detects dropped call without a terminate tone. |
| CALL_FAILED | 4 | This is sent when TBM fails to Establish CALL. |
| ATTEMPT_FAILED | 5 | Sent during retry when call connection fails to be established. |
This message is to request Veh data from Client and it has no elements.
timestamp: 1489600243281
messageId: 1
messages
{
[com.fca.uconnect.global.ecallVehDataRequest]
{
callStatus:TERMINATED
}
}
| Field | Type | Label | Description |
| callStatus | ECallVehDataRequest.CallStatusEnum | optional |
| Name | Number | Description |
| TERMINATED | 0 | Terminated |
| TERMINATED_OTHER | 1 | Terminated for Other Reasons. |
| NOT_TERMINATED | 2 | Call is not terminated ,send the data and stay on line. |
This message sends Veh data to SDP when it requests for Veh data.
timestamp: 1489600243281
messageId: 3
messages
{
[com.fca.uconnect.global.ecallVehDataResponse]
{
ecallDataUpload
{
vehicleId: "1234AXFGFGHGH4566"
isPositionTrusted: true
timeStamp: 1489600238256
vehicleLocation
{
longitude: 43.9999
latitude: -84.54636
}
numberOfPassengers: 1
airBagStatus
{
driver: false
driverKnee: false
passenger: false
passengerKnee: false
leftSideCurtain: false
leftSeat: false
rightSeat: false
}
vehicleSpeed: 75.0
tyrePressure: 45.0
engineStatus: STOP
}
}
}
}
| Field | Type | Label | Description |
| eCallDataUpload | ECallDataUpload | optional | |
| response | ECallVehDataResponse.ResponseEnum | optional | Response (Success or Failure) |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILURE | 1 |
| Field | Type | Label | Description |
| phoneList | bytes | optional | |
| phoneListMessages | PhoneListMessage | repeated |
| Field | Type | Label | Description |
| EnableCallType | bool | optional | |
| PrimaryPhoneNumber | string | optional | Primary Phone Number for the feature |
| SecondaryPhoneNumber | string | optional | Secondary Phone Number for the feature |
| callTypeEnum | PhoneListMessage.CallType | optional |
| Name | Number | Description |
| SOS | 0 | |
| ASOS_IMPACT | 1 |
| Field | Type | Label | Description |
| phoneListMessages | PhoneListMessage | repeated |
*This API is to upload Data Gathered for Eco Coaching .
UconnectAny | |---- UploadCoachingData UploadCoachingData
Change Log
| Version | Date | Notes |
| 1.4 | 2019-05-24 | Added Additional details for units of measure per V2C-13 ticket update |
| 1.3 | 2019-04-24 | Added R1 Fields in UploadCoachingDataV2 for V2C-13 Also updated Sequence Diagram, removing correlationID on UploadCoachingDataResponse |
| 1.2 | 2019-02-11 | added string failureReasonString |
| 1.1 | Added UploadCoachingDataResponse | |
| 1.0 | 2018-10-16 | Seperated from ConnectedPages |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/ECO |
| Cloud receive from Vehicle | Subscribe | fcasdp/ECO/# |
| Vehicle send to Cloud | Publish | fcasdp/ECO/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/ECO |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Field | Type | Label | Description |
| userID | string | optional | Same as ID used for the Personal Login, used for routing only |
| webSite | string | optional | Targeted Web Address |
| tripID | string | optional | Trip ID for ECO |
| dataTyped | UploadCoachingData.dataUploadTypeEnum | optional | Data Type EcoTrip, BrandTrip, Trail, Status, Event |
| tripData | bytes | optional | Data being uploaded |
| profileToken | bytes | optional | Token obtained for Eco Coaching Profile |
| Name | Number | Description |
| BASE | 0 | Required Default value |
| ECOTRIP | 1 | Trip Data for Eco |
| STATUS | 4 | Status Data to be uploaded |
| EVENT | 5 | Event based data upload [i.e. Ingition Off/On] |
| Field | Type | Label | Description |
| response | UploadCoachingDataResponse.ResponseEnum | optional | Success or Failure |
| isTransient | bool | optional | Indicates if the error is transient and to attempt a retry. |
| failureReasonCode | int32 | optional | App or System Supplied Reason Code for Failures - See Error Codes page in wiki for details |
| failureReasonString | string | optional | can be mapped to httpResponse from B2B services |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| ERROR_OK | 1 | |
| ERROR_SERVICES_NOT_ACTIVATED | 2 | |
| ERROR_INTERNAL | 3 | |
| ERROR_USR_ATTACH | 4 | |
| ERROR_VIN_ATTACH | 5 |
| Field | Type | Label | Description |
| userID | string | optional | Same as ID used for the Personal Login, used for routing only |
| webSite | string | optional | Targeted Web Address |
| tripID | string | optional | Trip ID for ECO |
| travelDate | int64 | optional | Travel Date expressed in UTC |
| profileToken | bytes | optional | Token obtained for Eco Coaching Profile |
| ecoScore | int32 | optional | Trip Eco Score |
| accelerationScore | int32 | optional | Acceleration Score 0-150 |
| decelerationScore | int32 | optional | Deceleration Score 0-15 |
| speedScore | int32 | optional | Speed Score 0-15 |
| shiftingScore | int32 | optional | Shifting Score 0-15 |
| fuelConsumptionRate | float | optional | 0.0 to Float Max |
| averageSpeed | float | optional | 0.0 to Float Max |
| elapsedTime | int64 | optional | Elapsed time in milliseconds |
| distanceTraveled | float | optional | Distance Traveled |
| gearMode | UploadCoachingDataV2.GearModeEnum | optional | Gear Modes: AUTOMATIC, MANUAL |
| distanceUnits | UploadCoachingDataV2.DistanceUnitsEnum | optional | Distance Units: Miles, Kilometers |
| consumptionUnits | UploadCoachingDataV2.ConsumptionUnitsEnum | optional | Consumption Units |
| speedUnits | UploadCoachingDataV2.SpeedUnitsEnum | optional |
| Name | Number | Description |
| DEFAULT_VALUE | 0 | |
| AUTOMATIC | 1 | |
| MANUAL | 2 |
| Name | Number | Description |
| DEFAULT_UNITS | 0 | |
| MILES | 1 | |
| KILOMETERS | 2 |
| Name | Number | Description |
| DEFAULT_CONS | 0 | |
| KMPL | 1 | |
| LP100KM | 2 | |
| MPG_UK | 3 | |
| MPG_US | 4 |
| Name | Number | Description |
| DEFAULT_SPEED | 0 | |
| KPH | 1 | |
| MPH | 2 |
This API notify the FOTA client of an update. The FOTA client will manage downloading the update most likely through a different channel (https).
UconnectAny | |---- FirmwareUpdateNotification firmwareUpdateNotification (400) | |---- FirmwareUpdateResponse firmwareUpdateResponse (401)
Change Log
| Version | Date | Notes |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-09-27 | Update response |
| 1.0 | 2017-03-29 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/FOTA |
| Cloud receive from Vehicle | Subscribe | fcasdp/FOTA/# |
| Vehicle send to Cloud | Publish | fcasdp/FOTA/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | Firmware Update Event | SDP | The FirmwareUpdate event which triggers the SDP device to send an FirmwareUpdate Notification to Client. | ||
| 1.2. | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 2. | Send FirmwareUpdateNotification Message | SDP | FirmwareUpdateNotification | ${iot:ClientId}/FOTA | The SDP populates the FirmwareUpdateNotification Message with the required elements and publishes to the FOTA topic. |
| 3.1. | Process Message | TBM/HU | The Client process the message,verify the update and download it from URL and respond and generates an FirmwareUpdateResponse Message with the status . | ||
| 3.2. | Assign correlationID | TBM/HU | Assign correct correlationId. | ||
| 4. | Send FirmwareUpdateResponse Message | TBM/HU | FirmwareUpdateResponse | /FOTA/${iot:ClientId} | The Client publishes the response message to the FOTA topic for the SDP to receive. |
| 5.1 | Process Message | SDP | The SDP receives the message and verifies if correlationId is correct. | ||
| 5.2 | Assign CorrelationID | TBM/HU | Assign correct correlationId. | ||
| 6.1 | send AckMessage | SDP | AckMessage | /FOTA/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received FirmwareUpdateResponse. |
| 6.2 | Process AckMessage | TBM/HU | The client process AckMessage. |
This message is to Push the Firmware to Client when there is an update available.
timestamp: 1490885867532
messageId: 11
messages
{
[com.fca.uconnect.global.firmwareUpdateNotification]
{
firmwareDescriptor
{
firmwareVersion: "2.0"
ecuAddress: 956488
description: "Update for ABC"
expireDate: 360000
packageSize: 10000
url: "https://abc.com"
checksum: "CE114E4501D2F4E2DCEA3E17B546F339"
}
fotaTaskId: "AXCSEA1234"
}
}
| Field | Type | Label | Description |
| firmwareDescriptor | FirmwareUpdateNotification.FirmwareDescriptor | repeated | Firmware Descriptor |
| fotaTaskId | string | optional | FOTA Task ID |
| Field | Type | Label | Description |
| firmwareVersion | string | optional | Version of the Firmware that needs to be download. |
| ecuAddress | int32 | optional | Diagnostic ECU ID. |
| description | string | optional | Description of the firmware update - This field is mandatory for Red Bend Clients |
| token | string | optional | Token which will be sent to download server to download the Firmware. |
| expireDate | int64 | optional | Time till when the Software is available for update. |
| packageSize | int32 | optional | Size of the Firmware update. |
| url | string | optional | URL to download the firmware update. |
| checksum | string | optional | Checksum of the FW package is to ensure integrity of downloading. |
| firmwareType | FirmwareUpdateNotification.FirmwareDescriptor.FirmwareType | optional |
| Name | Number | Description |
| MAPDB | 0 | Map update |
| HUHMI | 1 | Head Unit HMI |
| OS | 2 | Operating System Patch |
| HARDWARE_DRIVER | 3 | Hardware Driver |
| CALIBRATION | 4 | Calibration |
| CODING | 5 | Application Code |
This message is to respond to SDP after Client installs Firmware Updates.
timestamp: 1490885867676
messageId: 1
correlationId: 11
messages
{
[com.fca.uconnect.global.firmwareUpdateResponse]
{
responseEnum: SUCCESS
}
}
| Field | Type | Label | Description |
| response | FirmwareUpdateResponse.ResponseEnum | optional | Indicator for the status of the FirmwareUpdate. |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Received the Notification. |
| DOWNLOAD_FAILED | 1 | Downaload Failed from Download server. |
| CHECKSUM_FAILED | 2 | CheckSum Failed while calculating. |
| DECRYPTION_FAILED | 3 | Decryption Failure |
| UPTODATE | 4 | This Firmware update is already installed. |
IVH-In Vehicle Help,This API is to notify when new Help Content is available for download. The IVH client will manage downloading the update most likely through a different channel (https).
UconnectAny | |---- InitiateIVHDiscrepancyCheck | |---- IVHDiscrepancyCheck | |---- ContentUpdateNotification contentUpdateNotification | |---- ContentUpdateStatusNotification ContentUpdateStatusNotificationChange Log
| Version | Date | Notes |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.0 | 2017-10-25 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/IVH |
| Cloud receive from Vehicle | Subscribe | fcasdp/IVH/# |
| Vehicle send to Cloud | Publish | fcasdp/IVH/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the HU and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1.1 | Content Update Event | SDP | The ContentUpdate event which triggers the SDP device to send an InitiateDescrepancyCheck message to Client. | ||
| 1.2 | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 2. | Send InitiateDescrepancyCheck Message | SDP | InitiateDescrepancyCheck | ${iot:ClientId}/IVH | The SDP populates the InitiateDescrepancyCheck Message with the required elements and publishes to the IVH topic. |
| 3.1 | Process Message | HU | The Client process the message, generates an DescrepancyCheck Message with the DRM . | ||
| 3.2 | Assign correlationID | HU | Assign correct correlationId. | ||
| 4. | Send DescrepancyCheck Message | HU | DescrepancyCheck | ${iot:ClientId}/IVH | The Client populates the DescrepancyCheck Message with the required elements and publishes to the IVH topic. |
| 5 | Process Message | HU | The Client process the message, generates an DescrepancyCheck Message with the DRM . | ||
| 6. | Send ContentUpdateNotification Message | SDP | ContentUpdateNotification | ${iot:ClientId}/IVH | The SDP populates the ContentUpdateNotification Message with the required elements and publishes to the IVH topic. |
| 7.1. | Process Message | HU | The Client process the message,verify the update and download it from URL and respond and generates an ContentUpdateStatusNotification Message with the status . | ||
| 7.2. | Assign correlationID | HU | Assign correct correlationId. | ||
| 8. | Send ContentUpdateStatusNotification Message | HU | ContentUpdateStatusNotification | /IVH/${iot:ClientId} | The Client publishes the response message to the IVH topic for the SDP to receive. |
| 9.1. | Process Message | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 9.2. | Assign correlationID | HU | Assign correct correlationId. | ||
| 10 | send AckMessage | SDP | AckMessage | /IVH/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received ContentUpdateStatusNotification. |
| 11 | Process AckMessage | HU | The client process AckMessage. |
This message is for SDP to request HU to initiate DescrepancyCheck for updates.
timestamp: 1490885867532
messageId: 11
messages
{
[com.fca.uconnect.global.initiateDescrepancyCheck]
{
}
}
| Field | Type | Label | Description |
| parameters | InitiateIVHDiscrepancyCheck.ParametersEntry | repeated |
This message is to check if there is an update available for Content.
| Field | Type | Label | Description |
| drm | DRM | optional | DRM file upload for discrepancy Check |
This message is to Push the Help Content to Client when there is an update available.
timestamp: 1490885867532
messageId: 11
messages
{
[com.fca.uconnect.global.contentUpdateNotification]
{
version: "2.0"
description: "Update for ABC"
expireDate: 360000
packageSize: 10000
url: "https://abc.com"
checksum: "CE114E4501D2F4E2DCEA3E17B546F339"
}
}
| Field | Type | Label | Description |
| contentId | string | optional | Content identifier which is unique. |
| version | string | optional | Version of the Firmware that needs to be downloaded. |
| description | string | optional | Description to be displayed to the User |
| expireDate | int64 | optional | Time till when the Software is available for update. |
| packageSize | int32 | optional | Size of the Content. |
| url | string | optional | URL to download the Content update. |
| checksum | string | optional | Checksum of the FW package is to ensure integrity of downloading. |
| token | string | optional | Token which will be sent to download server to download the Content. |
This message is to respond to SDP after Client installs Content Updates.
timestamp: 1490885867676
messageId: 1
correlationId: 11
messages
{
[com.fca.uconnect.global.ContentUpdateStatusNotification]
{
status: SUCCESS
}
}
| Field | Type | Label | Description |
| status | ContentUpdateStatusNotification.StatusEnum | optional | Indicator for the status of the FirmwareUpdate. |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| appId | string | optional | Application ID |
| Name | Number | Description |
| SUCCESS | 0 | Updated Successfully. |
| FAILURE | 1 | Download Failed from Download server. |
| UPTODATE | 4 | This Firmware update is already installed. |
This API is to push destinations from the vehicle for Last Mile Navigation, the TBM shall send the current location and target destination's data to the SDP when the TBM is connected. SDP will forward the destination to consumer channel(s)
UconnectAny | |---- LastMilePush lastMilePush | |---- LastMileResponse LastMileResponse (241)
Change Log
| Version | Date | Notes |
| 1.2 | 2019-07-25 | Provided correct sample message per V2C-036 |
| 1.1 | 2018-05-15 | Added ServiceRequestID |
| 1.0 | 2018-05-15 | Release of initial proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/LMN |
| Cloud receive from Vehicle | Subscribe | fcasdp/LMN/# |
| Vehicle send to Cloud | Publish | fcasdp/LMN/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the HU and the SDP:

| Seq | Title | Role | Message | Topic | Description |
| 1. | Last Mile Event | HU | The HU triggers Last Mile Navigation event which triggers LastMilePush to the SDP | ||
| 2. | Assign MessageId | HU | The HU generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send LastMilePush Message | SDP | LastMilePush | ${iot:ClientId}/SDTC | The HU populates the LastMilePush Message with the required elements and publishes to the SDP. |
| 4. | Process Message | SDP | The HU processes the message and generates an LastMilePushResponse Message with the status and the correlationId set to the messageId from the received LastMilePush Message. | ||
| 5. | Send DestinationPushResponse Message | SDP | LastMilePushResponse | /SDTC/${iot:ClientId} | The TBM publishes the response message to the HU |
| 6. | Process Message | HU | The HU receives the message and verifies the correlationId matches the messageId of the sent request. |
This message represents the last mile destination. { "LMNRequestID": "abcdef", "targetDestination": { "routePreference": "DEFAULT", "createTimestamp": 1564062948246, "location": { "positionLatitude": 2345.1, "positionLongitude": 2345.1, "estimatedPositionError": 1234, "positionAltitude": 2345.1, "isGPSFixNotAvailable": true, "estimatedAltitudeError": 1234, "positionDirection": 2345.1, "gpsFixTypeEnum": "ID_FIX_NO_POS" }, "destinationPoi": { "name": "abcdef", "category": "abcdef", "id": 1234, "phoneNumber": "abcdef", "description": "abcdef", "url": "abcdef" }, "destinationAddress": { "countryName": "abcdef", "countryCode": 1234, "provinceName": "abcdef", "provinceCode": 1234, "cityName": "abcdef", "cityCode": 1234, "districtCountyName": "abcdef", "districtCountyCode": 1234, "streetName": "abcdef", "secondUnitDesignator": "abcdef", "streetCode": 1234, "houseNumber": "abcdef", "postalCode": "abcdef" } }, "currentLocation": { "positionLatitude": 2345.1, "positionLongitude": 2345.1, "estimatedPositionError": 1234, "positionAltitude": 2345.1, "isGPSFixNotAvailable": true, "estimatedAltitudeError": 1234, "positionDirection": 2345.1, "gpsFixTypeEnum": "ID_FIX_NO_POS" } }
| Field | Type | Label | Description |
| targetDestination | Destination | optional | Final POI Destination information |
| currentLocation | Location | optional | Current Location as of Last Mile Push request |
| LMNRequestID | bytes | optional | Service Request ID Assigned by HU for Trace-ability |
| Field | Type | Label | Description |
| response | LastMileResponse.ResponseEnum | optional | |
| LMNRequestID | bytes | optional | Assigned by the HU and used for traceability. |
| isTransient | bool | optional | Indicates if the error is transient and to attempt a retry. |
| failureReasonCode | int32 | optional | provide detailed error reason code. |
| Name | Number | Description |
| SUCCESS | 0 | Message Delivered Successful |
| ERROR | 1 | Generic Error for Other App and System Level Errors |
This API enables the SDP to configure the TBM for Parental Control data collection and notification. The feature supports notifying the vehicle owner with alerts for geofencing, curfew, speed, valet, and similar events.
UconnectAny | |---- PCUpdateConfigRequest | |---- PCUpdateConfigResponse | |---- PCConfiguredAlertPublish | |---- PCNotificationPublish | |---- AckMessage
Change Log
| Version | Date | Notes |
| 1.12 | 2019-01-20>Removed Deprecated from the response items to accomodate REPLACE method : Fixed mispelling OUT_OF_BOUNDRY to OUT_OF_BOUNDARY and mispelled Indentifier fixed in ConfigResponseType | |
| 1.10 | 2018-09-20>||
| 1.9 | 2018-09-20>||
| 1.8 | 2018-08-30>||
| 1.7 | 2018-08-21>Added a ConfigActionEnum to various alerts, added timestamp to logged events and utcoffset | |
| 1.6 | 2018-06-20 | Added LogAlert to Conig |
| 1.5 | 2018-06-20 | Update ConfigTypeVehicle, Added Logs Configuration and Uploads, added name to PC Config |
| 1.4 | 2017-11-2 | Update to Proto3 |
| 1.3 | 2017-09-27 | Update configuration response. |
| 1.2 | 2017-09-15 | Added ACKMessage RadiusUnitsEnum. |
| 1.1 | 2017-04-19 | Added RadiusUnitsEnum. |
| 1.0 | 2017-03-19 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PC |
| Cloud receive from Vehicle | Subscribe | fcasdp/PC/# |
| Vehicle send to Cloud | Publish | fcasdp/PC/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP for regions that use PCConfiguredAlertPublish:

| Seq | Title | Role | Message | Topic | Description |
| 1. | PC Provisioned Active Event | SDP | PC Provisioned active for Provisioning Push . | ||
| par | The interaction operator par defines potentially parallel execution of behaviors of the operands of the combined fragment. Different operands can be interleaved in any way as long as the ordering imposed by each operand is preserved. | ||||
| async | The async means send message and proceed immediately without waiting for return value. | ||||
| 2.1 | PCRequest Event | SDP | The SDP PC Request event which triggers to send an PCUpdateConfigRequest to the Client. | ||
| 2.2 | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 2.3 | Send PCUpdateConfigRequest Message | SDP | PCUpdateConfigRequest | ${iot:ClientId}/PC | The SDP populates the PCUpdateConfigRequest Message with the required elements and publishes to the PC topic. |
| 2.4 | Process Message | TBM | The Client processes the message and generates an PCUpdateConfigResponse Message with the status and the correlationId set to the messageId from the received PCUpdateConfigRequest Message. | ||
| 2.5 | Assign CorrelationID | TBM | The correlationId set to the messageId from the received PCUpdateConfigRequest Message. | ||
| 2.6 | Send PCUpdateConfigResponse Message | TBM | PCUpdateConfigResponse | /PC/${iot:ClientId} | The Client publishes the response message to the PC topic for the SDP to receive. |
| 2.7 | Process Response | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 3.1 | Trigger Event | TBM | Once the PC is Configured after the appropriate out of band approval steps, the Client will build a new PCConfiguredAlertPublish Message with the required elements. | ||
| 3.2 | Send PCConfiguredAlertPublish Message | TBM | PCConfiguredAlertPublish | /PC/${iot:ClientId} | The Client publishes the PCConfiguredAlertPublish message to the PC topic for the SDP to receive. |
| 3.3 | Process ConfiguredAlert | SDP | The SDP receives the message and process configured Alert. | ||
| 4.1 | Send PCLogUploads Message | TBM | PCLogUploads | /PC/${iot:ClientId} | The Client publishes the configured and required logs via this message |
| 4.2 | Process Logs | SDP | The SDP receives the message and process the logs. | ||
| 4.3 | Process Logs | SDP | Ack Message returned. |
This message represents PCUpdateConfigRequest which triggers from SDP.
timestamp: 1490711212633
messageId: 11
messages
{
[com.fca.uconnect.global.pcUpdateConfigRequest]
{
configTypeVehicle
{
speedAlerts
{
beginTime: 1000
endTime: 10000
activeDaysOfWeek: 1
activeDaysOfWeek: 2
thresholdAbovePostedSpeed: 60
thresholdPostedSpeedAbsent: 80
thresholdAbsolute: 70
}
updateSpeedAlertConfig: true
}
}
}
| Field | Type | Label | Description |
| config | ConfigTypeVehicle | optional |
| Field | Type | Label | Description |
| logAlerts | ConfigTypeVehicle.LogAlerts | optional | Configure Log Alerts |
| curfewAlerts | ConfigTypeVehicle.CurfewAlertConfig | repeated | 0 to 5 ranges |
| speedAlerts | ConfigTypeVehicle.SpeedAlertConfig | repeated | 0 to 5 ranges |
| valetAlert | ConfigTypeVehicle.ValetAlertConfig | optional | 0 or 1 configurations |
| geoFenceAlerts | ConfigTypeVehicle.GeoFenceAlertConfig | repeated | If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active |
| Name | Number | Description |
| DEFAULT | 0 | |
| OUT_OF_BOUNDARY | 1 | |
| IN_BOUNDARY | 2 | |
| BOTH | 3 |
| Name | Number | Description |
| KILOMETERS | 0 | |
| MILES | 1 |
| Name | Number | Description |
| Polygon | 0 | |
| Radius | 1 |
| Name | Number | Description |
| DEFAULTACTION | 0 | |
| ADD | 1 | |
| DELETE | 2 | |
| UPDATE | 3 |
| Field | Type | Label | Description |
| name | string | optional | Display text name for the configuration |
| identifier | string | optional | the identifier of the config that was triggered will be put in the generated alert |
| beginTime | int32 | optional | seconds after midnight |
| endTime | int32 | optional | seconds after midnight |
| activeDaysOfWeek | int32 | repeated | 0 == Sunday, 1 == Monday ... |
| recurringAlert | bool | optional | should happen only once or recurring. |
| configAction | ConfigTypeVehicle.ConfigActionEnum | optional |
| Field | Type | Label | Description |
| name | string | optional | Display text name for the configuration |
| identifier | string | optional | the identifier of the config that was triggered will be put in the generated alert |
| beginTime | int32 | optional | seconds after midnight |
| endTime | int32 | optional | seconds after midnight |
| activeDaysOfWeek | int32 | repeated | 0 == Sunday, 1 == Monday ... |
| thresholdAbovePostedSpeed | int32 | optional | if posted speed is available from Nav, alert if speed > thresholdAbovePostedSpeed + posted |
| thresholdPostedSpeedAbsent | int32 | optional | if nav present but posted speed currently not valid alert if speed > thresholdPostedSpeedAbsent |
| thresholdAbsolute | int32 | optional | alert if speed > thresholdAbsolute, unless nav is present and posted speed is available and speed <= thresholdAbovePostedSpeed + posted |
| recurringAlert | bool | optional | should happen only once or recurring. |
| configAction | ConfigTypeVehicle.ConfigActionEnum | optional | |
| unitOfMeasure | ConfigTypeVehicle.UnitOfMeasure | optional |
| Field | Type | Label | Description |
| isEnabled | bool | optional | Enable or disable this alert |
| identifier | string | optional | the identifier of the config that was triggered will be put in the generated alert |
| Activate | bool | optional | 0 deactivates and 1 activates |
| alertRadius | float | optional | Radius Units (i.e 1.2) |
| configAction | ConfigTypeVehicle.ConfigActionEnum | optional | |
| radiusUnitsEnum | ConfigTypeVehicle.UnitOfMeasure | optional | This represents whether alertRadius is in miles or kilometers. |
| Field | Type | Label | Description |
| name | string | optional | Display text name for the configuration |
| identifier | string | optional | the identifier of the config that was triggered will be put in the generated alert |
| beginTime | int32 | optional | seconds after midnight. |
| endTime | int32 | optional | seconds after midnight |
| geoFenceTypeEnum | ConfigTypeVehicle.GeoFenceType | optional | |
| activeDaysOfWeek | int32 | repeated | 0 == Sunday, 1 == Monday ... |
| boundaryPoints | Location | repeated | |
| radiusCenter | Location | optional | Center Location for Radius Fence |
| Radius | float | optional | Radius for Radius Fence |
| radiusUnitsEnum | ConfigTypeVehicle.UnitOfMeasure | optional | This represents whether alertRadius is in miles or kilometers. |
| recurringAlert | bool | optional | should happen only once or recurring. |
| breachType | ConfigTypeVehicle.BreachTypeEnum | optional | |
| configAction | ConfigTypeVehicle.ConfigActionEnum | optional |
This message is response to PCUpdateConfigRequest .
timestamp: 1490712208347
messageId: 1
messages
{
[com.fca.uconnect.global.pcUpdateConfigResponse]
{
responseEnum: SUCCESS
}
}
| Field | Type | Label | Description |
| response | PCUpdateConfigResponse.ResponseEnum | optional | |
| isTransient | bool | optional | |
| failureReasonCode | int32 | optional | |
| configResponse | PCUpdateConfigResponse.ConfigResponseType | repeated |
| Name | Number | Description |
| SUCCESS | 0 | Config successful |
| FAILURE | 1 | Config failed |
| CONFIG_TYPE_NOT_ALLOWED | 3 | Config type not supported in this region |
| FAILURE_PRIVACY_ON | 4 | Privacy Mode On |
| Field | Type | Label | Description |
| configurationResponse | PCUpdateConfigResponse.ResponseEnum | optional | |
| name | string | optional | |
| identifier | string | optional | |
| failureReasonCode | int32 | optional | |
| isTransient | bool | optional |
This message is to notify SDP for Parental Controlconfigured Alert.
| Field | Type | Label | Description |
| curfewAlertConfig | ConfigTypeVehicle.CurfewAlertConfig | optional | the configuration that triggered this alert |
| speedAlertConfig | ConfigTypeVehicle.SpeedAlertConfig | optional | the configuration that triggered this alert |
| valetAlertConfig | ConfigTypeVehicle.ValetAlertConfig | optional | the configuration that triggered this alert |
| geoFenceAlertConfig | ConfigTypeVehicle.GeoFenceAlertConfig | optional | the configuration that triggered this alert |
| eventLocation | Location | optional | location of the vehicle when the event was triggered |
| eventTimestampUTC | int64 | optional | UTC time the event was triggered |
| eventTimeUTCOffset | int32 | optional | offset in seconds of the vehicle time zone from UTC |
| vehicleSpeed | int32 | optional | speed in km/h when the event was triggered |
| postedSpeed | int32 | optional | posted speed value from NAV system |
| postedSpeedValid | bool | optional | if false, postedSpeed was not available and/or did not participate in the trigger |
| Field | Type | Label | Description |
| tripLog | TripLog | optional | |
| driveStyleLog | DrivingStyleLog | optional | |
| speedAlertsLog | SpeedAlertsLog | optional |
| Field | Type | Label | Description |
| tripID | string | optional | |
| IgnitionOnTimeStamp | int64 | optional | Time of IgnitionOn |
| startLocation | Location | optional | Location at IgntionOn |
| IgnitionOffTimeStamp | int64 | optional | Time of Igntion Off |
| eventTimeUTCOffset | int32 | optional | offset in seconds of the vehicle time zone from UTC |
| endLocation | Location | optional | Location at Ignition Off |
| Field | Type | Label | Description |
| tripID | string | optional | |
| harshAcceleration | Acceleration | repeated | |
| harshBraking | Braking | repeated | |
| suddenCornering | Cornering | repeated | |
| seatBeltNotFastened | SeatBelt | repeated |
This API is to upload Track Data.
UconnectAny | |---- UploadTrackData uploadTrackData (2000)
Change Log
| Version | Date | Notes |
| 1.1 | 2017-11-2 | Update to Proto3 |
| 1.0 | 2017-10-24 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PERF |
| Cloud receive from Vehicle | Subscribe | fcasdp/PERF/# |
| Vehicle send to Cloud | Publish | fcasdp/PERF/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | UploadTrackData Event | TBM | The in-vehicle UploadTrackData event which triggers the client device to send an UploadTrackData Message to the SDP. | ||
| 2. | Assign MessageId | TBM | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send UploadTrackData Message | TBM | UploadTrackData | /PERF/${iot:ClientId} | The client populates the UploadTrackData Message with the required elements and publishes to the PERFORMANCE topic. |
| 4.1 | Process Message | SDP | The SDP processes the message and generates an ACK Message with the status and assign correct correlationId. | ||
| 4.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 5 | send AckMessage | SDP | AckMessage | /PERF/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received UploadTrackData Message. |
| 6 | Process AckMessage | TBM | The client process AckMessage. |
This message is to upload the track Data.
timestamp: 1508946513018
messageId: 1
messages {
[com.fca.uconnect.global.uploadTrackData] {
vehicleId: "VIN"
website: "WEBSITE"
timers {
type: REACTION_TIME
values {
timer: BRAKE_DISTANCE_FEET
units: FEET
value: 1.0
}
}
}
}
| Field | Type | Label | Description |
| vehicleId | string | optional | Provide vehicle identifier when the session on the secure channel cannot be used to identify the client. |
| vehicleLine | string | optional | Provide the vehicle line. |
| timestamp | int64 | optional | Event Timestamp |
| website | string | optional | Website |
| timers | UploadTrackData.Timers | repeated | The set of timers for current, previous, and best. |
| Field | Type | Label | Description |
| type | UploadTrackData.Timers.TimerTypeEnum | optional | Indicates the current, previous, or best times. |
| values | UploadTrackData.Timers.TimerValue | repeated | The recorded values for the various performance metrics. |
| Name | Number | Description |
| REACTION_TIME | 0 | Current reaction times. |
| REACTION_TIME_LAST | 1 | Previous reaction times. |
| REACTION_TIME_BEST | 2 | The best recorded reation times. |
| Name | Number | Description |
| DISTANCE_TO_60FT | 0 | Timer. |
| DISTANCE_TO_330FT | 1 | Timer. |
| DISTANCE_TO_1000FT | 2 | Timer. |
| SPEED_0_TO_60MPH | 3 | Timer. |
| SPEED_0_TO_100MPH | 4 | Timer. |
| V_8_ET | 5 | Timer. |
| V_8_SPEED | 6 | Speed. |
| V_4_ET | 7 | Timer. |
| V_4_SPEED | 8 | Speed. |
| BRAKE_DISTANCE_FEET | 9 | Distance. |
| BRAKE_FROM_SPEED_MPH | 10 | Speed. |
| DISTANCE_TO_20M | 11 | Timer. |
| DISTANCE_TO_100M | 12 | Timer. |
| DISTANCE_TO_300M | 13 | Timer. |
| SPEED_0_TO_100KMPH | 14 | Timer. |
| SPEED_0_TO_160KMPH | 15 | Timer. |
| ET_200 | 16 | Timer. |
| SPEED_200 | 17 | Speed. |
| ET_400 | 18 | Timer. |
| SPEED_400 | 19 | Speed. |
| BRAKE_DISTANCE_METER | 20 | Distance. |
| BRAKE_FROM_SPEED_KMPH | 21 | Speed. |
| Name | Number | Description |
| SECONDS | 0 | Time in Seconds. |
| MPH | 1 | Miles Per Hour. |
| FEET | 2 | Distance in Feet. |
| KMPH | 3 | Kilometers Per Hour. |
| METERS | 4 | Distance in Meters. |
| Field | Type | Label | Description |
| timer | UploadTrackData.Timers.TimerEnum | optional | Indicates the specific timer. |
| units | UploadTrackData.Timers.UnitsEnum | optional | Units of the value. |
| value | float | optional | Recorded value. |
This API is to upload Data Gathered for Personal Profile Settings .
UconnectAny | |---- RequestProfileInfo requestProfileInfo |---- RequestProfileInfoResponse requestProfileInfoResponse |---- RequestProfileCategories requestProfileCategories |---- RequestProfileCategoriesResponse requestProfileCategoriesResponse |---- PublishProfileData publishProfileData |---- PublishProfileDataResponse publishProfileDataResponse
Change Log
| Version | Date | Notes |
| 1.3 | 2019-09-20 | Breaking Changes per cooperative agreement with Harman and onBoard Teams, restructured and renamed messages |
| 1.2 | 2019-05-23 | Adjusted category enumerations per Abdullah |
| 1.1 | 2019-05-11 | Adjusted per requirements |
| 1.0 | 2019-02-11 | First Creation |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PRFL |
| Cloud receive from Vehicle | Subscribe | fcasdp/PRFL/# |
| Vehicle send to Cloud | Publish | fcasdp/PRFL/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/PRFL |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Field | Type | Label | Description |
| profileVersion | string | optional | |
| profileStatus | RequestProfileInfoResponse.StatusEnum | optional | |
| categories | InfoCategories | optional |
| Name | Number | Description |
| NO_NEW_CHANGES | 0 | |
| NEW_CHANGES_AVAILABLE | 1 | |
| PROFILE_DOESNT_EXIST | 2 | |
| FAILED_UNKOWN | 3 | |
| FAILED_TOKEN_INVALID | 4 | |
| FAILED_VEHICLE_BLACKLISTED | 5 |
| Field | Type | Label | Description |
| category | InfoCategories.CategoryEnum | optional | |
| version | string | optional |
| Name | Number | Description |
| DEFAULT_NULL | 0 | |
| VEHICLE_SETTINGS | 1 | |
| VR_SETTINGS | 2 | |
| SEAT_SETTINGS | 3 | |
| AUDIO_SETTINGS | 4 | |
| RADIO_SETTINGS | 5 | |
| PRESETS_SETTINGS | 6 | |
| APP_DRAWER_SETTINGS | 7 | |
| NAVIGATION_SETTINGS | 8 |
| Field | Type | Label | Description |
| infoCategory | InfoCategories | repeated | Repeatable object to request a category |
| token | string | optional |
| Field | Type | Label | Description |
| categoryData | RequestProfileCategoriesResponse.CategoryData | repeated | only categories with a different version than what is supplied by the client have their data returned |
| Field | Type | Label | Description |
| category | InfoCategories.CategoryEnum | optional | |
| version | string | optional | |
| dataValues | DataMap.DataValues | optional | |
| timestamp | int64 | optional |
| Field | Type | Label | Description |
| action | RequestProfileDisconnect.ProfileActionEnum | optional | |
| userId | string | optional |
| Name | Number | Description |
| DEFAULT_ACTION | 0 | |
| DISCONNECT_PROFILE | 1 | |
| DISCONNECT_AND_DELETE_PROFILE | 2 |
| Field | Type | Label | Description |
| status | RequestProfileDisconnectResponse.ProfileManagmentEnum | optional |
| Name | Number | Description |
| NONE | 0 | |
| SUCCESS_DISCONNECT_PROFILE | 1 | |
| SUCCESS_DISCONNECT_AND_DELETE_PROFILE | 2 | |
| FAILED_PROFILE_NOT_FOUND | 3 | |
| FAILED | 4 |
this API requests a global deletion of the profile from all vehicles
| Field | Type | Label | Description |
| token | string | optional |
| Field | Type | Label | Description |
| status | RequestProfileDeleteResponse.GlobalProfileStatusEnum | optional |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILED_PROFILE_NOT_FOUND | 1 | |
| FAILED_UNKNOWN | 2 |
Additional enumerations should be available, based on backend responses i.e. NOT_AUTHORIZED, NOT_REGISTERED etc
| Field | Type | Label | Description |
| response | PublishProfileDataResponse.ResponseEnum | optional | Success or Failure |
| version | string | optional | |
| infoCategory | InfoCategories | repeated |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| FAILED_NEW_VERSION_AVAILABLE | 1 | Failure |
| FAILED_UNKNOWN | 2 | |
| FAILED_TOKEN_INVALID | 3 | |
| FAILED_VEHICLE_BLACKLISTED | 4 |
| Field | Type | Label | Description |
| category | RequestProfileCategoriesResponse.CategoryData | optional | |
| categoryVersion | string | optional | |
| dataValues | DataMap.DataValues | repeated | repeated once per key value pair in category |
The proto is to for Electric and Plugin Hybrid Electric vehicles..
UconnectAny | |---- ChargeDataRequest chargeDataRequest | |---- ChargeDataPublish chargeDataPublishChange Log
| Version | Date | Notes |
|---|---|---|
| 2.0 | 2019-09-11 | Added ChargePowerPreference message for PHEV 2.1 |
| 1.9 | 2019-06-14 | Updated documentation to reflect electric as well |
| 1.8 | 2018-12-07 | Added String version of schedule times in ChargeSchedule object |
| 1.7 | 2018-11-13 | Added Schedule for 520 requirements |
| 1.6 | 2018-11-13 | Added int32 Int_EstimatedTimeToCharge_LEV1 = 5; nt32 Int_EstimatedTimeToCharge_LEV2 = 6; per assembla 571 |
| 1.5 | 2018-10-19 | Added ChargeScheduleEnable |
| 1.4 | 2017-11-2 | Added Response Enumerations to the ChargeDataPublish |
| 1.3 | 2017-11-2 | Added ChargeDataRequest and ChargeDataPublish, added BatteryVoltage to ChargeData |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-06-15 | Added CommandMark and DatacollectionTimestamp |
| 1.0 | 2017-06-15 | Release of initial Proto |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PHEV |
| Cloud receive from Vehicle | Subscribe | fcasdp/PHEV/# |
| Vehicle send to Cloud | Publish | fcasdp/PHEV/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

The following sequence diagram depicts the flow of messages between the TBM and the SDP:
timestamp: 1497889690516
messageId: 1
messages {
[com.fca.uconnect.global.phevData]
{
data: "\000\000\000\000\000\000\000\000\000\000\000\000\000"
commandMark: VEHICLE_LOGIN
dataCollectionTimestamp: 1497889690516
}
}
| Field | Type | Label | Description |
| chargeCommand | ChargeNowRequest.ChargeCommandEnum | optional |
| Name | Number | Description |
| START_CHARGE | 0 | |
| STOP_CHARGE | 1 |
| Field | Type | Label | Description |
| response | ChargeNowResponse.ResponseEnum | optional | |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| UNPLUGGED_FAILURE | 1 | Vehicle Is Not Plugged in |
| FAILURE | 2 | General FAILURE |
bytes serviceRequestID = 1;
| Field | Type | Label | Description |
| Field | Type | Label | Description |
| BatteryLevel | float | optional | High voltage battery level in percent |
| eventTrigger | ChargeDataPublish.PublishEventEnum | optional | |
| plugStatus | ChargeDataPublish.PlugStatus | optional | |
| rangeEstimates | ChargeDataPublish.Range | optional | |
| chargeStatus | ChargeDataPublish.ChargeStatusEnum | optional | actual reported value of the ChargeSysStat can signal |
| chargeSchedules | ChargeSchedule | repeated | Only required once charge now and charge scheduling are implemented |
| chargeSchedulesV2 | ChargeScheduleV2 | repeated | |
| response | ChargeDataPublish.ResponseEnum | optional |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| UNPLUGGED_FAILURE | 1 | Vehicle Is Not Plugged in |
| FAILURE | 2 | General FAILURE |
| VEHICLE_DATA_NOT_AVAILABLE | 3 |
| Name | Number | Description |
| NOT_CHARGING | 0 | |
| CHARGING | 1 | |
| CHARGE_INTERRUPT | 2 | |
| CHARGE_FAULT | 3 | |
| CHARGE_COMPLETE | 4 | |
| SNA | 5 |
| Name | Number | Description |
| IGNITION_ON | 0 | |
| IGNITION_OFF | 1 | |
| PLUGGED_IN | 2 | |
| UNPLUGGED | 3 | |
| CHARGE_START | 4 | |
| CHARGE_COMPLETED | 5 | |
| CHARGE_INTERRUPTED | 6 | |
| CHARGE_FAULTED | 7 | |
| ON_DEMAND | 8 | |
| CHARGE_SCHEDULE | 9 | |
| POWER_PREFERENCE | 10 |
| Name | Number | Description |
| DEFAULT | 0 | |
| LEVEL_1 | 1 | |
| LEVEL_2 | 2 |
| Field | Type | Label | Description |
| isPluggedIn | bool | optional | |
| chargeLevel | ChargeDataPublish.ChargeLevel | optional |
| Field | Type | Label | Description |
| chargeLevel | ChargeDataPublish.VoltageEnum | optional | |
| EstimatedTimeToCharge_LEV1 | string | optional | |
| EstimatedTimeToCharge_LEV2 | string | optional | |
| Int_EstimatedTimeToCharge_LEV1 | int32 | optional | |
| Int_EstimatedTimeToCharge_LEV2 | int32 | optional |
| Field | Type | Label | Description |
| updatedChargeSchedules | ChargeSchedule | repeated | Used for the RU and K8 for 2019. |
| updateChargeShedulesV2 | ChargeScheduleV2 | repeated | Used for Charge Schedules for 520 and after. |
| Field | Type | Label | Description |
| EnableScheduleType | bool | optional | |
| scheduleType | ChargeScheduleV2.ScheduleType | optional | |
| StartTime | int32 | optional | follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours. |
| EndTime | int32 | optional | follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours |
| ChargeToFull | bool | optional | |
| CabinPriority | bool | optional | |
| scheduledDays | Days | optional | |
| RepeatSchedule | bool | optional |
| Name | Number | Description |
| NONE | 0 | |
| CHARGE | 1 | |
| CLIMATE | 2 |
| Field | Type | Label | Description |
| enableChargeSchedule | ChargeSchedule.EnableChargeScheduleType | optional | |
| scheduleType | ChargeSchedule.ScheduleTypeEnum | optional | |
| chargeUntilFull | bool | optional | |
| scheduleStartTime | int32 | optional | Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours. |
| scheduleEndTime | int32 | optional | Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours |
| Name | Number | Description |
| WEEKDAY | 0 | |
| WEEKEND | 1 |
| Name | Number | Description |
| DEFAULT | 0 | |
| ENABLE_SCHEDULE | 1 | |
| DISABLE_SCHEDULE | 2 |
Expressed as percent of maximum current output for charge type
| Field | Type | Label | Description |
| preference | ChargePowerPreference.PreferencesEnum | optional |
| Name | Number | Description |
| NOT_USED_VALUE | 0 | |
| LEVEL_ONE | 1 | Low (20% max A) |
| LEVEL_TWO | 2 | Low+ (40% max A) |
| LEVEL_THREE | 3 | Med (60% max A) |
| LEVEL_FOUR | 4 | Med+ (80% max A) |
| LEVEL_FIVE | 5 | High (100% max A) |
This API supports the POI Search Requests.
UconnectAny | |---- POISearchRequest | |---- POISearchResponse | |---- POISearchDestinationRequest | |---- POISearchDestinationResponse
Change Log
| Version | Date | Notes |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.0 | 2017-10-12 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/POIS |
| Cloud receive from Vehicle | Subscribe | fcasdp/POIS/# |
| Vehicle send to Cloud | Publish | fcasdp/POIS/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the HU and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | POISearch Event | HU | The in-vehicle activation event which triggers the client device to send an Activation Request to the SDP. | ||
| 2. | Assign MessageId | HU | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send POISearchRequest Message | HU | POISearchRequest | /POIS/${iot:ClientId} | The client populates the ActivationRequest Message with the required elements and publishes to the activation topic. |
| 4. | Process Message | SDP | The SDP processes the message and generates an ActivationResponse Message with the status and assign correct correlationId. | ||
| 5. | Send ActiviationResponse Message | SDP | ActivationResponse | ${iot:ClientId}/POIS | The service publishes the response message to the activation topic for the client to receive. |
| 6. | Process Message | HU | The client receives the message and verifies the correlationId is correct. | ||
| 7. | Provisioning Event | SDP | Once the activation is accepted after the appropriate out of band approval steps, the SDP will build a new ProvisioningPush Message with the required initial client configuration. Assign correct correlationId. | ||
| 8. | Send ProvisioningPush Message | SDP | ProvisioningPush | ${iot:ClientId}/PRVI | The service publishes the push message to the activation topic for the client to receive. |
| 9. | Process Message | HU | The client receives the message and verifies the correlationId is correct. | ||
| 10. | Send ProvisioningPushAck Message | HU | ProvisioningPushAck | /PRVI/${iot:ClientId} | The client acknowledges the ProvisioningPush Message with the ProvisioningPushAck Message publishes to the Provisioning topic. |
| 11. | Process Message | SDP | The SDP processes the message . |
This message represents POISearchRequest.
timestamp: 1488574019636
messageId: 1
messages
{
[com.fca.uconnect.global.POISearchRequest]
{
poi
{
name: "2.0"
category: ""
id: 1
phoneNumber: "12345"
description: "DESC"
url: "https://abc.com"
}
}
}
| Field | Type | Label | Description |
| poi | PointOfInterest | optional |
This message is in response to POISearchRequest.
timestamp: 1488740988983
messageId: 2
correlationId: 1
messages
{
[com.fca.uconnect.global.poiSearchResponse]
{
[ poiList{
name: "2.0"
category: ""
id: 1
phoneNumber: "12345"
description: "DESC"
url: "https://abc.com" }]
}
}
| Field | Type | Label | Description |
| poiList | PointOfInterest | repeated | list of points of interest |
This message represents POISearchDestinationRequest.
timestamp: 1488574019636
messageId: 1
messages
{
[com.fca.uconnect.global.poiSearchDestinationRequest]
{
destinationPOI
{
name: "2.0"
category: ""
id: 1
phoneNumber: "12345"
description: "DESC"
url: "https://abc.com"
}
}
}
| Field | Type | Label | Description |
| destinationPOI | PointOfInterest | optional | Point of Interest request data |
This message is in response to POISearchDestinationRequest.
timestamp: 1488740988983
messageId: 2
correlationId: 1
messages
{
[com.fca.uconnect.global.poiSearchDestinationResponse]
{
destination
{
routePreference: Fast
destinationPOI
{
name: "2.0"
category: ""
id: 1
phoneNumber: "12345"
description: "DESC"
url: "https://abc.com"
}
}
}
}
| Field | Type | Label | Description |
| destination | Destination | optional | destination message element |
This API supports the Privacy Mode.
UconnectAny | |---- PrivacyModeRequest PrivacyModeRequest () |---- PrivacyModeResponse PrivacyModeResponse () |
Change Log
| Version | Date | Notes |
| 1.1 | 2018-11-13 | Added Duration per assembla ticket 550 |
| 1.0 | 2018-06-18 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PM/ |
| Cloud receive from Vehicle | Subscribe | fcasdp/PM/# |
| Vehicle send to Cloud | Publish | fcasdp/PM/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

This message represents PrivacyModeRequest of vehicle for Privacy Mode settings.
timestamp: 1489632211020
messageId: 1
messages
{
[com.fca.uconnect.global.PrivacyModeRequest]
{
action: SUBSCRIBE
serviceRequestId:"-\0274\302]\325\324 \354K"
PrivacyModeRequest
{
command: ENTER
}
}
}
| Field | Type | Label | Description |
| serviceRequestId | bytes | optional | ServiceRequestId assigned by the SDP |
| privacyMode | PrivacyModeRequest.PrivacyModeEnum | optional | Turn on or off the inhibit of the vehicle start |
| duration | int32 | optional |
| Name | Number | Description |
| ENTER | 0 | |
| EXIT | 1 |
| Field | Type | Label | Description |
| response | PrivacyModeResponse.ResponseEnum | optional | |
| serviceRequestId | bytes | optional | service request id assigned by SDP |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| FAILED | 1 | FAILED |
| Field | Type | Label | Description |
| PrivacyModeStatus | PrivacyModeNotification.PrivacyModeStatusEnum | optional | |
| duration | int32 | optional |
| Name | Number | Description |
| ACTIVE | 0 | |
| NOT_ACTIVE | 1 |
The Provisioning API supports the client requesting or the SDP pushing the vehicle provisioning information to the client. The interface includes the read-only configuration data consumed by the client. The Vehicle Data Sync interface supports the data elements which can be modified in the vehicle and synchronized with the cloud.
UconnectAny |---- InitiateProvisioningPush (1010) | |---- ProvisioningRequest (1011) | |---- ProvisioningResponse (1012) | |---- ProvisioningPush (1013) |---- ServiceSubscriptionInfo (1020) | | | |---- ServiceDescription | | | |---- DRM | | | |---- BIMDPSK (1022) | |---- ProvisioningPushAck (1014)Change Log
| Version | Date | Notes |
|---|---|---|
| 1.17 | 2018-05-25 | Add DRM Hash Field |
| 1.16 | 2017-11-2 | Removed unused messages, keeping only byte message |
| 1.15 | 2017-11-2 | Update to Proto3 |
| 1.14 | 2017-09-27 | Update ProvisioningResponse and ProvisioningPushAck. |
| 1.13 | 2017-09-20 | Added ReasonEnum to Provisioning Request, added Services back to ProvisioningPush . |
| 1.12 | 2017-08-11 | Added ProvisioningPushAck Message. |
| 1.11 | 2017-08-07 | modified BIMDPSK structure. |
| 1.10 | 2017-06-30 | moved drmFile to COMMON.Drm. |
| 1.9 | 2017-06-30 | added drmFile to ProvisioningPush.Drm. |
| 1.8 | 2017-06-30 | Moved msisdn,imei,imei,iccid,tbmSerialNum,tbmFirmwareVersion,huSerialNum,huFirmwareVersion to Common Proto. |
| 1.7 | 2017-06-20 | Added fields for Signature correlation Message to ProvisioningPush. |
| 1.6 | 2017-06-16 | Added msisdn,imei,imei,iccid,tbmSerialNum,tbmFirmwareVersion,huSerialNum,huFirmwareVersion to ProvisioningRequest,added operationEnum & RegistrationStatusEnum to ProvisioningPush. |
| 1.5 | 2017-04-18 | Added InitiateProvisioningPush Message and ConnectedVehicle service type |
| 1.4 | 2017-04-18 | Added keyvalue Pair in Provisioning Request for modemId,TBM&HU Serial Number Firmware Version and other Ids. |
| 1.3 | 2017-04-03 | Added Status to ServiceSubscriptionInfo |
| 1.2 | 2017-03-31 | Added Key-value element to ServiceSubscriptionInfo |
| 1.1 | 2017-03-03 | Signature extracted to Global_Uconnect_Ext_Signature.proto |
| 1.0 | 2017-02-14 | Release of initial Proto |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/PRVI |
| Cloud receive from Vehicle | Subscribe | fcasdp/PRVI/# |
| Vehicle send to Cloud | Publish | fcasdp/PRVI/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | Send InitiateProvisioningPush Message | SDP | InitiateProvisioningPush | ${iot:ClientId}/PRVI | The in-vehicle Provisioning event which triggers the client device to send a ProvisioningRequest to the SDP. |
| 2. | ProvisioningEvent | TBM/HU | The in-vehicle Provisioning event which triggers the client device to send a ProvisioningRequest to the SDP. | ||
| 3. | Assign MessageId | TBM/HU | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 4. | Send ProvisioningRequest Message | TBM/HU | ProvisioningRequest | /PRVI/${iot:ClientId} | The client populates the ProvisioningRequest Message with the elements and publishes to the Provisioning topic. |
| 5. | Process Message | SDP | The SDP processes the message and generates a ProvisioningResponse Message with the status and the correlationId set to the messageId from the received ProvisioningRequest Message. | ||
| 6. | Send ProvisioningResponse Message | SDP | ProvisioningResponse | ${iot:ClientId}/PRVI | The service publishes the response message to the Provisioning topic for the client to receive. |
| 7. | Process Message | TBM/HU | The client receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 8. | Send ProvisioningPush Message | SDP | ProvisioningPush | ${iot:ClientId}/PRVI | Once the Provisioning is accepted after the appropriate out of band approval steps, the SDP will build a new ProvisioningPush Message with the initial client configuration. The correlationId set to the messageId from the received ProvisioningRequest Message.The service publishes the ProvisioningPush message to the Provisioning topic for the client to receive. |
| 9. | Process Message | TBM/HU | The client receives the message and verifies the correlationId matches the messageId of the initially sent request. | ||
| 10. | Send ProvisioningPushAc0k Message | TBM/HU | ProvisioningPushAck | /PRVI/${iot:ClientId} | The client acknowledges the ProvisioningPush Message with the ProvisioningPushAck Message publishes to the Provisioning topic. |
| 11. | Process Message | SDP | The SDP processes the message . |
This message is to initiate a New Registration from SDP.
timestamp: 1488743306361
messageId: 2
messages
{
[com.fca.uconnect.global.initiateProvisioningPush]
{ }
}
| Field | Type | Label | Description |
| parameters | InitiateProvisioningPush.ParametersEntry | repeated |
| Field | Type | Label | Description |
| vehicleId | string | optional | VIN or other unique identifier for the vehicle this Telematics Unit is installed in. |
| DrmHash | bytes | optional | |
| additionalModemParams | ProvisioningRequest.AdditionalModemParamsEntry | repeated | This can be used as key value pair for additional Modem Identifiers. |
| reason | ProvisioningRequest.ReasonEnum | optional |
| Name | Number | Description |
| IGNITION_CYCLE_CHECK | 0 | IGNITION_CYCLE_CHECK |
| TBM_FLASH | 1 | TBM_FLASH |
| HU_FLASH | 2 | HU_FLASH |
| ON_DEMAND | 3 | ON_DEMAND |
| MISDN_MISMATCH | 4 | MISDN_MISMATCH |
| DISCREPENCY_CHECK | 5 | DISCREPENCY_CHECK |
| SOFTWARE_REFRESH | 6 | SOFTWARE_REFRESH |
| HU_SWAP | 7 | HU_SWAP |
| TBM_SWAP | 8 | TBM_SWAP |
| ENROLLMENT | 9 | ENROLLMENT |
| RETURN_TO_NEW | 10 |
This message is sent as response to ProvisionRequest.
timestamp: 1488746450628
messageId: 101
correlationId: 301
messages
{
provisioningResponse
{
responseEnum: SUCCESS
}
}
| Field | Type | Label | Description |
| responseEnum | ProvisioningResponse.ResponseEnum | optional | Success or Failure Response |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Response successful for provisioning. |
| FAILURE | 1 | Response failure for provisioning. |
This is for asynchronously pushing the provisioning with services and/or BIMDPSKInfo.
timestamp: 1488828296489
messageId: 102
correlationId: 301
messages
{
provisioningPush
{
drm
{
drmFile:"fgnbooe8y73nfmlsi0iufnjej876reef=="
}
}
}
| Field | Type | Label | Description |
| serviceSubscription | ServiceSubscriptionInfo | optional | Added Params to support APAC |
| drm | DRM | optional | DRM content to support provisioning applications. |
| timestamp | int64 | optional | Added for signature correlation to message |
| messageId | int32 | optional | Added for signature correlation to message |
| signatureId | int32 | optional | Added for signature correlation to message |
| bimdPSK | BIMDPSKInfo | optional | Provides TLS-PSK Tokens for secure connection with Mobile Devices. |
This message is to acknowledge ProvisioningPush message .
timestamp: 1488828296500
messageId: 302
correlationId: 102
messages
{
provisioningPushAck
{
response:SUCCESS
}
}
| Field | Type | Label | Description |
| response | ProvisioningPushAck.ProvisioningPushResponseEnum | optional | Success or Failure Response |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILURE | 1 |
** * This Message represents the Service name and expiration time that Service is going to expire */
| Field | Type | Label | Description |
| serviceType | ServiceDescription.ServiceTypeEnum | optional | The type of service being provisioned/activated |
| expireTime | int64 | optional | The service being provisioned/activated is considered active from the time this message is received until the expire time, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. |
| additionalParameters | ServiceDescription.AdditionalParametersEntry | repeated | This is for Configuration Parameters as a key-value pair like Call Center number,Server URL. |
| status | ServiceDescription.Status | optional | This is to define whether service is Active/InActive. |
| version | int32 | optional | Service version number |
| contentId | int32 | optional | Content ID |
| appIdentifier | string | optional | Application ID |
| appLauncherMask | int32 | optional | App Launcher Mask (auto start, manual) |
| installerType | string | optional | Installer type |
| accountDN | string | optional | Account DN |
| fileLength | int32 | optional | fileLength |
| fileChecksum | int32 | optional | Checksum data |
| featureMask | string | optional | Feature Mask |
| expirexTimeSpanBegiTimeSpanBegin | int64 | optional | DRM expiration Time Begin |
| expireTimeSpanEnd | int64 | optional | DRM Time Span End |
| emailId | string | optional | Email ID |
| Name | Number | Description |
| WIFIHOTSPOT | 0 | Wifi service. |
| ECALL | 1 | Emergency Call service. |
| ROADSIDEASSIST | 2 | Road side assistance service. |
| THEFTALARMNOTIFICATION | 3 | This service notifies when Theft alarm is enabled. |
| STOLENVEHICLEASSIST | 4 | This is for stolen vehicle assistance. |
| SENDDESTINATIONTOCAR | 5 | This is for sending destination location to car. |
| VEHICLEFINDER | 6 | This service finds vehicle location. |
| REMOTEDOORCONTROL | 7 | This service enables Remote Door Lock/Unlock opertions. |
| REMOTEENGINESTART | 8 | This service enables Remote Start/Stop opertions. |
| REMOTEHORNANDFLASH | 9 | This service enables Remote Horn and lights opertions. |
| RADIOPRESETS | 10 | This Service enables Radio Presets. |
| MUSICFAVORITES | 11 | This service enables to favorite Songs/bands/Teams. |
| TEMPERATURE | 12 | This service enables Temperature settings. |
| HEATEDCOOLEDSEATS | 13 | This service enables Heating or cooling Seats. |
| HEATEDSTEERINGWHEEL | 14 | This service enables Heating Steering Wheel. |
| CONNECTEDVEHICLE | 15 | Connected Vehicle Service |
| SQDF | 16 | This service enables SQDF |
| FTM | 17 | This service enables Fleet Telematics |
| EVDATACHN | 18 | This service represents PHEV Data. |
| Name | Number | Description |
| INACTIVE | 0 | Service is not active. |
| ACTIVE | 1 | Service is active. |
This Message represents the list of Services that User can or may subscribed to.
This message may be sent with an ProvisioningResponse or can be asynchronously at any time from the SDP.
timestamp: 1488746451561
messageId: 4
messages
{
[com.fca.uconnect.global.serviceSubscriptionInfo]
{
services
{
serviceType: ECALL
expireTime: 1234567890
}
services
{
serviceType: REMOTEENGINESTART
expireTime: 1234567890
}
}
}
| Field | Type | Label | Description |
| services | ServiceDescription | repeated | The services enumerated in this message are enable from the time of receipt. All other services not explicitly listed are disabled immediately if possible, and upon the next ignition on cycle under all circumstances. |
This is for Authentication
| Field | Type | Label | Description |
| deviceKeys | BIMDPSKInfo.BIMDPSK | repeated |
This API supports the Remote Inhibits.
UconnectAny | |---- RemoteInhibitRequest remoteInhibitRequest () |---- RemoteInhibitResponse remoteInhibitResponse () |
Change Log
| Version | Date | Notes |
| 1.2 | 2018-08-15 | Changed CrankAttempted boolean to isCrankAttempted |
| 1.0 | 2018-06-18 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/RI/${AppID} |
| Cloud receive from Vehicle | Subscribe | fcasdp/RI/${AppID}/# |
| Vehicle send to Cloud | Publish | fcasdp/RI/${AppID}/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}#/ |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | Send RemoteInhibitRequest Message | SDP | The SDP request TBM for Remote Inhibit. | ||
| 2 | Process Message and assign correlation ID | TBM | The message is processed and the correlationID is assigned for the response | ||
| 3 | Send RemoteInhibitResponse Message | TBM | The TBM sends a success or failure message back to the SDP. | ||
| 4 | Inhibit Event | TBM | The TBM monitors for the specific remote inhibit on the CAN and when it is applied an event is triggered | ||
| 5 | CrankAttemptedNotification | TBM | The client sends a message to the SDP notifying that engine start was attempted while inhibited | ||
| 6. | Process Message | SDP | The Service receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 9. | send AckMessage | SDP | AckMessage | /RO/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received CrankAttemptedNotification |
| 10. | Process AckMessage | TBM | The client process AckMessage. |
This message represents RemoteOperationRequest of vehicle for Remote Operations.
timestamp: 1489632211020
messageId: 1
messages
{
[com.fca.uconnect.global.remoteInhibitRequest]
{
action: SUBSCRIBE
serviceRequestId:"-\0274\302]\325\324 \354K"
remoteInhibitRequest
{
command: CRANK_INHIBIT }
}
}
| Field | Type | Label | Description |
| serviceRequestId | bytes | optional | ServiceRequestId assigned by the SDP |
| crankInhibit | RemoteInhibitRequest.CrankInhibitEnum | optional | Turn on or off the inhibit of the vehicle start |
| engineSlow | RemoteInhibitRequest.EngineSlowEnum | optional |
| Name | Number | Description |
| END_INHIBIT | 0 | |
| INHIBIT | 1 |
| Name | Number | Description |
| EXIT_SLOW | 0 | |
| SLOW | 1 |
| Field | Type | Label | Description |
| response | RemoteInhibitResponse.ResponseEnum | optional | |
| serviceRequestId | bytes | optional | service request id assigned by SDP |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| FAILED | 1 | FAILED |
TThis API supports the Remote Operations
UconnectAny | |---- RemoteOperationRequest remoteOperationRequest (320) | |---- RemoteHornAndLightsRequest remoteHornAndLightsRequest | |---- RemoteEngineRequest remoteEngineRequest | |---- RemoteDoorRequest remoteDoorRequest | |---- RemoteClimateRequest remoteClimateRequest | |---- RemoteWindowRequest remoteWindowRequest | | |---- RemoteOperationResponse remoteOperationResponse (321) | |---- RemoteOperationStatus remoteOperationStatus (324)
Change Log
| Version | Date | Notes |
| 1.1 | 2018-06-18 | Removed Inhibits |
| 1.0 | 2018-06-18 | Release of initial Proto |
The ${AppTopic} defines which app is being addressed i.e. SVL or FTD
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/RO |
| Cloud receive from Vehicle | Subscribe | fcasdp/RO |
| Vehicle send to Cloud | Publish | fcasdp/RO/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | RemoteOperations Event | SDP | The SDP request TBM for Remote Operation Event. | ||
| 2.1 | Assign MessageId | SDP | The Service generates the messageId for the message by incrementing a sequence counter. | ||
| 2.2 | Assign ServiceId | SDP | The SDP generates ServiceId for the message with Random UUID for Sending Remote Operation Messages. | ||
| 3. | Send RemoteOperationRequest Message | SDP | RemoteOperationRequest | /RO/${iot:ClientId} | The Service populates the RemoteOperationRequest Message with the elements and publishes to the RO topic. |
| 4. | Process Message | TBM | The Client processes the message and generates an RemoteOperationResponse Message with the status and the correlationId set to the messageId from the received RemoteOperationRequest Message. | ||
| 5. | Send RemoteOperationResponse Message | TBM | RemoteOperationResponse | ${iot:ClientId}/RO | The Client publishes the response message to the RO topic for the Service to receive. |
| 6. | Process Message | SDP | The Service receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 7_1 | Send RemoteOperationResponse [Success] Message | TBM | RemoteOperationStatus | ${iot:ClientId}/RO | The Client publishes the Status message to the RO topic for the Service to receive. |
| 7_2 | Send RemoteOperationResponse [Failure Message | TBM | RemoteOperationStatus | ${iot:ClientId}/RO | The Client publishes the Status message to the RO topic for the Service to receive. |
| 8. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 9. | send AckMessage | SDP | AckMessage | /RO/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received RemoteOperationStatus Message. |
| 10. | Process AckMessage | TBM | The client process AckMessage. |
This message represents RemoteOperationRequest of vehicle for Remote Operations.
timestamp: 1489632211020
messageId: 1
messages
{
[com.fca.uconnect.global.remoteOperationRequest]
{
action: SUBSCRIBE
serviceRequestId:"-\0274\302]\325\324 \354K"
remoteDoorRequest
{
command: UNLOCK_DRIVER }
}
}
| Field | Type | Label | Description |
| action | RemoteOperationRequest.ActionEnum | optional | This is not being used and is intended for future when subsequent state updates are implemented. |
| serviceRequestId | bytes | optional | ServiceRequestId assigned by the SDP |
| remoteHornAndLightsRequest | RemoteHornAndLightsRequest | optional | Remote Horns and Light Request |
| remoteEngineRequest | RemoteEngineRequest | optional | Remote Engine Request |
| remoteDoorRequest | RemoteDoorRequest | optional | Remote Door Request |
| remoteClimateRequest | RemoteClimateRequest | optional | Remote Client Request - Not used in this release |
| remoteWindowRequest | RemoteWindowRequest | optional | Remote Window Request - Not used in this release |
| Name | Number | Description |
| NO_ACTION | 0 | No Action |
| SUBSCRIBE | 1 | Subscribe |
This message represents RemoteHornAndLights Operation of the vehicle .
timestamp: 1489632211020
messageId: 1
messages
{
[com.fca.uconnect.global.remoteOperationRequest]
{
action: SUBSCRIBE
remoteDoorRequest
{
command: UNLOCK_DRIVER
duration: 0
}
}
}
| Field | Type | Label | Description |
| command | RemoteHornAndLightsRequest.CommandEnum | optional | command element |
| duration | int32 | optional | duration of execution - not used in this release |
| Name | Number | Description |
| HORN_AND_LIGHTS | 0 | Activate Horns and Lights |
| Field | Type | Label | Description |
| command | RemoteEngineRequest.CommandEnum | optional | command element |
| duration | int32 | optional | duration of execution |
| Name | Number | Description |
| START | 0 | Execute a Remote Start |
| STOP | 1 | End a Remote Start |
| Field | Type | Label | Description |
| command | RemoteDoorRequest.CommandEnum | optional |
| Name | Number | Description |
| LOCK_ALL_DOORS | 0 | Lock All Doors |
| UNLOCK_DRIVER_DOOR | 1 | Unlock Driver Door Only |
| UNLOCK_ALL_DOORS | 2 | Unlock All Doors |
| OPEN_LIFTGATE | 3 | Open Lift Gate for Power Lift Gate Models |
| OPEN_HOOD | 4 | Open Hood - Not used this release |
| UNLOCK_TRUNK | 5 | Unlock/Unlatch trunk. Unlock Liftgate on Power models |
| CLOSE_LIFTGATE | 6 | Closes the liftgate - can only be used where feasible for particular model |
| Field | Type | Label | Description |
| command | RemoteWindowRequest.CommandEnum | optional | command element |
| Name | Number | Description |
| OPEN | 0 | Open Window |
| PARTIAL | 1 | Partially Open Window |
| CLOSE | 2 | Close Window |
| Field | Type | Label | Description |
| command | RemoteClimateRequest.CommandEnum | optional | |
| interiorTemperature | int32 | optional | interior Temperature |
| fanSpeed | int32 | optional | speed of the fan values between 0 to 100 |
| termperatureUOM | RemoteClimateRequest.TemperatureEnum | optional | This identifies whether temperature measured in Celsius or Fahrenit degrees. |
| targetTemp | int32 | optional | Target temperature for pre-trip climate |
| timeoutAfterTemp | int32 | optional | Period that the pre-trip should remain on after temp is reached |
| preTripTimeout | int32 | optional | Total time the pre-trip climate shall remain on |
| Name | Number | Description |
| ON | 0 | On |
| OFF | 1 | Off |
| Name | Number | Description |
| Celsius | 0 | Celsius |
| Fahrenheit | 1 | Fahrenheit |
This message represents Response to Remote Operation of the vehicle .
timestamp: 1489633266061
messageId: 1
correlationId: 1
messages
{
[com.fca.uconnect.global.remoteOperationResponse]
{
response: SUCCESS
serviceRequestId: "-\0274\302]\325\324 \354K"
}
}
| Field | Type | Label | Description |
| response | RemoteOperationResponse.ResponseEnum | optional | |
| serviceRequestId | bytes | optional | service request id assigned by SDP |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. |
| vehicleStatus | VehicleStatus | optional | Status of each door/window/hood/trunk. Not used in current planned release. |
| Name | Number | Description |
| SUCCESS | 0 | Success |
| SUCCESS_CONTINUE | 1 | Success Continue |
| SUCCESS_NOCONTINUE | 2 | Success NoContinue |
| NOT_AUTHORIZED | 3 | NOT AUTHORIZED |
| FAILED | 4 | FAILED |
| FAILED_IGNITION_ON | 5 | FAILED IGNITION |
| FAILED_NOCANACK | 6 | FAILED NO CAN ACK |
| FAILED_VEHCONDITION | 7 | FAILED VEHICLE CONDITION |
| STARTFAILED_DOORS_NOTLOCKED | 8 | STARTFAILED DOORS NOT LOCKED |
| STARTFAILED_DOORS_OPEN | 9 | DOORS OPEN |
| STARTFAILED_HOODTRUNK_OPEN | 10 | HOOD OR TRUNK OPEN |
| STARTFAILED_ALARM_ACTIVE | 11 | ALARM ACTIVE |
| STARTFAILED_FUELLOW | 12 | FUEL LOW |
| STARTFAILED_GASPEDAL | 13 | GAS PEDAL |
| STARTFAILED_PRNDL | 14 | GEAR ENGAGED |
| STARTFAILED_WINDOWSUNOPEN | 15 | WINDOWS NOT OPEN |
| STARTFAILED_MAXATTEMPTS_MET | 16 | MAX ATTEMPTS EXCEEDED |
| STARTFAILED_VEHPOWERMODE | 17 | VEHICLE POWER MODE |
| STARTFAILED_BATTERYLOW | 18 | BATTERY LOW |
| STOPFAILED_ENG_ALREADYOFF | 19 | ENGINE OFF |
| DOORS_FAILED_DOOR_OPEN | 20 | DOOR OPEN |
| FLASHLIGHTS_FAILED_IGNITIONON | 21 | FLASH FAILED IGNITION ON |
| FLASHLIGHTS_FAILED_DOOROPEN | 22 | FLASH FAILED DOOR OPEN |
| FLASHLIGHTS_FAILED_EXPIRED | 23 | FLASH FAILED EXPIRED |
| DOORUNLOCK_RELOCKED_FAILED | 24 | RELOCK FAILED |
| DOORUNLOCK_RELOCKED | 25 | RELOCKED |
| NOTIFY_CONTINUE | 26 | NOTIFY AND CONTINUE |
| NOTIFY_NOCONTINUE | 27 | NOTIFY AND DO NOT CONTINUE |
| FAILED_ACTIVE_THEFT_ALARM | 28 | ACTIVE THEFT ALARM |
| NOT_FOUND | 35 | Not Currently Planned for Use |
| REQUESTED | 29 | Not Currently Planned for Use |
| DELIVERED | 30 | Not Currently Planned for Use |
| IN_PROGRESS | 31 | Not Currently Planned for Use |
| COMPLETE | 32 | Not Currently Planned for Use |
| COMPLETE_TIMEOUT | 34 | Status monitor timed out |
| SPEEDLOCKOUT | 36 | Speed lockout for horns,lights and doors |
This API is to define Road Side Assistance.When Bluetooth is triggered, Phone call will be dialed out to the call center.The operator may expect to see the vehicle related information when the phone call is connected. Client gathers vehicle information and send it out.
UconnectAny | |---- RSADataUpload rsaDataUpload (180) | |----BCallStatusUpdate bcallStatusUpdate (181) | |---- VehDataRequest vehDataRequest (182)
Change Log
| Version | Date | Notes |
| 2.2 | 2019-02-08 | Fixed Proxy per V2C-41 |
| 2.1 | 2019-06-05 | Added Attempt Failed for call status per V2C-22 |
| 2.0 | 2018-05-07 | Added RequestRSAPhoneNumbers flow in sequence diagram |
| 1.9 | 2018-10-20 | Added Call Center Type for UpdatePhone Numbers (used only by back end) |
| 1.8 | 2018-09-20 | Added RequestPhoneNumbers changed ASOS to ASOS_NON_IMPACT |
| 1.7 | 2018-05-08 | Added Specific CallOuts for ASOS and SOS |
| 1.6 | 2018-05-08 | Added UpdateRSAPhoneNumbers |
| 1.6 | 2018-05-08 | Added VehicleDataRequest operation per assembla ticket 441 |
| 1.5 | 2018-04-20 | Added callCenterNumber to the RSADataUpload message per Assembla ticket 252 |
| 1.4 | 2017-11-2 | Update to Proto3 |
| 1.3 | 2017-09-20 | Added ACK Message and additional Enum fields to BcallStatus. |
| 1.2 | 2017-04-19 | Added BcallStatusUpdate message. |
| 1.1 | 2017-04-18 | Added extra fields for language,stateofCharge,odometer,cruiserange,nextServiceIntervalinDays,distanceRemainingForNextService and odometerUnits. |
| 1.0 | 2017-03-15 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/RSA |
| Cloud receive from Vehicle | Subscribe | fcasdp/RSA/# |
| Vehicle send to Cloud | Publish | fcasdp/RSA/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | RoadSideAssist Event | TBM | The in-vehicle RoadSideAssist event which triggers the client device to send an RSA Data to the SDP. | ||
| 2. | Assign MessageId | TBM | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send RSADataUpload Message | TBM | RSADataUpload | /RSA/${iot:ClientId} | The client populates the RSADataUpload Message with the required elements and publishes to the RSA topic. |
| 4 | Process Message | SDP | The SDP processes the message and proceed accordingly. | ||
| 5. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 6. | send AckMessage | SDP | AckMessage | ${iot:ClientId}/RSA | The SDP sends AckMessage to acknowledge that it received RSADataUpload Message. |
| 7. | Process AckMessage | TBM | The client process AckMessage. | ||
| 8_1 | Cancel Event | step 7 to 13 are in opt means The interaction operator opt means that the combined fragment represents a sending VehDataRequestmessage may happen or nothing happens. | |||
| 8_2 | Send BCallStatusUpdate message | TBM | BCallStatusUpdate | /RSA/${iot:ClientId} | The client populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic. |
| 8_3 | TimeOut Waiting for Cancel | SDP | The vehicle times out waiting for cancel. | ||
| 8_4 | Send BCallStatusUpdate message | TBM | BCallStatusUpdate | /RSA/${iot:ClientId} | The client populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic. |
| 8_5 | Send BCallStatusUpdate message | SDP | BCallStatusUpdate | /RSA/${iot:ClientId} | The SDP populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic. |
| 8_6 | Fail BCallStatusUpdate message | TBM/SDP | BCallStatusUpdate | /RSA/${iot:ClientId} | The BCallStatusUpdate Message with the required elements is published to the RSA topic, it fails to be processed. |
| 9. | Process Message | SDP | The SDP processes the message and generates an RSADataUpload Message and the correlationId set to the messageId from the received VehDataRequest Message. | ||
| 10. | send AckMessageTBM/SDP | AckMessage | ${iot:ClientId}/RSA | The TBM or SDP sends AckMessage to acknowledge that it received RSADataUpload Message. | |
| 0_1 | BCall Data Query Event | SDP | The SDP can continuously request client for BCall Data through VehDataRequest. | ||
| 10_2 | Send VehDataRequest Message | SDP | VehDataRequest | ${iot:ClientId}/RSA | The SDP publishes the response message to the RSA topic for the client to receive. |
| 10_3. | Process Message | TBM | The Client processes the message and generates an RSADataUpload Message and the correlationId set to the messageId from the received VehDataRequest Message. | ||
| 10_4. | Send RSADataUpload Message | TBM | RSADataUpload | /RSA/${iot:ClientId} | The Client populates the RSADataUpload message to the RSA topic for the SDP to receive. |
| 10_5. | Process Message | SDP | The SDP receives the message and verifies the data and proceed accordingly. |
| Field | Type | Label | Description |
| callCenterNumber | string | optional | Phone number for the call center that the assist call was directed to. |
| calltype | RSADataUpload.CallType | optional | Enumeration for the type of call being made i.e. Brand, Uconnect, Roadside, Concierge |
| callTriggerEnum | RSADataUpload.CallTrigger | optional | Is an automatic non-impact call or manual |
| CallReasonEnum | RSADataUpload.CallReason | optional | Reason - only used in case of automatic call |
| device | Device | optional | device info This identifies the type of the device. / Device Manufacturer Name / TBM Serial Number / TBM Part Number / TBM Hardware Version / TBM Software Version / ICCID for the SIM / MSI for the SIM / Number uniquely identifying a subscription in a mobile network. / IMIE Number for the NAD / Modem Hardware Version / Modem Software Version / Modem Serial Number / Model Part Number / WiFi Mac Address / HU Serial Number / HU Part Number / HU Hardware Version / HU Software Version |
| vehicleInfo | VehicleInfo | optional | |
| tirePressure | TirePressure | optional | define Tire pressure for all the tires - not used |
| fuelRemaining | float | optional | Represents Fuel left. Not used |
| errorTellTale | RSADataUpload.ErrorTellTale | optional | Not Used |
| stateofCharge | double | optional | |
| daysRemainingForNextService | int32 | optional | The number of days remaining for next service. NOT USED |
| distanceRemainingForNextService | int32 | optional | The distance remaining for next service. NOT USED |
| Name | Number | Description |
| MANUAL | 0 | |
| AUTOMATIC | 1 | |
| ONDEMAND | 2 |
| Name | Number | Description |
| DEFAULT | 0 | |
| ENGINEOILTEMP | 1 | |
| WATERINFUEL | 2 | |
| BRAKEINDICATOR | 3 | |
| BRAKEPADINDICATOR | 4 | |
| LOWBREAKFLUID | 5 | |
| BREAKPEDALFAULT | 6 |
| Name | Number | Description |
| BRAND | 0 | |
| ROADSIDE | 1 | |
| GUARDIAN | 2 | |
| UCONNECT | 3 | |
| CONCIERGE | 4 | |
| ASOS_NON_IMPACT | 5 | |
| SOS | 6 | |
| ASSIST1 | 7 | |
| ASSIST2 | 8 | |
| ASSIST3 | 9 | |
| ASSIST4 | 10 | |
| IVA | 11 |
This message is to define any error Tell Tale signs
| Field | Type | Label | Description |
| isOilPressure | bool | optional | This is for Oil Tell-tale Sign. |
This message is to update the status of the BCall.
timestamp: 1489600243281
messageId: 2
messages
{
[com.fca.uconnect.global.bcallStatusUpdate]
{
bcallStatusEnum: DIAL
}
}
| Field | Type | Label | Description |
| bcallStatusEnum | BCallStatusUpdate.BCallStatusEnum | optional |
| Name | Number | Description |
| DIAL | 0 | |
| CANCELLED | 1 | |
| TERMINATED | 2 | This represents the call is terminated. |
| DROPPED_CALL | 3 | This is sent when TBM detects dropped call without a terminate tone. |
| CALL_FAILED | 4 | This is sent when TBM fails to Establish CALL. |
| ATTEMPT_FAILED | 5 | Sent during retry when call connection fails to be established. |
| Field | Type | Label | Description |
| vehicleDataRequest | ECallVehDataRequest | optional | Requests the vehicle data |
| Field | Type | Label | Description |
| vehicleDataUpload | RSADataUpload | optional | Returns the requested vehicle data |
| Field | Type | Label | Description |
| PhoneList | bytes | optional | Deprecated |
| raPhoneListMessages | RAPhoneListMessage | repeated | repeated structure providing details for each phone number that requires updating |
| Field | Type | Label | Description |
| EnableCallType | bool | optional | |
| PrimaryPhoneNumber | string | optional | Primary Phone Number for the feature |
| SecondaryPhoneNumber | string | optional | Secondary Phone Number for the feature |
| callCenter | RAPhoneListMessage.CallCenterType | optional | This field can be ignored by the vehicle and is used for backend uniform API design purposes only |
| callTypeEnum | RAPhoneListMessage.CallType | optional |
| Name | Number | Description |
| BRAND | 0 | |
| ROADSIDE | 1 | |
| GUARDIAN | 2 | |
| UCONNECT | 3 | |
| CONCIERGE | 4 | |
| IVA_CALL | 5 |
| Name | Number | Description |
| Assist1 | 0 | |
| Assist2 | 1 | |
| Assist3 | 2 | |
| Assist4 | 3 | |
| IVA | 4 | |
| ASOS_NON_IMPACT | 5 |
| Field | Type | Label | Description |
| vehicleProxyConfig | RequestRSAPhoneNumbers.VehcicleProxyConfigEnum | optional | Sends the Vehicle Proxy Configuration to SDP |
| raPhoneListMessages | RAPhoneListMessage | repeated | Sends the current vehicle phone list for comparison with SDP list for the vehicles current profile. |
| Name | Number | Description |
| NONE | 0 | |
| SINGLE_BUTTON | 1 | |
| MULTIPLE_BUTTON | 2 |
This API is to push some destinations to the vehicle, the SDP shall send the destinations data to the TBM when the TBM is connected. TBM will save the destination.
UconnectAny | |---- DestinationPush destinationPush (240) | |---- DestinationPushResponse destinationPushResponse (241)
Change Log
| Version | Date | Notes |
| 1.6 | 2019-07-25 | Updated Sequence Diagram per V2C-037 |
| 1.5 | 2018-06-01 | Added ServiceRequestID, removed Repeated from Destination field |
| 1.4 | 2018-05-29 | Added POI and Address per Assembla 455 |
| 1.3 | 2017-11-2 | Update to Proto3 |
| 1.2 | 2017-09-27 | Update DestinationPushResponse. |
| 1.1 | 2017-04-12 | Added DestinationPushResponse and removed MAPDBVariant. |
| 1.0 | 2017-03-19 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/SDTC |
| Cloud receive from Vehicle | Subscribe | fcasdp/SDTC/# |
| Vehicle send to Cloud | Publish | fcasdp/SDTC/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the HU and the SDP:

| Seq | Title | Role | Message | Topic | Description |
| 1. | Send Destination to Vehicle Event | SDP | The SDP triggers SendDestinationToCar event which triggers DestinationPush to the Client. | ||
| 2. | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send DestinationPush Message | SDP | DestinationPush | ${iot:ClientId}/SDTC | The SDP populates the DestinationPush Message with the required elements and publishes to the SendDestinationToCar topic. |
| 4. | Process Message | HU | The HU processes the message and generates an DestinationPushResponse Message with the status and the correlationId set to the messageId from the received DestinationPush Message. | ||
| 5. | Send DestinationPushResponse Message | HU | DestinationPushResponse | /SDTC/${iot:ClientId} | The TBM publishes the response message to the SendDestinationToCar topic for the SDP to receive. |
| 6. | Process Message | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the sent request. |
This message represents list of Destinations that User Can push to the Vehicle.
timestamp: 1490014360254
messageId: 11
messages
{
[com.fca.uconnect.global.destinationPush]
{
isImmediateNavigation: false
destinationList
{
destinationLocation
{
longitude: -83.671875
latitude: 42.4802
}
poi
{
name: "ABCD Restaurant"
category: "Restaurant"
id: 123
phoneNumber: "123 456 7890"
description: "favorite"
url: "www.abcrestaurant.com"
}
address
{
houseNbr: "1000"
streetName: "Chrystler Drive"
cityName: "Auburn Hills"
provinceName: "Michigan"
countryName: "USA"
zipCode: 48326
}
timestamp: 1490014360251
routePreferenceEnum: FAST
}
}
}
| Field | Type | Label | Description |
| destinationList | Destination | optional | |
| LocationID | bytes | optional | Service Request ID Added for Trace-ability. Assigned by the SDP. Recommended that Location requests assign the locationID from DB |
| Field | Type | Label | Description |
| response | DestinationPushResponse.ResponseEnum | optional | |
| isTransient | bool | optional | Indicates if the error is transient and to attempt a retry. |
| failureReasonCode | int32 | optional | provide detailed errror reason code. |
| LocationID | bytes | optional | Assigned by the SDP. Recommended that Location requests assign the locationID from DB |
| Name | Number | Description |
| SUCCESS | 0 | |
| INVALID_LOCATION | 1 | |
| INVALID_POI | 2 | |
| INVALID_ADDRESS | 3 | |
| INVALID_ROUTE_PREFERENCE | 4 | |
| ERROR | 5 | Generic Error Enumeration from Application Level or System Level Error |
This is for validation and protection for all the messages that are stored in TU.
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.4 | 2018-05-20 | Updates from Security Team added certificateChain |
| 1.3 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-07-10 | Added CertificateChain and unsignedData |
| 1.0 | 2017-02-14 | Release of initial Proto |
A Signature message may follow any message in the UconnectMessage messages array. The purpose of the signature message is to allow validation and protection of messages that are stored on the TU for more than a single transient invocation of the client application. Signature messages may contain direct hash function values, or may be interpreted otherwise per mutual arrangement between the TU and the SDP applications.
timestamp: 1489208951716
messageId: 3
messages
{
[com.fca.uconnect.global.signature]
{
signatureId:11
signatureType: "RSA CERT"
signatureValue: "put x509 cert here"
}
}
| Field | Type | Label | Description |
| signatureId | int32 | optional | The signatureId is used to correlate the message data with the signature. This can support multiple messages with separate signatures as required. |
| signatureType | string | optional | a well known identified that specifies the type of signature or hash. For example, SHA256. |
| signatureValue | bytes | optional | The signature value generated from by the Global PKI system for the associated message containing the matching signatureId. |
| unsignedData | bytes | optional | This is used as source data for signing. |
| certificateChain | bytes | repeated | This is used to return the whole chain of certificates used to sign the data |
This message is to define SQDF
UconnectAny | |------SQDFPublish | | | |---SQDFData | |------SQDFResponse | | | |---SQDFData | |------SQDFRequest
SQDFData | |------GenericData | | | |---VehicleData | |------QuickScan | | | |---QuickScanECUData | |------DTCScan | | | |---DTCScanECUData | | | |--- VehicleData | |------Histogram | | | |---HistogramData | | | |---HistogramBin | |------DataLog | | | |--- DataLogData | | | |--- VehicleData | | | |--- Data | |------SGWData
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.17 | 2018-11-20 | Added repeated field ecuScanData |
| 1.16 | 2018-09-26 | Small change to vehicle subscription topic (SQDF instead of #) |
| 1.15 | 2018-09-18 | Added SRS_LAMP_STAT Added ResponseIDHex and CANFRAMEHEX to ECUData |
| 1.14 | 2018-08-18 | Change FAILED Enum in CommandStatus from 5 to 2. ServiceEnum Default changed to default1 |
| 1.13 | 2018-06-18 | Replaced command Status with ServiceName and moved Enums in ServiceName to make a null default |
| 1.12 | 2018-06-18 | Added DTCScanEndTimeStamp |
| 1.11 | 2018-05-16 | UAdded new fields per assembla 448 and removed fields from DataLog per 449 |
| 1.10 | 2018-05-10 | Added version to SQDFData per Assembla ticket 442 and added new descriptions per 406,407, 408, 409, 410 |
| 1.9 | 2018-04-25 | Removed Afsts from VehicleData object per assmebla ticket 395 |
| 1.8 | 2018-04-05 | Changes per assembla tickets 322, 323, 324 |
| 1.7 | 2017-10-06 | Add EV elements to VehicleInfo. |
| 1.6 | 2017-08-07 | Updated Histogram and DataLog elements. |
| 1.5 | 2017-07-26 | Updated SQDF Data with SGWData and added additional fields. |
| 1.4 | 2017-07-24 | Moved SQDFParameters to VehSync,removed DTCTrigger |
| 1.3 | 2017-07-20 | Added DTCScanData Content Message |
| 1.2 | 2017-07-17 | Added Vehicle Data message ,HistogramData and added additional SQDF parameters |
| 1.1 | 2017-07-11 | Changed policy SubcriptionId to Bytes |
| 1.0 | 2017-03-10 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/SQDF |
| Cloud receive from Vehicle | Subscribe | fcasdp/SQDF/# |
| Vehicle send to Cloud | Publish | fcasdp/SQDF/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/SQDF |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:
| Sequence | Title | Role | Message | Topic | Description |
| 1.2 | 2017-11-2 | Added Afsts, TXWarn1, TXwarn2,EngCoolTemp, and New Histor IDS for Outputspeed, TripCount, TripTime | |||
| 1.1 | 2017-11-2 | Update to Proto3 | |||
| 1.0 | Send SQDFPublish | TBM | SQDFPublish | /SQDF/${iot:ClientId} | The SQDF Event publishes SQDFPublish Message. |
| 2.1 | Process Message | SDP | The SDP processes the message. | ||
| 2.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 3. | send AckMessage | SDP | AckMessage | /SQDF/${iot:ClientId} | The SDP sends AckMessage to acknowledge that it received SQDFPublish Message. |
| 4. | Process AckMessage | TBM | The client process AckMessage. | ||
| 5. | PHEVEvent | SDP | The SQDFRequest Event which triggers the SDP device to send a SQDFRequest to the TBM. | ||
| 6. | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 7. | Send SQDFRequest Message | SDP | PHEVData | ${iot:ClientId}/SQDF | The SDP populates the SQDFRequest Message with the required elements and publishes to the SQDF topic. |
| 8. | Process Message | TBM | The TBM processes the message. | ||
| 9. | Assign correlationID | TBM | Assign correct correlationId. | ||
| 10. | send SQDFResponse | TBM | AckMessage | /SQDF/${iot:ClientId} | The TBM sends SQDFResponse with SQDFData in it . |
| 11. | Process Response | SDP | The SDP process Response Message. |
| Field | Type | Label | Description |
| data | SQDFData | optional |
| Field | Type | Label | Description |
| data | SQDFData | optional | |
| status | SQDFResponse.SQDFCommandStatus | optional | |
| failureReasonCode | int32 | optional |
| Name | Number | Description |
| DEFAULT | 0 | |
| SUCCESS | 1 | |
| FAILED | 5 |
| Field | Type | Label | Description |
| serviceName | ServiceNameEnum | optional | ServiceName only this attribute should be read unless it is a ConfigUpdate |
| command | SQDFRequest.SQDFCommand | repeated |
| Name | Number | Description |
| DEFAULT | 0 | |
| SendData | 1 | The vehicle should reply with a SQDFResponse that contains SQDFData.GenericData |
| DoQuickScan | 2 | The vehicle should reply with a SQDFResponse that contains SQDFData.QuickScan |
| DoDTCScan | 3 | The vehicle should reply with a SQDFResponse that contains SQDFData.DTCScan |
| DoHistogram | 4 | The vehicle should reply with a SQDFResponse that contains SQDFData.Histogram |
| DODATALOGCOMP | 5 | The vehicle should reply with the SQDFData.Datalog |
| SGWLOGSCOMP | 6 | The vehicle should reply with SQDFData.SGWDATA |
This message is to define Key Vehicle Information which includes vehicleConfiguration parameters and parameters that are monitored continuously
| Field | Type | Label | Description |
| ODO | int32 | optional | Odometer mileage; km |
| distanceToService | float | optional | Distance to Vehicel Service; Range 0 to 131071; based on distanceUnit field |
| brake_Pedal_Fault | VehicleData.LampStateEnum | optional | Brake Pedal Fault Indicator - use for brkSWNOFailSTat |
| oilLifeLeft | int32 | optional | Oil life left (OilLifeSts); % |
| IBS_SOC | float | optional | State of Charge from IBS system; % |
| travelingTimeAPlusHour | int32 | optional | Trip A hours travel time; hr |
| travelingTimeAPlusMinute | int32 | optional | Trip A minutes travel time; min |
| tirePressure | TirePressure | optional | Tire system values for pressure and inflation states |
| isMILOnRq | bool | optional | Engine MIL indicator status; Inactive = [0] Active = [1] |
| isGlowPlugs | bool | optional | Glow plug; Inactive = [0] Active = [1] |
| isLHTurnLightFault | bool | optional | Left hand turn light fault; Inactive = [0] Active = [1] |
| isRHTurnLightFault | bool | optional | Right hand turn light faul; Inactive = [0] Active = [1] |
| isFRTurnLightFault | bool | optional | Front right turn light fault; Inactive = [0] Active = [1] |
| isFLTurnLightFault | bool | optional | Front left turn light fault; Inactive = [0] Active = [1] |
| isRRTurnLightFault | bool | optional | Rear right turn light fault; Inactive = [0] Active = [1] |
| isRLTurnLightFault | bool | optional | Rear left turn light fault; Inactive = [0] Active = [1] |
| isPlateLmpFault | bool | optional | License plate lamp fault; Inactive = [0] Active = [1] |
| isDRLFault | bool | optional | Daytime running lamp fault; Inactive = [0] Active = [1] |
| isFuelLevelLow | bool | optional | Fuel level low; Inactive = [0] Active = [1] |
| isBatteryLampStsOn | VehicleData.LampStateEnum | optional | Battery reached critical state |
| isChrgSystemFail | VehicleData.ChargeSystemFailEnum | optional | Charging system Failure (battery indicator request) |
| isFuelCapOpen | bool | optional | Fuel Cap open; Inactive = [0] Active = [1] |
| isParkingFailSts | bool | optional | Parking System Failure; Inactive = [0] Active = [1] |
| isHillHolderFailSts | bool | optional | Hill Hold System Failure; Inactive = [0] Active = [1] |
| isEBDLAMPFailSts | VehicleData.LampStateEnum | optional | EBD Lamp Failure |
| isTPMIndLmpOnRq | VehicleData.LampStateEnum | optional | Tire pressure indication request |
| isBreakFluidLow | bool | optional | Brake fluid low level; Inactive = [0] Low = [1] |
| isWashFluidLow | bool | optional | Washer fluid low level; Inactive = [0] Low = [1] |
| isBSMServiceReqOn | bool | optional | BSM service warning request; Inactive = [0] Service Request = [1] |
| numStops | int32 | optional | Counts of number of stops per trip; Range 0 to 255 |
| numHardBrakes | int32 | optional | Counts of total Hardbrake events; Range 0 to 255 |
| maintenanceSts | VehicleData.MaintenanceStateEnum | optional | Maintenance reminder for an Oil Change |
| vrcUploadDayOfMonth | int32 | optional | Day setting for the calendar month to upload the monthly data set |
| vrcUploadTimeStamp | int64 | optional | Time setting for the calendar month to upload the monthly data set |
| engineRunTime | int32 | optional | Range 0 to 960, minutes |
| avgFuelEconomy | int32 | optional | Average Fuel Economy |
| batteryVoltage | float | optional | System voltage, Range 0 to 18, Init Value = 25.5, Unit = Volts |
| distanceUnit | VehicleData.DistanceUnitsEnum | optional | Distance (odometer) units; km = [0], miles = [1] |
| isRunFlatTireLow | bool | optional | Stop Lamp Fault; Inactive = [0] Active = [1] |
| gasRange | int32 | optional | Gas range or Distance to empty; Range 0 to 1022, Init Value 1023, Unit = km |
| tripAKMPL | int32 | optional | Trip A mileage; kmpl |
| tripAMPG | int32 | optional | Trip A mileage; mpg |
| tripBKMPL | int32 | optional | Trip B mileage; kmpl |
| tripBMPG | int32 | optional | Trip B mileage; mpg |
| tripATotalDistKM | int32 | optional | Trip A total distance traveled; km |
| tripATotalDistMiles | int32 | optional | Trip A total distance traveled; miles |
| tripBTotalDistKM | int32 | optional | Trip B total distance traveled; km |
| tripBTotalDistMiles | int32 | optional | Trip B total distance traveled; miles |
| vehicleSpeed | float | optional | Vehicle speed; km/h |
| ambientAvgTemperature | int32 | optional | Ambient temperature; °F |
| engineCoolantTemperature | int32 | optional | Engine coolant temperature; °C |
| dpfDEFWarning | int32 | optional | DEF indicator status; OFF =[0], ON =[1], Flash =[2], SNA =[3] |
| brakeLampIndicatorSts | VehicleData.LampStateEnum | optional | Brake indication lamp (red) on request |
| txTemp_Excess | string | optional | Transmission Warning System; None = [0], 1 to F = (WARN_x), TxTempWarn1 |
| txTemp_Excess2 | string | optional | Transmission Warning System #2; None =[0], 1 to FF = (WARN_xx), TxTempWarn2 |
| PFW | string | optional | Particulate filter warning status; PFW_Stat |
| IBS_I_BATT | sint32 | optional | Battery current from IBS; Range -32768 to 32766, 65535 = SNA, Amp |
| IBS_T_BATT | sint32 | optional | Battery temperature from IBS; Range -40 to 105, 255 = SNA, °C |
| IBS_V_BATT | float | optional | Battery voltage from IBS; Range 3 to 18, 16383 = SNA, V |
| etcLmpIndSts | VehicleData.LampStateEnum | optional | Electronic Traction Control Lamp Status |
| isEngineOilLampOn | bool | optional | Request oil level/oil pressure indicator lamp; Inactive =[0], Active =[0] |
| oilTempIndicatorRq | int32 | optional | OIL_TEMP_IND_RQ; OFF =[0], ON =[1], FLASH =[2], SNA =[3] |
| absLampSts | VehicleData.LampStateEnum | optional | ABS_IndLmp_On_Rq |
| srsIndLmpSts | VehicleData.LampStateEnum | optional | |
| oilPressure | int32 | optional | Oil Pressure; Range 0 to 1016, SNA=1020, kPaG |
| srsLmpSts | VehicleData.LampStateEnum | optional | Air Bag Warning Light Status |
| wtrFuelIndLmpSts | VehicleData.LampStateEnum | optional | Water in fuel lamp active |
| vcFuelCapacity | int32 | optional | Overall Fuel Capacity; Range 36 to 290, liters |
| isBSM_OPR_STAT | bool | optional | BSM operation status; 1= operational failure |
| avgFuelLvl | int32 | optional | Average Fuel level; Range 0 to 255, liters |
| epsWarnDispRq | VehicleData.StateEnum | optional | Electric power steering warning display request |
| escCntrlLmpSts | VehicleData.LampStateEnum | optional | ESC control lamp information(ESCControlLamp) |
| isPTS_FT_SRV | bool | optional | Front PTS sensor service request; Inactive = [0] Active = [1] |
| isPTS_RR_SRV | bool | optional | Rear PTS sensor service request; Inactive = [0] Active = [1] |
| isADS_SrvSys | bool | optional | ADS Service System (ADS_SrvSys); Inactive = [0] Active = [1] |
| isACCFaulted | bool | optional | ACC faulted; Inactive = [0] Active = [1] |
| isACCOnlyNA_DASMSSts | bool | optional | ACC only not available: vehicle system error; True = [1] |
| mapRequestCd | string | optional | Navigation Map Code |
| isNavigationActivated | bool | optional | Navigation Activated |
| isSPLmpFault | bool | optional | Stop Lamp Fault; Inactive = [0] Active = [1] |
| A_EV_Miles | float | optional | Trip A EV distance; Range 0 to 9999.9 16777215 = SNA, miles |
| A_EV_Kilometers | float | optional | Trip A EV distance; Range 0 to 16093.3 16777215 = SNA , km |
| A_Hybrid_Miles | float | optional | Trip A hybrid distance; Range 0 to 9999.9 16777215 = SNA, miles |
| A_Hybrid_Kilometers | float | optional | Trip A hybrid distance; Range 0 to 16093.3 16777215 = SNA , km |
| B_EV_Miles | float | optional | Trip B EV distance; Range 0 to 9999.9 16777215 = SNA, miles |
| B_EV_Kilometers | float | optional | Trip B EV distance; Range 0 to 9999.9 16777215 = SNA, km |
| B_Hybrid_Miles | float | optional | Trip B hybrid distance; Range 0 to 9999.9 16777215 = SNA, miles |
| B_Hybrid_Kilometers | float | optional | Trip B hybrid distance; Range 0 to 9999.9 16777215 = SNA, km |
| outputSpeed | float | optional | Output Speed; rpm |
| TripCounts | int32 | optional | Trip Counts; count |
| Triptime | int64 | optional | Trip Time; minutes |
| Afsts | int64 | optional | Fuel Type |
| srsIndLmpRq | VehicleData.LampStateEnum | optional | SRS indication lamp request |
| tCaseAWD_DrvMdRq | VehicleData.RequestState | optional | Transfer case all wheel drive request |
| Name | Number | Description |
| NSPD | 0 | |
| PSD | 1 | |
| NDEF | 2 | |
| R_SNA | 3 | Signal Not Available |
| Name | Number | Description |
| FALSE | 0 | Inactive |
| TRUE | 1 | Active |
| SNA | 2 | Signal not available |
| Name | Number | Description |
| STATE_ZERO | 0 | |
| STATE_ONE | 1 | |
| STATE_TWO | 2 | |
| STATE_THREE | 3 | |
| STATE_SEVEN | 7 |
| Name | Number | Description |
| NONE | 0 | No Oil Change needed |
| SOON | 1 | Service Oil Change soon |
| NOW | 2 | Serivce Oil Change Now |
| SNA_STATE | 3 | Signal not available |
| RESET | 4 | Reset State |
| Name | Number | Description |
| MILES | 0 | |
| KILOMETERS | 1 |
| Name | Number | Description |
| ZERO | 0 | OFF |
| ONE | 1 | Continuous On |
| TWO | 2 | Blinking |
| THREE | 3 | SNA, Signal not available |
| Field | Type | Label | Description |
| version | string | optional | [Required for Legacy Support] SQDF application version number. ex: 180505(YYMMDD) (i.e. YY = Last two digits of the Year, MM = Month and DD = Day) |
| vehicleId | string | optional | [Required for Legacy Support] |
| eventId | string | optional | [Required for Legacy Support] Event ID shall be a unique number for each upload. Part of the unique number can include the last 8 digits of the VIN. The Event ID shall include TBM2_<Region>_<Service Name>:<8 digit VIN>-<YYYYMMDDTIME>. Ex: "eventId": "TBM2_E_DTC:GH100127-20160925000002" |
| eventCreationTime | int64 | optional | [Required for Legacy Support] This is Epoch time and must be converted by backend to SQDF required format |
| uploadVehicleLocation | Location | optional | [Required for Legacy Support] Vehicle GPS Location during SQDF data upload |
| quickScanData | SQDFData.QuickScan | optional | |
| dtcScanData | SQDFData.DTCScan | optional | |
| histogram | SQDFData.Histogram | optional | Protobuf format to support uploading Histogram data. |
| datalog | SQDFData.DataLog | optional | Protobuf format to support uploading DataLog data. |
| genericData | SQDFData.GenericData | optional | |
| sgwData | SQDFData.SGWData | optional | |
| serviceName | ServiceNameEnum | optional | Service Name of the type of SQDF Data |
| histogramJsonData | bytes | optional | Support legacy approach for passing through Histogram data in JSON format. |
| datalogJsonData | bytes | optional | Support legacy approach for passing through DataLog data in JSON format. |
| Field | Type | Label | Description |
| ecuData | SQDFData.ECUData | optional | |
| monthlyPayload | int32 | optional | |
| uploadDayOfMonth | int32 | optional | |
| uploadTimestamp | int64 | optional | |
| gatewayLogs | bytes | optional | |
| idsLogs | bytes | optional | |
| ecuScanData | SQDFData.ECUData | repeated |
A set of data values collected in response to a SQDFRequest with a command of SQDFCommand.SendData..
timestamp: 1489075048380
messageId: 0
messages
{
[com.fca.uconnect.global.sQDFData] {
vehicleId:
}
}
| Field | Type | Label | Description |
| vehicleData | VehicleData | optional |
| Name | Number | Description |
| DEFAULT | 0 | |
| CCAN | 1 | |
| BHCAN_OR_I_CAN | 2 | |
| C1_CAN | 3 | |
| C2_CAN | 4 |
| Field | Type | Label | Description |
| ODO | int32 | optional | |
| scanVehicleLocation | Location | optional | |
| scanTimestamp | int64 | optional | |
| ecuData | SQDFData.ECUData | repeated |
The data generated by a DTCScan.
timestamp: 1489075048380
messageId: 0
messages
{
[com.fca.uconnect.global.sQDFData] {
vehicleId:
}
}
| Field | Type | Label | Description |
| maskedDTCs | string | repeated | list of DTCs to not send - to squelch excessive traffic in the event of errors. |
| triggerDTCDetectionTimestamp | int64 | optional | time when dtc is detected |
| DTCScanEndTimestamp | int64 | optional | |
| triggers | SQDFData.DTCScan.DTCTrigger | repeated | |
| vehicleData | VehicleData | optional | |
| dtcScanECUData | SQDFData.ECUData | repeated | |
| scanVehicleLocation | Location | optional |
| Field | Type | Label | Description |
| trigger | SQDFData.DTCScan.DTCTrigger.DTCTriggerType | optional | |
| name | string | optional |
| Name | Number | Description |
| DEFAULT | 0 | |
| ECU | 1 | |
| LAMP | 2 | |
| ECU_SWAP | 3 |
| Id | Name |
| 1 | EngTrq_Rq_ESC |
| 2 | BATT_VOLT |
| 3 | AvgFuelLvl |
| 4 | EngRPM |
| 5 | VEH_SPEED |
| 6 | IGN_OFF_TIME_LNG |
| 7 | INST_FUEL_ECO |
| 8 | AMB_TEMP_AVG_F |
| 9 | Gr |
| 10 | TirePressFL |
| 11 | TirePressFR |
| 12 | TirePressRL |
| 13 | TirePressRR |
| 14 | TirePressRL2 |
| 15 | TirePressRR2 |
| 16 | EngCoolTemp |
| 17 | DRV_SEATBELT |
| 18 | PSG_SEATBELT |
| 19 | E_Mode_Sts |
| 20 | EngLoad |
| 21 | IBS_V_BATT |
| 22 | IBS_T_BATT |
| 23 | EngineRunTime |
| 24 | FL_HS_STAT |
| 25 | FR_HS_STAT |
| 26 | EngTrqStatic |
| 27 | DAY_LGT_MD |
| 28 | DriveStyleSts |
| 29 | BoostPressureIndication |
| 30 | RainSensorLvl |
| 31 | PSG_AJAR |
| 32 | DRV_AJAR |
| 33 | R_R_AJAR |
| 34 | L_R_AJAR |
| 35 | TLG_AJAR |
| 36 | CmdIgnSts |
| 37 | AutoDfgStat |
| 38 | FT_FOG_RQ |
| 39 | AC_CLTCH_EGD |
| 40 | MdsAct |
| 41 | ActlAccelPdlPosn |
| 42 | AccelPdlPosn |
| 43 | VehPerfAccel_X |
| 44 | VehPerfAccel_Y |
| 45 | IBS_I_BATT |
| 46 | FUEL_cons |
| 47 | EngineStopTime |
| 48 | SpStSwStat |
| 49 | ESS_ENG_ST |
| 50 | HardBrake |
| 51 | MileBased |
| 52 | SpStDispstat |
| 53 | IBS_SOC |
| 54 | HVBatSOC_HCP |
| 55 | TCASE_STAT |
| 56 | TCaseAWD_DrvMdRq |
| 57 | SHFT_PROG |
| 58 | CC_SetSpdDsplMPH |
| 59 | CRUISE_EGD |
| 100 | EngSpeedToEngineTorque_0to100rpm |
| 101 | EngSpeedToEngineTorque_100to200rpm |
| 102 | EngSpeedToEngineTorque_200to300rpm |
| 103 | EngSpeedToEngineTorque_300to400rpm |
| 104 | EngSpeedToEngineTorque_400to500rpm |
| 105 | EngSpeedToEngineTorque_500to600rpm |
| 106 | EngSpeedToEngineTorque_600to700rpm |
| 107 | EngSpeedToEngineTorque_700to800rpm |
| 108 | EngSpeedToEngineTorque_800to900rpm |
| 109 | EngSpeedToEngineTorque_900to1000rpm |
| 110 | EngSpeedToEngineTorque_1000to1100rpm |
| 111 | EngSpeedToEngineTorque_1100to1200rpm |
| 112 | EngSpeedToEngineTorque_1200to1300rpm |
| 113 | EngSpeedToEngineTorque_1300to1400rpm |
| 114 | EngSpeedToEngineTorque_1400to1500rpm |
| 115 | EngSpeedToEngineTorque_1500to1600rpm |
| 116 | EngSpeedToEngineTorque_1600to1700rpm |
| 117 | EngSpeedToEngineTorque_1700to1800rpm |
| 118 | EngSpeedToEngineTorque_1800to1900rpm |
| 119 | EngSpeedToEngineTorque_1900to2000rpm |
| 120 | EngSpeedToEngineTorque_2000to2100rpm |
| 121 | EngSpeedToEngineTorque_2100to2200rpm |
| 122 | EngSpeedToEngineTorque_2200to2300rpm |
| 123 | EngSpeedToEngineTorque_2300to2400rpm |
| 124 | EngSpeedToEngineTorque_2400to2500rpm |
| 125 | EngSpeedToEngineTorque_2500to2600rpm |
| 126 | EngSpeedToEngineTorque_2600to2700rpm |
| 127 | EngSpeedToEngineTorque_2700to2800rpm |
| 128 | EngSpeedToEngineTorque_2800to2900rpm |
| 129 | EngSpeedToEngineTorque_2900to3000rpm |
| 130 | EngSpeedToEngineTorque_3000to3100rpm |
| 131 | EngSpeedToEngineTorque_3100to3200rpm |
| 132 | EngSpeedToEngineTorque_3200to3300rpm |
| 133 | EngSpeedToEngineTorque_3300to3400rpm |
| 134 | EngSpeedToEngineTorque_3400to3500rpm |
| 135 | EngSpeedToEngineTorque_3500to3600rpm |
| 136 | EngSpeedToEngineTorque_3600to3700rpm |
| 137 | EngSpeedToEngineTorque_3700to3800rpm |
| 138 | EngSpeedToEngineTorque_3800to3900rpm |
| 139 | EngSpeedToEngineTorque_3900to4000rpm |
| 140 | EngSpeedToEngineTorque_4000to4100rpm |
| 141 | EngSpeedToEngineTorque_4100to4200rpm |
| 142 | EngSpeedToEngineTorque_4200to4300rpm |
| 143 | EngSpeedToEngineTorque_4300to4400rpm |
| 144 | EngSpeedToEngineTorque_4400to4500rpm |
| 145 | EngSpeedToEngineTorque_4500to4600rpm |
| 146 | EngSpeedToEngineTorque_4600to4700rpm |
| 147 | EngSpeedToEngineTorque_4700to4800rpm |
| 148 | EngSpeedToEngineTorque_4800to4900rpm |
| 149 | EngSpeedToEngineTorque_4900to5000rpm |
| 150 | EngSpeedToEngineTorque_5000to5100rpm |
| 151 | EngSpeedToEngineTorque_5100to5200rpm |
| 152 | EngSpeedToEngineTorque_5200to5300rpm |
| 153 | EngSpeedToEngineTorque_5300to5400rpm |
| 154 | EngSpeedToEngineTorque_5400to5500rpm |
| 155 | EngSpeedToEngineTorque_5500to5600rpm |
| 156 | EngSpeedToEngineTorque_5600to5700rpm |
| 157 | EngSpeedToEngineTorque_5700to5800rpm |
| 158 | EngSpeedToEngineTorque_5800to5900rpm |
| 159 | EngSpeedToEngineTorque_5900to6000rpm |
| 160 | EngSpeedToEngineTorque_6000to6100rpm |
| 161 | EngSpeedToEngineTorque_6100to6200rpm |
| 162 | EngSpeedToEngineTorque_6200to6300rpm |
| 163 | EngSpeedToEngineTorque_6300to6400rpm |
| 164 | EngSpeedToEngineTorque_6400to6500rpm |
| 165 | EngSpeedToEngineTorque_6500to6600rpm |
| 166 | EngSpeedToEngineTorque_6600to6700rpm |
| 167 | EngSpeedToEngineTorque_6700to6800rpm |
| 168 | EngSpeedToEngineTorque_6800to6900rpm |
| 168 | EngSpeedToEngineTorque_6900to7000rpm |
| 169 | EngSpeedToEngineTorque_7000toOrphanrpm |
| 200 | MilesAtTransTorqueToGear_1 |
| 201 | MilesAtTransTorqueToGear_2 |
| 202 | MilesAtTransTorqueToGear_3 |
| 203 | MilesAtTransTorqueToGear_4 |
| 204 | MilesAtTransTorqueToGear_5 |
| 205 | MilesAtTransTorqueToGear_6 |
| 206 | MilesAtTransTorqueToGear_7 |
| 207 | MilesAtTransTorqueToGear_8 |
| 208 | MilesAtTransTorqueToGear_9 |
| 209 | MilesAtTransTorqueToGear_2ndPrime |
| 210 | MilesAtTransTorqueToGear_R |
| 211 | MilesAtTransTorqueToGear_R2 |
| 220 | MilesAtPedalPositionAndVehspd_0 |
| 221 | MilesAtPedalPositionAndVehspd_0-10 |
| 222 | MilesAtPedalPositionAndVehspd_10-20 |
| 223 | MilesAtPedalPositionAndVehspd_30-40 |
| 224 | MilesAtPedalPositionAndVehspd_40-50 |
| 225 | MilesAtPedalPositionAndVehspd_50-60 |
| 226 | MilesAtPedalPositionAndVehspd_60-70 |
| 227 | MilesAtPedalPositionAndVehspd_70-80 |
| 228 | MilesAtPedalPositionAndVehspd_80-90 |
| 229 | MilesAtPedalPositionAndVehspd_90-100 |
| 230 | MilesAtPedalPositionAndVehspd_100-110 |
| 231 | MilesAtPedalPositionAndVehspd_110-120 |
| 232 | MilesAtPedalPositionAndVehspd_120-130 |
| 233 | MilesAtPedalPositionAndVehspd_130-140 |
| 234 | MilesAtPedalPositionAndVehspd_140-150 |
| 235 | MilesAtPedalPositionAndVehspd_150-160 |
| 236 | MilesAtPedalPositionAndVehspd_160-170 |
| 237 | MilesAtPedalPositionAndVehspd_170-180 |
| 238 | MilesAtPedalPositionAndVehspd_180-190 |
| 240 | CountsSteeringAngle |
| 260 | Miles_AtTransOilTemp-40to-35_vs_torque |
| 261 | Miles_AtTransOilTemp-35to-30_vs_torque |
| 262 | Miles_AtTransOilTemp-30to-25_vs_torque |
| 263 | Miles_AtTransOilTemp-25to-20_vs_torque |
| 264 | Miles_AtTransOilTemp-20to-15_vs_torque |
| 265 | Miles_AtTransOilTemp-15to-10_vs_torque |
| 266 | Miles_AtTransOilTemp-10to-5_vs_torque |
| 267 | Miles_AtTransOilTemp-5to-0_vs_torque |
| 268 | Miles_AtTransOilTemp0to5_vs_torque |
| 269 | Miles_AtTransOilTemp5to10_vs_torque |
| 270 | Miles_AtTransOilTemp10to15_vs_torque |
| 271 | Miles_AtTransOilTemp15to20_vs_torque |
| 272 | Miles_AtTransOilTemp20to25_vs_torque |
| 273 | Miles_AtTransOilTemp25to30_vs_torque |
| 274 | Miles_AtTransOilTemp30to35_vs_torque |
| 274 | Miles_AtTransOilTemp35to40_vs_torque |
| 275 | Miles_AtTransOilTemp40to45_vs_torque |
| 276 | Miles_AtTransOilTemp45to50_vs_torque |
| 277 | Miles_AtTransOilTemp50to55_vs_torque |
| 278 | Miles_AtTransOilTemp55to60_vs_torque |
| 279 | Miles_AtTransOilTemp60to65_vs_torque |
| 280 | Miles_AtTransOilTemp65to70_vs_torque |
| 281 | Miles_AtTransOilTemp70to75_vs_torque |
| 282 | Miles_AtTransOilTemp75to80_vs_torque |
| 283 | Miles_AtTransOilTemp80to85_vs_torque |
| 284 | Miles_AtTransOilTemp85to90_vs_torque |
| 285 | Miles_AtTransOilTemp90to95_vs_torque |
| 286 | Miles_AtTransOilTemp95to100_vs_torque |
| 287 | Miles_AtTransOilTemp100to105_vs_torque |
| 288 | Miles_AtTransOilTemp105to110_vs_torque |
| 289 | Miles_AtTransOilTemp110to115_vs_torque |
| 290 | Miles_AtTransOilTemp115to120_vs_torque |
| 291 | Miles_AtTransOilTemp120to125_vs_torque |
| 292 | Miles_AtTransOilTemp125to130_vs_torque |
| 293 | Miles_AtTransOilTemp130to135_vs_torque |
| 294 | Miles_AtTransOilTemp135to140_vs_torque |
| 295 | Miles_AtTransOilTemp140to145_vs_torque |
| 296 | Miles_AtTransOilTemp145to150_vs_torque |
| 297 | Miles_AtTransOilTemp150to155_vs_torque |
| 298 | Miles_AtTransOilTemp155to160_vs_torque |
| 299 | Miles_AtTransOilTemp160to165_vs_torque |
| 300 | Miles_AtTransOilTemp165to170_vs_torque |
| 301 | Miles_AtTransOilTemp170to175_vs_torque |
| 302 | Miles_AtTransOilTemp175to180_vs_torque |
| 303 | Miles_AtTransOilTemp180to185_vs_torque |
| 304 | Miles_AtTransOilTemp185to190_vs_torque |
| 305 | Miles_AtTransOilTemp190to195_vs_torque |
| 306 | Miles_AtTransOilTemp195to200_vs_torque |
| 307 | Miles_AtTransOilTemp200to205_vs_torque |
| 320 | Time_AtTransOilTemp-40to-35_vs_torque |
| 321 | Time_AtTransOilTemp-35to-30_vs_torque |
| 322 | Time_AtTransOilTemp-30to-25_vs_torque |
| 323 | Time_AtTransOilTemp-25to-20_vs_torque |
| 324 | Time_AtTransOilTemp-20to-15_vs_torque |
| 325 | Time_AtTransOilTemp-15to-10_vs_torque |
| 326 | Time_AtTransOilTemp-10to-5_vs_torque |
| 327 | Time_AtTransOilTemp-5to0_vs_torque |
| 328 | Time_AtTransOilTemp0to5_vs_torque |
| 329 | Time_AtTransOilTemp5to10_vs_torque |
| 330 | Time_AtTransOilTemp10to15_vs_torque |
| 331 | Time_AtTransOilTemp15to20_vs_torque |
| 332 | Time_AtTransOilTemp20to25_vs_torque |
| 333 | Time_AtTransOilTemp25to30_vs_torque |
| 334 | Time_AtTransOilTemp30to35_vs_torque |
| 335 | Time_AtTransOilTemp35to40_vs_torque |
| 336 | Time_AtTransOilTemp40to45_vs_torque |
| 337 | Time_AtTransOilTemp45to50_vs_torque |
| 338 | Time_AtTransOilTemp50to55_vs_torque |
| 339 | Time_AtTransOilTemp55to60_vs_torque |
| 340 | Time_AtTransOilTemp60to65_vs_torque |
| 341 | Time_AtTransOilTemp65to70_vs_torque |
| 342 | Time_AtTransOilTemp70to75_vs_torque |
| 343 | Time_AtTransOilTemp75to80_vs_torque |
| 344 | Time_AtTransOilTemp80to85_vs_torque |
| 345 | Time_AtTransOilTemp85to90_vs_torque |
| 346 | Time_AtTransOilTemp90to95_vs_torque |
| 347 | Time_AtTransOilTemp95to100_vs_torque |
| 348 | Time_AtTransOilTemp100to105_vs_torque |
| 349 | Time_AtTransOilTemp105to110_vs_torque |
| 350 | Time_AtTransOilTemp110to115_vs_torque |
| 351 | Time_AtTransOilTemp115to120_vs_torque |
| 352 | Time_AtTransOilTemp120to125_vs_torque |
| 353 | Time_AtTransOilTemp125to130_vs_torque |
| 354 | Time_AtTransOilTemp130to135_vs_torque |
| 355 | Time_AtTransOilTemp135to140_vs_torque |
| 356 | Time_AtTransOilTemp140to145_vs_torque |
| 357 | Time_AtTransOilTemp145to150_vs_torque |
| 358 | Time_AtTransOilTemp150to155_vs_torque |
| 359 | Time_AtTransOilTemp155to160_vs_torque |
| 360 | Time_AtTransOilTemp160to165_vs_torque |
| 361 | Time_AtTransOilTemp165to170_vs_torque |
| 362 | Time_AtTransOilTemp170to175_vs_torque |
| 363 | Time_AtTransOilTemp175to180_vs_torque |
| 364 | Time_AtTransOilTemp180to185_vs_torque |
| 365 | Time_AtTransOilTemp185to190_vs_torque |
| 366 | Time_AtTransOilTemp190to195_vs_torque |
| 367 | Time_AtTransOilTemp195to200_vs_torque |
| 368 | Time_AtTransOilTemp200to205_vs_torque |
| 380 | MilesAtT_case |
| 400 | CountsSteeringAngle_T_casePosition_SH_IPG |
| 401 | CountsSteeringAngle_T_casePosition_4LO |
| 402 | CountsSteeringAngle_T_casePosition_4HI |
| 403 | CountsSteeringAngle_T_casePosition_2WD |
| 404 | CountsSteeringAngle_T_casePosition_N |
| 405 | CountsSteeringAngle_T_casePosition_AUTO |
| 406 | CountsSteeringAngle_T_casePosition_PT |
| 407 | CountsSteeringAngle_T_casePosition_SNA |
| 408 | Output_Speed |
| 409 | TripCounts |
| 410 | TripTime |
| Field | Type | Label | Description |
| version | string | optional | Version for Histogram configuration file |
| timestamp | int64 | optional | Sender clock's time when the request is processed. |
| histogramData | SQDFData.Histogram.HistogramData | repeated |
| Field | Type | Label | Description |
| histogramId | int32 | optional | Contains the Id associated with the specific Histogram. See the table below: |
| histogramBins | SQDFData.Histogram.HistogramData.HistogramBin | repeated | Contains Histogram bins and its range defined in the cfg file like: [{"B1":"minus 100-minus 50"}, {"B2":"minus 50-minus20"}, {"B3":"minus 20-minus 10"}] |
| Field | Type | Label | Description |
| timestamp | int64 | optional | |
| version | string | optional | |
| dataLogData | SQDFData.DataLog.DataLogData | repeated |
| Field | Type | Label | Description |
| timestamp | int64 | optional | |
| logData | SQDFData.DataLog.DataLogData.Data | optional | This includes additional data elements those are not in vehicleData |
| Field | Type | Label | Description |
| batteryVoltage | float | optional | |
| engineRPM | float | optional | |
| vehicleSpeed | float | optional | |
| ignitionOffTimeLong | int32 | optional | |
| instantFuelEconomy | int32 | optional | |
| Gr | int32 | optional | |
| isMILOnRq | bool | optional | |
| ODO | int32 | optional | |
| avgFuelLvl | int32 | optional | |
| engineOilTemperature | int32 | optional | |
| engineCoolantTemperature | int32 | optional | |
| isDayLightMode | bool | optional | |
| isEModeSatus | bytes | optional | |
| driverDoorSatus | bytes | optional | |
| CmdIgnitionStatus | bytes | optional | |
| frontLeftHeatedSeatStatus | bytes | optional | |
| autoDfgStatus | bytes | optional | |
| FT_FOG_RQ | bytes | optional | |
| isACClutchEngaged | bool | optional | |
| vehPerfAccelX | float | optional | |
| VehPerfAccelY | float | optional | |
| frontRightHeatedSeatStatus | bytes | optional | |
| spStSwStat | bytes | optional | |
| essEngineStatus | bytes | optional | |
| ambientTemperatureAvg | int32 | optional | Temperature in F. |
| tirePressure | TirePressure | optional | |
| mzrModeAct | bytes | optional | |
| dpfDefWarningStatus | bytes | optional | |
| absLampStatus | VehicleData.LampStateEnum | optional | |
| brkIndLmpOnRqESC | bytes | optional | |
| isCheckFuelCap | bool | optional | |
| etcLmpIndSts | VehicleData.LampStateEnum | optional | |
| oilPressure | int32 | optional | |
| txTempExcess | bytes | optional | txTempWarn |
| txTemp_Excess2 | string | optional | TxTempWarn2 |
| srsIndLmpSts | VehicleData.LampStateEnum | optional | |
| isBrakeFluidLow | bool | optional | |
| isEngineOilLampOn | bool | optional | |
| oilTempIndicatorRq | int32 | optional | |
| engineTrqRqEsc | int32 | optional | |
| engineLoad | int32 | optional | |
| IBS_T_BATT | sint32 | optional | Range -40 to 105, 255 = SNA |
| IBS_V_BATT | float | optional | Range 3 to 18, resolution 0.000977 16383 = SNA |
| IBS_SOC | float | optional | |
| batterySTCrit | bytes | optional | |
| BoostPressureIndication | int32 | optional | |
| rainSensorLevel | int32 | optional | |
| actlAcceleratorPedalPosition | int32 | optional | |
| acceleratorPedalPosition | int32 | optional | |
| IBS_I_BATT | sint32 | optional | Range -32768 to 32766, 65535 = SNA |
| fuelCons | int32 | optional | |
| engineTorqueStatic | int32 | optional | |
| brakeStatus | bytes | optional | |
| absBrakeEvent | bytes | optional | |
| spStDispstat | bytes | optional | |
| VC_AS_ERS | int32 | optional | |
| DrvRqShftROT | int32 | optional | |
| EPBHoldSts | bytes | optional | |
| Pad_Shft | int32 | optional | |
| TCaseAWD_DrvMdRq | int32 | optional | |
| TRNS_SPD_MC | int32 | optional | |
| Trns_EMCC_Achvd | int32 | optional | |
| outputSpdPolarity | bytes | optional | |
| outputSpeed | int32 | optional | |
| nTurb | int32 | optional | |
| KS | int32 | optional | Not used - Not Required. |
| K_STO_B | int32 | optional | |
| K_S_B | int32 | optional | |
| K_O_B | int32 | optional | |
| K_G_B | int32 | optional | |
| grTarget | int32 | optional | |
| gearSwitchActiveStatus | bytes | optional | |
| EngSt_Enbl_Rq_TCM | bytes | optional | |
| TX_TEMP | int32 | optional | |
| BrkPrss_TMC | int32 | optional | |
| PrplsnSysAtv | int32 | optional | |
| DriveReady | bytes | optional | |
| PRND_STAT | bytes | optional | |
| HVBatCntctrStat | bytes | optional | |
| chargingSystemStatus | bytes | optional | |
| chargingLevel | int32 | optional | |
| HVBatSOC_HCP | int32 | optional | |
| wheelRPMRearRight | int32 | optional | |
| wheelRPMRearLeft | int32 | optional | |
| wheelRPMFrontRight | int32 | optional | |
| wheelRPMFrontLeft | int32 | optional | |
| TCASE_STAT | bytes | optional | |
| SHFT_PROG | bytes | optional | |
| CC_SetSpdDsplMPH | int32 | optional | |
| ACCOnOff | bytes | optional | |
| CRUISE_EGD | int32 | optional | |
| TrnsTrqReqSlow_2 | int32 | optional | |
| ConsumptionUnit | bytes | optional | |
| PFW_Stat | bytes | optional | |
| Map_Eng | bytes | optional | |
| adblue_FL_LVL | int32 | optional | |
| SRS_LMP_STAT | VehicleData.LampStateEnum | optional |
This API is to assist the User in case of Vehicle is Stolen, and User alerts the SDP (by means the call center) then the SDP sends info to the client. When the vehicle is stolen, the SDP side can send out request to the User, asking the TBM to enter into the SVA mode.The SDP shall also send a cancel request asking the TBM to exit the SVA mode. The TBM shall respond with a message with related vehicle information required by the SVA service.
UconnectAny | |---- StolenModeChangeRequest stolenModeChangeRequest (220) | |---- StolenModeChangeResponse stolenModeChangeResponse (221) | |---- StolenVehicleInfoNotification stolenVehicleInfoNotification (222)
Change Log
| Version | Date | Notes |
| 1.3 | 2018-06-20 | Added InitiateStolenVehicleMode |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-04-19 | Moved VehicleInfo to Uconnect Common. |
| 1.0 | 2017-03-17 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/SVAS |
| Cloud receive from Vehicle | Subscribe | fcasdp/SVAS/# |
| Vehicle send to Cloud | Publish | fcasdp/SVAS/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Seq | Title | Role | Message | Topic | Description |
| 1. | Stolen Vehicle Assistance Event | SDP | The SDP triggers StolenVehicleAssistance event which triggers StolenVehicleMode ChangeRequest to the Client. | ||
| 2. | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send StolenModeChangeRequest Message | SDP | StolenModeChangeRequest | ${iot:ClientId}/SVAS | The SDP populates the StolenModeChangeRequest Message with the required elements and publishes to the StolenVehicleAssistance topic. |
| 4. | Process Message | TBM | The TBM processes the message and generates an StolenModeChangeResponse Message with the status and the correlationId set to the messageId from the received StolenModeChangeRequest Message. | ||
| 5. | Send StolenModeChangeResponse Message | TBM | StolenModeChangeResponse | /SVAS/${iot:ClientId} | The TBM publishes the StolenModeChangeResponse message to the StolenVehicleAssistance topic for the SDP to receive. |
| 6. | Process Message | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| opt | steps 7 to 11 are opt means The interaction operator opt means that the combined fragment represents a choice of behavior where either the (sole) operand happens or nothing happens. | ||||
| loop | step 7 is in loop means the interaction operator loop means that the combined fragment represents a loop. The loop operand will be repeated a number of times. The loop construct represents a recursive application of the seq operator where the loop operand is sequenced after the result of earlier iterations. | ||||
| 7. | Send StolenVehicleInfoNotification Message | TBM | StolenVehicleInfoNotification | /SVAS/${iot:ClientId} | The SDP receives the message and alert the User about Vehicle Location. |
| 8.1 | Process Message | SDP | The SDP processes the message and proceed accordingly. | ||
| 8.2. | Assign correlationID | SDP | Assign correct correlationId. | ||
| 8.3. | send AckMessage | SDP | AckMessage | ${iot:ClientId}/SVAS | The SDP sends AckMessage to acknowledge that it received StolenVehicleInfoNotification Message. |
| 8.4. | Process AckMessage | TBM | The client process AckMessage. |
This message represents StolenModeChangeRequest, When the Vehicle is stolen SDP can send a request to Client to enter into Stolen Vehicle Mode.
timestamp: 1489802160176
messageId: 11
messages
{
[com.fca.uconnect.global.stolenModeChangeRequest]
{
stolenModeCommand: ENTER }
}
| Field | Type | Label | Description |
| stolenModeCommand | StolenModeChangeRequest.StolenModeCommand | optional | This identifies Whether Enter/Exit Vehicle into/from Stolen Mode. |
| stolenModeDuration | int32 | optional | This identifies How long Vehicle should be in StolenMode. |
| locationUpdateInterval | int32 | optional | This is the interval in milliseconds that TBM sends Notification to SDP. |
| Name | Number | Description |
| ENTER | 0 | Enter Into Vehicle Stolen Mode. |
| EXIT | 1 | Exit Into Vehicle Stolen Mode. |
This message is in response to StolenModeChangeRequest and Client send back related information required by SDP.
timestamp: 1489802373594
messageId: 1
correlationId: 11
messages
{
[com.fca.uconnect.global.stolenModeChangeResponse]
{
isStolenModeActive: true
}
}
| Field | Type | Label | Description |
| isStolenModeActive | bool | optional | This identifies whether Stolen Vehicle Assistance Mode active or not. |
When Vehicle's Stolen Vehicle Assistance mode is ON, The Client periodically send out the Vehicle Location information to the SDP.
timestamp: 1489802573608
messageId: 2
messages
{
[com.fca.uconnect.global.stolenVehicleInfoNotification]
{
vehicleLocation
{
longitude: -83.67168
latitude: 42.4804
}
isIgnoreAccelerateActive: false
isBlockIgnitionActive: false
}
}
| Field | Type | Label | Description |
| vehicleInfo | VehicleInfo | optional | |
| isStolenModeActive | bool | optional | This identifies whether Vehicle is in StolenMode. |
| Field | Type | Label | Description |
| isStolenModeActive | bool | optional | This identifies whether Vehicle is in StolenMode and is used by the vehicle to notify an auto SVL |
This API is to notify the User in case of steal or tamper with car.When Theft alarm is detected Client sends Information to SDP to alert the User.
UconnectAny | |---- TheftAlarmNotification theftAlarmNotification (210) | |---- TheftAlarmNotificationResponse theftAlarmNotificationResponse (211)
Change Log
| Version | Date | Notes |
| 1.6 | 2018-07-23 | Updated Theft Alarm Sequence Diagram |
| 1.5 | 2018-05-20 | Added TheftAlarmSuppression per assembla ticket 222 |
| 1.4 | 2018-04-30 | Added Battery and Gyro Alarm Causes per Assembla ticket 402 |
| 1.3 | 2017-11-2 | Update to Proto3 |
| 1.2 | 2017-08-11 | Added TheftAlarmNotificationResponse. |
| 1.1 | 2017-04-18 | Removed TheftAlarmNotificationResponse and moved vehicle status key value to common proto. |
| 1.0 | 2017-03-16 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/TANF |
| Cloud receive from Vehicle | Subscribe | fcasdp/TANF/# |
| Vehicle send to Cloud | Publish | fcasdp/TANF/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | TheftAlarm Notification Event | TBM | The in-vehicle TheftAlartm Notification event which triggers the client device to send an TheftAlarm Notification to the SDP. | ||
| 2. | Send TheftAlarmNotification Message | TBM | TheftAlarmNotification | /TANF/${iot:ClientId} | The client populates the TheftAlarmNotification Message with the required elements and publishes to the TheftAlarmNotification topic. |
| 3. | Process Message | SDP | The SDP processes the message and and generates an TheftAlarmNotificationResponse Message with the status and the correlationId set to the messageId from the received TheftAlarmNotification Message. | ||
| 4. | Send TheftAlarmNotificationResponse Message | SDP | TheftAlarmNotificationResponse | ${iot:ClientId}/TANF | The SDP publishes the response message to the TANF topic for the client to receive. |
| 5. | Process Message | TBM | The client receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| Alt_1_1 | TheftAlarmSupressionNotify | TBM | The client Sends a TheftAlarmSuprresionNotify the indicate to the server that there has been a change of status. | ||
| Alt_1_2 | AckMessage | SDP | The server acknowledges receipt of the supression status. | ||
| Alt_1_3 | Process message | TBM | The client receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| Alt_2_1 | TheftAlarmSupressionRequest | SDP | The server Sends a TheftAlarmSuprresionRequest the request the theft alarm be suppressed for the specified period. | ||
| Alt_1_2 | AckMessage | TBM | The client acknowledges receipt of the supression request. | ||
| Alt_1_3 | Process message | TBM | The client receives the message and verifies the correlationId matches the messageId of the sent request. |
This message represents TheftAlarmNotification in case of any theft or Tamper with Vehicle.
timestamp: 1489694193540
messageId: 1
messages
{
[com.fca.uconnect.global.theftAlarmNotification]
{
vehicleLocation
{
longitude: 43.9999
latitude: -84.54636
}
alarmCause
{
isFLDoorBreached: true
isVehiclePositionChanged: true
}
alarmStatusEnum: ACTIVE
timeStamp: 1489694193538
}
}
| Field | Type | Label | Description |
| vehicleLocation | Location | optional | Location of the Vehicle. |
| alarmCause | TheftAlarmNotification.AlarmCause | optional | This defines the Alarm cause. |
| alarmStatusEnum | TheftAlarmNotification.AlarmStatusEnum | optional | This defines whether Alarm is ACTIVE or INACTIVE. |
| timeStamp | int64 | optional | The milliseconds since (Jan 1, 1970 00:00:00 UTC) when the message is created. Should come from the system clock of the sender. |
| vehicleStatus | VehicleStatus | optional | Status of each door/window/hood/trunk |
| Name | Number | Description |
| ACTIVE | 0 | |
| INACTIVE | 1 |
| Field | Type | Label | Description |
| isFLDoorBreached | bool | optional | |
| isFRDoorBreached | bool | optional | |
| isRLDoorBreached | bool | optional | |
| isRRDoorBreached | bool | optional | |
| isTrunkBreached | bool | optional | |
| isVehiclePositionChanged | bool | optional | |
| isGlassBreached | bool | optional | |
| isBatteryDisconnect | bool | optional | |
| isOverAccelerationThreshold | bool | optional | Required where applicable |
| isVehicleAlarmSystem | bool | optional | Required where applicable |
| Field | Type | Label | Description |
| response | TheftAlarmNotificationResponse.TheftAlarmResponseEnum | optional |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILURE | 1 |
| Field | Type | Label | Description |
| suppressAlarm | bool | optional | Temporarily Suppress the Theft Alarm Notification |
| suppressDuration | TheftAlarmSuppressionRequest.DurationEnum | optional | Configured or selected duration of the suppression |
| Name | Number | Description |
| TWOHOURS | 0 | |
| FOURHRS | 1 | |
| TWELVEHRS | 2 | |
| TWENTYFOURHRS | 3 | |
| THREEDAYS | 4 | |
| SEVENDAYS | 5 |
| Field | Type | Label | Description |
| suppressionState | TheftAlarmSuppressionNotify.SupressionStateEnum | optional | Temporarily Suppress the Theft Alarm Notification |
| suppressDuration | int64 | optional | Configured or selected duration of the suppression |
| Name | Number | Description |
| Not_Supressed | 0 | Alarm notification is active |
| Suppressed | 1 | Alarm notification suppressed |
For vehicle authorization, commmonly referred to as Bootstrap, the vehicle will send an initial auth key consisting of hash of client generated challengekey and a nonce (a trust id to be identified in implementation) and will recieve in return a server challenge key and nonce. These will be used to generate a temporary session key, which when passed to the server will return a valid sessionid. Once received, the valid sessionId should be used in the Uconnect Message.SessionID filed for all future Uconnect Messages until it is refreshed. This is deprecated and not expected to be used by any current program
UconnectAny | | |---- FirstVehAuthRequest firstVehAuthRequest (1720) | |---- FirstVehAuthResponse firstVehAuthResponse (1721) | |---- SecVehAuthRequest secVehAuthRequest (1722) | |---- SecVehAuthResponse secVehAuthResponse (1723) | |---- CreateTokenRequest createTokenRequest (1724) | |---- CreateTokenResponse createTokenResponse (1725) | |---- RefreshTokenRequest refreshTokenRequest (1724) | |---- RefreshTokenResponse refreshTokenResponse (1725)
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.0 | 2017-12-11 | Moved From Auth |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/ |
| Cloud receive from Vehicle | Subscribe | fcasdp/Auth/# |
| Vehicle send to Cloud | Publish | fcasdp/Auth/${iot:ClientId} |
| Cloud receive from Vehicle | Subscribe | fcasdp/Auth/# |
| Vehicle send to Cloud | Publish | fcasdp/Auth/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram shows the messages for implementing Bootstrap to support mutual authentication between the client and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 100 | Generate Public Key | TU | |||
| 110 | InitialCreate CSR | TU | |||
| 120 | App CSR to TU Feed Data | TU Manufacturer | TU Manufacturer Sends TU Feed Data | ||
| 130 | CMM Receives TU Feed Data | CMM | The TU Feed is received at FCA and Propagated to other systems as needed | ||
| 140 | CSR and TU ID Sent to PKI | CMM | The PKI Certificate Generation Request is made | ||
| 150 | X.509 Certificate Returned | PKI | PKI Returns a Valid Certificate | ||
| 170/td> | Request Authorization | TU | The TU Requests Authorization for 1st time | ||
| 180,190,200 | Download Certificate via HTTPS service | TU | certificateGet | Download the client certificate | |
| 210 | Store Certificate | TU | Stores the certificate for mutual authentication | ||
| 220,230 | Alternate Path: Feeds not propogated TU not known to the SDP | SDP | Rejects connections, unable to identify the TU and VIN relationship\n system will retry until success | ||
| 300 | Request MQTT Connection | TU | Open MQTT Connection and start TLS session. | ||
| 310,320 | Validate TU and TU Validate SDP | SDP | Mutual Auth | ||
| 330 | Connection Established | TU |
This is for SecondVehicleAuthorizationRequest.
timestamp: 1488868820053
messageId: 1
messages
{
[com.fca.uconnect.global.FirstAuthorizationResponse]
{
“vin”: “AEEUDHS4857382038”,
“tuProfile”: {
“nadimei”: “323232323232”,
“simMsisdn”: “12123123123”,
“simIccid”: “12123123123”,
“imsi”: “12123123123”,
“tbmSerial”: “JK1212ASD233”,
“tbmSoftwareVersion”: “17.03.03”
},
“tempAuthKey”: “12ABc345”,
“correlationId”: “12abCd1”
}
}
}
| Field | Type | Label | Description |
| vin | string | optional | Vehicle Identification Number |
| device | Device | optional | requires the deviceType, IMIE, MSISDN,ICCID, IMSI, and TBM or HU Serial and Software Version |
| authToken | bytes | optional | Hash token of client challenge fields. Temporary Session Key (concatenated string of Client and Server Challenge Keys) |
| nonce | bytes | optional | Nonce for protecting against replay |
| type | VehAuthRequest.RequestTypeEnum | optional | Indicate the initial or second auth request. |
| Name | Number | Description |
| UNKNOWN | 0 | |
| INITIAL | 1 | Initial provisioning request for a temporary session. |
| SECOND | 2 | Secondary request to receive valid session token. |
| Field | Type | Label | Description |
| sessionToken | bytes | optional | Permanent Session Key provided by Server, should be used in MQTT Header for future operations |
| nonce | bytes | optional | CR or Correlation ID |
| type | VehAuthResponse.TokenTypeEnum | optional | Indicate the type of session token returned to the client. |
| Name | Number | Description |
| UNKNOWN | 0 | |
| TEMP | 1 | Initial temporary session token. |
| VALID | 2 | Valid session token. |
| Field | Type | Label | Description |
| accessToken | string | optional | Access Token |
| authorizationToken | string | optional | Authorization Token / Null on TU's |
| expiresIn | int32 | optional | The lifetime of the access token in seconds. |
| refreshToken | string | optional | Refresh token to be used to retrieve new tokens when they are expired |
| token_type | string | optional | use only bearer |
| accountDN | string | optional | Account DNm unique account name |
| Field | Type | Label | Description |
| accessToken | string | optional | Access Token |
| authorizationToken | string | optional | Authorization Token |
| expiresIn | int32 | optional | time until the token(s) expire |
| refreshToken | string | optional | refresh Authorization Token |
| token_type | string | optional | use only bearer |
| accountDN | string | optional | Account DN |
| responseEnum | RefreshTokenResponse.ResponseEnum | optional | Success or Failure Response |
| isTransient | bool | optional | Indicates a transient error and a retry can be attempted. |
| failureReasonCode | int32 | optional | Specific error code. Error codes should include Invalid_Grant and Common Error Codes |
| Name | Number | Description |
| SUCCESS | 0 | Response successful for provisioning. |
| FAILURE | 1 | Response failure for provisioning. |
The messages in Global_Uconnect_Ext_VehDataAcquisition.proto define a flexible mechanism for collecting data from vehicles.
UconnectAny | |---- VehicleDataAcquisitionPublish 200 | | | |---- DataSubscription | | | | | |---- DataSet | | | | | | | |---- DataRow | |---- VehicleDataAcquisitionPolicyPublish 250 | | | |---- PolicySubscription | | | | | |---- DataSetSubscription | | | | | | | |---- FilterCriteria | | | | | | | |---- DataSetSignal | |---- VehiclePolicyUpdateRequestChange Log
| Version | Date | Notes |
|---|---|---|
| 1.13 | 2018-04-24 | Added SignalID and Frequency V2C-19 |
| 1.12 | 2018-12-20 | Added startDate to policies for pre-ADA applicaitons and added int32 version into policysubscriptionObject |
| 1.11 | 2018-09-04 | Added Unit Of Measures to indicate signal engineering units. |
| 1.10 | 2018-08-27 | Added on change dataset. |
| 1.9 | 2018-08-02 | Added Capture Window and Histogram message types to the policy. |
| 1.8 | 2018-05-14 | Added ContentType Enum |
| 1.7 | 2018-05-02 | Added VehiclePolicyUpdateRequest per assembla ticket 429 |
| 1.6 | 2018-05-02 | Removed ADA references other than topic |
| 1.5 | 2017-11-2 | Update to Proto3 |
| 1.4 | 2017-08-15 | Added a vehicleId field to VehicleDataAcquisitionPublish type. |
| 1.3 | 2017-06-20 | Added fields for Signature correlation Message to VehicleDataAcquisitionPolicyPublish. |
| 1.2 | 2016-04-20 | Applicationid and policySubscriptionid is changed to bytes |
| 1.1 | 2016-03-05 | Added criteria filters. |
| 1.0 | 2016-03-08 | Release of initial Proto. |
| Flow | Type | Topic Name |
|---|---|---|
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/ADA |
| Cloud receive from Vehicle | Subscribe | fcasdp/ADA/# |
| Vehicle send to Cloud | Publish | fcasdp/ADA/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
Sequence Diagram with VehicleDataAcquisitionPolicyPublish publish and subsequent iteration of VehicleDataAcquisitionPublish :
| Sequence | Title | Role | Message | Topic | Description |
| Alt_1_1 | Data Application Event | TBM | The application which triggers the SDP to send an VehicleDataAcquisitionPolicyPublish Request to the Client. For clients with on purpose apps, the policy is only used to create data structure between client and sdp | ||
| Alt_1_2 | VehiclePolicyUpdateRequest | TBM | The TBM Requests a check for new/updated policies | ||
| Alt_1_2 | Ack | SDP | The SDP Returns an Ack message | ||
| 1. | Send VehicleDataAcquisitionPolicyPublish Message | TBM | VehicleDataAcquisitionPolicyPublish | /ADA/${iot:ClientId} | The SDP populates the VehicleDataAcquisitionPolicyPublish Message with the elements and publishes to the ADA topic. |
| 2. | Process Message | TBM | The TBM Receives the message and stores Policy to send Vehicle Data later.. | ||
| 3-4 | Assign correlation ID and send Ack | TBM | The TBM assigns and correlation ID and returns the Ack | ||
| 5 | Process Ack | SDP | The SDP processes the Ack | ||
| 6-10 | Send VehicleDataAcquisitionPublish Message and process | TBM | VehicleDataAcquisitionPublish | ${iot:ClientId}/ADA | The service publishes the VehicleDataAcquisitionPublish message with Vehicle Data to the ADA topic for the SDP to receive. |
| Field | Type | Label | Description |
| version | int32 | optional | This will be deprecated, it makes more sense to have on a per subscriptionId basis |
| policySubscription | VehicleDataAcquisitionPolicyPublish.PolicySubscription | repeated | This is a message that has details for Policy Subscriptions. Multiple subscriptions may be active at a given time, with different expiration dates. |
| timestamp | int64 | optional | Added for signature correlation to message |
| messageId | int32 | optional | Added for signature correlation to message |
| signatureId | int32 | optional | Added for signature correlation to message |
| rawPayload | bytes | optional | approach to support raw content in the Policy message. |
| rawContentType | string | optional | Content type of the raw content being uploaded |
Form in which collected data is to be collected. All signals must support at least RAW type.
| Name | Number | Description |
| RAW | 0 | |
| ENGINEERING_UNITS | 1 | |
| ENCRYPTED | 2 | |
| DIFFERENCE_RAW | 3 | the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value |
| DIFFERENCE_ENGINEERING_UNITS | 4 | the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value |
| DIFFERENCE_ENCRYPTED | 5 | the first row for a given dataset in a message will have an absolute value, subsuquent rows will contain a differential value |
Define Unit Of Measures for Signal
| Name | Number | Description |
| NA | 0 | |
| CENTIMETER | 1 | |
| METER | 2 | |
| KILOMETER | 3 | |
| INCH | 4 | |
| FOOT | 5 | |
| MILE | 6 | |
| MILLILITER | 7 | |
| LITER | 8 | |
| PINT | 9 | |
| QUART | 10 | |
| GALLON | 11 | |
| RADIAN | 12 | |
| DEGREE | 13 | |
| SECOND | 14 | |
| MINUTE | 15 | |
| HOUR | 16 | |
| DAY | 17 | |
| YEAR | 18 | |
| HERTZ | 19 | |
| RADIANS_PER_SECOND | 20 | |
| DEGREES_PER_SECOND | 21 | |
| DECIBEL | 22 | |
| METERS_PER_SECOND | 23 | |
| KILOMETERS_PER_HOUR | 24 | |
| FEET_PER_SECOND | 25 | |
| MILES_PER_HOUR | 26 | |
| GRAM | 27 | |
| KILOGRAM | 28 | |
| OUNCE | 29 | |
| POUND | 30 | |
| TON | 31 | |
| NEWTON | 32 | |
| NEWTON_METER | 33 | |
| FOOT_POUND | 34 | |
| JOULE | 35 | |
| WATT | 36 | |
| KILOWATT | 37 | |
| HORSEPOWER | 38 | |
| POUNDS_PER_SQUARE_INCH | 39 | |
| KELVIN | 40 | |
| CENTIGRADE | 41 | |
| FAHRENHEIT | 42 | |
| LUMEN | 43 | |
| AMPERE | 44 | |
| VOLT | 45 | |
| OHM | 46 | |
| KOHMS | 47 | |
| PERCENT | 48 | |
| BARS | 49 | |
| PSI_PER_BIT | 50 | |
| PULSE | 51 | |
| KILOMETERS_PER_LITER | 52 | |
| MILES_PER_GALLON | 53 | |
| LITRES_PER_HOUR | 54 | |
| METERS_PER_SECOND_SECOND | 55 | |
| MILLIARCSECONDS | 56 | |
| MILLIMETER | 57 | |
| FEET_PER_SECOND_SECOND | 58 | |
| REVOLUTION_PER_MINUTE | 59 |
How the row timestamps are to differentially encoded.
| Name | Number | Description |
| NONE | 0 | each row will have an absolute timestamp |
| EXPLICIT_DIFFERENCES | 1 | the first row will have an absolute timestamp, subsequent rows will have a timestamp that represents the number of milliseconds since the prior row |
| FIXED_PERIOD_DIFFERENCES | 2 | the first row will have an absolute timestamp, subsequent rows shall be considered to have been collected at the exactly the periodic collection rate since the prior row |
Stack machine operator for FilterCriteria evaluation. Operators pop the given number of values from the stack,
evaluate per their specification, and push one value back on the stack. If an operand is to be popped and the depth is zero,
or if the types of the popped values are incorrect for evaluation according to the rules of Java types, evaluation of criteria is
immediately stopped and no data will be captured in the current iteration.
| Name | Number | Description |
| NOT | 0 | "!" |
| LESS | 1 | "<" |
| LESS_OR_EQUAL | 2 | "<=" |
| EQUAL | 3 | "==" |
| GREATER_OR_EQUAL | 4 | "> |
| GREATER | 5 | "> |
| NOT_EQUAL | 6 | "!=" |
| AND | 7 | "&&" |
| OR | 8 | "||" |
| ADD | 9 | "+" |
| SUBTRACT | 10 | "-" |
| MUTLIPLY | 11 | "*" |
| DIVIDE | 12 | "/" |
| MOD | 13 | "%" |
| LSHIFT | 14 | "<<" |
| RSHIFT | 15 | "> |
| BITAND | 16 | "&" |
| BITOR | 17 | "|" |
| BITNOT | 18 | "~" |
| BITXOR | 19 | "^" |
| NEGATE | 20 | "-" |
| NOT_NEGATE | 21 | "+" |
| VARIABLE_ASSIGN | 24 | "=" top of stack to variable |
| VARIABLE_REF | 25 | variable to top of stack |
| FUNCTION_CALL | 26 | call function, top of stack is number of arguments |
Indicate if the SignalId is to be used as a global unique identifier or as an index into the list of signals for the DataSetSubscription.
| Name | Number | Description |
| INDEX_DATASETSIGNALS | 0 | Indicates that signalId values are to represent an index into the list of signals provided in the DataSetSubscription. |
| UNIQUE_SIGNAL_ID | 1 | Indicates the signalId values are global unique values used to identify the signals. |
Policy for how and when captured data is stored and sent to the SDP. The TU shall make a best effort to meet the specified targets,
given varying constraints on CPU, memory, storage and network capacity and availability.
| Field | Type | Label | Description |
| flushRate | int32 | optional | data shall be flushed to persistent storage at this rate, in milliseconds. |
| uploadRate | int32 | optional | queued data shall be uploaded to the SDP at this rate, in milliseconds. |
| maxSize | int32 | optional | the total persisted storage shall not exceed this number of bytes. Once the limit is reached, data shall be flushed in as close to a LIFO manner as possible to accommodate newly queued data. |
A data set signal name identifies a particular data element to be collected by the TBM. Each referenced signal name will be polled at most once per interval, including use in filter criteria.
Some data set signal names are global, and are to
be supported in all regions. The following signals are globally :
If a signal name is not mandatory and global, it should be prefixed with a namespace identifier. The current set of namespace identifiers is
The KONA namespace describes signals supported by the VP4 KONA api. The form is KONA.SignalName.ChannelName where SignalName and ChannelName are the KONA signal and channel names respectively.
The geocode namespace describes signals commonly available from commercial GPS hardware. The signals available in the geocode namespace are:
| Field | Type | Label | Description |
| signalName | string | optional | The name of the signal to be collected |
| type | VehicleDataAcquisitionPolicyPublish.SignalTypeEnum | optional | The type of data to be collected for the signal |
| signalId | int32 | optional | Used as an additional identifier for onChangeDataSet signal definitions. The identifier can be either a global unique number or an index for the signal in the DataSet. |
| uom | VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum | optional | Identify the expected UOM in which the signal value will be provided. |
If filter criteria are present, a data row will be generated if
and only if the criteria evaluate to true.
The implementation is a simple stack machine; signal values and constants
are pushed, operators pop values and push booleans. The machine starts with
an empty stack and must end with exactly one boolean value on the stack.
State may be carried from one iteration to the next by the use of named regi
| Field | Type | Label | Description |
| signalId | string | optional | |
| signalName | string | optional | push current value of this signal |
| doubleValue | double | optional | push constant double on stack |
| floatValue | float | optional | push constant float on stack |
| int32Value | int32 | optional | push constant signed 32 bit integer on stack |
| int64Value | int64 | optional | push constant signed 64 bit integer on stack |
| stringValue | string | optional | push constant on stack |
| operator | VehicleDataAcquisitionPolicyPublish.FilterOperator | optional | pop, eval, push result. See enum FilterOperator for details |
| branch | int32 | optional | skip next branch criteria |
| branch_if | int32 | optional | pop stack, if true skip next branch_if criteria |
| Field | Type | Label | Description |
| filterExpression | VehicleDataAcquisitionPolicyPublish.FilterCriteria | repeated | criteria to determine whether to trigger a collection window |
| Field | Type | Label | Description |
| numPreTriggerSamples | int32 | optional | indicates the number of samples to buffer for the window prior to the trigger event. |
| numPostTriggerSamples | int32 | optional | indicates the number of samples to buffer for the window after the trigger event. |
| eventTriggerCriteria | VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria | repeated | contains a list of trigger criteria. This essentially ORs multiple trigger criteria together. |
Criteria for what data elements should be collected and at what rate, and how collected data should be queued and transmitted to the SDP.
| Field | Type | Label | Description |
| period | int32 | optional | deprecated |
| frequency | int32 | optional | data collection frequency |
| dataSetSignal | VehicleDataAcquisitionPolicyPublish.DataSetSignal | repeated | list of signals to be collected |
| dataSetId | int64 | optional | unique identifier for this data set, needed for the receiver to decode the list of signals |
| queuePolicy | VehicleDataAcquisitionPolicyPublish.QueuePolicy | optional | criteria to determine how data should be queued and sent |
| filterExpression | VehicleDataAcquisitionPolicyPublish.FilterCriteria | repeated | criteria to determine whether data should be sent or not sent |
| differentialTSEncodingType | VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum | optional | how differential timestamps shall be encoded in multiple row datasets |
| captureWindowPolicy | VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy | optional | defines criteria for creating a capture window to record data pre and post event. |
| isOnChangeDataSet | bool | optional | Indicates if the included list of signals is to be monitored for changes at the period defined in this DataSet. If true, then the captureWindowPolicy shall be ignored. The OnChange and CaptureWindow policies are incompatible and should not be defined in the same DataSetSubscription. |
| signalIdType | VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum | optional | Indicate the use of the signalId value in the dataSetSignal list. |
| Field | Type | Label | Description |
| histogramSignalName | string | optional | The name of the virtual signal which will return the accumulated histogram value for occurences where the filterCriteria evalulates to true. |
| histogramCCntSignalName | string | optional | The is a counter to track the number of concurrent samples where the histogram filterCriteria evaluates to true. Once the criteria evaluates to false, then the counter (histogramCCntSignalName) will reset to 0. |
| filterCriteria | VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria | optional | The criteria to determine to accumulate the occurrence value for this histogram bucket. |
| period | int32 | optional | Collection period for histogram (deprecated) |
| frequency | int32 | optional | collection frequency for histogram |
| Field | Type | Label | Description |
| histogram | VehicleDataAcquisitionPolicyPublish.Histogram | repeated | A list of Histograms for particular signals |
A PolicySubscription is a set of DataSetSubscription subscriptions and the time period for data collection.
A PolicySubscription with zero DataSetSubscriptions may be used to activate custom TU logic for a period of time.
| Field | Type | Label | Description |
| version | int32 | optional | A version number is assigned every time there is a change in policy |
| policySubscriptionId | bytes | optional | contain any arbitrary sequence of bytes for this PolicySubscription |
| startDate | int64 | optional | |
| expirationDate | int64 | optional | contains expiration date for the current policy subscription, in milliseconds elapsed since 1 January 1970 00:00:00 UTC. |
| dataSetSubscription | VehicleDataAcquisitionPolicyPublish.DataSetSubscription | repeated | zero or more DataSetsSubscriptions to be collected. |
| application | VehicleDataAcquisitionPolicyPublish.PolicyApplication | optional | The application to which this policy applies. Applications may query their currently active PolicySubscriptions |
| histogramDataSet | VehicleDataAcquisitionPolicyPublish.HistogramDataSet | optional | contains the configuration for the histogram data set |
| Field | Type | Label | Description |
| dataSubscription | VehicleDataAcquisitionPublish.DataSubscription | repeated | Multiple data set subscriptions may be collected concurrently in one PolicySubscription and sent in the same message |
| vehicleId | string | optional | Provide vehicle identifier when the session on the secure channel cannot be used to identify the client. |
| rawPayload | bytes | optional | approach to upload raw content in the VehicleDataAcquisitionPublish message. |
An actual data value collected. int32/sint32/sfixed32 all have the same range, as do int64/sint64/sfixed64. The sender should select as appropriate for the expected pattern of data.
| Field | Type | Label | Description |
| signalId | int32 | optional | Signal ID associated with the signal |
| bytesValue | bytes | optional | May contain an arbitrary sequence of bytes. |
| int32Value | int32 | optional | Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint32 instead. |
| int64Value | int64 | optional | Uses variable-length encoding. Inefficient for encoding negative numbers â if your field is likely to have negative values, use sint64 instead. |
| booleanValue | bool | optional | uses boolean variable, i.e. true or false. |
| floatValue | float | optional | IEE754 32bit float value. |
| doubleValue | double | optional | IEE754 double value. |
| stringValue | string | optional | Variable length string that contains UTF-8 encoded characters. |
| sint32Value | sint32 | optional | Efficient for negative as well as positive numbers. Size increases with absolute value |
| sint64Value | sint64 | optional | Efficient for negative as well as positive numbers. Size increases with absolute value |
| sfixed32Value | sfixed32 | optional | always 4 bytes, use if the field has a broad range of values |
| sfixed64Value | sfixed64 | optional | always 8 bytes, use if the field has a broad range of values |
Each iteration of data collection for a DataSet will generate one data row. To fully decode and understand a data row the original DataSetSubscription list of signal names must be avaliable because the signal name is not present in this message.
| Field | Type | Label | Description |
| timestamp | int64 | optional | Timestamp for when this data row was collected. Timestamps will typically increment per the DataSetSubscription's periodic rate, but many sources of timing jitter may affect this. If differental encoding is in use, timestamp may be sent as an absolute value in the first row, with subsequent rows having either a delta (DIFFERENTIAL_DELTA_TIME) or no timestamp value (DIFFERENATIAL_IMPLIED_PERIOD) at all. |
| signalValue | VehicleDataAcquisitionPublish.SignalValue | repeated | Contains information for signal value which can be any data type per SignalValue |
Multiple iterations of data collection will be gathered on the TU, queued and sent as a DataSet
Data Set is combination of data setId and Data row.
| Field | Type | Label | Description |
| dataSetId | int64 | optional | unique identifier for this data set, needed for the receiver to decode the list of signals. |
| dataRow | VehicleDataAcquisitionPublish.DataRow | repeated | this represents signal Value that is collected and its timestamp. |
The On Change Data Set delivers a single event.
| Field | Type | Label | Description |
| dataSetId | int64 | optional | Unique identifier for this data set, needed for the receiver to identify this is an event. |
| timestamp | int64 | optional | Timestamp for when the signal value was collected. |
| signalId | int32 | optional | Indicates the signal identifier as either an index or unique value as defined in the DataSetSubscription. |
| signalValue | VehicleDataAcquisitionPublish.SignalValue | optional | Contains information for signal value which can be any data type per SignalValue |
| Field | Type | Label | Description |
| policySubscriptionId | bytes | optional | contain any arbitrary sequence of bytes for the Policy subscription id. |
| dataSet | VehicleDataAcquisitionPublish.DataSet | repeated | DataSets collected and queued on the TU per the QueuePolicy |
| onChangeDataSet | VehicleDataAcquisitionPublish.OnChangeDataSet | repeated | OnChangeDataSets collected and queued on the TU per the QueuePolicy |
| Field | Type | Label | Description |
| vehicleId | string | optional | Unique Vehicle Identifier |
| policySubscription | VehicleDataAcquisitionPolicyPublish.PolicySubscription | optional | Policy Details, requires at least PolicyID |
| policyVersion | string | optional | Version number of the policy. |
This API is to find the location of the vehicle.
UconnectAny | |---- VehicleLocationRequest | |---- VehicleLocationResponse
Change Log
| Version | Date | Notes |
| 1.6 | 2018-09-26 | Added FAILURE_SPEED_LOCKOUT to response enum |
| 1.5 | 2018-06-20 | Updated VehicleLocationUpdate period enum to milliseconds |
| 1.4 | 2018-06-20 | Added VehicleLocationUpate for periodic updates |
| 1.3 | 2017-11-2 | Update to Proto3 |
| 1.0 | 2017-08-10 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/VFND |
| Cloud receive from Vehicle | Subscribe | fcasdp/VFND/# |
| Vehicle send to Cloud | Publish | fcasdp/VFND/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM and the SDP:

This message is for SDP to request Location of the Vehicle.
timestamp: 1489804992665
messageId: 11
messages
{
[com.fca.uconnect.global.vehicleLocationRequest]
{ }
}
| Field | Type | Label | Description |
| serviceRequestID | bytes | optional | Service Request ID for Vehicle Finder |
This message is in response to VehicleLocationRequest from SDP to Client .
timestamp: 1489806024650
messageId: 3
correlationId: 12
messages
{
[com.fca.uconnect.global.vehicleLocationResponse]
{
response: SUCCESS
vehicleLocation
{
longitude: -83.67168
latitude: 42.4804
}
timestamp: 1489806024650
}
}
| Field | Type | Label | Description |
| response | VehicleLocationResponse.VehicleLocationResponseEnum | optional | |
| timestamp | int64 | optional | The time of gps location reading which can also be from cache. |
| serviceRequestID | bytes | optional | Service Request ID from Request |
| vehicleLocation | Location | optional |
| Name | Number | Description |
| SUCCESS | 0 | VehicleLocationResponse is Successful. |
| FAILURE | 1 | VehicleLocationResponse is Failed. |
| FAILURE_PRIVACY_ON | 2 | VehicleFinder Response Privacy is On |
| FAILURE_SPEED_LOCKOUT | 3 | VehicleFinder Response Vehicle is motion at speed in excess of 5MPH (NAFTA ONLY) |
| Field | Type | Label | Description |
| periodicLocation | Location | optional | For Periodic updates of the Vehicle Location |
| Field | Type | Label | Description |
| OnDemand | bool | optional | Allow On Demand Updates |
| Periodic | bool | optional | Allow Periodic Updates |
| KeyOff | bool | optional | Allow at KeyOFf (Use Only when SQDF is not present) |
| updatePeriodEnum | VehicleFinderConfig.UpdatePeriod | optional | Periodic Selection expressed in milliseconds (K) for thousands) |
| Name | Number | Description |
| FIVE_K | 0 | |
| TEN_K | 1 | |
| THIRTY_K | 2 | |
| SIXTY_K | 3 | |
| ONEHUNDRED_K | 4 |
This API enables the SDP to send messages to HU , the HU messages that should be displayed to the operator of the vehicle, and the HU to notify the SDP when messages were displayed and the operator's response.
UconnectAny | |---- VehicleMessagePublish (1610) | |---- VehicleMessageAck (1611) | |---- VehicleMessageDispositionPublish (1612) | |---- VehicleMessageDispositionAck (1613)
Change Log
| Version | Date | Notes |
| 1.5 | 2019-07-22 | Provided Support for Flexible messaging per V2C-38 and 40 |
| 1.5 | 2019-07-22 | Provided Support for Flexible messaging per V2C-38 and 40 |
| 1.5 | 2019-07-07 | Update for custom messages per V2C-38 |
| 1.4 | 2018-08-17 | Removed Enrollment Message Type, Added Subscription Message Type, Added Enumeration for Expired Notice, fixed Vehicle Received Topic |
| 1.3 | 2018-05-17 | Added Enrollment Message Type |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-08-10 | Added VehicleMessageDispositionAck message |
| 1.0 | 2017-03-28 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/IVM |
| Cloud receive from Vehicle | Subscribe | fcasdp/IVM/# |
| Vehicle send to Cloud | Publish | fcasdp/IVM/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the HU and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1.1 | Vehicle Messaging Event | SDP | The vehicle messaging event which triggers the SDP to send an VehicleMessagePublish Message to the Client. | ||
| 1.2 | Assign MessageId | SDP | The SDP generates the messageId for the message by incrementing a sequence counter. | ||
| 2. | Send VehicleMessagePublish Message | SDP | VehicleMessagePublish | ${iot:ClientId}/IVM | The SDP populates the VehicleMessagePublish Message with the elements and publishes to the In Vehicle Messaging topic. |
| 3.1 | Process Message | HU | The HU processes the message and generates an VehicleMessageAck Message with the status | ||
| 3.2 | Assign CorrelationID | HU | The correlationId set to the messageId from the received VehicleMessagePublish Message. | ||
| 4 | Send VehicleMessageAck Message | HU | VehicleMessageAck | /IVM/${iot:ClientId} | The Client publishes the Acknowledge message to the In Vehicle Messaging topic for the SDP to receive. |
| 5. | Process Message | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 6. | Send VehicleMessageDispositionPublish Message | HU | VehicleMessageDispositionPublish | /IVM/${iot:ClientId} | The Client publishes the VehicleMessageDispositionPublish message to the In Vehicle Messaging topic for the SDP to receive. |
| 7. | Process Message | SDP | The SDP receives the message and verifies the correlationId matches the messageId of the initially sent request. | ||
| 8. | Send VehicleMessageDispositionAck Message | SDP | VehicleMessageDispositionAck | ${iot:ClientId}/IVM | The SDP acknowledges the VehicleMessageDispositionAck Message with the elements and publishes to the In Vehicle Messaging topic. |
| 9 | Process Message | HU | The HU processes the message. |
This message is to send any Alert Messages to the Vehicle like Service or Recall.
timestamp: 1490983981881
messageId: 11
messages
{
[com.fca.uconnect.global.vehicleMessagePublish]
{
vin: "1HGCM82633A004352"
messageType: SERVICE_NOTICE
message
{
language: "ENGLISH"
messageText: "Your Vehicle is Due for Service"
}
}
}
| Field | Type | Label | Description |
| vehicleMessageID | int32 | optional | Generated by the ICT Back Office |
| vin | string | optional | |
| messageType | VehicleMessagePublish.MessageType | optional | |
| messageDetailType | VehicleMessagePublish.MessageDetailType | optional | Additional Message Type details |
| messageTemplate | string | optional | the template to be used to format the message |
| messagePriority | VehicleMessagePublish.MessagePriorityType | optional | |
| message | VehicleMessagePublish.LanguageString | repeated | the message, in the languages that are supported by the device that will display the messages. Languages sent will vary with regional requirements. |
| ServiceMessageEventID | string | optional | MessageEventID for tracking purposes uses the DTC Event Code |
| messageParameters | VehicleMessagePublish.MessageParametersEntry | repeated |
| Name | Number | Description |
| RECALL_NOTICE | 0 | Represents Recall Notice Message. |
| SERVICE_NOTICE | 1 | Represents Service Notice Message. |
| PC_NOTIFICATION | 2 | Represents Parental Control Notification Message. |
| ENROLLMENT | 3 | Represents a Welcome or other Enrollment Message |
| SUBSCRIPTION_NOTICE | 4 | SUBSCRIPTION MESSAGE |
| MARKETING | 5 | Future Use |
| GENERAL | 6 | General Use Messages |
| CUSTOM_NOTICE | 7 |
| Name | Number | Description |
| RECALL_ID | 0 | NOT USED |
| RECALL_COMPONENT | 1 | NOT USED |
| RECALL_SUMMARY | 2 | |
| RECALL_CONSEQUENCE | 3 | NOT USED |
| OWNER_NEXT_STEPS | 4 | |
| SERVICE_DUE_DATE | 5 | NOT USED |
| SERVICE_SUMMARY | 7 | |
| SUBSCRIPTION_TO_EXPIRE | 6 | |
| SUBSCRIPTION_EXPIRED | 8 | |
| OTHER | 9 | |
| SUBSCRIPTION_END_DATE | 10 | |
| SUBSCRIPTION_TO_RENEW | 11 | |
| SUBSCRIPTION_DAYS_TO_EXPIRE | 12 | |
| SERVICE_OIL | 13 | |
| SERVICE_TPM | 14 | |
| SERVICE_BRAKE | 15 | |
| SERVICE_BATTERY | 16 | |
| SUBSCRIPTION_ENDING_SOON | 17 | |
| SUBSCRIPTION_ENROLL_REMINDER | 18 | |
| MARKETING_MESSAGE_GENERA | 19 | |
| LEASE_LOYALTY | 20 | |
| AUDIO_SUBSCRIPTION | 21 |
| Name | Number | Description |
| PRIORITY_DEFAULT | 0 | |
| HIGHEST | 1 | |
| HIGH | 2 | |
| MEDIUM | 3 | |
| LEAST | 4 |
| Name | Number | Description |
| NONE | 0 | |
| OK | 1 | |
| REMIND_ME_LATER | 2 | |
| CALL | 3 | |
| BLUETOOTH_CALL | 4 | |
| OPEN_MAILBOX | 5 |
| Field | Type | Label | Description |
| title | string | optional | |
| language | string | optional | The language this text is for messages and uses ISO-639-1 Language Code |
| messageText | string | optional | the text in the given language |
| buttonAction | VehicleMessagePublish.ButtonActions | repeated | |
| altPhoneNumber | string | optional |
This message is to Acknowledge SDP for VehicleMessagePublish Message.
timestamp: 1490983982096
messageId: 1
correlationId: 11
messages
{
[com.fca.uconnect.global.vehicleMessageAck]
{
vehicleMessageID: 1
messageReceiptTimestamp: 1490983982095
status: MESSAGE_STAGED_FOR_DISPLAY
}
}
| Field | Type | Label | Description |
| vehicleMessageID | int32 | optional | |
| messageReceiptTimestamp | int64 | optional | Time the message was received by the App |
| status | VehicleMessageAck.ResponseEnum | optional | |
| failureDiagnostic | string | optional | for MESSAGE_STAGING_FAILED, any status message or result codes may be sent here |
| Name | Number | Description |
| MESSAGE_STAGED_FOR_DISPLAY | 0 | The HU has successfully passed the message to the next downstream component, and is waiting for a reponse |
| MESSAGE_TYPE_NOT_SUPPORTED | 1 | The HU has the message, but cannot process messages of that type. The message is discarded, retry is unlikely to succeed |
| MESSAGE_LANGUAGES_NOT_SUPPORTED | 2 | None of the languages in which the message was furnished can be displayed by the HMI. The message is discarded |
| MESSAGE_STAGING_FAILED | 3 | The HU attempted to stage the message for display, but failed for an unexpected reason. The message is discarded, the SDP should examine the diagnostic to determine whether to resend |
| MESSAGE_DESTINATION_TEMPORARILY_NOT_AVAILABLE | 4 | The HU attempted to stage the message for display, but failed with a diagnostic that the destination ECU is absent. The message is discarded on the HU, and may be sent again. |
| MESSAGE_VIN_NOT_VALID | 5 | The message was discarded because the VIN attached to the HU is not the VIN in the message. |
| MESSAGE_AUTO_DELETE | 6 | Message is removed by the system |
| MESSAGE_DELETE | 7 | Message removed by user |
The message has been fully processed, the HU has purged it fully.
timestamp: 1490983992118
messageId: 2
correlationId: 11
messages
{
[com.fca.uconnect.global.vehicleMessageDispositionPublish]
{
vehicleMessageID: "\275\237d\235u\350\323\021\212l\002o\247
\036\007\031!\251\001\316"
messageDisplayTimestamp: 1490983982111
messageHMIDispositionEventTimestamp: 1490983992116
disposition: MESSAGE_DISPLAY_CANCELLED
}
}
| Field | Type | Label | Description |
| vehicleMessageID | int32 | optional | |
| messageDisplayTimestamp | int64 | optional | time the message was shown, or VIN change detected |
| messageHMIDispositionEventTimestamp | int64 | optional | time of operator interaction that closed message display |
| disposition | VehicleMessageDispositionPublish.MessageDispositionEnum | optional | |
| failureDiagnostic | string | optional | for MESSAGE_DISPLAY_FAILED, any status message or result codes may be sent here |
| vin | string | optional |
| Name | Number | Description |
| MESSAGE_CONFIRMED_BY_OPERATOR | 0 | The message has been shown, and the operator has acknowledged by pressing OK. |
| MESSAGE_DISPLAY_CANCELLED | 1 | The HMI element displaying the message was closed by the operator by pressing X. |
| MESSAGE_DISPLAY_CONFIRMED_CALL | 6 | The message has been shown and the operator pressed the call button. |
| MESSAGE_VIN_NOT_VALID | 2 | The message was not displayed because the vin in VehicleMessagePublish is not the vin attached to the HU or the display ECU. Implies that the VIN has changed. |
| MESSAGE_TIMED_OUT | 3 | logic in the HU or a downstream component has determined that the message is too old to display |
| MESSAGE_LANGUAGES_NOT_SUPPORTED | 4 | None of the languages in which the message was furnished can be displayed by the HMI. |
| MESSAGE_DISPLAY_FAILED | 5 | logic in the HU or a downstream component has discarded the message for an unexpected reason. |
| MESSAGE_AUTO_DELETE | 7 | Message is removed by the system |
| MESSAGE_DELETE | 8 | Message removed by user |
The message is to acknowledge the vehicleMessageDispositionPublish message.
timestamp: 1490983992220
messageId: 3
correlationId: 2
messages
{
[com.fca.uconnect.global.vehicleMessageDispositionAck]
{
response: SUCCESS
}
}
| Field | Type | Label | Description |
| response | VehicleMessageDispositionAck.DispositionResponseEnum | optional |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILURE | 1 |
This API is to synchronize the Configuration with Vehicle.
UconnectAny | |----VehicleConfigRequest (1080) | |----VehicleConfigPublish (1081) | |---VehSyncModel |Change Log
| Version | Date | Notes |
|---|---|---|
| 1.14 | 2017-11-30 | Sequence Diagram and table Updates |
| 1.13 | 2017-11-30 | Make Config Update a file |
| 1.12 | 2017-11-2 | Update to Proto3 |
| 1.11 | 2017-10-19 | Add config settings from TheftAlarm and Parental Controls |
| 1.10 | 2017-10-09 | Add config settings from TBM CTS |
| 1.9 | 2017-09-29 | Add config settings to ECall and BCall, update PHEV settings |
| 1.8 | 2017-09-20 | Added EncryptionLevel to CHINAPHEVSettings. |
| 1.7 | 2017-07-26 | Added TheftAlarmNotificationSettings. |
| 1.6 | 2017-07-26 | Updated SQDF Settings with additional params. |
| 1.5 | 2017-07-24 | Added SQDF Parameter. |
| 1.4 | 2017-07-11 | Added AOTASettings to VehSyncModel. |
| 1.3 | 2017-06-20 | Added fields for Signature correlation Message to VehicleConfigPublish. |
| 1.2 | 2017-06-19 | Added chinaPHEVSettings to VehSyncModel |
| 1.1 | 2017-03-21 | Moved Common messages to Common Proto |
| 1.0 | 2017-03-14 | Release of initial Proto |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/VCSC |
| Cloud receive from Vehicle | Subscribe | fcasdp/VCSC/# |
| Vehicle send to Cloud | Publish | fcasdp/VCSC/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP, only the Normal flow is documented in the table:
| Sequence | Title | Role | Message | Topic | Description |
| 1. | Vehicle Config Sync Event | SDP | The SDP triggers to send an VehiclConfigPublish to the Client. | ||
| 2. | Process Message | TBM/HU | The Client processes the message and storess the Vehicle Configurations | ||
| 3. | Assign CorrealationID | TBM/HU | The Client processes assigns a correalationID and generates an Ack Message | ||
| 4. | Send AckMessage | TBM/HU | The Client returns an Ack message to the SDP with the status of the config update | ||
| 5. | Process Message | SDP | The server processes the message |
Data elements to be synchronized between the vehicle and the cloud.
| Field | Type | Label | Description |
| sender | VehicleConfigPublish.Source | optional | |
| configSetVersion | int32 | optional | This identifies the version of this configuration. |
| modelData | VehSyncModel | optional | |
| timestamp | int64 | optional | Added for signature correlation to message |
| messageId | int32 | optional | Added for signature correlation to message |
| signatureId | int32 | optional | Added for signature correlation to message |
| Name | Number | Description |
| SDP | 0 | |
| Vehicle | 1 |
This message is to request Vehicle Configuration.
timestamp: 1490113248814
messageId: 11
messages
{
[com.fca.uconnect.global.vehicleConfigRequest]
{
configSetVersion: 1
}
}
| Field | Type | Label | Description |
| configSetVersion | int32 | optional |
This Message is the container for the application specific settings
| Field | Type | Label | Description |
| configFile | bytes | optional |
This proto is for getting WIFI Data Status and sending Push if there is low Data.UconnectAny | |---- DataPackageStatusRequest dataPackageStatusRequest (140) | |---- DataPackageStatusResponse dataPackageStatusResponse (141) | |---- WifiPackageDataStatus wifiPackageDataStatus (142)
Change Log
| Version | Date | Notes |
| 1.3 | 2019-06-05 | Adjusted documentation per V2C-33 adding Days as the units for expressing Time. |
| 1.2 | 2019-04-24 | Added Wifi Plan Type for R1 |
| 1.1 | 2017-11-2 | Update to Proto3 |
| 1.0 | 2017-02-15 | Release of initial Proto. |
| Flow | Type | Topic Name |
| Cloud send to Vehicle | Publish | fcasdp/${iot:ClientId}/WIFI |
| Cloud receive from Vehicle | Subscribe | fcasdp/WIFI/# |
| Vehicle send to Cloud | Publish | fcasdp/WIFI/${iot:ClientId} |
| Vehicle receive from Cloud | Subscribe | fcasdp/${iot:ClientId}/# |
The following sequence diagram depicts the flow of WIFI messages between the TBM and the SDP:

| Sequence | Title | Role | Message | Topic | Description |
| 1. | Wifi Event | TBM | The in-vehicle WifiHotspot event which triggers the client device to send an DataPackageStatusRequest to the SDP. | ||
| 2. | Assign MessageId | TBM | The client generates the messageId for the message by incrementing a sequence counter. | ||
| 3. | Send DataPackageStatusRequest Message | TBM | DataPackageStatusRequest | /WIFI/${iot:ClientId} | The client populates the DataPackageStatusRequest Message with the no elements and publishes to the wifi topic. |
| 4. | Process Message | SDP | The SDP processes the message and generates an DataPackageStatusResponse Message with the status and the correlationId set to the messageId from the received DataPackageStatusRequest message. | ||
| 5. | Send DataPackageStatusResponse Message | SDP | DataPackageStatusResponse | ${iot:ClientId}/WIFI | The service publishes the response message to the wifi topic for the client to receive. |
| 6. | Process Message | TBM | The client receives the message and verifies the correlationId matches the messageId of the sent request. | ||
| 7. | Send WifiPackageDataStatus Message as a Push Message | SDP | WifiPackageDataStatus | ${iot:ClientId}/WIFI | The service publishes the push message to the wifi topic for the client to receive. |
| 8.1 | Process Message | TBM | The client receives the message and alert the user. | ||
| 8.1 | Assign CorrelationID | TBM | The client generates AckMessage and assign the correlationID from received WifipackageDataStatus. | ||
| 8.1 | send AckMessage | TBM | AckMessage | /WIFI/${iot:ClientId} | The client sends AckMessage to acknowledge that it received WifiPackageDataStatus. |
This message is to request the usage statistics and status of the data package.
timestamp: 1489208951655
messageId: 1
messages
{
[com.fca.uconnect.global.dataPackageStatusRequest]
{
}
}
| Field | Type | Label | Description |
This returns with DataPackageStatusResponse which has wifipackageData Status.
timestamp: 1489208951716
messageId: 10
correlationId: 1
messages
{
[com.fca.uconnect.global.dataPackageStatusResponse]
{
responseEnum: SUCCESS
wifiPackageDataStatus
{
totalVolume: 1000000
totalTiming: 30
usedVolume: 500000
usedTiming: 20
isLowAlertFlag: false
}
}
}
| Field | Type | Label | Description |
| responseEnum | DataPackageStatusResponse.ResponseEnum | optional | Response Enum can be Success or Failure |
| packageStatus | WifiPackageDataStatus | optional | WifiPackageDataStatus is a message with data status. |
| Name | Number | Description |
| SUCCESS | 0 | |
| FAILURE | 1 |
When remaining data package is getting critically low or other criteria is met,
the SDP sends the data package status to TBM.
When the sending criteria is met, for example remaining data
low, new data package purchased, etc. the SDP enclose the data volume,
used data, remaining data, package expire date etc., info in this message is sent to IVI client.
timestamp: 1489208952657
messageId: 11
messages
{
[com.fca.uconnect.global.wifiPackageDataStatus]
{
totalVolume: 1000000
totalTiming: 30
usedVolume: 900000
usedTiming: 20
isLowAlertFlag: true
}
}
| Field | Type | Label | Description |
| planType | WifiPackageDataStatus.PlanTypeEnum | optional | Plan Types, for MY21+ |
| timeStamp | int64 | optional | The time at which usage measurements were generated, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. |
| totalVolume | int32 | optional | Total data in KB. |
| totalTiming | int32 | optional | Total time in days that this device may be active. |
| usedVolume | int32 | optional | Used data in KB. |
| usedTiming | int32 | optional | Used Time expressed in days for data. |
| isLowAlertFlag | bool | optional | This represents whether data is reaching a low point. |
| Name | Number | Description |
| NULL | 0 | |
| TRIAL | 1 | Trial Package |
| S_TYPE | 2 | One Time Session/Auto-Renew Session Active) |
| MOBILESHARE | 3 | Mobile Share Active |
| UNLIMITED | 4 | Unlimited Plan |
| POSTPAID | 5 | Standalone PostPaid Plan Active |
The proto is utilized for Destination,Address,POI and location used in other Protobuff .
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.6 | 2018-06-21 | PositionDirection Change to Double |
| 1.5 | 2018-06-21 | Added GPS Fix Type and isGPSFixUnavailable. Removed isGPSFixCurrent |
| 1.4 | 2018-04-30 | Added Vehicle direction object per request |
| 1.3 | 2018-04-04 | Added Zip code and Secondary Unit Designation to the Address object |
| 1.2 | 2017-11-2 | Update to Proto3 |
| 1.1 | 2017-09-29 | Add additional location error details |
| 1.0 | 2017-09-20 | Release of initial Proto |
| Field | Type | Label | Description |
| location | Location | optional | |
| destinationPoi | PointOfInterest | optional | Related POI |
| destinationAddress | Address | optional | Related Address |
| createTimestamp | int64 | optional | |
| routePreference | Destination.RoutePreference | optional |
| Name | Number | Description |
| DEFAULT | 0 | |
| FAST | 1 | |
| SHORT | 2 | |
| ECONOMICAL | 3 | |
| RECOMMENDATION | 4 |
| Field | Type | Label | Description |
| countryName | string | optional | Country Name |
| countryCode | string | optional | Two or three digit country code (US) |
| provinceName | string | optional | State or Province Name |
| provinceCode | string | optional | Two or three digit state or province code (MI) |
| cityName | string | optional | City Name |
| cityCode | string | optional | City abbreviation code |
| districtCountyName | string | optional | District or county name |
| districtCountyCode | string | optional | District or county code (Mac) |
| streetName | string | optional | Name of Street |
| secondUnitDesignator | string | optional | Unit designation for apartment or other |
| streetCode | string | optional | |
| houseNumber | string | optional | House number of address |
| postalCode | string | optional | Postal Code |
| Field | Type | Label | Description |
| positionLatitude | double | optional | Position Latitude in degrees. Use NaN if not populated, during Privacy Mode |
| positionLongitude | double | optional | Position Longitude in degrees. Use NaN if not populated, during Privacy Mode |
| estimatedPositionError | int32 | optional | Estimated error in Meters in a radius around the lat/lon position. If GPS fix is not current, then estimated error should be an error value (e.g., -1 or 0x80000000). |
| positionAltitude | double | optional | Position Altitude. |
| gpsFixTypeEnum | Location.GpsFixType | optional | Indicates the type of GPS Fix |
| isGPSFixNotAvailable | bool | optional | True when the FixType is ID_FIX_NO_POS[0] or ID_FIX_ESTIMATED[3] |
| estimatedAltitudeError | int32 | optional | Estimated error in Meters above or below altitude if GPS Fix is current. |
| positionDirection | double | optional | Direction the vehicle is traveling. |
| Name | Number | Description |
| ID_FIX_NO_POS | 0 | The GNSS fix position is not fixed. |
| ID_FIX_3D | 1 | 3-Dimensional position fix. |
| ID_FIX_2D | 2 | 2-Dimensional position fix |
| ID_FIX_ESTIMATED | 3 | Estimated (i.e. forward predicted) position fix. |
The common proto is utilized for VehicleInfo and VehicleStatus.
Change Log
| Version | Date | Notes |
|---|---|---|
| 1.12 | 2018-05-29 | Added comment to make language ISO-639 Compliant |
| 1.11 | 2018-05-29 | Added Model and Year details per Assemla 446 |
| 1.11 | 2018-05-10 | Release of initial Proto |
| 1.1 | 2017-09-20 | Release of initial Proto |
| 1.0 | 2017-09-20 | Release of initial Proto |
This message is common for ECall and Roadside assistance to get Vehicle Information.
| Field | Type | Label | Description |
| vehicleLocation | Location | optional | |
| vehicleSpeed | float | optional | This represents the current speed of the Vehicle. |
| odometer | int32 | optional | Total distance traveled by Vehicle. |
| engineStatusEnum | VehicleInfo.EngineStatusEnum | optional | The status of the Engine/Ignition |
| language | string | optional | The values shall be formatted according to the format 'ISO-639-1 Language Code'_'ISO-3166-1 alpha2 Country Code' |
| country | string | optional | The values shall be formatted according to the ISO Alpha-2 standard. |
| vehicleType | VehicleInfo.VehicleTypeEnum | optional | |
| vin | string | optional | Vehicle Identification Number |
| brand | string | optional | Vehicle Brand |
| model | string | optional | Vehicle Model |
| year | string | optional | Vehicle Year |
| recentVehicleLocation1 | Location | optional | This is to know which side Major highway the vehicle is located on,This information is needed for Routing an Emergency purpose. |
| recentVehicleLocation2 | Location | optional | This information is needed for Routing an Emergency purpose. |
| Name | Number | Description |
| STOP | 0 | |
| CRANK | 1 | |
| IDLE | 2 | |
| RUN | 3 | |
| STALL | 4 | |
| REQUESTSTART | 5 |
| Name | Number | Description |
| PASSENGER_CLASSM1 | 0 | |
| BUSESANDCOACHES_CLASSM2 | 1 | |
| BUSESANDCOACHES_CLASSM3 | 2 | |
| LIGHTCOMMERCIAL_CLASSN1 | 3 | |
| HEAVYDUTY_CLASSN2 | 4 | |
| HEAVYDUTY_CLASSN3 | 5 | |
| MOTORCYCLE_CLASSL1E | 6 | |
| MOTORCYCLE_CLASSL2E | 7 | |
| MOTORCYCLE_CLASSL3E | 8 | |
| MOTORCYCLE_CLASSL4E | 9 | |
| MOTORCYCLE_CLASSL5E | 10 | |
| MOTORCYCLE_CLASSL6E | 11 | |
| MOTORCYCLE_CLASSL7E | 12 |
| Field | Type | Label | Description |
| flTirePressure | float | optional | Front Left Tire Pressure; psi. |
| flTireSts | TirePressure.TireStatusEnum | optional | Front Left Tire Status. |
| frTirePressure | float | optional | Front Right Tire Pressure; psi. |
| frTireSts | TirePressure.TireStatusEnum | optional | Front Right Tire Status. |
| rlTirePressure | float | optional | Rear Left Tire Pressure; psi. |
| rlTireSts | TirePressure.TireStatusEnum | optional | Rear Left Tire Status. |
| rrTirePressure | float | optional | Rear Right Tire Pressure; psi . |
| rrTireSts | TirePressure.TireStatusEnum | optional | Rear Right Tire Status. |
| rl2TirePressure | float | optional | Rear Left interior (second) Tire Pressure; psi. |
| rr2TirePressure | float | optional | Rear Right interior (second) Tire Pressure; psi. |
| Name | Number | Description |
| NORMAL | 0 | Inflation Normal |
| LOW | 1 | Inflation Low (Under Inflated) |
| HIGH | 2 | Inflation High |
| SNA | 3 | Signal not available |
| SIGNIFICANTLY_LOW | 4 | Significantly Under Inflated) |
This message is to define Each Door/Window/Trunk/Hood/Engine status. Door/Window/Trunk/Hood should only report the status that has changed
| Field | Type | Label | Description |
| vehicleStatusType | VehicleStatus.VehicleStatusTypeEntry | repeated | This is to identify the status being provided Door/window/Trunk/Hood Status. |
| vehicleStatusParameters | VehicleStatus.VehicleStatusParametersEntry | repeated | This is the Status. |
| engineStatusEnum | VehicleStatus.EngineStatusEnum | optional | The status of the Engine/Ignition |
| fuelLevel | int32 | optional | |
| odometer | int32 | optional | |
| interiorTemperature | int32 | optional | |
| vehicleLocationType | Location | optional |
| Name | Number | Description |
| STOP | 0 | |
| CRANK | 1 | |
| IDLE | 2 | |
| RUN | 3 | |
| STALL | 4 | |
| REQUESTSTART | 5 |
| Name | Number | Description |
| CLOSED | 0 | |
| CLOSED_UNLOCKED | 1 | |
| CLOSED_LOCKED | 2 | |
| OPENED | 3 |
| Name | Number | Description |
| FLDOOR | 0 | |
| FRDOOR | 1 | |
| RLDOOR | 2 | |
| RRDOOR | 3 | |
| FLWINDOW | 4 | |
| FRWINDOW | 5 | |
| LLWINDOW | 6 | |
| LRWINDOW | 7 | |
| HOOD | 8 | |
| TRUNK | 9 | |
| LIFTGATE | 10 |
| Field | Type | Label | Description |
| key | string | optional | |
| value | VehicleStatus.Type | optional |
| Field | Type | Label | Description |
| key | string | optional | |
| value | VehicleStatus.Status | optional |
| .proto Type | Notes | C++ Type | Java Type | Python Type |
| double | double | double | float | |
| float | float | float | float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
| sfixed32 | Always four bytes. | int32 | int | int |
| sfixed64 | Always eight bytes. | int64 | long | int/long |
| bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |