(→API Functional Groups and Functions) |
Simonbolek (Talk | contribs) (→API Functional Groups and Functions) |
||
| Line 438: | Line 438: | ||
| Number of minutes remaining | | Number of minutes remaining | ||
| Get / Noti | | Get / Noti | ||
| + | |- | ||
| + | | rowspan=2 | Maps / Navigation | ||
| + | | Pitch | ||
| + | | Integer | ||
| + | | 2D/3D representation (pitch) | ||
| + | | Get / Set | ||
| + | |- | ||
| + | | Zoom | ||
| + | | Integer | ||
| + | | zooming (IN / OUT / auto-zoom) | ||
| + | | Get / Set | ||
|} | |} | ||
Contents |
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.
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.
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:
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.
This section list proposed APIs and places them into functional groups.
| Group | Function | Parameter | Operation | |
| Type | Contents | |||
| Application Interoperability | Supported Features | Integer | Bit setting per each APIs | Get |
| Car Manufacturer | String | Get | ||
| Car Model Name | String | 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 | |
| Engine Coolant | Composition | Level, Temperature, Pressure | Get / Noti | |
| Compass Status | Enum | N, S, W, E, NE, NW, SE, SW | 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 | |
| GPS Data - Date, Time | Composition | Date, Time | Get | |
| GPS Data - Position | Composition | Latitude, Longitude | Get | |
| Maintenance | Odometer | Integer | km/h or mph | Get / Noti |
| Fuel | Integer | Remaining % (Remaining, Total Capacity in liter or gallon) | Get / Noti | |
| Engine Oil | Integer | Remaining % | 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 | |
| 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 | |
| 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 | |
| Maps / Navigation | Pitch | Integer | 2D/3D representation (pitch) | Get / Set |
| Zoom | Integer | zooming (IN / OUT / auto-zoom) | Get / Set | |