In-Vehicle Controller

A universal vehicle controller platform

IVC

»

TECHNOLOGY

Built for Flexibility and Efficiency

  • Created in C++ for low resource consumption, fast response, and rich feature set

  • Runs as a Linux service on a PC in the vehicle

  • Unparalleled number of interfaces and compatible adapters, which can easily be expanded

  • Friendly API that even a new programmer can use

  • Security designed into the product from the ground up

Major Modules

The interfaces module is responsible for coordinating communications with all hardware adapters.  Each adapter runs in its own thread, using a driver developed specifically by Telium for the make/model of the specific adapter.  The interfaces module filters traffic in/out of each adapter, pushing filtering and handshaking to the hardware adapter if supported, or within the interfaces module otherwise, to minimize CPU load.

The Application Programming Interface (API) module provides control, commands, and notifications to external programs.  The API is accessible through different media, and offers a simple yet powerful text based protocol for interactions.  Using key-value pairs formatted into paragraphs, applications can query or command the vehicle/device to perform any function, while also receiving notifications which have been subscribed to.  The API also provides 256-bit encryption to ensure your vehicle is protected from bad actors.

The telnet module provides any easy way to setup, configure, and manage the IVC.  It also provides a simple mechanism to capture codes, replay them, search for effective codes, and more.  The telnet interface can be operated from a remote laptop (Windows or Linux, over WiFi or Ethernet) to manage the IVC, or operated from a locally attached monitor and keyboard.

The vehicle database is a comprehensive collection of commands/codes/ID’s which are specific to single vehicle (or range of vehicles).  The database is the result of a crowd sourced effort to identify and test codes, which are contributed back to the project.  The database attempts to unify/standards commands and ID’s across vehicles, allowing for simple commands like “door.frontleft.unlock” and notifications like “engine.rpm”.

The controller module is at the heart of the IVC.  Its role is to manage all interfaces, adapters, databases, subscriptions, etc. and to coordinate communications between all modules.  The controller can power down or idle adapters and external devices to minimize power drain, and can optionally place the CPU/platform into sleep mode.