DRIVING TOWARD TELEMATIC APPLICATION DEVELOPMENT
Telematics is a field of vehicular technology that combines wireless communications, vehicle systems, instrumentation, and software to provide in-vehicle functionality such as telemetry, wireless communications, and navigation.
A telematics system is usually based around a telematic control unit (TCU), a specialized computer embedded within vehicles that offers a range of features including a processor, microcontroller, GPS, cellular/Wi-Fi connectivity, memory, and storage. A TCU may also be wired to other sensors around the vehicle and integrated with other onboard systems like the vehicle's engine control unit(s) (ECU), with communication between a TCU and ECU often done via CAN bus.
Today, telematics systems are converging with more general compute solutions, including those built around the Qualcomm Snapdragon mobile platforms, to incorporate features such as machine learning (ML). And with standards like cellular vehicle-to-everything (C-V2X) being rolled out, there is more demand than ever for in-vehicle intelligence and 5G connectivity. With such evolution, it should be no surprise that the TCU opportunity is seeing rapid growth, with some projections estimating the opportunity to be worth around USD $6.6 billion by 2027.
Qualcomm Technologies, Inc. (QTI) offers a number of automotive-specific platforms enabling Tier-2 suppliers to build state-of-the-art, intelligent TCUs. These solutions encompass both standalone modems (e.g. Qualcomm® SA515M (5G), Qualcomm SA415M (LTE Advanced), Qualcomm MDM9x50 (LTE Gigabit Modem), Qualcomm MDM9x28 (LTE CAT-4 Modem), as well as application processors that include the Qualcomm SA2150P (Quad-Core) and Qualcomm SA2145P (Dual-Core) for use in fusion systems.
The road to writing telematics applications
Tier-2 suppliers who build systems around QTI automotive platforms become licensees of these platforms.
To write applications for these platforms, QTI provides the Qualcomm Telematics SDK. Our SDK includes C++ 11-compliant APIs, which provide a unified interface to build complete and efficient system-wide solutions while abstracting away the hardware. With these APIs, developers can add a range of functionality to their telematics apps, including telephony operations, SIM card/SIM services, location information, connection management, eCall, thermal management, networking and routing configurations, and TCU activity monitoring (functionality is dependent upon the capabilities of the underlying TCU).
The API cleanly separates the application code and chip-level code, allowing application developers to focus on implementing the high-level, portable business logic for their telematics apps. The APIs are public and are accompanied with stubs. This allows developers to start developing apps without requiring them to be a licensee or have access to a licensee of the platform. This applies only for compilation of the apps. To run the apps, developers need an actual platform. To further support developers, the SDK publicly makes sample and test applications available.
What's in our Telematics SDK?
Developers can clone the public parts of our Telematics SDK from this CodeAurora page. When doing so, developers must ensure that the version of the public APIs, stubs apps, etc. that they retrieve from CodeAurora correspond to the version of the proprietary code available on a licensee's platform, on which the apps will run. To ensure this compatibility, developers need to work with a licensee to determine the appropriate branch and commit to acquire.
The general directory structure and content of our Telematics SDK package is as follows:
>> common: utility classes for common functionality used by the apps in the other directories.
>> reference: reference applications which demonstrate how to implement complete functionality for various use cases.
>> samples: small apps which demonstrate how to use a particular API.
>> tests: console-based test applications which a system integrator could use to test SDK-based functionality on the platform.
> bin: symbol files which will be used to generate the stub libraries.
> docs: raw documentation content in Markdown for generating the SDK'
> s User Guide.
> doxy: Doxygen files for building the SDK's API Reference Guide.
> include: public header files containing the declarations for the public APIs.
Common code patterns
Our Telematics SDK provides a consistent API interface and call flow across the different subsystems that it supports. The general order of operations is a follows:
> The SDK initializes the various subsystems of the TCU during startup.
> The app uses a factory object to acquire a manager object for a specific subsystem. The manger provides the interface through which the app queries the initialization status of the subsystem either synchronously or asynchronously.
> Once the app determines that the subsystem is ready, it can then access other interfaces in the API to implement business logic (e.g., to start and manage a phone call).
For example, the following API call flow diagram from our Telematic SDK's API Reference Guide shows how an application uses the APIs PhoneFactory to get an IPhoneManager to query the status of the TCU's telephony subsystem. The app subsequently obtains references to ICallManager and ICall objects to start a phone call on the TCU and query the phone call's status:
To further help developers, our Telematic SDK includes a rich set of sample applications covering a variety of aspects of the API for the various subsystems it supports. Developers are encouraged to check out the samples sub directory as identified in the previous section about our SDK package's directory structure.
TCUs are essentially the in-vehicle brain behind the telematics systems found in today's vehicles. To support developers who build telematics applications for TCUs, the Qualcomm Telematics SDK provides a consistent, rich interface for accessing subsystems found on TCUs. Developers implementing solutions for automotive systems built with Snapdragon platforms can also take advantage of the various Snapdragon SDKs available on Qualcomm Developer Network to implement other types of functionality such as machine learning.
For more information about our Telematics SDK, be sure to check out our User Guide, which shows how to build the SDK and run the sample applications, and the API Reference, which details the API's interface and call flows.
Author - Abhishek Adappa, Senior Staff Engineer, Qualcomm Technologies, Inc.