Uconnect Global Vehicle to Cloud API's

Version 2.7.4

Most Recent Official Release

Table of Contents

Introduction

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

Frequently Asked Questions (FAQ)

  • Why use the FCA Global Uconnect V2C API?

    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.

  • What version of MQTT is required?

    The API reference implementation utilizes MQTT 3.1.1. However, the protocol message structures can be transferred over other messaging protocols as required.

  • Where Can I find Context Diagram for these API's?

    Here it is.

  • Can I only use the AWS IoT MQTT Broker?

    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.

  • What is Quality of Service?

    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.

    • 0: The broker/client will deliver the message once, with no confirmation.
    • 1: The broker/client will deliver the message at least once, with confirmation required. This is the recommended QoS level.
    • 2: The broker/client will deliver the message exactly once by using a four step handshake.

  • What MQTT Quality of Service (QoS) Level should be used?

    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.

  • What version of protocol buffers is 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

  • When should I update protocol buffer versions?

    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

  • Can the Protocol Buffer .proto definition files be modified?

    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

  • Is compression of messages supported?

    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.

  • What value do I use for the MQTT ClientId?

    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

  • How Certificate Management Works?

    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.

  • How do I find the associated requirements documentation?

    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

  • How do I handle Duplicate messages?

    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.

  • Do we need to know if the message has been delivered or does it act as fire/forget?

    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

  • How are the various IDs used?

    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

  • Are there Any General KPI Requirements?

    Yes, listed below.

    NbrTypeKPI Requirement
    1Request/Response Message from Vehicle to Cloud 5 sec
    2Request/Response Message from Cloud to Vehicle5 sec
    3Push Message from Vehicle to Cloud <3 sec
    4Push Message from Cloud to Vehicle <3 sec

  • How do I log messages for Audit/KPI?

    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.

  • What do I need to execute the Simulator client examples?

    • A Java Integrated Development Environment (IDE) such as Eclipse or IntelliJ.
    • Download the Google Protocol Buffers compiler and ensure you can generate Java code for one of the provided .proto files.
    • Create a new Java project and import the generated Java source files into your project.
    • Download the dependent Java libraries and import them into your project:
      • Download the protocol buffers jar file here.
      • Download the Paho MQTT client jar file here.
      • Download the AWS IoT Java Client Library here.
    • Add one of the example client code classes to your project and verify your project builds successfully.
    • Create or acquire the credentials and endpoint details for the AWS IoT instance to utilze for testing the client.

  • When should the SessionID field provided in the UconnectMessage be used?

    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)

  • If a vehicle is offline - how long should messages be held, waiting to Publish

    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

Global_Uconnect_Control.proto (Version 1.0)

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

VersionDateNotes
1.222018-09-20Added PhoneNumber update requests
1.212018-09-06Added Added navAuth
1.202018-08-04Added messages for PHEV and AutoSVL
1.192018-06-04Added Privacy Mode Messages
1.182018-06-04Added PCLogUploads, UpdateRSAPhoneNumbers, Moved CrankInhibit to RemoteInhibitRequest, added VehicleLocationUpdate
1.172018-06-04Added TheftAlarmSuppression. Added CreatePin, ValidatePin, LegalDocuments for Activation
1.162018-04-23Removed stolenVehicleControlRequest and Response Messages message
1.162018-04-23Removed remoteOperationStatus message
1.152018-04-19Removed cancelRequest message
1.152018-03-12Added Error Codes table to the Ack Message documentation
1.142018-03-12Merged Eco Coaching and Brand Pages to make Connected Pages
1.132018-03-12Added Eco Coaching Message< and split Auth from VehicleAuth/td>
1.122017-11-2Update to Proto3
1.112017-10-09Add apiVersionId to track API version.
1.102017-09-27Add isTransient and failureReasonCode to AckMessage.
1.92017-09-20Moved Device,VehicleInfo,DRM to Separate proto file.
1.82017-08-07Update Location type.
1.72017-07-10Added DRM.
1.62017-07-10Added additional fields to VehicleStatus.
1.52017-06-30Device is added.
1.42017-04-19VehicleInfo is added.
1.32017-04-12OriginSource , duplicate fields are removed and added estimatedPositionError to location.
1.22017-03-21Added Destination.
1.12017-03-02Added correlationId, refactored extension mechanism.
1.02016-06-14Release of initial Proto

UconnectMessage

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.

TitleDescription
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.

TitleDescription
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.

FieldTypeLabelDescription
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.

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

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/${iot:ClientId}/sys/

FieldTypeLabelDescription
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.

AckMessage

FieldTypeLabelDescription
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

AckMessage.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

FAILURE 1

Failure

UconnectAny

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.

FieldTypeLabelDescription
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

completeActivtationRequest CompleteActivationRequest optional

Return the Legal Documents for Activation

navAuthRequest NavAuthRequest optional

navAuthResponse NavAuthResponse optional

requestEcallPhoneNumbers RequestEcallPhoneNumbers optional

requestRSAPhoneNumbers RequestRSAPhoneNumbers optional

updateLegalDocs UpdateLegalDocs optional

legalDocsPublish LegalDocsPublish optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Device.proto (Version 1.0)

The Proto is to utilize the common Device Message.

Change Log

VersionDateNotes
1.32018-04-02Change deviceType enumeration to have only HU and TBM | added headUnitType string
1.22017-11-2Update to Proto3
1.12017-10-09Update Device to include attributes from TBM CTS
1.02017-09-20Release of initial Proto

Device

FieldTypeLabelDescription
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

Device.OperatingSystem

NameNumberDescription
QNX 0

QNX Operating System

Android 1

Android Operating System for R1

CE 2

Windows CE Operating System

Device.DisplaySize

NameNumberDescription
Five 0

Seven 1

Eight 2

Ten 3

Twelve 4

Device.ManufactureRegion

NameNumberDescription
NAFTA 0

China 1

APAC 2

EMEA 3

LATAM 4

Device.DeviceType

NameNumberDescription
ENUM 0

TBM 1

HU 2

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_DRM.proto (Version 1.0)

The common proto is utilized to use common DRM Message.

Change Log

VersionDateNotes
1.42018-08-21Updated DRM to remove the issuer and signature fields per Feature Architect.
1.42018-05-28Updated DRM to fix VP2R support and make it generic.
1.32018-05-14Release of DRMSignature and updated DRM
1.22017-11-02Added Content Type and Signature support
1.12017-11-02Update to Proto3
1.02017-09-20Release of initial Proto

Signature Schema

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"

X509Certificates

FieldTypeLabelDescription
certificate string repeated

PEM-encoded X.509 certificate chain

DRMSignature

FieldTypeLabelDescription
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.

DRMSignature.SignatureType

NameNumberDescription
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

DRM

Upload the DRM File using this message

FieldTypeLabelDescription
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

DRM.ContentTypes

NameNumberDescription
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

DRMRegistration

Not currently used

FieldTypeLabelDescription
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

DRMRegistration.OperationEnum

NameNumberDescription
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.

DRMRegistration.RegistrationStatusEnum

NameNumberDescription
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.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_Activation.proto (Version 1.0)



This API supports the In-Vehicle Activation process by submitting a request to the SDP when the vehicle is first activated by the customer.

Change Log

VersionDateNotes
1.82018-09-25Added ACTIVATION_IN_PROGRESS to responseEnum and update diagram and added update TC&C
1.72018-09-22Merged CompleteActivation with PIN Create and T&C
1.62018-05-22Added Enumeration, Legal Docs Needed, Added CompleteActivationRequest, Added LegalDocument ID
1.52018-05-22Updated Sequence Diagram and added additional requests for CreatePin, ValidatePin and LegalDocument Agreements
1.42017-11-2Update to Proto3
1.32017-09-27Update Response for error handling.
1.22017-06-20Added mobileDevicePhoneNumber to Activation Request.
1.12017-03-25Added Country and Language
1.02017-02-15Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/UACT
Cloud receive from VehicleSubscribefcasdp/UACT/#
Vehicle send to Cloud Publishfcasdp/UACT/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the Vehicle and the SDP:

ActivationRequest

This message represents Activation request of vehicle for services and other configurations.

Activation Request Example Message:

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.

FieldTypeLabelDescription
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.

CreatePin

FieldTypeLabelDescription
pin bytes optional

confirmPin bytes optional

ValidatePin

FieldTypeLabelDescription
pin bytes optional

accountValidation ActivationRequest optional

CompleteActivationRequest

FieldTypeLabelDescription
createPin CreatePin optional

pin bytes optional

Deprecated

activationRequestData ActivationRequest optional

resend Activation Request Info

legalDocuments LegalDocuments repeated

LegalDocuments

FieldTypeLabelDescription
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

LegalDocuments.TCIndicatorEnum

NameNumberDescription
DISAGREE 0

User did not agree Terms and Conditions.

AGREE 1

User agreed Terms and Conditions.

PinResponse

FieldTypeLabelDescription
PinStatus PinResponse.PinStatusEnum optional

Used only with ValidatePin

PinResponse.PinStatusEnum

NameNumberDescription
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

ActivationResponse

This message is in response to ActivationRequest.

Activation Response Example Message:

timestamp: 1488740988983 messageId: 2 correlationId: 1 messages { [com.fca.uconnect.global.activationResponse] { responseEnum: ACTIVATED } }

FieldTypeLabelDescription
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

ActivationResponse.ResponseEnum

NameNumberDescription
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.

UpdateLegalDocs

FieldTypeLabelDescription

UpdateLegalDocs.LegalDocsDetailType

FieldTypeLabelDescription
documentID string optional

documentVersion string optional

LegalDocsPublish

FieldTypeLabelDescription
legalDocs LegalDocs repeated

LegalDocs

FieldTypeLabelDescription
documentID string optional

documentVersion string optional

document bytes optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_AOTA.proto (Version 1.0)

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).

Change Log

VersionDateNotes
1.42018-06-26Added status enumerations to separately identify Download and Install status
1.32018-05-21Updated Sequence Diagram, minor documentation updates
1.22017-11-2Update to Proto3
1.12017-09-27Update Notification response
1.02017-07-11Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/AOTA
Cloud receive from VehicleSubscribefcasdp/AOTA/#
Vehicle send to Cloud Publishfcasdp/AOTA/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

InitiateDiscrepancyCheck

This message is for SDP to request TBM/HU to initiate DescrepancyCheck for updates.

InitiateDescrepancyCheck Example Message:

timestamp: 1490885867532 messageId: 11 messages { [com.fca.uconnect.global.initiateDescrepancyCheck] { } }

FieldTypeLabelDescription
parameters InitiateDiscrepancyCheck.ParametersEntry repeated

InitiateDiscrepancyCheck.ParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

DiscrepancyCheck

This message is to check if there is an update available for Application.

FieldTypeLabelDescription
drmFile bytes optional

This is the base64 encoded DRM File sent for the discrepancy check.

applicationInventory ApplicationInventory repeated

ApplicationInventory

FieldTypeLabelDescription
appId string optional

Application 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

ApplicationUpdateNotification

This message is to Push the Application to Client when there is an update available.

ApplicationUpdateNotification Example Message:

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" } }

FieldTypeLabelDescription
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.

UpdateStatusNotification

This message is to respond to SDP after Client installs Application Updates.

UpdateStatusNotification Example Message:

timestamp: 1490885867676 messageId: 1 correlationId: 11 messages { [com.fca.uconnect.global.updateStatusNotification] { status: SUCCESS } }

FieldTypeLabelDescription
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

UpdateStatusNotification.StatusEnum

NameNumberDescription
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.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_Auth.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.82018-05-30Added Token Request and Response for Navigation - NavAutheRequest and Response
1.72018-05-30Added Token Request and Response for Eco Coaching
1.62018-03-12Removing bootstrap
1.52017-12-11Adding bootstrap
1.32017-11-2Update to Proto3
1.22017-09-27Update to include responses
1.12017-03-22Session Id is Changed to Bytes
1.02017-02-14Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/AUTH/
Cloud receive from VehicleSubscribefcasdp/AUTH/#
Vehicle send to Cloud Publishfcasdp/AUTH/${iot:ClientId}
Vehicle receive from CloudSubscribefcasdp/${iot:ClientId}/AUTH

Data Flow

The following sequence diagram shows the messages for implementing login/logout to support securely accessing the personal account information managed by the SDP:

*

NavAuthRequest

FieldTypeLabelDescription
token bytes optional

Use for Token Refresh Requests

provider NavAuthResponse.ProviderId optional

ProviderID

servicesList

FieldTypeLabelDescription
serviceID string optional

NavAuthResponse

FieldTypeLabelDescription
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

NavAuthResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

NOT_AUTHORIZED 1

NOT_AUTHORIZED

FAILURE 2

FAILURE

NavAuthResponse.ProviderId

NameNumberDescription
TOMTOM 0

TELENAV 1

ProfileTokenRequest

FieldTypeLabelDescription
userName string optional

Username for Eco Coaching

Credential bytes optional

Credential for Eco Coaching, should be encrypted

ProfileTokenResponse

FieldTypeLabelDescription
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

ProfileTokenResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

NOT_AUTHORIZED 1

NOT_AUTHORIZED

FAILURE 2

FAILURE

LoginRequest

FieldTypeLabelDescription
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

LoginRequest.AccessLevelEnum

NameNumberDescription
BASE 0

Base Enumeration

PIN_AUTHORIZED 1

Pin Authorized

TOKENAUTHORIZED 2

For Eco Coaching Profiles

LoginResponse

This is for loginResponse.

Login Response Example Message:

timestamp: 1488868821160

messageId: 1

correlationId: 1

messages

{

[com.fca.uconnect.global.loginResponse]

{

response: SUCCESS

sessionId: "-\0274\302]\325\324 \354K"

}

}

FieldTypeLabelDescription
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.

LoginResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

NOT_AUTHORIZED 1

NOT_AUTHORIZED

FAILURE 2

FAILURE

LogoutRequest

The LogoutRequest has no data elements.

LogoutRequest Example Message:

timestamp: 1488869130664

messageId: 20

messages

{

[com.fca.uconnect.global.logoutRequest]

{

}

}

FieldTypeLabelDescription

LogoutResponse

This will be response to LogoutRequest.

LogoutResponse Example Message:

timestamp: 1488869130739

messageId: 22

correlationId: 20

messages

{

[com.fca.uconnect.global.logoutResponse]

{

response: SUCCESS

}

}

FieldTypeLabelDescription
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.

LogoutResponse.LogoutResponseEnum

NameNumberDescription
SUCCESS 0

Success

FAILURE 1

Failure

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_CommCheck.proto (Version 1.0)

The Proto is to utilize the common Authorization and Comm Check Messages, often referred to as bootstrap.

UconnectAny | |---- CommCheckRequest | |---- CommCheckResponse | | |---- AckMessage

Change Log

VersionDateNotes
1.12018-07-16Added DRM Hash for the opportunity to combine CommCheck and ProvisioningRequest
1.02017-12-111st Drafted
FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/CCHK
Cloud receive from VehicleSubscribefcasdp/CCHK/#
Vehicle send to Cloud Publishfcasdp/CCHK/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the Vehicle and the SDP:

*

CommCheckRequest

FieldTypeLabelDescription
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

CommCheckRequest.ReasonEnum

NameNumberDescription
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

CommCheckRequest.AdditionalModemParamsEntry

FieldTypeLabelDescription
key string optional

value string optional

CommCheckResponse

FieldTypeLabelDescription
response CommCheckResponse.ResponseEnum optional

isTransient bool optional

Indicates a transient error and a retry can be attempted.

failureReasonCode int32 optional

Specific error code.

CommCheckResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Comm check successful

FAILURE 1

Comm check failed

InitiateCommCheck

FieldTypeLabelDescription
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

InitiateCommCheck.ParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_ConnectedPages.proto (Version 1.0)

* 

This API is to upload Data Gathered for Pages Coaching and Connected Brand Pages.

Change Log

VersionDateNotes
1.3/td>2018-10-16Removed Eco Coaching
1.22018-07-23Updated Sequence Diagram
1.12018-05-18Added Token Elements Required for profile.
1.02018-03-12Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/PGS
Cloud receive from VehicleSubscribefcasdp/PGS/#
Vehicle send to Cloud Publishfcasdp/PGS/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.Publish message from vehicleTBM

The in-vehicle UploadPagesData event which triggers the client device to send an UploadPagesData Message to the SDP.

2.Assign MessageIdTBM

The client generates the messageId for the message by incrementing a sequence counter.

3.Send UploadPagesData MessageTBMUploadPagesData/PGS/${iot:ClientId}

The client populates the UploadPagesData Message with the required elements and publishes to the PERFORMANCE topic.

4.1Process MessageSDP

The SDP processes the message and generates an ACK Message with the status and assign correct correlationId.

4.2.Assign correlationIDSDP

Assign correct correlationId.

5send AckMessageSDPAckMessage/PGS/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received UploadPagesData Message.

6Process AckMessageTBM

The client process AckMessage.

UploadPagesData

FieldTypeLabelDescription
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

UploadPagesData.dataUploadTypeEnum

NameNumberDescription
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]

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_ECall.proto (Version 1.0)

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.

Change Log

*
VersionDateNotes
2.12018-08-20Added RequestECallPhoneNumbers and crashDetected structure
2.02018-06-19Added UpdateECallPhoneNumbers
1.92017-05-12Sequence Diagram and Documentation Updates
1.82017-11-2Update to Proto3
1.72017-09-27Add response to return error code.
1.62017-09-20Added ACK Message and additional Enum fields to EcallStatus.
1.52017-07-07Call Status is added to EcallVehDataRequest.
1.42017-06-30Added new fields like trigger mode,Device.
1.32017-04-19Moved VehicleInfo to UconnectControl.
1.22017-04-18Moved key value for status of each door/window/hood/trunk.
1.12017-04-12Removed isTestCall,fuelRemaining,TyrePressure,VIN & isPositionTrusted and added odometer,language,country and estimatedHeadingError .
1.02017-03-09Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/ECAL
Cloud receive from VehicleSubscribefcasdp/ECAL/#
Vehicle send to Cloud Publishfcasdp/ECAL/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.ECALL EventTBM

The in-vehicle ECALL event which triggers the client device to send an ECALLDATA to the SDP.

2.Assign MessageIdTBM

The client generates the messageId for the message by incrementing a sequence counter.

3.Send ECallDataUpload MessageTBMECallDataUpload/ECAL/${iot:ClientId}

The client populates the ECallDataUpload Message with the required elements and publishes to the ECAL topic.

4.1Process MessageSDP

The SDP processes the message and waits for call through ECallStatusUpdate.

4.2.Assign correlationIDSDP

Assign correct correlationId.

5send AckMessageSDPAckMessage/ECAL/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received ECallDataUpload Message.

6Process AckMessageTBM

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 messageTBMECallStatusUpdate/ECAL/${iot:ClientId}

The client populates the ECallStatusUpdate Message with the required elements and publishes to the ECAL topic.

8.1Process MessageSDP

The SDP processes the message.

8.2.Assign correlationIDSDP

Assign correct correlationId.

9.send AckMessageSDPAckMessage/ECAL/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received ECallStatusUpdate Message.

10.Process AckMessageTBM

The client process AckMessage.

11.ECall Data Query EventSDP

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 MessageSDPECallVehDataRequest${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 MessageTBM

The client receives the message .

14.Send ECallVehDataResponse MessageTBM

ECallVehDataResponse

${iot:ClientId}/ECALThe Client populates the ECallVehDataResponse message to the ECAL topic for the client to receive.

15.Process MessageSDP

The SDP receives the message and verifies the data and proceed accordingly.

16.Send ECallStatusUpdate messageSDPECallStatusUpdate${iot:ClientId}/ECAL

The SDP populates the ECallStatusUpdate Message with the Call status as Terminated and publishes to the ECAL topic.

17.Process MessageTBM

The Client processes the message and Acknowledges that Call is Terminated.

18.Send ECallVehDataRequest MessageSDPECallVehDataRequest${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 MessageTBM

The client process the message .

20.Send ECallVehDataResponse MessageTBM

ECallVehDataResponse

${iot:ClientId}/ECALThe Client populates the ECallVehDataResponse message to the ECAL topic for the client to receive.

21.Process MessageSDP

The SDP receives the message and verifies the data and proceed accordingly.

ECallDataUpload

This message represents ECall DataUpload for emergencies and accidents.

ECallDataUpload Example Message:

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 } }

FieldTypeLabelDescription
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

ECallDataUpload.TriggerModeEnum

NameNumberDescription
MANUAL 0

AUTOMATIC 1

ECallDataUpload.CrashDetectedEnum

NameNumberDescription
NO 0

YES 1

ECallDataUpload.AirBagStatus

FieldTypeLabelDescription
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

ECallDataUpload.SeatState

FieldTypeLabelDescription
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.

ECallDataUpload.CrashDetection

FieldTypeLabelDescription
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.

ECallStatusUpdate

This message is to update the status of the call.

ECallStatusUpdate Example Message:

timestamp: 1489600243281 messageId: 2 messages { [com.fca.uconnect.global.ecallStatusUpdate] { ecallStatusEnum: DIAL } }

FieldTypeLabelDescription
ecallStatusEnum ECallStatusUpdate.ECallStatusEnum optional

ECallStatusUpdate.ECallStatusEnum

NameNumberDescription
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.

ECallVehDataRequest

This message is to request Veh data from Client and it has no elements.

ECallVehDataRequest Example Message:

timestamp: 1489600243281 messageId: 1 messages { [com.fca.uconnect.global.ecallVehDataRequest] { callStatus:TERMINATED } }

FieldTypeLabelDescription
callStatus ECallVehDataRequest.CallStatusEnum optional

ECallVehDataRequest.CallStatusEnum

NameNumberDescription
TERMINATED 0

Terminated

TERMINATED_OTHER 1

Terminated for Other Reasons.

NOT_TERMINATED 2

Call is not terminated ,send the data and stay on line.

ECallVehDataResponse

This message sends Veh data to SDP when it requests for Veh data.

ECallVehDataRequest Example Message:

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 } } } }

FieldTypeLabelDescription
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.

ECallVehDataResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

FAILURE 1

UpdateEcallPhoneNumbers

FieldTypeLabelDescription
phoneList bytes optional

phoneListMessages PhoneListMessage repeated

PhoneListMessage

FieldTypeLabelDescription
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

PhoneListMessage.CallType

NameNumberDescription
SOS 0

ASOS_IMPACT 1

RequestEcallPhoneNumbers

FieldTypeLabelDescription
phoneListMessages PhoneListMessage repeated

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_Eco_Coaching.proto (Version 1.0)

* 

This API is to upload Data Gathered for Eco Coaching .

Change Log

VersionDateNotes
1.02018-10-16Seperated from ConnectedPages

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/ECO
Cloud receive from VehicleSubscribefcasdp/ECO/#
Vehicle send to Cloud Publishfcasdp/ECO/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/ECO

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

UploadCoachingData

FieldTypeLabelDescription
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

UploadCoachingData.dataUploadTypeEnum

NameNumberDescription
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]

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_FOTA.proto (Version 1.0)

This API notify the FOTA client of an update. The FOTA client will manage downloading the update most likely through a different channel (https).

Change Log

VersionDateNotes
1.22017-11-2Update to Proto3
1.12017-09-27Update response
1.02017-03-29Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/FOTA
Cloud receive from VehicleSubscribefcasdp/FOTA/#
Vehicle send to Cloud Publishfcasdp/FOTA/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

SequenceTitleRoleMessageTopicDescription
1.Firmware Update EventSDP

The FirmwareUpdate event which triggers the SDP device to send an FirmwareUpdate Notification to Client.

1.2.Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

2.Send FirmwareUpdateNotification MessageSDPFirmwareUpdateNotification${iot:ClientId}/FOTA

The SDP populates the FirmwareUpdateNotification Message with the required elements and publishes to the FOTA topic.

3.1.Process MessageTBM/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 correlationIDTBM/HU

Assign correct correlationId.

4.Send FirmwareUpdateResponse MessageTBM/HUFirmwareUpdateResponse/FOTA/${iot:ClientId}

The Client publishes the response message to the FOTA topic for the SDP to receive.

5.1Process MessageSDP

The SDP receives the message and verifies if correlationId is correct.

5.2Assign CorrelationIDTBM/HU

Assign correct correlationId.

6.1send AckMessageSDPAckMessage/FOTA/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received FirmwareUpdateResponse.

6.2Process AckMessageTBM/HU

The client process AckMessage.

FirmwareUpdateNotification

This message is to Push the Firmware to Client when there is an update available.

FirmwareUpdateNotification Example Message:

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" } }

FieldTypeLabelDescription
firmwareDescriptor FirmwareUpdateNotification.FirmwareDescriptor repeated

Firmware Descriptor

fotaTaskId string optional

FOTA Task ID

FirmwareUpdateNotification.FirmwareDescriptor

FieldTypeLabelDescription
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

FirmwareUpdateNotification.FirmwareDescriptor.FirmwareType

NameNumberDescription
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

FirmwareUpdateResponse

This message is to respond to SDP after Client installs Firmware Updates.

FirmwareUpdateResponse Example Message:

timestamp: 1490885867676 messageId: 1 correlationId: 11 messages { [com.fca.uconnect.global.firmwareUpdateResponse] { responseEnum: SUCCESS } }

FieldTypeLabelDescription
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.

FirmwareUpdateResponse.ResponseEnum

NameNumberDescription
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.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_IVH.proto (Version 1.0)

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).

Change Log

VersionDateNotes
1.22017-11-2Update to Proto3
1.02017-10-25Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/IVH
Cloud receive from VehicleSubscribefcasdp/IVH/#
Vehicle send to Cloud Publishfcasdp/IVH/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the HU and the SDP:

SequenceTitleRoleMessageTopicDescription
1.1Content Update EventSDP

The ContentUpdate event which triggers the SDP device to send an InitiateDescrepancyCheck message to Client.

1.2Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

2.Send InitiateDescrepancyCheck MessageSDPInitiateDescrepancyCheck${iot:ClientId}/IVH

The SDP populates the InitiateDescrepancyCheck Message with the required elements and publishes to the IVH topic.

3.1Process MessageHU

The Client process the message, generates an DescrepancyCheck Message with the DRM .

3.2Assign correlationIDHU

Assign correct correlationId.

4.Send DescrepancyCheck MessageHUDescrepancyCheck${iot:ClientId}/IVH

The Client populates the DescrepancyCheck Message with the required elements and publishes to the IVH topic.

5Process MessageHU

The Client process the message, generates an DescrepancyCheck Message with the DRM .

6.Send ContentUpdateNotification MessageSDPContentUpdateNotification${iot:ClientId}/IVH

The SDP populates the ContentUpdateNotification Message with the required elements and publishes to the IVH topic.

7.1.Process MessageHU

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 correlationIDHU

Assign correct correlationId.

8.Send ContentUpdateStatusNotification MessageHUContentUpdateStatusNotification/IVH/${iot:ClientId}

The Client publishes the response message to the IVH topic for the SDP to receive.

9.1.Process MessageSDP

The SDP receives the message and verifies the correlationId matches the messageId of the sent request.

9.2.Assign correlationIDHU

Assign correct correlationId.

10send AckMessageSDPAckMessage/IVH/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received ContentUpdateStatusNotification.

11Process AckMessageHU

The client process AckMessage.

InitiateIVHDiscrepancyCheck

This message is for SDP to request HU to initiate DescrepancyCheck for updates.

InitiateIVHDescrepancyCheck Example Message:

timestamp: 1490885867532 messageId: 11 messages { [com.fca.uconnect.global.initiateDescrepancyCheck] { } }

FieldTypeLabelDescription
parameters InitiateIVHDiscrepancyCheck.ParametersEntry repeated

InitiateIVHDiscrepancyCheck.ParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

IVHDiscrepancyCheck

This message is to check if there is an update available for Content.

FieldTypeLabelDescription
drm DRM optional

DRM file upload for discrepancy Check

ContentUpdateNotification

This message is to Push the Help Content to Client when there is an update available.

ContentUpdateNotification Example Message:

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" } }

FieldTypeLabelDescription
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.

ContentUpdateStatusNotification

This message is to respond to SDP after Client installs Content Updates.

ContentUpdateStatusNotification Example Message:

timestamp: 1490885867676 messageId: 1 correlationId: 11 messages { [com.fca.uconnect.global.ContentUpdateStatusNotification] { status: SUCCESS } }

FieldTypeLabelDescription
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

ContentUpdateStatusNotification.StatusEnum

NameNumberDescription
SUCCESS 0

Updated Successfully.

FAILURE 1

Download Failed from Download server.

UPTODATE 4

This Firmware update is already installed.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_LastMile.proto (Version 1.0)

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)

Change Log

VersionDateNotes
1.12018-05-15Added ServiceRequestID
1.02018-05-15Release of initial proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/LMN
Cloud receive from VehicleSubscribefcasdp/LMN/#
Vehicle send to Cloud Publishfcasdp/LMN/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the HU and the SDP:

SeqTitleRoleMessageTopicDescription
1.Last Mile EventHU

The HU triggers Last Mile Navigation event which triggers LastMilePush to the SDP

2.Assign MessageIdHU

The HU generates the messageId for the message by incrementing a sequence counter.

3.Send LastMilePush MessageSDPLastMilePush${iot:ClientId}/SDTC

The HU populates the LastMilePush Message with the required elements and publishes to the SDP.

4.Process MessageSDP

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 MessageSDPLastMilePushResponse/SDTC/${iot:ClientId}

The TBM publishes the response message to the HU

6.Process MessageHU

The HU receives the message and verifies the correlationId matches the messageId of the sent request.

LastMilePush

This message represents list of Destinations that User Can push to the Vehicle.

DestinationPush Example Message:

timestamp: 1490014360254 messageId: 11 messages { [com.fca.uconnect.global.destinationPush] { targeLocation { 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

} currentLocation { longitude: -83.671875 latitude: 42.4802 } } }

FieldTypeLabelDescription
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

LastMileResponse

FieldTypeLabelDescription
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.

LastMileResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Message Delivered Successful

ERROR 1

Generic Error for Other App and System Level Errors

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_PC.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.102018-09-20>
1.92018-09-20>
1.82018-08-30>
1.72018-08-21>Added a ConfigActionEnum to various alerts, added timestamp to logged events and utcoffset
1.62018-06-20Added LogAlert to Conig
1.52018-06-20Update ConfigTypeVehicle, Added Logs Configuration and Uploads, added name to PC Config
1.42017-11-2Update to Proto3
1.32017-09-27Update configuration response.
1.22017-09-15Added ACKMessage RadiusUnitsEnum.
1.12017-04-19Added RadiusUnitsEnum.
1.02017-03-19Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasp/${iot:ClientId}/PC
Cloud receive from VehicleSubscribefcasp/PC/#
Vehicle send to Cloud Publishfcasp/PC/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP for regions that use PCConfiguredAlertPublish:

SeqTitleRoleMessageTopicDescription
1.PC Provisioned Active EventSDP

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.

asyncThe async means send message and proceed immediately without waiting for return value.

2.1PCRequest EventSDP

The SDP PC Request event which triggers to send an PCUpdateConfigRequest to the Client.

2.2Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

2.3Send PCUpdateConfigRequest MessageSDPPCUpdateConfigRequest${iot:ClientId}/PC

The SDP populates the PCUpdateConfigRequest Message with the required elements and publishes to the PC topic.

2.4Process MessageTBM

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.5Assign CorrelationIDTBM

The correlationId set to the messageId from the received PCUpdateConfigRequest Message.

2.6Send PCUpdateConfigResponse MessageTBMPCUpdateConfigResponse/PC/${iot:ClientId}

The Client publishes the response message to the PC topic for the SDP to receive.

2.7Process ResponseSDP

The SDP receives the message and verifies the correlationId matches the messageId of the sent request.

3.1Trigger EventTBM

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.2Send PCConfiguredAlertPublish MessageTBM

PCConfiguredAlertPublish

/PC/${iot:ClientId}The Client publishes the PCConfiguredAlertPublish message to the PC topic for the SDP to receive.

3.3Process ConfiguredAlertSDP

The SDP receives the message and process configured Alert.

4.1Send PCLogUploads MessageTBM

PCLogUploads

/PC/${iot:ClientId}The Client publishes the configured and required logs via this message

4.2Process LogsSDP

The SDP receives the message and process the logs.

4.3Process LogsSDP

Ack Message returned.

PCUpdateConfigRequest

This message represents PCUpdateConfigRequest which triggers from SDP.

PCUpdateConfigRequest Example Message:

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 } } }

FieldTypeLabelDescription
config ConfigTypeVehicle optional

ConfigTypeVehicle

FieldTypeLabelDescription
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

ConfigTypeVehicle.BreachTypeEnum

NameNumberDescription
DEFAULT 0

OUT_OF_BOUNDRY 1

IN_BOUNDARY 2

BOTH 3

ConfigTypeVehicle.UnitOfMeasure

NameNumberDescription
KILOMETERS 0

MILES 1

ConfigTypeVehicle.GeoFenceType

NameNumberDescription
Polygon 0

Radius 1

ConfigTypeVehicle.ConfigActionEnum

NameNumberDescription
DEFAULTACTION 0

ADD 1

DELETE 2

UPDATE 3

ConfigTypeVehicle.LogAlerts

FieldTypeLabelDescription
TripLog bool optional

DriveStyle bool optional

SpeedViolationReport bool optional

ConfigTypeVehicle.CurfewAlertConfig

FieldTypeLabelDescription
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

ConfigTypeVehicle.SpeedAlertConfig

FieldTypeLabelDescription
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

ConfigTypeVehicle.ValetAlertConfig

FieldTypeLabelDescription
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.

ConfigTypeVehicle.GeoFenceAlertConfig

FieldTypeLabelDescription
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

PCUpdateConfigResponse

This message is response to PCUpdateConfigRequest .

PCUpdateConfigResponse Example Message:

timestamp: 1490712208347 messageId: 1 messages { [com.fca.uconnect.global.pcUpdateConfigResponse] { responseEnum: SUCCESS } }

FieldTypeLabelDescription
response PCUpdateConfigResponse.ResponseEnum optional

Depricated

isTransient bool optional

Depricated

failureReasonCode int32 optional

Depricated.

configResponse PCUpdateConfigResponse.ConfigResponseType repeated

PCUpdateConfigResponse.ResponseEnum

NameNumberDescription
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

PCUpdateConfigResponse.ConfigResponseType

FieldTypeLabelDescription
configurationResponse PCUpdateConfigResponse.ResponseEnum optional

name string optional

idenitfier string optional

failureReasonCode int32 optional

isTransient bool optional

PCConfiguredAlertPublish

This message is to notify SDP for Parental Controlconfigured Alert.

FieldTypeLabelDescription
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

PCLogUploads

FieldTypeLabelDescription
tripLog TripLog optional

driveStyleLog DrivingStyleLog optional

speedAlertsLog SpeedAlertsLog optional

TripLog

FieldTypeLabelDescription
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

DrivingStyleLog

FieldTypeLabelDescription
tripID string optional

harshAcceleration Acceleration repeated

harshBraking Braking repeated

suddenCornering Cornering repeated

seatBeltNotFastened SeatBelt repeated

SpeedAlertsLog

FieldTypeLabelDescription
tripID string optional

ViolationTotals int32 optional

Total number of speed alert threshold violations this trip

ThresholdAbovePostedSpeedTotal int32 optional

Total number of Speed above Posted Speed Threshold Violations

thresholdPostedSpeedAbsent int32 optional

Total number of Speed above Posted Speed Absent Threshold Violations

thresholdAbsolute int32 optional

Acceleration

FieldTypeLabelDescription
eventTimeUTCOffset int32 optional

offset in seconds of the vehicle time zone from UTC

violationTimestamp int64 optional

HARSH_ACCELERATION bool optional

Harsh Acceleration threshold reached

Braking

FieldTypeLabelDescription
eventTimeUTCOffset int32 optional

offset in seconds of the vehicle time zone from UTC

violationTimestamp int64 optional

HARSH_BREAKING bool optional

Harsh Breaking threshold reached

Cornering

FieldTypeLabelDescription
eventTimeUTCOffset int32 optional

offset in seconds of the vehicle time zone from UTC

violationTimestamp int64 optional

SUDDEN_CORNERING bool optional

Harsh Breaking threshold reached

SeatBelt

FieldTypeLabelDescription
eventTimeUTCOffset int32 optional

violationTimestamp int64 optional

SEATBELT_NOT_FASTENED bool optional

Harsh Breaking threshold reached

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_PerformancePages.proto (Version 1.0)

This API is to upload Track Data.

Change Log

VersionDateNotes
1.12017-11-2Update to Proto3
1.02017-10-24Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/PERF
Cloud receive from VehicleSubscribefcasdp/PERF/#
Vehicle send to Cloud Publishfcasdp/PERF/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.UploadTrackData EventTBM

The in-vehicle UploadTrackData event which triggers the client device to send an UploadTrackData Message to the SDP.

2.Assign MessageIdTBM

The client generates the messageId for the message by incrementing a sequence counter.

3.Send UploadTrackData MessageTBMUploadTrackData/PERF/${iot:ClientId}

The client populates the UploadTrackData Message with the required elements and publishes to the PERFORMANCE topic.

4.1Process MessageSDP

The SDP processes the message and generates an ACK Message with the status and assign correct correlationId.

4.2.Assign correlationIDSDP

Assign correct correlationId.

5send AckMessageSDPAckMessage/PERF/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received UploadTrackData Message.

6Process AckMessageTBM

The client process AckMessage.

UploadTrackData

This message is to upload the track Data.

UploadTrackData Example Message:

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 } } } }

FieldTypeLabelDescription
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.

UploadTrackData.Timers

FieldTypeLabelDescription
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.

UploadTrackData.Timers.TimerTypeEnum

NameNumberDescription
REACTION_TIME 0

Current reaction times.

REACTION_TIME_LAST 1

Previous reaction times.

REACTION_TIME_BEST 2

The best recorded reation times.

UploadTrackData.Timers.TimerEnum

NameNumberDescription
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.

UploadTrackData.Timers.UnitsEnum

NameNumberDescription
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.

UploadTrackData.Timers.TimerValue

FieldTypeLabelDescription
timer UploadTrackData.Timers.TimerEnum optional

Indicates the specific timer.

units UploadTrackData.Timers.UnitsEnum optional

Units of the value.

value float optional

Recorded value.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_PHEV.proto (Version 1.0)

The proto is to for PHEV(Plug in Hybrid Electric Vehicles).

Change Log

VersionDateNotes
1.52018-10-19Added ChargeScheduleEnable
1.42017-11-2Added Response Enumerations to the ChargeDataPublish
1.32017-11-2Added ChargeDataRequest and ChargeDataPublish, added BatteryVoltage to ChargeData
1.22017-11-2Update to Proto3
1.12017-06-15Added CommandMark and DatacollectionTimestamp
1.02017-06-15Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/PHEV
Cloud receive from VehicleSubscribefcasdp/PHEV/#
Vehicle send to Cloud Publishfcasdp/PHEV/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

ChargeNowRequest

PHEVData Example Message:

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 } }

FieldTypeLabelDescription
chargeCommand ChargeNowRequest.ChargeCommandEnum optional

ChargeNowRequest.ChargeCommandEnum

NameNumberDescription
START_CHARGE 0

STOP_CHARGE 1

ChargeNowResponse

FieldTypeLabelDescription
response ChargeNowResponse.ResponseEnum optional

isTransient bool optional

Indicates a transient error and a retry can be attempted.

failureReasonCode int32 optional

Specific error code.

ChargeNowResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

UNPLUGGED_FAILURE 1

Vehicle Is Not Plugged in

FAILURE 2

General FAILURE

ChargeDataRequest

bytes serviceRequestID = 1;

FieldTypeLabelDescription

ChargeDataPublish

FieldTypeLabelDescription
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

response ChargeDataPublish.ResponseEnum optional

ChargeDataPublish.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

UNPLUGGED_FAILURE 1

Vehicle Is Not Plugged in

FAILURE 2

General FAILURE

VEHICLE_DATA_NOT_AVAILABLE 3

ChargeDataPublish.ChargeStatusEnum

NameNumberDescription
NOT_CHARGING 0

CHARGING 1

CHARGE_INTERRUPT 2

CHARGE_FAULT 3

CHARGE_COMPLETE 4

SNA 5

ChargeDataPublish.PublishEventEnum

NameNumberDescription
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

ChargeDataPublish.VoltageEnum

NameNumberDescription
DEFAULT 0

LEVEL_1 1

LEVEL_2 2

ChargeDataPublish.Range

FieldTypeLabelDescription
estimatedRange int32 optional

This is the estimated electric Range

totalRange int32 optional

TotalRange is the Hybrid Range including fuel

ChargeDataPublish.PlugStatus

FieldTypeLabelDescription
isPluggedIn bool optional

chargeLevel ChargeDataPublish.ChargeLevel optional

ChargeDataPublish.ChargeLevel

FieldTypeLabelDescription
chargeLevel ChargeDataPublish.VoltageEnum optional

EstimatedTimeToCharge_LEV1 string optional

EstimatedTimeToCharge_LEV2 string optional

UpdateChargeSchedule

FieldTypeLabelDescription
updatedChargeSchedules ChargeSchedule repeated

ChargeSchedule

FieldTypeLabelDescription
enableChargeSchedule ChargeSchedule.EnableChargeScheduleType optional

scheduleType ChargeSchedule.ScheduleTypeEnum optional

chargeUntilFull bool optional

scheduleStartTime int32 optional

Expressed as 00:00:00 to 23:00:00

scheduleEndTime int32 optional

Expressed as 00:00:00 to 23:00:00

ChargeSchedule.ScheduleTypeEnum

NameNumberDescription
WEEKDAY 0

WEEKEND 1

ChargeSchedule.EnableChargeScheduleType

NameNumberDescription
DEFAULT 0

ENABLE_SCHEDULE 1

DISABLE_SCHEDULE 2

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_POISearch.proto (Version 1.0)

This API supports the POI Search Requests.

Change Log

VersionDateNotes
1.22017-11-2Update to Proto3
1.02017-10-12Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/POIS
Cloud receive from VehicleSubscribefcasdp/POIS/#
Vehicle send to Cloud Publishfcasdp/POIS/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the HU and the SDP:

SequenceTitleRoleMessageTopicDescription
1.POISearch EventHU

The in-vehicle activation event which triggers the client device to send an Activation Request to the SDP.

2.Assign MessageIdHU

The client generates the messageId for the message by incrementing a sequence counter.

3.Send POISearchRequest MessageHUPOISearchRequest/POIS/${iot:ClientId}

The client populates the ActivationRequest Message with the required elements and publishes to the activation topic.

4.Process MessageSDP

The SDP processes the message and generates an ActivationResponse Message with the status and assign correct correlationId.

5.Send ActiviationResponse MessageSDPActivationResponse${iot:ClientId}/POIS

The service publishes the response message to the activation topic for the client to receive.

6.Process MessageHU

The client receives the message and verifies the correlationId is correct.

7.Provisioning EventSDP

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 MessageSDP

ProvisioningPush

${iot:ClientId}/PRVIThe service publishes the push message to the activation topic for the client to receive.

9.Process MessageHU

The client receives the message and verifies the correlationId is correct.

10.Send ProvisioningPushAck MessageHUProvisioningPushAck/PRVI/${iot:ClientId}

The client acknowledges the ProvisioningPush Message with the ProvisioningPushAck Message publishes to the Provisioning topic.

11.Process MessageSDP

The SDP processes the message .

POISearchRequest

This message represents POISearchRequest.

POISearchRequest Example Message:

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" } } }

FieldTypeLabelDescription
poi PointOfInterest optional

POISearchResponse

This message is in response to POISearchRequest.

POISearchResponse Example Message:

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"

}] } }

FieldTypeLabelDescription
poiList PointOfInterest repeated

list of points of interest

POISearchDestinationRequest

This message represents POISearchDestinationRequest.

POISearchDestinationRequest Example Message:

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" } } }

FieldTypeLabelDescription
destinationPOI PointOfInterest optional

Point of Interest request data

POISearchDestinationResponse

This message is in response to POISearchDestinationRequest.

POISearchDestinationResponse Example Message:

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" } } } }

FieldTypeLabelDescription
destination Destination optional

destination message element

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_PrivacyMode.proto (Version 1.0)

This API supports the Privacy Mode.

Change Log

VersionDateNotes
1.02018-06-18Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/PM/
Cloud receive from VehicleSubscribefcasdp/PM/#
Vehicle send to Cloud Publishfcasdp/PM/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

PrivacyModeRequest

This message represents PrivacyModeRequest of vehicle for Privacy Mode settings.

PrivacyModeRequest Example Message:

timestamp: 1489632211020

messageId: 1

messages

{

[com.fca.uconnect.global.PrivacyModeRequest]

{

action: SUBSCRIBE

serviceRequestId:"-\0274\302]\325\324 \354K"

PrivacyModeRequest

{

command: ENTER

}

}

}

FieldTypeLabelDescription
serviceRequestId bytes optional

ServiceRequestId assigned by the SDP

privacyMode PrivacyModeRequest.PrivacyModeEnum optional

Turn on or off the inhibit of the vehicle start

PrivacyModeRequest.PrivacyModeEnum

NameNumberDescription
ENTER 0

EXIT 1

PrivacyModeResponse

FieldTypeLabelDescription
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.

PrivacyModeResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

FAILED 1

FAILED

PrivacyModeNotification

FieldTypeLabelDescription
PrivacyModeStatus PrivacyModeNotification.PrivacyModeStatusEnum optional

PrivacyModeNotification.PrivacyModeStatusEnum

NameNumberDescription
ACTIVE 0

NOT_ACTIVE 1

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_Provision.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.172018-05-25Add DRM Hash Field
1.162017-11-2Removed unused messages, keeping only byte message
1.152017-11-2Update to Proto3
1.142017-09-27Update ProvisioningResponse and ProvisioningPushAck.
1.132017-09-20Added ReasonEnum to Provisioning Request, added Services back to ProvisioningPush .
1.122017-08-11Added ProvisioningPushAck Message.
1.112017-08-07modified BIMDPSK structure.
1.102017-06-30moved drmFile to COMMON.Drm.
1.92017-06-30added drmFile to ProvisioningPush.Drm.
1.82017-06-30Moved msisdn,imei,imei,iccid,tbmSerialNum,tbmFirmwareVersion,huSerialNum,huFirmwareVersion to Common Proto.
1.72017-06-20Added fields for Signature correlation Message to ProvisioningPush.
1.62017-06-16Added msisdn,imei,imei,iccid,tbmSerialNum,tbmFirmwareVersion,huSerialNum,huFirmwareVersion to ProvisioningRequest,added operationEnum & RegistrationStatusEnum to ProvisioningPush.
1.52017-04-18Added InitiateProvisioningPush Message and ConnectedVehicle service type
1.42017-04-18Added keyvalue Pair in Provisioning Request for modemId,TBM&HU Serial Number Firmware Version and other Ids.
1.32017-04-03Added Status to ServiceSubscriptionInfo
1.22017-03-31Added Key-value element to ServiceSubscriptionInfo
1.12017-03-03Signature extracted to Global_Uconnect_Ext_Signature.proto
1.02017-02-14Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/PRVI
Cloud receive from VehicleSubscribefcasdp/PRVI/#
Vehicle send to Cloud Publishfcasdp/PRVI/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM/HU and the SDP:

SequenceTitleRoleMessageTopicDescription
1.Send InitiateProvisioningPush MessageSDPInitiateProvisioningPush${iot:ClientId}/PRVI

The in-vehicle Provisioning event which triggers the client device to send a ProvisioningRequest to the SDP.

2.ProvisioningEventTBM/HU

The in-vehicle Provisioning event which triggers the client device to send a ProvisioningRequest to the SDP.

3.Assign MessageIdTBM/HU

The client generates the messageId for the message by incrementing a sequence counter.

4.Send ProvisioningRequest MessageTBM/HUProvisioningRequest/PRVI/${iot:ClientId}

The client populates the ProvisioningRequest Message with the elements and publishes to the Provisioning topic.

5.Process MessageSDP

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 MessageSDPProvisioningResponse${iot:ClientId}/PRVI

The service publishes the response message to the Provisioning topic for the client to receive.

7.Process MessageTBM/HU

The client receives the message and verifies the correlationId matches the messageId of the sent request.

8.Send ProvisioningPush MessageSDP

ProvisioningPush

${iot:ClientId}/PRVIOnce 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 MessageTBM/HU

The client receives the message and verifies the correlationId matches the messageId of the initially sent request.

10.Send ProvisioningPushAc0k MessageTBM/HUProvisioningPushAck/PRVI/${iot:ClientId}

The client acknowledges the ProvisioningPush Message with the ProvisioningPushAck Message publishes to the Provisioning topic.

11.Process MessageSDP

The SDP processes the message .

InitiateProvisioningPush

This message is to initiate a New Registration from SDP.

InitiateProvisioningPush Example Message:

timestamp: 1488743306361 messageId: 2 messages { [com.fca.uconnect.global.initiateProvisioningPush] {

} }

FieldTypeLabelDescription
parameters InitiateProvisioningPush.ParametersEntry repeated

InitiateProvisioningPush.ParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

ProvisioningRequest

FieldTypeLabelDescription
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

ProvisioningRequest.ReasonEnum

NameNumberDescription
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

ProvisioningRequest.AdditionalModemParamsEntry

FieldTypeLabelDescription
key string optional

value string optional

ProvisioningResponse

This message is sent as response to ProvisionRequest.

ProvisioningResponse Example Message:

timestamp: 1488746450628 messageId: 101 correlationId: 301 messages { provisioningResponse { responseEnum: SUCCESS } }

FieldTypeLabelDescription
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.

ProvisioningResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Response successful for provisioning.

FAILURE 1

Response failure for provisioning.

ProvisioningPush

This is for asynchronously pushing the provisioning with services and/or BIMDPSKInfo.

ProvisioningPush Example Message:

timestamp: 1488828296489 messageId: 102 correlationId: 301 messages { provisioningPush { drm { drmFile:"fgnbooe8y73nfmlsi0iufnjej876reef==" } } }

FieldTypeLabelDescription
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.

ProvisioningPushAck

This message is to acknowledge ProvisioningPush message .

ProvisioningPushAck Example Message:

timestamp: 1488828296500 messageId: 302 correlationId: 102 messages { provisioningPushAck { response:SUCCESS } }

FieldTypeLabelDescription
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.

ProvisioningPushAck.ProvisioningPushResponseEnum

NameNumberDescription
SUCCESS 0

FAILURE 1

ServiceDescription

** * This Message represents the Service name and expiration time that Service is going to expire */

FieldTypeLabelDescription
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

expireTimeSpanBegin int64 optional

DRM expiration Time Begin

expireTimeSpanEnd int64 optional

DRM Time Span End

emailId string optional

Email ID

ServiceDescription.ServiceTypeEnum

NameNumberDescription
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.

ServiceDescription.Status

NameNumberDescription
INACTIVE 0

Service is not active.

ACTIVE 1

Service is active.

ServiceDescription.AdditionalParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

ServiceSubscriptionInfo

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.

ServiceSubscriptionInfo Example Message:

timestamp: 1488746451561 messageId: 4 messages { [com.fca.uconnect.global.serviceSubscriptionInfo] { services { serviceType: ECALL expireTime: 1234567890 } services { serviceType: REMOTEENGINESTART expireTime: 1234567890 } } }

FieldTypeLabelDescription
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.

BIMDPSKInfo

This is for Authentication

FieldTypeLabelDescription
deviceKeys BIMDPSKInfo.BIMDPSK repeated

BIMDPSKInfo.BIMDPSK

FieldTypeLabelDescription
mobileDeviceId string optional

Device id for Mobile.

preSharedKey bytes optional

Repeated keys.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_RemoteInhibits.proto (Version 1.0)

This API supports the Remote Operations.

Change Log

VersionDateNotes
1.22018-08-15Changed CrankAttempted boolean to isCrankAttempted
1.02018-06-18Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/RI/${AppID}
Cloud receive from VehicleSubscribefcasdp/RI/${AppID}/#
Vehicle send to Cloud Publishfcasdp/RI/${AppID}/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}#/

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.Send RemoteInhibitRequest MessageSDP

The SDP request TBM for Remote Inhibit.

2Process Message and assign correlation IDTBM

The message is processed and the correlationID is assigned for the response

3Send RemoteInhibitResponse MessageTBM

The TBM sends a success or failure message back to the SDP.

4Inhibit EventTBMThe TBM monitors for the specific remote inhibit on the CAN and when it is applied an event is triggered

5CrankAttemptedNotificationTBM

The client sends a message to the SDP notifying that engine start was attempted while inhibited

6.Process MessageSDP

The Service receives the message and verifies the correlationId matches the messageId of the sent request.

9.send AckMessageSDPAckMessage/RO/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received CrankAttemptedNotification

10.Process AckMessageTBM

The client process AckMessage.

RemoteInhibitRequest

This message represents RemoteOperationRequest of vehicle for Remote Operations.

RemoteOperationRequest Example Message:

timestamp: 1489632211020 messageId: 1 messages { [com.fca.uconnect.global.remoteInhibitRequest] { action: SUBSCRIBE serviceRequestId:"-\0274\302]\325\324 \354K" remoteInhibitRequest { command: CRANK_INHIBIT

} } }

FieldTypeLabelDescription
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

RemoteInhibitRequest.CrankInhibitEnum

NameNumberDescription
END_INHIBIT 0

INHIBIT 1

RemoteInhibitRequest.EngineSlowEnum

NameNumberDescription
EXIT_SLOW 0

SLOW 1

RemoteInhibitResponse

FieldTypeLabelDescription
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.

RemoteInhibitResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Success

FAILED 1

FAILED

CrankAttemptedNotification

FieldTypeLabelDescription
isCrankAttempted bool optional

location Location optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_RemoteOp.proto (Version 1.0)

TThis API supports the Remote Operations

Change Log

VersionDateNotes
1.12018-06-18Removed Inhibits
1.02018-06-18Release of initial Proto

List of MQTT Topics

The ${AppTopic} defines which app is being addressed i.e. SVL or FTD

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/RO
Cloud receive from VehicleSubscribefcasdp/RO
Vehicle send to Cloud Publishfcasdp/RO/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.RemoteOperations EventSDP

The SDP request TBM for Remote Operation Event.

2.1Assign MessageIdSDP

The Service generates the messageId for the message by incrementing a sequence counter.

2.2Assign ServiceIdSDP

The SDP generates ServiceId for the message with Random UUID for Sending Remote Operation Messages.

3.Send RemoteOperationRequest MessageSDPRemoteOperationRequest/RO/${iot:ClientId}

The Service populates the RemoteOperationRequest Message with the elements and publishes to the RO topic.

4.Process MessageTBM

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 MessageTBMRemoteOperationResponse${iot:ClientId}/RO

The Client publishes the response message to the RO topic for the Service to receive.

6.Process MessageSDP

The Service receives the message and verifies the correlationId matches the messageId of the sent request.

7_1Send RemoteOperationResponse [Success] MessageTBMRemoteOperationStatus${iot:ClientId}/RO

The Client publishes the Status message to the RO topic for the Service to receive.

7_2Send RemoteOperationResponse [Failure MessageTBMRemoteOperationStatus${iot:ClientId}/RO

The Client publishes the Status message to the RO topic for the Service to receive.

8.Assign correlationIDSDP

Assign correct correlationId.

9.send AckMessageSDPAckMessage/RO/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received RemoteOperationStatus Message.

10.Process AckMessageTBM

The client process AckMessage.

RemoteOperationRequest

This message represents RemoteOperationRequest of vehicle for Remote Operations.

RemoteOperationRequest Example Message:

timestamp: 1489632211020 messageId: 1 messages { [com.fca.uconnect.global.remoteOperationRequest] { action: SUBSCRIBE serviceRequestId:"-\0274\302]\325\324 \354K" remoteDoorRequest { command: UNLOCK_DRIVER

} } }

FieldTypeLabelDescription
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

RemoteOperationRequest.ActionEnum

NameNumberDescription
NO_ACTION 0

No Action

SUBSCRIBE 1

Subscribe

RemoteHornAndLightsRequest

This message represents RemoteHornAndLights Operation of the vehicle .

RemoteHornAndLightsRequest Example Message:

timestamp: 1489632211020 messageId: 1 messages { [com.fca.uconnect.global.remoteOperationRequest] { action: SUBSCRIBE remoteDoorRequest { command: UNLOCK_DRIVER duration: 0 } } }

FieldTypeLabelDescription
command RemoteHornAndLightsRequest.CommandEnum optional

command element

duration int32 optional

duration of execution - not used in this release

RemoteHornAndLightsRequest.CommandEnum

NameNumberDescription
HORN_AND_LIGHTS 0

Activate Horns and Lights

RemoteEngineRequest

FieldTypeLabelDescription
command RemoteEngineRequest.CommandEnum optional

command element

duration int32 optional

duration of execution

RemoteEngineRequest.CommandEnum

NameNumberDescription
START 0

Execute a Remote Start

STOP 1

End a Remote Start

RemoteDoorRequest

FieldTypeLabelDescription
command RemoteDoorRequest.CommandEnum optional

RemoteDoorRequest.CommandEnum

NameNumberDescription
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

RemoteWindowRequest

FieldTypeLabelDescription
command RemoteWindowRequest.CommandEnum optional

command element

RemoteWindowRequest.CommandEnum

NameNumberDescription
OPEN 0

Open Window

PARTIAL 1

Partially Open Window

CLOSE 2

Close Window

RemoteClimateRequest

FieldTypeLabelDescription
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

RemoteClimateRequest.CommandEnum

NameNumberDescription
ON 0

On

OFF 1

Off

RemoteClimateRequest.TemperatureEnum

NameNumberDescription
Celsius 0

Celsius

Fahrenheit 1

Fahrenheit

RemoteOperationResponse

This message represents Response to Remote Operation of the vehicle .

RemoteOperationResponse Example Message:

timestamp: 1489633266061 messageId: 1 correlationId: 1 messages { [com.fca.uconnect.global.remoteOperationResponse] { response: SUCCESS serviceRequestId: "-\0274\302]\325\324 \354K" } }

FieldTypeLabelDescription
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.

RemoteOperationResponse.ResponseEnum

NameNumberDescription
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

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_RoadSideAssist.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.92018-10-20Added Call Center Type for UpdatePhone Numbers (used only by back end)
1.82018-09-20Added RequestPhoneNumbers changed ASOS to ASOS_NON_IMPACT
1.72018-05-08Added Specific CallOuts for ASOS and SOS
1.62018-05-08Added UpdateRSAPhoneNumbers
1.62018-05-08Added VehicleDataRequest operation per assembla ticket 441
1.52018-04-20Added callCenterNumber to the RSADataUpload message per Assembla ticket 252
1.42017-11-2Update to Proto3
1.32017-09-20Added ACK Message and additional Enum fields to BcallStatus.
1.22017-04-19Added BcallStatusUpdate message.
1.12017-04-18Added extra fields for language,stateofCharge,odometer,cruiserange,nextServiceIntervalinDays,distanceRemainingForNextService and odometerUnits.
1.02017-03-15Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/RSA
Cloud receive from VehicleSubscribefcasdp/RSA/#
Vehicle send to Cloud Publishfcasdp/RSA/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.RoadSideAssist EventTBM

The in-vehicle RoadSideAssist event which triggers the client device to send an RSA Data to the SDP.

2.Assign MessageIdTBM

The client generates the messageId for the message by incrementing a sequence counter.

3.Send RSADataUpload MessageTBMRSADataUpload/RSA/${iot:ClientId}

The client populates the RSADataUpload Message with the required elements and publishes to the RSA topic.

4Process MessageSDP

The SDP processes the message and proceed accordingly.

5.Assign correlationIDSDP

Assign correct correlationId.

6.send AckMessageSDPAckMessage${iot:ClientId}/RSA

The SDP sends AckMessage to acknowledge that it received RSADataUpload Message.

7.Process AckMessageTBM

The client process AckMessage.

8_1Cancel 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_2Send BCallStatusUpdate messageTBMBCallStatusUpdate/RSA/${iot:ClientId}

The client populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic.

8_3TimeOut Waiting for CancelSDP

The vehicle times out waiting for cancel.

8_4Send BCallStatusUpdate messageTBMBCallStatusUpdate/RSA/${iot:ClientId}

The client populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic.

8_5Send BCallStatusUpdate messageSDPBCallStatusUpdate/RSA/${iot:ClientId}

The SDP populates the BCallStatusUpdate Message with the required elements and publishes to the RSA topic.

8_6Fail BCallStatusUpdate messageTBM/SDPBCallStatusUpdate/RSA/${iot:ClientId}

The BCallStatusUpdate Message with the required elements is published to the RSA topic, it fails to be processed.

9. Process MessageSDP

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/SDPAckMessage${iot:ClientId}/RSA

The TBM or SDP sends AckMessage to acknowledge that it received RSADataUpload Message.

0_1BCall Data Query EventSDP

The SDP can continuously request client for BCall Data through VehDataRequest.

10_2Send VehDataRequest MessageSDPVehDataRequest${iot:ClientId}/RSA

The SDP publishes the response message to the RSA topic for the client to receive.

10_3.Process MessageTBM

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 MessageTBM

RSADataUpload

/RSA/${iot:ClientId}The Client populates the RSADataUpload message to the RSA topic for the SDP to receive.

10_5.Process MessageSDP

The SDP receives the message and verifies the data and proceed accordingly.

RSADataUpload

FieldTypeLabelDescription
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

RSADataUpload.CallTrigger

NameNumberDescription
MANUAL 0

AUTOMATIC 1

ONDEMAND 2

RSADataUpload.CallReason

NameNumberDescription
DEFAULT 0

ENGINEOILTEMP 1

WATERINFUEL 2

BRAKEINDICATOR 3

BRAKEPADINDICATOR 4

LOWBREAKFLUID 5

BREAKPEDALFAULT 6

RSADataUpload.CallType

NameNumberDescription
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

RSADataUpload.ErrorTellTale

This message is to define any error Tell Tale signs

FieldTypeLabelDescription
isOilPressure bool optional

This is for Oil Tell-tale Sign.

BCallStatusUpdate

This message is to update the status of the BCall.

BCallStatusUpdate Example Message:

timestamp: 1489600243281

messageId: 2

messages

{

[com.fca.uconnect.global.bcallStatusUpdate]

{

bcallStatusEnum: DIAL

}

}

FieldTypeLabelDescription
bcallStatusEnum BCallStatusUpdate.BCallStatusEnum optional

BCallStatusUpdate.BCallStatusEnum

NameNumberDescription
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.

RSAVehicleDataRequest

FieldTypeLabelDescription
vehicleDataRequest ECallVehDataRequest optional

Requests the vehicle data

RSAVehicleDataResponse

FieldTypeLabelDescription
vehicleDataUpload RSADataUpload optional

Returns the requested vehicle data

UpdateRSAPhoneNumbers

FieldTypeLabelDescription
PhoneList bytes optional

Deprecated

raPhoneListMessages RAPhoneListMessage repeated

repreated structure providing details for each phone number that requires updating

RAPhoneListMessage

FieldTypeLabelDescription
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

RAPhoneListMessage.CallCenterType

NameNumberDescription
BRAND 0

ROADSIDE 1

GUARDIAN 2

UCONNECT 3

CONCIERGE 4

IVA_CALL 5

RAPhoneListMessage.CallType

NameNumberDescription
Assist1 0

Assist2 1

Assist3 2

Assist4 3

IVA 4

ASOS_NON_IMPACT 5

RequestRSAPhoneNumbers

FieldTypeLabelDescription
raPhoneListMessages RAPhoneListMessage repeated

Sends the current vehicle phone list for comparison with SDP list for the vehicles current profile.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_SendAndGo.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.52018-06-01Added ServiceRequestID, removed Repeated from Destination field
1.42018-05-29Added POI and Address per Assembla 455
1.32017-11-2Update to Proto3
1.22017-09-27Update DestinationPushResponse.
1.12017-04-12Added DestinationPushResponse and removed MAPDBVariant.
1.02017-03-19Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/SDTC
Cloud receive from VehicleSubscribefcasdp/SDTC/#
Vehicle send to Cloud Publishfcasdp/SDTC/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the HU and the SDP:

SeqTitleRoleMessageTopicDescription
1.Send Destination to Vehicle EventSDP

The SDP triggers SendDestinationToCar event which triggers DestinationPush to the Client.

2.Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

3.Send DestinationPush MessageSDPStolenModeChangeRequest${iot:ClientId}/SDTC

The SDP populates the DestinationPush Message with the required elements and publishes to the SendDestinationToCar topic.

4.Process MessageHU

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 MessageHUDestinationPushResponse/SDTC/${iot:ClientId}

The TBM publishes the response message to the SendDestinationToCar topic for the SDP to receive.

6.Process MessageSDP

The SDP receives the message and verifies the correlationId matches the messageId of the sent request.

DestinationPush

This message represents list of Destinations that User Can push to the Vehicle.

DestinationPush Example Message:

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 } } }

FieldTypeLabelDescription
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

DestinationPushResponse

FieldTypeLabelDescription
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

DestinationPushResponse.ResponseEnum

NameNumberDescription
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

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_Signature.proto (Version 1.0)

This is for validation and protection for all the messages that are stored in TU.

Change Log

VersionDateNotes
1.42018-05-20Updates from Security Team added certificateChain
1.32017-11-2Update to Proto3
1.12017-07-10Added CertificateChain and unsignedData
1.02017-02-14Release of initial Proto

Signature

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.

Signature Example Message:

timestamp: 1489208951716 messageId: 3 messages { [com.fca.uconnect.global.signature] { signatureId:11 signatureType: "RSA CERT" signatureValue: "put x509 cert here" } }

FieldTypeLabelDescription
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

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_SQDF.proto (Version 1.0)

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

VersionDateNotes
1.162018-09-26Small change to vehicle subscription topic (SQDF instead of #)
1.152018-09-18Added SRS_LAMP_STAT Added ResponseIDHex and CANFRAMEHEX to ECUData
1.142018-08-18Change FAILED Enum in CommandStatus from 5 to 2. ServiceEnum Default changed to default1
1.132018-06-18Replaced command Status with ServiceName and moved Enums in ServiceName to make a null default
1.122018-06-18Added DTCScanEndTimeStamp
1.112018-05-16UAdded new fields per assembla 448 and removed fields from DataLog per 449
1.102018-05-10Added version to SQDFData per Assembla ticket 442 and added new descriptions per 406,407, 408, 409, 410
1.92018-04-25Removed Afsts from VehicleData object per assmebla ticket 395
1.82018-04-05Changes per assembla tickets 322, 323, 324
1.72017-10-06Add EV elements to VehicleInfo.
1.62017-08-07Updated Histogram and DataLog elements.
1.52017-07-26Updated SQDF Data with SGWData and added additional fields.
1.42017-07-24Moved SQDFParameters to VehSync,removed DTCTrigger
1.32017-07-20Added DTCScanData Content Message
1.22017-07-17Added Vehicle Data message ,HistogramData and added additional SQDF parameters
1.12017-07-11Changed policy SubcriptionId to Bytes
1.02017-03-10Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/SQDF
Cloud receive from VehicleSubscribefcasdp/SQDF/#
Vehicle send to Cloud Publishfcasdp/SQDF/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/SQDF

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.22017-11-2Added Afsts, TXWarn1, TXwarn2,EngCoolTemp, and New Histor IDS for Outputspeed, TripCount, TripTime
1.12017-11-2Update to Proto3
1.0Send SQDFPublishTBMSQDFPublish/SQDF/${iot:ClientId}

The SQDF Event publishes SQDFPublish Message.

2.1Process MessageSDP

The SDP processes the message.

2.2.Assign correlationIDSDP

Assign correct correlationId.

3.send AckMessageSDPAckMessage/SQDF/${iot:ClientId}

The SDP sends AckMessage to acknowledge that it received SQDFPublish Message.

4.Process AckMessageTBM

The client process AckMessage.

5.PHEVEventSDP

The SQDFRequest Event which triggers the SDP device to send a SQDFRequest to the TBM.

6.Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

7.Send SQDFRequest MessageSDPPHEVData${iot:ClientId}/SQDF

The SDP populates the SQDFRequest Message with the required elements and publishes to the SQDF topic.

8.Process MessageTBM

The TBM processes the message.

9.Assign correlationIDTBM

Assign correct correlationId.

10.send SQDFResponseTBMAckMessage/SQDF/${iot:ClientId}

The TBM sends SQDFResponse with SQDFData in it .

11.Process ResponseSDP

The SDP process Response Message.

SQDFPublish

FieldTypeLabelDescription
data SQDFData optional

SQDFResponse

FieldTypeLabelDescription
data SQDFData optional

status SQDFResponse.SQDFCommandStatus optional

failureReasonCode int32 optional

SQDFResponse.SQDFCommandStatus

NameNumberDescription
DEFAULT 0

SUCCESS 1

FAILED 5

SQDFRequest

FieldTypeLabelDescription
serviceName ServiceNameEnum optional

Upload type trigger

command SQDFRequest.SQDFCommand repeated

For future use

SQDFRequest.SQDFCommand

NameNumberDescription
DEFAULT 0

SendData 1

GCD data

DoQuickScan 2

QuickScan dataset

DoDTCScan 3

DTCScan dataset

DoHistogram 4

Histogram dataset

DODATALOGCOMP 5

Datalog dataset

SGWLOGSCOMP 6

SGWLogs dataset

VehicleData

This message is to define Key Vehicle Information which includes vehicleConfiguration parameters and parameters that are monitored continuously

This message is depricated as of version 2.5

FieldTypeLabelDescription
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

VehicleData.RequestState

NameNumberDescription
NSPD 0

PSD 1

NDEF 2

R_SNA 3

Signal Not Available

VehicleData.ChargeSystemFailEnum

NameNumberDescription
FALSE 0

Inactive

TRUE 1

Active

SNA 2

Signal not available

VehicleData.StateEnum

NameNumberDescription
STATE_ZERO 0

STATE_ONE 1

STATE_TWO 2

STATE_THREE 3

STATE_SEVEN 7

VehicleData.MaintenanceStateEnum

NameNumberDescription
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

VehicleData.DistanceUnitsEnum

NameNumberDescription
MILES 0

KILOMETERS 1

VehicleData.LampStateEnum

NameNumberDescription
ZERO 0

OFF

ONE 1

Continuous On

TWO 2

Blinking

THREE 3

SNA, Signal not available

SQDFData

FieldTypeLabelDescription
version string optional

Application version "MAV.SUV.PAV" MAV - Main Version (1 byte decimal), SUV - Sub Version (1 byte decimal), PAV - Patch Version (1 byte decimal) example: 0.0.1"

vehicleId string optional

Vehicle Identification Number

eventId string optional

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

This is Epoch time and must be converted by backend to SQDF required format

uploadVehicleLocation Location optional

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.

histogramJsonDataString string optional

Support legacy approach for passing through Histogram data in JSON string.

datalogJsonData bytes optional

Support legacy approach for passing through DataLog data in JSON format.

datalogJsonDataString string optional

Support legacy approach for passing through DataLog data in JSON string.

SQDFData.SGWData

FieldTypeLabelDescription
ecuData SQDFData.ECUData optional

monthlyPayload int32 optional

uploadDayOfMonth int32 optional

uploadTimestamp int64 optional

gatewayLogs bytes optional

gatewayLogsHex string optional

gateway logs in HEX string

idsLogs bytes optional

idsLogsHex string optional

ids logs HEX string

SQDFData.GenericData

A set of data values collected in response to a SQDFRequest with a command of SQDFCommand.SendData..

GenericData Example for SQDF.GenericData

timestamp: 1489075048380

messageId: 0

messages

{

[com.fca.uconnect.global.sQDFData] {

vehicleId:

}

}

FieldTypeLabelDescription
vehicleData VehicleData optional

depricated

gcdVehicleData SQDFData.GCDVehicleData optional

GCD vehicle data

SQDFData.ECUData

FieldTypeLabelDescription
ecuId string optional

type SQDFData.ECUData.CanType optional

responseId int32 optional

depricated

responseIDHex string optional

response ID in Hex string

canFrame bytes optional

Depricated

canFrameHex string optional

CanFrame in Hex String

SQDFData.ECUData.CanType

NameNumberDescription
DEFAULT 0

CCAN 1

BHCAN_OR_I_CAN 2

C1_CAN 3

C2_CAN 4

SQDFData.QuickScan

FieldTypeLabelDescription
ODO int32 optional

deprecated.

ODOf float optional

Odometer as float value

scanVehicleLocation Location optional

scanTimestamp int64 optional

ecuData SQDFData.ECUData repeated

SQDFData.DTCScan

The data generated by a DTCScan.

GenericData Example for SQDF.GenericData policy

timestamp: 1489075048380

messageId: 0

messages

{

[com.fca.uconnect.global.sQDFData] {

vehicleId:

}

}

FieldTypeLabelDescription
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

depricated

dtcVehicleData SQDFData.DTCVehicleData optional

dtcScanECUData SQDFData.ECUData repeated

scanVehicleLocation Location optional

SQDFData.DTCScan.DTCTrigger

FieldTypeLabelDescription
trigger SQDFData.DTCScan.DTCTrigger.DTCTriggerType optional

name string optional

SQDFData.DTCScan.DTCTrigger.DTCTriggerType

NameNumberDescription
DEFAULT 0

ECU 1

LAMP 2

ECU_SWAP 3

SQDFData.Histogram

Histogram Ids

IdName
1EngTrq_Rq_ESC
2BATT_VOLT
3AvgFuelLvl
4EngRPM
5VEH_SPEED
6IGN_OFF_TIME_LNG
7INST_FUEL_ECO
8AMB_TEMP_AVG_F
9Gr
10TirePressFL
11TirePressFR
12TirePressRL
13TirePressRR
14TirePressRL2
15TirePressRR2
16EngCoolTemp
17DRV_SEATBELT
18PSG_SEATBELT
19E_Mode_Sts
20EngLoad
21IBS_V_BATT
22IBS_T_BATT
23EngineRunTime
24FL_HS_STAT
25FR_HS_STAT
26EngTrqStatic
27DAY_LGT_MD
28DriveStyleSts
29BoostPressureIndication
30RainSensorLvl
31PSG_AJAR
32DRV_AJAR
33R_R_AJAR
34L_R_AJAR
35TLG_AJAR
36CmdIgnSts
37AutoDfgStat
38FT_FOG_RQ
39AC_CLTCH_EGD
40MdsAct
41ActlAccelPdlPosn
42AccelPdlPosn
43VehPerfAccel_X
44VehPerfAccel_Y
45IBS_I_BATT
46FUEL_cons
47EngineStopTime
48SpStSwStat
49ESS_ENG_ST
50HardBrake
51MileBased
52SpStDispstat
53IBS_SOC
54HVBatSOC_HCP
55TCASE_STAT
56TCaseAWD_DrvMdRq
57SHFT_PROG
58CC_SetSpdDsplMPH
59CRUISE_EGD
100EngSpeedToEngineTorque_0to100rpm
101EngSpeedToEngineTorque_100to200rpm
102EngSpeedToEngineTorque_200to300rpm
103EngSpeedToEngineTorque_300to400rpm
104EngSpeedToEngineTorque_400to500rpm
105EngSpeedToEngineTorque_500to600rpm
106EngSpeedToEngineTorque_600to700rpm
107EngSpeedToEngineTorque_700to800rpm
108EngSpeedToEngineTorque_800to900rpm
109EngSpeedToEngineTorque_900to1000rpm
110EngSpeedToEngineTorque_1000to1100rpm
111EngSpeedToEngineTorque_1100to1200rpm
112EngSpeedToEngineTorque_1200to1300rpm
113EngSpeedToEngineTorque_1300to1400rpm
114EngSpeedToEngineTorque_1400to1500rpm
115EngSpeedToEngineTorque_1500to1600rpm
116EngSpeedToEngineTorque_1600to1700rpm
117EngSpeedToEngineTorque_1700to1800rpm
118EngSpeedToEngineTorque_1800to1900rpm
119EngSpeedToEngineTorque_1900to2000rpm
120EngSpeedToEngineTorque_2000to2100rpm
121EngSpeedToEngineTorque_2100to2200rpm
122EngSpeedToEngineTorque_2200to2300rpm
123EngSpeedToEngineTorque_2300to2400rpm
124EngSpeedToEngineTorque_2400to2500rpm
125EngSpeedToEngineTorque_2500to2600rpm
126EngSpeedToEngineTorque_2600to2700rpm
127EngSpeedToEngineTorque_2700to2800rpm
128EngSpeedToEngineTorque_2800to2900rpm
129EngSpeedToEngineTorque_2900to3000rpm
130EngSpeedToEngineTorque_3000to3100rpm
131EngSpeedToEngineTorque_3100to3200rpm
132EngSpeedToEngineTorque_3200to3300rpm
133EngSpeedToEngineTorque_3300to3400rpm
134EngSpeedToEngineTorque_3400to3500rpm
135EngSpeedToEngineTorque_3500to3600rpm
136EngSpeedToEngineTorque_3600to3700rpm
137EngSpeedToEngineTorque_3700to3800rpm
138EngSpeedToEngineTorque_3800to3900rpm
139EngSpeedToEngineTorque_3900to4000rpm
140EngSpeedToEngineTorque_4000to4100rpm
141EngSpeedToEngineTorque_4100to4200rpm
142EngSpeedToEngineTorque_4200to4300rpm
143EngSpeedToEngineTorque_4300to4400rpm
144EngSpeedToEngineTorque_4400to4500rpm
145EngSpeedToEngineTorque_4500to4600rpm
146EngSpeedToEngineTorque_4600to4700rpm
147EngSpeedToEngineTorque_4700to4800rpm
148EngSpeedToEngineTorque_4800to4900rpm
149EngSpeedToEngineTorque_4900to5000rpm
150EngSpeedToEngineTorque_5000to5100rpm
151EngSpeedToEngineTorque_5100to5200rpm
152EngSpeedToEngineTorque_5200to5300rpm
153EngSpeedToEngineTorque_5300to5400rpm
154EngSpeedToEngineTorque_5400to5500rpm
155EngSpeedToEngineTorque_5500to5600rpm
156EngSpeedToEngineTorque_5600to5700rpm
157EngSpeedToEngineTorque_5700to5800rpm
158EngSpeedToEngineTorque_5800to5900rpm
159EngSpeedToEngineTorque_5900to6000rpm
160EngSpeedToEngineTorque_6000to6100rpm
161EngSpeedToEngineTorque_6100to6200rpm
162EngSpeedToEngineTorque_6200to6300rpm
163EngSpeedToEngineTorque_6300to6400rpm
164EngSpeedToEngineTorque_6400to6500rpm
165EngSpeedToEngineTorque_6500to6600rpm
166EngSpeedToEngineTorque_6600to6700rpm
167EngSpeedToEngineTorque_6700to6800rpm
168EngSpeedToEngineTorque_6800to6900rpm
168EngSpeedToEngineTorque_6900to7000rpm
169EngSpeedToEngineTorque_7000toOrphanrpm
200MilesAtTransTorqueToGear_1
201MilesAtTransTorqueToGear_2
202MilesAtTransTorqueToGear_3
203MilesAtTransTorqueToGear_4
204MilesAtTransTorqueToGear_5
205MilesAtTransTorqueToGear_6
206MilesAtTransTorqueToGear_7
207MilesAtTransTorqueToGear_8
208MilesAtTransTorqueToGear_9
209MilesAtTransTorqueToGear_2ndPrime
210MilesAtTransTorqueToGear_R
211MilesAtTransTorqueToGear_R2
220MilesAtPedalPositionAndVehspd_0
221MilesAtPedalPositionAndVehspd_0-10
222MilesAtPedalPositionAndVehspd_10-20
223MilesAtPedalPositionAndVehspd_30-40
224MilesAtPedalPositionAndVehspd_40-50
225MilesAtPedalPositionAndVehspd_50-60
226MilesAtPedalPositionAndVehspd_60-70
227MilesAtPedalPositionAndVehspd_70-80
228MilesAtPedalPositionAndVehspd_80-90
229MilesAtPedalPositionAndVehspd_90-100
230MilesAtPedalPositionAndVehspd_100-110
231MilesAtPedalPositionAndVehspd_110-120
232MilesAtPedalPositionAndVehspd_120-130
233MilesAtPedalPositionAndVehspd_130-140
234MilesAtPedalPositionAndVehspd_140-150
235MilesAtPedalPositionAndVehspd_150-160
236MilesAtPedalPositionAndVehspd_160-170
237MilesAtPedalPositionAndVehspd_170-180
238MilesAtPedalPositionAndVehspd_180-190
240CountsSteeringAngle
260Miles_AtTransOilTemp-40to-35_vs_torque
261Miles_AtTransOilTemp-35to-30_vs_torque
262Miles_AtTransOilTemp-30to-25_vs_torque
263Miles_AtTransOilTemp-25to-20_vs_torque
264Miles_AtTransOilTemp-20to-15_vs_torque
265Miles_AtTransOilTemp-15to-10_vs_torque
266Miles_AtTransOilTemp-10to-5_vs_torque
267Miles_AtTransOilTemp-5to-0_vs_torque
268Miles_AtTransOilTemp0to5_vs_torque
269Miles_AtTransOilTemp5to10_vs_torque
270Miles_AtTransOilTemp10to15_vs_torque
271Miles_AtTransOilTemp15to20_vs_torque
272Miles_AtTransOilTemp20to25_vs_torque
273Miles_AtTransOilTemp25to30_vs_torque
274Miles_AtTransOilTemp30to35_vs_torque
274Miles_AtTransOilTemp35to40_vs_torque
275Miles_AtTransOilTemp40to45_vs_torque
276Miles_AtTransOilTemp45to50_vs_torque
277Miles_AtTransOilTemp50to55_vs_torque
278Miles_AtTransOilTemp55to60_vs_torque
279Miles_AtTransOilTemp60to65_vs_torque
280Miles_AtTransOilTemp65to70_vs_torque
281Miles_AtTransOilTemp70to75_vs_torque
282Miles_AtTransOilTemp75to80_vs_torque
283Miles_AtTransOilTemp80to85_vs_torque
284Miles_AtTransOilTemp85to90_vs_torque
285Miles_AtTransOilTemp90to95_vs_torque
286Miles_AtTransOilTemp95to100_vs_torque
287Miles_AtTransOilTemp100to105_vs_torque
288Miles_AtTransOilTemp105to110_vs_torque
289Miles_AtTransOilTemp110to115_vs_torque
290Miles_AtTransOilTemp115to120_vs_torque
291Miles_AtTransOilTemp120to125_vs_torque
292Miles_AtTransOilTemp125to130_vs_torque
293Miles_AtTransOilTemp130to135_vs_torque
294Miles_AtTransOilTemp135to140_vs_torque
295Miles_AtTransOilTemp140to145_vs_torque
296Miles_AtTransOilTemp145to150_vs_torque
297Miles_AtTransOilTemp150to155_vs_torque
298Miles_AtTransOilTemp155to160_vs_torque
299Miles_AtTransOilTemp160to165_vs_torque
300Miles_AtTransOilTemp165to170_vs_torque
301Miles_AtTransOilTemp170to175_vs_torque
302Miles_AtTransOilTemp175to180_vs_torque
303Miles_AtTransOilTemp180to185_vs_torque
304Miles_AtTransOilTemp185to190_vs_torque
305Miles_AtTransOilTemp190to195_vs_torque
306Miles_AtTransOilTemp195to200_vs_torque
307Miles_AtTransOilTemp200to205_vs_torque
320Time_AtTransOilTemp-40to-35_vs_torque
321Time_AtTransOilTemp-35to-30_vs_torque
322Time_AtTransOilTemp-30to-25_vs_torque
323Time_AtTransOilTemp-25to-20_vs_torque
324Time_AtTransOilTemp-20to-15_vs_torque
325Time_AtTransOilTemp-15to-10_vs_torque
326Time_AtTransOilTemp-10to-5_vs_torque
327Time_AtTransOilTemp-5to0_vs_torque
328Time_AtTransOilTemp0to5_vs_torque
329Time_AtTransOilTemp5to10_vs_torque
330Time_AtTransOilTemp10to15_vs_torque
331Time_AtTransOilTemp15to20_vs_torque
332Time_AtTransOilTemp20to25_vs_torque
333Time_AtTransOilTemp25to30_vs_torque
334Time_AtTransOilTemp30to35_vs_torque
335Time_AtTransOilTemp35to40_vs_torque
336Time_AtTransOilTemp40to45_vs_torque
337Time_AtTransOilTemp45to50_vs_torque
338Time_AtTransOilTemp50to55_vs_torque
339Time_AtTransOilTemp55to60_vs_torque
340Time_AtTransOilTemp60to65_vs_torque
341Time_AtTransOilTemp65to70_vs_torque
342Time_AtTransOilTemp70to75_vs_torque
343Time_AtTransOilTemp75to80_vs_torque
344Time_AtTransOilTemp80to85_vs_torque
345Time_AtTransOilTemp85to90_vs_torque
346Time_AtTransOilTemp90to95_vs_torque
347Time_AtTransOilTemp95to100_vs_torque
348Time_AtTransOilTemp100to105_vs_torque
349Time_AtTransOilTemp105to110_vs_torque
350Time_AtTransOilTemp110to115_vs_torque
351Time_AtTransOilTemp115to120_vs_torque
352Time_AtTransOilTemp120to125_vs_torque
353Time_AtTransOilTemp125to130_vs_torque
354Time_AtTransOilTemp130to135_vs_torque
355Time_AtTransOilTemp135to140_vs_torque
356Time_AtTransOilTemp140to145_vs_torque
357Time_AtTransOilTemp145to150_vs_torque
358Time_AtTransOilTemp150to155_vs_torque
359Time_AtTransOilTemp155to160_vs_torque
360Time_AtTransOilTemp160to165_vs_torque
361Time_AtTransOilTemp165to170_vs_torque
362Time_AtTransOilTemp170to175_vs_torque
363Time_AtTransOilTemp175to180_vs_torque
364Time_AtTransOilTemp180to185_vs_torque
365Time_AtTransOilTemp185to190_vs_torque
366Time_AtTransOilTemp190to195_vs_torque
367Time_AtTransOilTemp195to200_vs_torque
368Time_AtTransOilTemp200to205_vs_torque
380MilesAtT_case
400CountsSteeringAngle_T_casePosition_SH_IPG
401CountsSteeringAngle_T_casePosition_4LO
402CountsSteeringAngle_T_casePosition_4HI
403CountsSteeringAngle_T_casePosition_2WD
404CountsSteeringAngle_T_casePosition_N
405CountsSteeringAngle_T_casePosition_AUTO
406CountsSteeringAngle_T_casePosition_PT
407CountsSteeringAngle_T_casePosition_SNA
408Output_Speed
409TripCounts
410TripTime
411EngStartType
412DriverDoorSts
413TrunkLogicSts

FieldTypeLabelDescription
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

SQDFData.Histogram.HistogramData

FieldTypeLabelDescription
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"}]

SQDFData.Histogram.HistogramData.HistogramBin

FieldTypeLabelDescription
binId string optional

count int32 optional

SQDFData.DataLog

FieldTypeLabelDescription
timestamp int64 optional

version string optional

dataLogData SQDFData.DataLog.DataLogData repeated

SQDFData.DataLog.DataLogData

FieldTypeLabelDescription
timestamp int64 optional

vehicleData VehicleData optional

logData SQDFData.DataLog.DataLogData.Data optional

This includes additional data elements those are not in vehicleData, depricated

logDataV2 SQDFData.DataLog.DataLogData.DataV2 optional

SQDFData.DataLog.DataLogData.Data

FieldTypeLabelDescription
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

SQDFData.DataLog.DataLogData.DataV2

FieldTypeLabelDescription
batteryVoltage float optional

engineRPM float optional

vehicleSpeed float optional

ignitionOffTimeLong int32 optional

instantFuelEconomy float optional

Gr int32 optional

isMILOnRq int32 optional

ODO float optional

avgFuelLvl float optional

engineOilTemperature int32 optional

engineCoolantTemperature int32 optional

isDayLightMode int32 optional

isEModeSatus int32 optional

driverDoorSatus int32 optional

CmdIgnitionStatus int32 optional

frontLeftHeatedSeatStatus int32 optional

autoDfgStatus int32 optional

FT_FOG_RQ int32 optional

isACClutchEngaged int32 optional

vehPerfAccelX float optional

VehPerfAccelY float optional

frontRightHeatedSeatStatus int32 optional

spStSwStat int32 optional

essEngineStatus int32 optional

ambientTemperatureAvg int32 optional

Temperature in F.

tirePressure TirePressure optional

mzrModeAct int32 optional

dpfDefWarningStatus int32 optional

absLampStatus int32 optional

brkIndLmpOnRqESC int32 optional

isCheckFuelCap int32 optional

etcLmpIndSts int32 optional

oilPressure int32 optional

txTempExcess int32 optional

txTempWarn

srsIndLmpSts int32 optional

isBrakeFluidLow int32 optional

isEngineOilLampOn int32 optional

oilTempIndicatorRq int32 optional

SRS_LMP_STAT int32 optional

engineTrqRqEsc float optional

engineLoad float optional

IBS_T_BATT sint32 optional

Range -40 to 105, 255 = SNA

IBS_V_BATT double optional

Range 3 to 18, resolution 0.000977 16383 = SNA

IBS_SOC int32 optional

batterySTCrit int32 optional

BoostPressureIndication float optional

rainSensorLevel int32 optional

actlAcceleratorPedalPosition float optional

acceleratorPedalPosition float optional

IBS_I_BATT sint32 optional

Range -32768 to 32766, 65535 = SNA

fuelCons float optional

engineTorqueStatic float optional

brakeStatus int32 optional

absBrakeEvent int32 optional

spStDispstat int32 optional

VC_AS_ERS int32 optional

DrvRqShftROT int32 optional

EPBHoldSts int32 optional

Pad_Shft int32 optional

TCaseAWD_DrvMdRq int32 optional

TRNS_SPD_MC int32 optional

Trns_EMCC_Achvd int32 optional

outputSpdPolarity float 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 int32 optional

EngSt_Enbl_Rq_TCM int32 optional

TX_TEMP float optional

BrkPrss_TMC int32 optional

PrplsnSysAtv int32 optional

DriveReady int32 optional

PRND_STAT int32 optional

HVBatCntctrStat int32 optional

chargingSystemStatus int32 optional

chargingLevel int32 optional

HVBatSOC_HCP float optional

wheelRPMRearRight float optional

wheelRPMRearLeft float optional

wheelRPMFrontRight float optional

wheelRPMFrontLeft float optional

TCASE_STAT int32 optional

adblue_FL_LVL int32 optional

SHFT_PROG int32 optional

CC_SetSpdDsplMPH int32 optional

ACCOnOff int32 optional

CRUISE_EGD int32 optional

TrnsTrqReqSlow_2 float optional

ConsumptionUnit int32 optional

PFW_Stat int32 optional

Map_Eng float optional

SQDFData.GCDVehicleData

FieldTypeLabelDescription
ODO float optional

Odometer mileage; km

distanceToService float optional

Distance to Vehicel Service; Range 0 to 131071; based on distanceUnit field

oilLifeLeft int32 optional

Oil life left (OilLifeSts); %

IBS_SOC int32 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 int32 optional

Engine MIL indicator status;

isGlowPlugs int32 optional

Glow plug;

isLHTurnLightFault int32 optional

Left hand turn light fault;

isRHTurnLightFault int32 optional

Right hand turn light fault;

isFRTurnLightFault int32 optional

Front right turn light fault;

isFLTurnLightFault int32 optional

Front left turn light fault;

isRRTurnLightFault int32 optional

Rear right turn light fault;

isRLTurnLightFault int32 optional

Rear left turn light fault;

isPlateLmpFault int32 optional

License plate lamp fault;

isDRLFault int32 optional

Daytime running lamp fault;

isFuelLevelLow int32 optional

Fuel level low;

isBatteryLampStsOn int32 optional

Battery reached critical state

isChrgSystemFail int32 optional

Charging system Failure (battery indicator request)

isParkingFailSts int32 optional

Parking System Failure;

isHillHolderFailSts int32 optional

Hill Hold System Failure;

isEBDLAMPFailSts int32 optional

EBD Lamp Failure

isTPMIndLmpOnRq int32 optional

Tire pressure indication request

isBreakFluidLow int32 optional

Brake fluid low level;

isWashFluidLow int32 optional

Washer fluid low level;

isBSMServiceReqOn int32 optional

BSM service warning request;

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 int32 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 float optional

Average Fuel Economy

batteryVoltage float optional

System voltage, Range 0 to 18, Init Value = 25.5, Unit = Volts

distanceUnit int32 optional

Distance (odometer) units; km = [0], miles = [1]

isRunFlatTireLow int32 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 float optional

Trip A mileage; kmpl

tripAMPG float optional

Trip A mileage; mpg

tripBKMPL float optional

Trip B mileage; kmpl

tripBMPG float optional

Trip B mileage; mpg

tripATotalDistKM float optional

Trip A total distance traveled; km

tripATotalDistMiles float optional

Trip A total distance traveled; miles

tripBTotalDistKM float optional

Trip B total distance traveled; km

tripBTotalDistMiles float optional

Trip B total distance traveled; miles

ambientAvgTemperature float optional

Ambient temperature; °F

engineCoolantTemperature int32 optional

Engine coolant temperature; °C

vcFuelCapacity int32 optional

Overall Fuel Capacity; Range 36 to 290, liters

avgFuelLvl float optional

Average Fuel level; Range 0 to 255, liters

mapRequestCd string optional

Navigation Map Code

isNavigationActivated int32 optional

Navigation Activated

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

Afsts int64 optional

Fuel Type

isSPLmpFault int32 optional

Stop Lamp Fault;

SQDFData.DTCVehicleData

FieldTypeLabelDescription
ODO float optional

Odometer mileage; km

brake_Pedal_Fault int32 optional

Brake Pedal Fault Indicator - use for brkSWNOFailSTat

isMILOnRq int32 optional

Engine MIL indicator status;

isBatteryLampStsOn int32 optional

Battery reached critical state

isChrgSystemFail int32 optional

Charging system Failure (battery indicator request)

isFuelCapOpen int32 optional

Fuel Cap open;

isTPMIndLmpOnRq int32 optional

Tire pressure indication request

isBreakFluidLow int32 optional

Brake fluid low level;

isBSMServiceReqOn int32 optional

BSM service warning request;

vehicleSpeed float optional

Vehicle speed; km/h

dpfDEFWarning int32 optional

DEF indicator status;

brakeLampIndicatorSts int32 optional

Brake indication lamp (red) on request

txTemp_Excess int32 optional

Transmission Warning System; None = [0], 1 to F = (WARN_x), TxTempWarn1

txTemp_Excess2 int32 optional

Transmission Warning System #2; None =[0], 1 to FF = (WARN_xx), TxTempWarn2

PFW int32 optional

Particulate filter warning status; PFW_Stat

IBS_T_BATT sint32 optional

Battery temperature from IBS; Range -40 to 105, 255 = SNA, °C

IBS_V_BATT double optional

Battery voltage from IBS; Range 3 to 18, 16383 = SNA, V

etcLmpIndSts int32 optional

Electronic Traction Control Lamp Status

isEngineOilLampOn int32 optional

Request oil level/oil pressure indicator lamp;

oilTempIndicatorRq int32 optional

OIL_TEMP_IND_RQ;

absLampSts int32 optional

ABS_IndLmp_On_Rq

srsIndLmpSts int32 optional

oilPressure int32 optional

Oil Pressure; Range 0 to 1016, SNA=1020, kPaG

wtrFuelIndLmpSts int32 optional

Water in fuel lamp active

isBSM_OPR_STAT int32 optional

BSM operation status; 1= operational failure

epsWarnDispRq int32 optional

Electric power steering warning display request

escCntrlLmpSts int32 optional

ESC control lamp information(ESCControlLamp)

isPTS_FT_SRV int32 optional

Front PTS sensor service request;

isPTS_RR_SRV int32 optional

Rear PTS sensor service request;

isADS_SrvSys int32 optional

ADS Service System (ADS_SrvSys);

isACCFaulted int32 optional

ACC faulted;

isACCOnlyNA_DASMSSts int32 optional

ACC only not available: vehicle system error;

srsIndLmpRq int32 optional

SRS indication lamp request

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_StolenVehAssist.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.32018-06-20Added InitiateStolenVehicleMode
1.22017-11-2Update to Proto3
1.12017-04-19Moved VehicleInfo to Uconnect Common.
1.02017-03-17Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/SVAS
Cloud receive from VehicleSubscribefcasdp/SVAS/#
Vehicle send to Cloud Publishfcasdp/SVAS/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SeqTitleRoleMessageTopicDescription
1.Stolen Vehicle Assistance EventSDP

The SDP triggers StolenVehicleAssistance event which triggers StolenVehicleMode ChangeRequest to the Client.

2.Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

3.Send StolenModeChangeRequest MessageSDPStolenModeChangeRequest${iot:ClientId}/SVAS

The SDP populates the StolenModeChangeRequest Message with the required elements and publishes to the StolenVehicleAssistance topic.

4.Process MessageTBM

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 MessageTBMStolenModeChangeResponse/SVAS/${iot:ClientId}

The TBM publishes the StolenModeChangeResponse message to the StolenVehicleAssistance topic for the SDP to receive.

6.Process MessageSDP

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 MessageTBMStolenVehicleInfoNotification/SVAS/${iot:ClientId}

The SDP receives the message and alert the User about Vehicle Location.

8.1Process MessageSDP

The SDP processes the message and proceed accordingly.

8.2.Assign correlationIDSDP

Assign correct correlationId.

8.3.send AckMessageSDPAckMessage${iot:ClientId}/SVAS

The SDP sends AckMessage to acknowledge that it received StolenVehicleInfoNotification Message.

8.4.Process AckMessageTBM

The client process AckMessage.

StolenModeChangeRequest

This message represents StolenModeChangeRequest, When the Vehicle is stolen SDP can send a request to Client to enter into Stolen Vehicle Mode.

StolenModeChangeRequest Example Message:

timestamp: 1489802160176 messageId: 11 messages { [com.fca.uconnect.global.stolenModeChangeRequest] { stolenModeCommand: ENTER

} }

FieldTypeLabelDescription
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.

StolenModeChangeRequest.StolenModeCommand

NameNumberDescription
ENTER 0

Enter Into Vehicle Stolen Mode.

EXIT 1

Exit Into Vehicle Stolen Mode.

StolenModeChangeResponse

This message is in response to StolenModeChangeRequest and Client send back related information required by SDP.

StolenModeChangeResponse Example Message:

timestamp: 1489802373594 messageId: 1 correlationId: 11 messages { [com.fca.uconnect.global.stolenModeChangeResponse] { isStolenModeActive: true } }

FieldTypeLabelDescription
isStolenModeActive bool optional

This identifies whether Stolen Vehicle Assistance Mode active or not.

StolenVehicleInfoNotification

When Vehicle's Stolen Vehicle Assistance mode is ON, The Client periodically send out the Vehicle Location information to the SDP.

StolenVehicleInfoNotification Example Message:

timestamp: 1489802573608 messageId: 2 messages { [com.fca.uconnect.global.stolenVehicleInfoNotification] { vehicleLocation { longitude: -83.67168 latitude: 42.4804 } isIgnoreAccelerateActive: false isBlockIgnitionActive: false } }

FieldTypeLabelDescription
vehicleInfo VehicleInfo optional

isStolenModeActive bool optional

This identifies whether Vehicle is in StolenMode.

InitiateStolenVehicleMode

FieldTypeLabelDescription
isStolenModeActive bool optional

This identifies whether Vehicle is in StolenMode and is used by the vehicle to notify an auto SVL

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_TheftAlarmNotify.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.62018-07-23Updated Theft Alarm Sequence Diagram
1.52018-05-20Added TheftAlarmSuppression per assembla ticket 222
1.42018-04-30Added Battery and Gyro Alarm Causes per Assembla ticket 402
1.32017-11-2Update to Proto3
1.22017-08-11Added TheftAlarmNotificationResponse.
1.12017-04-18Removed TheftAlarmNotificationResponse and moved vehicle status key value to common proto.
1.02017-03-16Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/TANF
Cloud receive from VehicleSubscribefcasdp/TANF/#
Vehicle send to Cloud Publishfcasdp/TANF/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.TheftAlarm Notification EventTBM

The in-vehicle TheftAlartm Notification event which triggers the client device to send an TheftAlarm Notification to the SDP.

2.Send TheftAlarmNotification MessageTBMTheftAlarmNotification/TANF/${iot:ClientId}

The client populates the TheftAlarmNotification Message with the required elements and publishes to the TheftAlarmNotification topic.

3.Process MessageSDP

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 MessageSDPTheftAlarmNotificationResponse${iot:ClientId}/TANF

The SDP publishes the response message to the TANF topic for the client to receive.

5.Process MessageTBM

The client receives the message and verifies the correlationId matches the messageId of the sent request.

Alt_1_1TheftAlarmSupressionNotifyTBM

The client Sends a TheftAlarmSuprresionNotify the indicate to the server that there has been a change of status.

Alt_1_2AckMessageSDP

The server acknowledges receipt of the supression status.

Alt_1_3Process messageTBM

The client receives the message and verifies the correlationId matches the messageId of the sent request.

Alt_2_1TheftAlarmSupressionRequestSDP

The server Sends a TheftAlarmSuprresionRequest the request the theft alarm be suppressed for the specified period.

Alt_1_2AckMessageTBM

The client acknowledges receipt of the supression request.

Alt_1_3Process messageTBM

The client receives the message and verifies the correlationId matches the messageId of the sent request.

TheftAlarmNotification

This message represents TheftAlarmNotification in case of any theft or Tamper with Vehicle.

TheftAlarmNotification Example Message:

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 } }

FieldTypeLabelDescription
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

TheftAlarmNotification.AlarmStatusEnum

NameNumberDescription
ACTIVE 0

INACTIVE 1

TheftAlarmNotification.AlarmCause

FieldTypeLabelDescription
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

TheftAlarmNotificationResponse

FieldTypeLabelDescription
response TheftAlarmNotificationResponse.TheftAlarmResponseEnum optional

TheftAlarmNotificationResponse.TheftAlarmResponseEnum

NameNumberDescription
SUCCESS 0

FAILURE 1

TheftAlarmSuppressionRequest

FieldTypeLabelDescription
suppressAlarm bool optional

Temporarily Suppress the Theft Alarm Notification

suppressDuration TheftAlarmSuppressionRequest.DurationEnum optional

Configured or selected duration of the suppression

TheftAlarmSuppressionRequest.DurationEnum

NameNumberDescription
TWOHOURS 0

FOURHRS 1

TWELVEHRS 2

TWENTYFOURHRS 3

THREEDAYS 4

SEVENDAYS 5

TheftAlarmSuppressionNotify

FieldTypeLabelDescription
suppressionState TheftAlarmSuppressionNotify.SupressionStateEnum optional

Temporarily Suppress the Theft Alarm Notification

suppressDuration int64 optional

Configured or selected duration of the suppression

TheftAlarmSuppressionNotify.SupressionStateEnum

NameNumberDescription
Not_Supressed 0

Alarm notification is active

Suppressed 1

Alarm notification suppressed

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_VehAuth.proto (Version 1.0)

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

Change Log

VersionDateNotes
1.02017-12-11Moved From Auth

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/
Cloud receive from VehicleSubscribefcasdp/Auth/#
Vehicle send to Cloud Publishfcasdp/Auth/${iot:ClientId}
Cloud receive from VehicleSubscribefcasdp/Auth/#
Vehicle send to Cloud Publishfcasdp/Auth/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram shows the messages for implementing Bootstrap to support mutual authentication between the client and the SDP:

SequenceTitleRoleMessageTopicDescription
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

VehAuthRequest

This is for SecondVehicleAuthorizationRequest.

FirstVehicleAuthorization Request Example Message:

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” } } }

FieldTypeLabelDescription
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.

VehAuthRequest.RequestTypeEnum

NameNumberDescription
UNKNOWN 0

INITIAL 1

Initial provisioning request for a temporary session.

SECOND 2

Secondary request to receive valid session token.

VehAuthResponse

FieldTypeLabelDescription
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.

VehAuthResponse.TokenTypeEnum

NameNumberDescription
UNKNOWN 0

TEMP 1

Initial temporary session token.

VALID 2

Valid session token.

CreateTokenRequest

FieldTypeLabelDescription
grant_type string optional

Type of challenge response, use "password" for basic auth

deviceId string optional

IMEI of TU Profile for the vehicle

permKey string optional

In case of TU communication bootstrap, it will be Permanent Session Key returned by the server

CreateTokenResponse

FieldTypeLabelDescription
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

RefreshTokenRequest

FieldTypeLabelDescription
grant_type string optional

Type of challenge response, use "refresh token" for basic auth

deviceId string optional

Correlation ID, unique to the TU

refreshToken string optional

Value of refresh token that was issued previously.

RefreshTokenResponse

FieldTypeLabelDescription
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

RefreshTokenResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

Response successful for provisioning.

FAILURE 1

Response failure for provisioning.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_VehDataAcquisition.proto (Version 1.0)

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 | |---- VehiclePolicyUpdateRequest

Change Log

VersionDateNotes
1.112018-09-04Added Unit Of Measures to indicate signal engineering units.
1.102018-08-27Added on change dataset.
1.92018-08-02Added Capture Window and Histogram message types to the policy.
1.82018-05-14Added ContentType Enum
1.72018-05-02Added VehiclePolicyUpdateRequest per assembla ticket 429
1.62018-05-02Removed ADA references other than topic
1.52017-11-2Update to Proto3
1.42017-08-15Added a vehicleId field to VehicleDataAcquisitionPublish type.
1.32017-06-20Added fields for Signature correlation Message to VehicleDataAcquisitionPolicyPublish.
1.22016-04-20Applicationid and policySubscriptionid is changed to bytes
1.12016-03-05Added criteria filters.
1.02016-03-08Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/ADA
Cloud receive from VehicleSubscribefcasdp/ADA/#
Vehicle send to Cloud Publishfcasdp/ADA/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

Sequence Diagram with VehicleDataAcquisitionPolicyPublish publish and subsequent iteration of VehicleDataAcquisitionPublish :

SequenceTitleRoleMessageTopicDescription
Alt_1_1 Data Application EventTBM

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_2VehiclePolicyUpdateRequestTBM

The TBM Requests a check for new/updated policies

Alt_1_2AckSDP

The SDP Returns an Ack message

1.Send VehicleDataAcquisitionPolicyPublish MessageTBMVehicleDataAcquisitionPolicyPublish/ADA/${iot:ClientId}

The SDP populates the VehicleDataAcquisitionPolicyPublish Message with the elements and publishes to the ADA topic.

2.Process MessageTBM

The TBM Receives the message and stores Policy to send Vehicle Data later..

3-4Assign correlation ID and send AckTBM

The TBM assigns and correlation ID and returns the Ack

5Process AckSDP

The SDP processes the Ack

6-10Send VehicleDataAcquisitionPublish Message and process TBMVehicleDataAcquisitionPublish${iot:ClientId}/ADA

The service publishes the VehicleDataAcquisitionPublish message with Vehicle Data to the ADA topic for the SDP to receive.

VehicleDataAcquisitionPolicyPublish

FieldTypeLabelDescription
version int32 optional

A version number is assigned every time there is a change in policy

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

VehicleDataAcquisitionPolicyPublish.SignalTypeEnum

Form in which collected data is to be collected. All signals must support at least RAW type.

NameNumberDescription
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

VehicleDataAcquisitionPolicyPublish.SignalValueUOMEnum

Define Unit Of Measures for Signal

NameNumberDescription
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

VehicleDataAcquisitionPolicyPublish.DifferenceTimeStampTypeEnum

How the row timestamps are to differentially encoded.

NameNumberDescription
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

VehicleDataAcquisitionPolicyPublish.FilterOperator

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.

NameNumberDescription
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

VehicleDataAcquisitionPolicyPublish.SignalIdTypeEnum

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.

NameNumberDescription
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.

VehicleDataAcquisitionPolicyPublish.QueuePolicy

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.

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPolicyPublish.DataSetSignal

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 :

  • VIN - the VIN of the vehicle the TU is installed in. String.
  • SWReleaseBranch - the version of the TU firmware. String.
  • HUSerialNumber - the serial number of the TU. String.
  • currentTimeMillis - the TU system clock, expressed in milliseconds elapsed since 1 January 1970 00:00:00 UTC. int64.

If a signal name is not mandatory and global, it should be prefixed with a namespace identifier. The current set of namespace identifiers is

  • KONA
  • geocode

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:

  • geocode.Latitude - degrees latitude. double.
  • geocode.Longitude - degrees longitude. double.
  • geocode.Altitude - meters altitude. float.
  • geocode.HorizontalAccuracy - horizontal position accuracy. float.
  • geocode.VerticalAccuracy - vertical position accuracy. float.
  • geocode.Course - course. float.
  • geocode.Azimuth - azimuth. float.
  • geocode.Speed - speed. float.
  • geocode.LocationMethod - method used to determine location . int32.
  • geocode.Timestamp - GPS timestamp in seconds. int64.

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPolicyPublish.FilterCriteria

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

FieldTypeLabelDescription
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

VehicleDataAcquisitionPolicyPublish.EventTriggerCriteria

FieldTypeLabelDescription
filterExpression VehicleDataAcquisitionPolicyPublish.FilterCriteria repeated

criteria to determine whether to trigger a collection window

VehicleDataAcquisitionPolicyPublish.CaptureWindowPolicy

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPolicyPublish.DataSetSubscription

Criteria for what data elements should be collected and at what rate, and how collected data should be queued and transmitted to the SDP.

FieldTypeLabelDescription
period int32 optional

data collection period in ms

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.

VehicleDataAcquisitionPolicyPublish.PolicyApplication

FieldTypeLabelDescription
applicationId bytes optional

contain any arbitrary sequence of bytes for this Application

applicationName string optional

Name of this application

VehicleDataAcquisitionPolicyPublish.Histogram

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPolicyPublish.HistogramDataSet

FieldTypeLabelDescription
histogram VehicleDataAcquisitionPolicyPublish.Histogram repeated

A list of Histograms for particular signals

VehicleDataAcquisitionPolicyPublish.PolicySubscription

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.

FieldTypeLabelDescription
policySubscriptionId bytes optional

contain any arbitrary sequence of bytes for this PolicySubscription

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

VehicleDataAcquisitionPublish

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPublish.SignalValue

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.

FieldTypeLabelDescription
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

VehicleDataAcquisitionPublish.DataRow

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.

FieldTypeLabelDescription
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

VehicleDataAcquisitionPublish.DataSet

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.

FieldTypeLabelDescription
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.

VehicleDataAcquisitionPublish.OnChangeDataSet

The On Change Data Set delivers a single event.

FieldTypeLabelDescription
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

VehicleDataAcquisitionPublish.DataSubscription

FieldTypeLabelDescription
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

VehiclePolicyUpdateRequest

FieldTypeLabelDescription
vehicleId string optional

Unique Vehicle Identifier

policySubscription VehicleDataAcquisitionPolicyPublish.PolicySubscription optional

Policy Details, requires at least PolicyID

policyVersion string optional

Version number of the policy.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_VehicleFinder.proto (Version 1.0)

This API is to find the location of the vehicle.

UconnectAny | |---- VehicleLocationRequest | |---- VehicleLocationResponse

Change Log

VersionDateNotes
1.62018-09-26Added FAILURE_SPEED_LOCKOUT to response enum
1.52018-06-20Updated VehicleLocationUpdate period enum to milliseconds
1.42018-06-20Added VehicleLocationUpate for periodic updates
1.32017-11-2Update to Proto3
1.02017-08-10Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/VFND
Cloud receive from VehicleSubscribefcasdp/VFND/#
Vehicle send to Cloud Publishfcasdp/VFND/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the TBM and the SDP:

VehicleLocationRequest

This message is for SDP to request Location of the Vehicle.

VehicleLocationRequest Example Message:

timestamp: 1489804992665 messageId: 11 messages { [com.fca.uconnect.global.vehicleLocationRequest] {

} }

FieldTypeLabelDescription
serviceRequestID bytes optional

Service Request ID for Vehicle Finder

VehicleLocationResponse

This message is in response to VehicleLocationRequest from SDP to Client .

VehicleLocationResponse Example Message:

timestamp: 1489806024650 messageId: 3 correlationId: 12 messages { [com.fca.uconnect.global.vehicleLocationResponse] { response: SUCCESS vehicleLocation { longitude: -83.67168 latitude: 42.4804 } timestamp: 1489806024650 } }

FieldTypeLabelDescription
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

VehicleLocationResponse.VehicleLocationResponseEnum

NameNumberDescription
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)

VehicleLocationUpdate

FieldTypeLabelDescription
periodicLocation Location optional

For Periodic updates of the Vehicle Location

VehicleFinderConfig

FieldTypeLabelDescription
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)

VehicleFinderConfig.UpdatePeriod

NameNumberDescription
FIVE_K 0

TEN_K 1

THIRTY_K 2

SIXTY_K 3

ONEHUNDRED_K 4

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_VehicleMessaging.proto (Version 1.0)

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.

Change Log

VersionDateNotes
1.42018-08-17Removed Enrollment Message Type, Added Subscription Message Type, Added Enumeration for Expired Notice, fixed Vehicle Received Topic
1.32018-05-17Added Enrollment Message Type
1.22017-11-2Update to Proto3
1.12017-08-10Added VehicleMessageDispositionAck message
1.02017-03-28Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/IVM
Cloud receive from VehicleSubscribefcasdp/IVM/#
Vehicle send to Cloud Publishfcasdp/IVM/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of messages between the HU and the SDP:

SequenceTitleRoleMessageTopicDescription
1.1Vehicle Messaging EventSDP

The vehicle messaging event which triggers the SDP to send an VehicleMessagePublish Message to the Client.

1.2Assign MessageIdSDP

The SDP generates the messageId for the message by incrementing a sequence counter.

2.Send VehicleMessagePublish MessageSDPVehicleMessagePublish${iot:ClientId}/IVM

The SDP populates the VehicleMessagePublish Message with the elements and publishes to the In Vehicle Messaging topic.

3.1Process MessageHU

The HU processes the message and generates an VehicleMessageAck Message with the status

3.2Assign CorrelationIDHU

The correlationId set to the messageId from the received VehicleMessagePublish Message.

4Send VehicleMessageAck MessageHUVehicleMessageAck/IVM/${iot:ClientId}

The Client publishes the Acknowledge message to the In Vehicle Messaging topic for the SDP to receive.

5.Process MessageSDP

The SDP receives the message and verifies the correlationId matches the messageId of the sent request.

6.Send VehicleMessageDispositionPublish MessageHU

VehicleMessageDispositionPublish

/IVM/${iot:ClientId}The Client publishes the VehicleMessageDispositionPublish message to the In Vehicle Messaging topic for the SDP to receive.

7.Process MessageSDP

The SDP receives the message and verifies the correlationId matches the messageId of the initially sent request.

8.Send VehicleMessageDispositionAck MessageSDPVehicleMessageDispositionAck${iot:ClientId}/IVM

The SDP acknowledges the VehicleMessageDispositionAck Message with the elements and publishes to the In Vehicle Messaging topic.

9Process MessageHU

The HU processes the message.

VehicleMessagePublish

This message is to send any Alert Messages to the Vehicle like Service or Recall.

VehicleMessagePublish Example Message:

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"

}

}

}

FieldTypeLabelDescription
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

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

VehicleMessagePublish.MessageType

NameNumberDescription
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

VehicleMessagePublish.MessageDetailType

NameNumberDescription
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

VehicleMessagePublish.LanguageString

FieldTypeLabelDescription
language string optional

The language this text is for (Not currently Used)

messageText string optional

the text in the given language

VehicleMessagePublish.MessageParametersEntry

FieldTypeLabelDescription
key string optional

value string optional

VehicleMessageAck

This message is to Acknowledge SDP for VehicleMessagePublish Message.

VehicleMessageAck Example Message:

timestamp: 1490983982096

messageId: 1

correlationId: 11

messages

{

[com.fca.uconnect.global.vehicleMessageAck]

{

vehicleMessageID: 1

messageReceiptTimestamp: 1490983982095

status: MESSAGE_STAGED_FOR_DISPLAY

}

}

FieldTypeLabelDescription
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

VehicleMessageAck.ResponseEnum

NameNumberDescription
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

VehicleMessageDispositionPublish

The message has been fully processed, the HU has purged it fully.

VehicleMessageDispositionPublish Example Message:

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

}

}

FieldTypeLabelDescription
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

VehicleMessageDispositionPublish.MessageDispositionEnum

NameNumberDescription
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 they 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

VehicleMessageDispositionAck

The message is to acknowledge the vehicleMessageDispositionPublish message.

VehicleMessageDispositionAck Example Message:

timestamp: 1490983992220

messageId: 3

correlationId: 2

messages

{

[com.fca.uconnect.global.vehicleMessageDispositionAck]

{

response: SUCCESS

}

}

FieldTypeLabelDescription
response VehicleMessageDispositionAck.DispositionResponseEnum optional

VehicleMessageDispositionAck.DispositionResponseEnum

NameNumberDescription
SUCCESS 0

FAILURE 1

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_VehSync.proto (Version 1.0)



This API is to synchronize the Configuration with Vehicle.

Change Log

VersionDateNotes
1.142017-11-30Sequence Diagram and table Updates
1.132017-11-30Make Config Update a file
1.122017-11-2Update to Proto3
1.112017-10-19Add config settings from TheftAlarm and Parental Controls
1.102017-10-09Add config settings from TBM CTS
1.92017-09-29Add config settings to ECall and BCall, update PHEV settings
1.82017-09-20Added EncryptionLevel to CHINAPHEVSettings.
1.72017-07-26Added TheftAlarmNotificationSettings.
1.62017-07-26Updated SQDF Settings with additional params.
1.52017-07-24Added SQDF Parameter.
1.42017-07-11Added AOTASettings to VehSyncModel.
1.32017-06-20Added fields for Signature correlation Message to VehicleConfigPublish.
1.22017-06-19Added chinaPHEVSettings to VehSyncModel
1.12017-03-21Moved Common messages to Common Proto
1.02017-03-14Release of initial Proto

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/VCSC
Cloud receive from VehicleSubscribefcasdp/VCSC/#
Vehicle send to Cloud Publishfcasdp/VCSC/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

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:

SequenceTitleRoleMessageTopicDescription
1.Vehicle Config Sync EventSDP

The SDP triggers to send an VehiclConfigPublish to the Client.

2.Process MessageTBM/HU

The Client processes the message and storess the Vehicle Configurations

3.Assign CorrealationIDTBM/HU

The Client processes assigns a correalationID and generates an Ack Message

4.Send AckMessageTBM/HU

The Client returns an Ack message to the SDP with the status of the config update

5.Process MessageSDP

The server processes the message

VehicleConfigPublish

Data elements to be synchronized between the vehicle and the cloud.

VehicleConfigPublish Example Message:

FieldTypeLabelDescription
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

VehicleConfigPublish.Source

NameNumberDescription
SDP 0

Vehicle 1

VehicleConfigRequest

This message is to request Vehicle Configuration.

VehicleConfigRequest Example Message:

timestamp: 1490113248814 messageId: 11 messages { [com.fca.uconnect.global.vehicleConfigRequest] { configSetVersion: 1 } }

FieldTypeLabelDescription
configSetVersion int32 optional

VehSyncModel

This Message is the container for the application specific settings

FieldTypeLabelDescription
configFile bytes optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_Ext_WIFIHotSpot.proto (Version 1.0)

This proto is for getting WIFI Data Status and sending Push if there is low Data.
 

Change Log

VersionDateNotes
1.12017-11-2Update to Proto3
1.02017-02-15Release of initial Proto.

List of MQTT Topics

FlowTypeTopic Name
Cloud send to VehiclePublishfcasdp/${iot:ClientId}/WIFI
Cloud receive from VehicleSubscribefcasdp/WIFI/#
Vehicle send to Cloud Publishfcasdp/WIFI/${iot:ClientId}
Vehicle receive from Cloud Subscribefcasdp/${iot:ClientId}/#

Data Flow

The following sequence diagram depicts the flow of WIFI messages between the TBM and the SDP:

SequenceTitleRoleMessageTopicDescription
1.Wifi EventTBM

The in-vehicle WifiHotspot event which triggers the client device to send an DataPackageStatusRequest to the SDP.

2.Assign MessageIdTBM

The client generates the messageId for the message by incrementing a sequence counter.

3.Send DataPackageStatusRequest MessageTBMDataPackageStatusRequest/WIFI/${iot:ClientId}

The client populates the DataPackageStatusRequest Message with the no elements and publishes to the wifi topic.

4.Process MessageSDP

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 MessageSDPDataPackageStatusResponse${iot:ClientId}/WIFI

The service publishes the response message to the wifi topic for the client to receive.

6.Process MessageTBM

The client receives the message and verifies the correlationId matches the messageId of the sent request.

7.Send WifiPackageDataStatus Message as a Push MessageSDP

WifiPackageDataStatus

${iot:ClientId}/WIFIThe service publishes the push message to the wifi topic for the client to receive.

8.1Process MessageTBM

The client receives the message and alert the user.

8.1Assign CorrelationIDTBM

The client generates AckMessage and assign the correlationID from received WifipackageDataStatus.

8.1send AckMessageTBMAckMessage/WIFI/${iot:ClientId}

The client sends AckMessage to acknowledge that it received WifiPackageDataStatus.

DataPackageStatusRequest

This message is to request the usage statistics and status of the data package.

DataPackageStatusRequest Example Message:

timestamp: 1489208951655 messageId: 1 messages { [com.fca.uconnect.global.dataPackageStatusRequest] { } }

FieldTypeLabelDescription

DataPackageStatusResponse

This returns with DataPackageStatusResponse which has wifipackageData Status.

DataPackageStatusRequest Example Message:

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 } } }

FieldTypeLabelDescription
responseEnum DataPackageStatusResponse.ResponseEnum optional

Response Enum can be Success or Failure

packageStatus WifiPackageDataStatus optional

WifiPackageDataStatus is a message with data status.

DataPackageStatusResponse.ResponseEnum

NameNumberDescription
SUCCESS 0

FAILURE 1

WifiPackageDataStatus

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.

WifiPackageDataStatusPush Example Message:

timestamp: 1489208952657 messageId: 11 messages { [com.fca.uconnect.global.wifiPackageDataStatus] { totalVolume: 1000000 totalTiming: 30 usedVolume: 900000 usedTiming: 20 isLowAlertFlag: true } }

FieldTypeLabelDescription
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 that this device may be active.

usedVolume int32 optional

Used data in KB.

usedTiming int32 optional

Used Time for data.

isLowAlertFlag bool optional

This represents whether data is reaching a low point.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_GNSS.proto (Version 1.0)

The proto is utilized for Destination,Address,POI and location used in other Protobuff .

Change Log

VersionDateNotes
1.62018-06-21PositionDirection Change to Double
1.52018-06-21Added GPS Fix Type and isGPSFixUnavailable. Removed isGPSFixCurrent
1.42018-04-30Added Vehicle direction object per request
1.32018-04-04Added Zip code and Secondary Unit Designation to the Address object
1.22017-11-2Update to Proto3
1.12017-09-29Add additional location error details
1.02017-09-20Release of initial Proto

Destination

FieldTypeLabelDescription
location Location optional

destinationPoi PointOfInterest optional

Related POI

destinationAddress Address optional

Related Address

createTimestamp int64 optional

routePreference Destination.RoutePreference optional

Destination.RoutePreference

NameNumberDescription
DEFAULT 0

FAST 1

SHORT 2

ECONOMICAL 3

RECOMMENDATION 4

Address

FieldTypeLabelDescription
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

PointOfInterest

FieldTypeLabelDescription
name string optional

category string optional

id int32 optional

phoneNumber string optional

description string optional

url string optional

Location

FieldTypeLabelDescription
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.

Location.GpsFixType

NameNumberDescription
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.

Where to Find the ProtoBuf File

Click here to download Protobuf.

Global_Uconnect_VehicleInfo.proto (Version 1.0)

The common proto is utilized for VehicleInfo and VehicleStatus.

Change Log

VersionDateNotes
1.112018-05-29Added Model and Year details per Assemla 446
1.112018-05-10Release of initial Proto
1.12017-09-20Release of initial Proto
1.02017-09-20Release of initial Proto

VehicleInfo

This message is common for ECall and Roadside assistance to get Vehicle Information.

FieldTypeLabelDescription
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 ISO alpha-3/639.2 standard.

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.

VehicleInfo.EngineStatusEnum

NameNumberDescription
STOP 0

CRANK 1

IDLE 2

RUN 3

STALL 4

REQUESTSTART 5

VehicleInfo.VehicleTypeEnum

NameNumberDescription
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

TirePressure

FieldTypeLabelDescription
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.

TirePressure.TireStatusEnum

NameNumberDescription
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)

VehicleStatus

This message is to define Each Door/Window/Trunk/Hood/Engine status. Door/Window/Trunk/Hood should only report the status that has changed

FieldTypeLabelDescription
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

VehicleStatus.EngineStatusEnum

NameNumberDescription
STOP 0

CRANK 1

IDLE 2

RUN 3

STALL 4

REQUESTSTART 5

VehicleStatus.Status

NameNumberDescription
CLOSED 0

CLOSED_UNLOCKED 1

CLOSED_LOCKED 2

OPENED 3

VehicleStatus.Type

NameNumberDescription
FLDOOR 0

FRDOOR 1

RLDOOR 2

RRDOOR 3

FLWINDOW 4

FRWINDOW 5

LLWINDOW 6

LRWINDOW 7

HOOD 8

TRUNK 9

LIFTGATE 10

VehicleStatus.VehicleStatusTypeEntry

FieldTypeLabelDescription
key string optional

value VehicleStatus.Type optional

VehicleStatus.VehicleStatusParametersEntry

FieldTypeLabelDescription
key string optional

value VehicleStatus.Status optional

Where to Find the ProtoBuf File

Click here to download Protobuf.

Certificate Management

Scalar Value Types

.proto TypeNotesC++ TypeJava TypePython 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