Meego Wiki
Views

In-vehicle/Roadmap/API

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Car-Systems)
(Car-Systems)
Line 45: Line 45:
| Contents
| Contents
|-  
|-  
-
|  rowspan=3 | Application<br>
+
|  rowspan=5 | Application<br>
Interoperability
Interoperability
| Supported Features
| Supported Features

Revision as of 05:45, 28 June 2011

Contents

Automotive API

To enable applications and software functionality specific to a vehicle context the MeeGo IVI software stack needs to implement an API that allows applications to access vehicle data and execute operations. The MeeGo IVI software stack essentially extends MeeGo Core and consequently the IVI APIs are extensions of the MeeGo Core APIs.

MeeGo IVI Stack

The API most likely will have multiple layers abstracting applications from the underlying specifics of the vehicle architecture. The latter will definitely differ from make to make and most likely within model lines of the same make and also between generations of the same model of a particular make.

The API layer provides vehicle data in a generalized form through methods such as getVehicleSpeed(), getFuelLevel(), getAverageFuelConsumption() etc. as well as executing function such as setRadioTuner(band, frequency), turnOnHeadlights(), lockDoor(doors), etc. An application can make use of these APIs directly.

Another layer of abstraction is the application framework layer that combines operations across multiple MeeGo APIs. An example could be a function providing range information based on the fuel level, the average consumption and the current vehicle position.

API Requirements

Functionality

The idea of the API is to treat vehicle data that can be retrieved and vehicle functions controlled through these APIs in an abstract manner. The implementation details of the API functionality e.g. where to get a particular piece of data from such as the fuel level or to execute a particular function e.g. closing a window are treated by underlying software layer and are transparent to the API. The developer using the API should not need to have any prior knowledge about the vehicle itself for instance what make and model it is.

Since not all vehicles will implement all of the APIs it is necessary that software using the API has methods to determine during runtime what APIs are actually implemented. The most straight-forward way is that an API returns a specific value when it is not implemented e.g. API_NOT_DEFINED. A calling software module would simply invoke the API and react accordingly if the API returns API_NOT_DEFINED. However, that may not be the most efficient way since dependent on what API functionality is available software modules may want to configure themselves differently. The most obvious case would be an application that changes its appearance in the UX according to the available functionality. Hence, it is desirable that the API implements reflection that allows querying its functionality during runtime. That can be achieved via API registration or other mechanisms.

If an API is implemented it must adhere to the API specification:

  • Parameters are required to have the specified types and must accept values within the specified range.
  • Return values must be of the specified type and only return values within the specified range.
  • Only the specified exceptions (if exceptions are used at all by the API) must be thrown.

Security

Some APIs will require access control to restrict execution to calling software modules with the correct privileges. MeeGo IVI should rely on the security mechanisms provided by MeeGo and extend them where necessary.

API Functional Groups and Functions

This section list proposed APIs and places them into functional groups.

Car-Systems

Group Function Parameter Operation
Type Contents
Application

Interoperability

Supported Features Integer Bit setting per each APIs Get
Car Manufacturer String   Get
WMI String World Manufacturer Identifier as defined by SAE. 3 characters.  Get
Car Model Name String   Get
VIN String Vehicle Identification Number as defined by ISO 3779. 17 characters.  Get
Car Information Car Type Enum Sedan, Coupe, Cabriole, Roadster, SUV, Truck Get
Door Type Composition # of doors in first row, second row, third row Get
Engine Type Enum Gasoline, Diesel, Hybrid, Electric Get
Transmission Gear Type Enum Auto/Manual Get
Wheel Information Composition Radius of Wheel, Wheel Track (for GPS Dead Reckoning) Get
Running Status Vehicle Power Mode Enum Off / Acc / Run / Ignition Get / Noti
Speedometer Integer km/h or mph Get / Noti
Engine Speed Integer rpm Get / Noti
Trip meter Integer km or mile Get / Noti
Transmission Gear Status Enum 0=N,1,2,3,4,5,6,7,8,9,10, 64=R, 128=Auto Get / Noti
Cruise Control Status Composition Activate/Deactivate, Speed Get / Noti
Wheel Brake Boolean Idle, Engaged, Malfunction Get / Noti
Lights Status Composition On / Off per each light (Head, Turn Right, Turn Left, Brake, Fog, Hazard Signal, Parking) Get / Noti
Interior Lights Status Composition On / Off per each light (Driver, Passenger, Center) Get / Noti
Horn Boolean On / Off Get / Noti
Chime Boolean On / Off Get / Noti
Fuel Integer Remaining % (Remaining, Total Capacity in liter or gallon) Get / Noti
Engine Oil Composition Remaining %, Temperature Get / Noti
Engine Coolant Composition Level, Temperature, Pressure Get / Noti
Steering Wheel Angle Integer (for GPS Dead Reckoning) Get / Noti
Wheel Tick Sensor Composition Left Wheel Rotation Counter, Right Wheel Rotation Counter (for GPS Dead Reckoning) Get
Maintenance Odometer Integer km/h or mph Get / Noti
Transmission Oil Integer Remaining % Get / Noti
Brake Fluid Integer Remaining % Get / Noti
Washer Fluid Integer Remaining % Get / Noti
Battery Status Composition Voltage, Current Get / Noti
Tire Pressure Composition PSI or Status (Normal, Low) per each tire (front left, front right, rear left, rear right) Get / Noti
Personalization Key ID (Driver ID) Enum   Get / Set
Language Enum English, Spanish, French, … Get / Set
Measurement System Boolean Km (litter), mile (gallon) Get / Set
Mirror Composition 2byte(Tilt, Pan) position per each mirror (driver side, passenger side, inside mirror) Get / Set
Steering Wheel Position Composition Level per each part (slide, tilt) Get / Set
Driving Mode Enum Comfort, Auto, Sport, Eco, Manual Get / Set
Driver Seat Position Composition Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) Get / Set
Passenger Seat Position Composition Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) Get / Set
Dashboard Illumination Enum  % of Illumination ( 0 : Darkest, 100 : Brightest) Get / Set
Generated Car Sound Mode Enum Normal, Quiet, Sportive Get / Set
Driving Safety Antilock Braking System Enum Available (Equipped), Idle, Engaged Get / Noti
Transaction Control System Enum Available (Equipped), On/Off Get / Noti
Vehicle Top Speed Limit Integer km/h or mph (0 means no limitation) Get / Set
Airbag Status Composition Activate/Deactivate/Deployment per each airbag (driver, passenger, side) Get / Noti
Door Open Status Composition Open/Ajar/Close per each door (driver, passenger, rear left, rear right, trunk, fuel filler cap, hood) Get / Noti
Door Lock Status Composition Lock/Unlock per each door (driver, passenger, rear left, rear right) Get / Noti / Set
Occupants Status Composition Type (Adults/Child/Vacant) per each seat (driver, passenger, rear left, rear right) Get / Noti
Seat Belt Composition Fasten or not per each seat (driver, passenger, rear left, rear right) Get / Noti
Window Lock Composition Lock/Unlock per each window (driver, passenger, rear left, rear right) Get / Noti / Set
Obstacle Distance Composition Sensor Status (available or not), Distance per each sensor (Position #) Get / Noti
Parking Security Alert Enum Available (Equipped), Idle, Activated, Alarm Detected Get / Noti
Parking Brake Boolean On / Off Get / Noti
Parking Lights Boolean On / Off Get / Noti / Set
Climate

/ Environment

Interior Temperature Integer 0.1 degrees of Celsius Get / Noti
Exterior Temperature Integer 0.1 degrees of Celsius Get / Noti
Exterior Brightness Integer lux Get / Noti
Rain Sensor Enum Level of rain intensity ( 0 : No Rain ~ 10 : Heaviest Rain) Get / Noti
Windshield Wiper Enum Level of speed ( 0 : Off, 1 : Slowest, 5 : Fastest, 10 : Auto) Get / Noti / Set
HVAC Fan Composition Airflow Direction (Front Panel, Floor Duct, Front+Floor, Defroster+Floor), Level of Fan Speed (0~7), Target Temperature (1 degrees of Celsius) Get / Noti / Set
Air-Conditioning Boolean On / Off Get / Noti / Set
Air-Recirculation Boolean On / Off Get / Noti / Set
Heater Boolean On / Off Get / Noti / Set
Defrost Composition On / Off per each position (Windshield, Rear Window, Side Mirrors) Get / Noti / Set
Steering Wheel Heater Boolean On / Off Get / Noti / Set
Seat Heater Boolean On / Off Get / Noti / Set
Seat Cooler Boolean On / Off Get / Noti / Set
Window Composition  % of openness per each window (driver, passenger, rear left, rear right) Get / Noti
Sunroof Composition  % of openness ( 0 : Closed, 100 : Fully Opened), % of tilt ( 0 : Closed, 100 : Maximum Tilted ) Get / Noti / Set
Convertible roof Boolean On / Off Get / Noti / Set
Electric Vehicle Hybrid Power Status Enum Idle, Battery Mode, Engine Mode, Hybrid Mode Get / Noti
Charging Status Boolen On / Off Get / Noti / Set
Battery Voltage Composition Voltage ( 0.1 volt ), Level of charge (0~100%) Get / Noti
Battery Charge Cord Boolen Not Connected / Connected Get / Noti
Target Charge Level Integer Level of charge capacity (0~100%) Get / Noti
Est. time to full charge Integer Number of minutes remaining Get / Noti
Est. time to target charge Integer Number of minutes remaining Get / Noti

Navigation

Group Function Parameter Operation
Type Contents
Maps / Navigation Navigation Status Enum Idle, Guiding, Off-Route, ... Get
Destination  ? Place Element (address, coordinates, viewport) Get / Set
ClearDestination none Clear current destination / Stop navigation routing Set
Routing Options Composition Shortest/Fastest, Free/Don't care, Highway/Don't care, ... Get / Set
Get Route Composition  ? Get
POI Composition List of: <Place Element, Landmark> Get / Set
Latest Destination Composition Place Element (address, coordinates, viewport) Get
Stored Locations Composition Place Element List (address, coordinates, viewport) Get / Set
Pitch Integer 2D/3D representation (pitch): '0' - 2D Bird;s eye view; '15' - 3D view 15 degrees Get / Set
Zoom Integer zooming (IN / OUT / auto-zoom): '2' - zoom in with factor 2; '-2' zoom out with factor -2; factor: > 1 and < -1 Get / Set
Panning Integer panning (NORTH / SOUTH / EAST / WEST / and combination of these 4 eg. NORTH-WEST) Set
Orientation Boolean orientation / northing (ON - map oriented north / OFF - map oriented in travelling direction) Get / Set
FollowGPS Boolean follow gps signal ( ON - map cursor follows gps signal / OFF - map cursor does not follow gps signal / timeout - number of updates to wait before cursor follows gps signal on map; useful for panning) Get / Set
Layout Composition day / night / detailed - POIs / plain simple Get / Set
SetUnits Enum Metric / Imperial / ... Get / Set
MapCenter Composition Center the map ( Place Element (address, coordinates, viewport) ) Get / Set

Multimedia

Basically, IVI shares Qt Mobility functions. This section is for IVI exclusive functionality about Multimedia

Communication

Basically, IVI shares Qt Mobility functions. This section is for IVI exclusive functionality about Communication

Personal tools