Simonbolek (Talk | contribs) (→Navigation) |
(→Car-Systems) |
||
| (7 intermediate revisions not shown) | |||
| Line 45: | Line 45: | ||
| Contents | | Contents | ||
|- | |- | ||
| - | | rowspan= | + | | rowspan=5 | Application<br> |
Interoperability | Interoperability | ||
| Supported Features | | Supported Features | ||
| Line 55: | Line 55: | ||
| String | | String | ||
| | | | ||
| + | | Get | ||
| + | |- | ||
| + | | WMI | ||
| + | | String | ||
| + | | World Manufacturer Identifier as defined by SAE. 3 characters. | ||
| Get | | Get | ||
|- | |- | ||
| Line 60: | Line 65: | ||
| String | | String | ||
| | | | ||
| + | | Get | ||
| + | |- | ||
| + | | VIN | ||
| + | | String | ||
| + | | Vehicle Identification Number as defined by ISO 3779. 17 characters. | ||
| Get | | Get | ||
|- | |- | ||
| Line 69: | Line 79: | ||
|- | |- | ||
| Door Type | | Door Type | ||
| - | | | + | | Compound |
| # of doors in first row, second row, third row | | # of doors in first row, second row, third row | ||
| Get | | Get | ||
| Line 84: | Line 94: | ||
|- | |- | ||
| Wheel Information | | Wheel Information | ||
| - | | | + | | Compound |
| Radius of Wheel, Wheel Track (for GPS Dead Reckoning) | | Radius of Wheel, Wheel Track (for GPS Dead Reckoning) | ||
| Get | | Get | ||
|- | |- | ||
| - | | rowspan= | + | | rowspan=19 | Running Status |
| Vehicle Power Mode | | Vehicle Power Mode | ||
| Enum | | Enum | ||
| Line 115: | Line 125: | ||
|- | |- | ||
| Cruise Control Status | | Cruise Control Status | ||
| - | | | + | | Compound |
| Activate/Deactivate, Speed | | Activate/Deactivate, Speed | ||
| Get / Noti | | Get / Noti | ||
| Line 125: | Line 135: | ||
|- | |- | ||
| Lights Status | | Lights Status | ||
| - | | | + | | Compound |
| On / Off per each light (Head, Turn Right, Turn Left, Brake, Fog, Hazard Signal, Parking) | | On / Off per each light (Head, Turn Right, Turn Left, Brake, Fog, Hazard Signal, Parking) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Interior Lights Status | | Interior Lights Status | ||
| - | | | + | | Compound |
| On / Off per each light (Driver, Passenger, Center) | | On / Off per each light (Driver, Passenger, Center) | ||
| Get / Noti | | Get / Noti | ||
| Line 147: | Line 157: | ||
| Integer | | Integer | ||
| Remaining % (Remaining, Total Capacity in liter or gallon) | | Remaining % (Remaining, Total Capacity in liter or gallon) | ||
| + | | Get / Noti | ||
| + | |- | ||
| + | | Estimated Range | ||
| + | | Integer | ||
| + | | km/miles (estimated range with available fuel) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Engine Oil | | Engine Oil | ||
| - | | | + | | Compound |
| Remaining %, Temperature | | Remaining %, Temperature | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Engine Coolant | | Engine Coolant | ||
| - | | | + | | Compound |
| Level, Temperature, Pressure | | Level, Temperature, Pressure | ||
| Get / Noti | | Get / Noti | ||
| + | |- | ||
| + | | Current G-read | ||
| + | | Integer | ||
| + | | m/s*s current acceleration lateral/longitudinal | ||
| + | | Get / Noti | ||
| + | |- | ||
| + | | Vehicle current Odometry | ||
| + | | Compound | ||
| + | | (dx_mm, dy_mm, dang, timestamp) or (x_mm, y_mm, ang, timestamp) formats | ||
| + | | Get | ||
|- | |- | ||
| Steering Wheel Angle | | Steering Wheel Angle | ||
| Line 165: | Line 190: | ||
|- | |- | ||
| Wheel Tick Sensor | | Wheel Tick Sensor | ||
| - | | | + | | Compound |
| Left Wheel Rotation Counter, Right Wheel Rotation Counter (for GPS Dead Reckoning) | | Left Wheel Rotation Counter, Right Wheel Rotation Counter (for GPS Dead Reckoning) | ||
| Get | | Get | ||
| Line 191: | Line 216: | ||
|- | |- | ||
| Battery Status | | Battery Status | ||
| - | | | + | | Compound |
| Voltage, Current | | Voltage, Current | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Tire Pressure | | Tire Pressure | ||
| - | | | + | | Compound |
| PSI or Status (Normal, Low) per each tire (front left, front right, rear left, rear right) | | PSI or Status (Normal, Low) per each tire (front left, front right, rear left, rear right) | ||
| Get / Noti | | Get / Noti | ||
| Line 204: | Line 229: | ||
| Enum | | Enum | ||
| | | | ||
| - | | Get | + | | Get |
|- | |- | ||
| Language | | Language | ||
| Line 217: | Line 242: | ||
|- | |- | ||
| Mirror | | Mirror | ||
| - | | | + | | Compound |
| 2byte(Tilt, Pan) position per each mirror (driver side, passenger side, inside mirror) | | 2byte(Tilt, Pan) position per each mirror (driver side, passenger side, inside mirror) | ||
| Get / Set | | Get / Set | ||
|- | |- | ||
| Steering Wheel Position | | Steering Wheel Position | ||
| - | | | + | | Compound |
| Level per each part (slide, tilt) | | Level per each part (slide, tilt) | ||
| Get / Set | | Get / Set | ||
| Line 232: | Line 257: | ||
|- | |- | ||
| Driver Seat Position | | Driver Seat Position | ||
| - | | | + | | Compound |
| Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) | | Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) | ||
| Get / Set | | Get / Set | ||
|- | |- | ||
| Passenger Seat Position | | Passenger Seat Position | ||
| - | | | + | | Compound |
| Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) | | Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) | ||
| Get / Set | | Get / Set | ||
| Line 251: | Line 276: | ||
| Get / Set | | Get / Set | ||
|- | |- | ||
| - | | rowspan= | + | | rowspan=11 | Driving Safety |
| Antilock Braking System | | Antilock Braking System | ||
| Enum | | Enum | ||
| Line 257: | Line 282: | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| - | | | + | | Traction Control System |
| Enum | | Enum | ||
| Available (Equipped), On/Off | | Available (Equipped), On/Off | ||
| Line 268: | Line 293: | ||
|- | |- | ||
| Airbag Status | | Airbag Status | ||
| - | | | + | | Compound |
| Activate/Deactivate/Deployment per each airbag (driver, passenger, side) | | Activate/Deactivate/Deployment per each airbag (driver, passenger, side) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Door Open Status | | Door Open Status | ||
| - | | | + | | Compound |
| Open/Ajar/Close per each door (driver, passenger, rear left, rear right, trunk, fuel filler cap, hood) | | Open/Ajar/Close per each door (driver, passenger, rear left, rear right, trunk, fuel filler cap, hood) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Door Lock Status | | Door Lock Status | ||
| - | | | + | | Compound |
| Lock/Unlock per each door (driver, passenger, rear left, rear right) | | Lock/Unlock per each door (driver, passenger, rear left, rear right) | ||
| Get / Noti / Set | | Get / Noti / Set | ||
|- | |- | ||
| Occupants Status | | Occupants Status | ||
| - | | | + | | Compound |
| Type (Adults/Child/Vacant) per each seat (driver, passenger, rear left, rear right) | | Type (Adults/Child/Vacant) per each seat (driver, passenger, rear left, rear right) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Seat Belt | | Seat Belt | ||
| - | | | + | | Compound |
| Fasten or not per each seat (driver, passenger, rear left, rear right) | | Fasten or not per each seat (driver, passenger, rear left, rear right) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Window Lock | | Window Lock | ||
| - | | | + | | Compound |
| Lock/Unlock per each window (driver, passenger, rear left, rear right) | | Lock/Unlock per each window (driver, passenger, rear left, rear right) | ||
| Get / Noti / Set | | Get / Noti / Set | ||
|- | |- | ||
| Obstacle Distance | | Obstacle Distance | ||
| - | | | + | | Compound |
| Sensor Status (available or not), Distance per each sensor (Position #) | | Sensor Status (available or not), Distance per each sensor (Position #) | ||
| Get / Noti | | Get / Noti | ||
| + | |- | ||
| + | | Camera frame/stream | ||
| + | | ? | ||
| + | | request frame/stream from selected vehicle camera(s) (resolution/compressed or not) | ||
| + | | Get | ||
|- | |- | ||
| rowspan=3 | Parking | | rowspan=3 | Parking | ||
| Line 346: | Line 376: | ||
|- | |- | ||
| HVAC Fan | | HVAC Fan | ||
| - | | | + | | Compound |
| Airflow Direction (Front Panel, Floor Duct, Front+Floor, Defroster+Floor), Level of Fan Speed (0~7), Target Temperature (1 degrees of Celsius) | | 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 | | Get / Noti / Set | ||
| Line 366: | Line 396: | ||
|- | |- | ||
| Defrost | | Defrost | ||
| - | | | + | | Compound |
| On / Off per each position (Windshield, Rear Window, Side Mirrors) | | On / Off per each position (Windshield, Rear Window, Side Mirrors) | ||
| Get / Noti / Set | | Get / Noti / Set | ||
| Line 386: | Line 416: | ||
|- | |- | ||
| Window | | Window | ||
| - | | | + | | Compound |
| % of openness per each window (driver, passenger, rear left, rear right) | | % of openness per each window (driver, passenger, rear left, rear right) | ||
| Get / Noti | | Get / Noti | ||
|- | |- | ||
| Sunroof | | Sunroof | ||
| - | | | + | | Compound |
| % of openness ( 0 : Closed, 100 : Fully Opened), % of tilt ( 0 : Closed, 100 : Maximum Tilted ) | | % of openness ( 0 : Closed, 100 : Fully Opened), % of tilt ( 0 : Closed, 100 : Maximum Tilted ) | ||
| Get / Noti / Set | | Get / Noti / Set | ||
| Line 412: | Line 442: | ||
|- | |- | ||
| Battery Voltage | | Battery Voltage | ||
| - | | | + | | Compound |
| Voltage ( 0.1 volt ), Level of charge (0~100%) | | Voltage ( 0.1 volt ), Level of charge (0~100%) | ||
| Get / Noti | | Get / Noti | ||
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 | ||
| 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 | Compound | # 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 | Compound | 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 | Compound | Activate/Deactivate, Speed | Get / Noti | |
| Wheel Brake | Boolean | Idle, Engaged, Malfunction | Get / Noti | |
| Lights Status | Compound | On / Off per each light (Head, Turn Right, Turn Left, Brake, Fog, Hazard Signal, Parking) | Get / Noti | |
| Interior Lights Status | Compound | 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 | |
| Estimated Range | Integer | km/miles (estimated range with available fuel) | Get / Noti | |
| Engine Oil | Compound | Remaining %, Temperature | Get / Noti | |
| Engine Coolant | Compound | Level, Temperature, Pressure | Get / Noti | |
| Current G-read | Integer | m/s*s current acceleration lateral/longitudinal | Get / Noti | |
| Vehicle current Odometry | Compound | (dx_mm, dy_mm, dang, timestamp) or (x_mm, y_mm, ang, timestamp) formats | Get | |
| Steering Wheel Angle | Integer | (for GPS Dead Reckoning) | Get / Noti | |
| Wheel Tick Sensor | Compound | 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 | Compound | Voltage, Current | Get / Noti | |
| Tire Pressure | Compound | 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 | |
| Language | Enum | English, Spanish, French, … | Get / Set | |
| Measurement System | Boolean | Km (litter), mile (gallon) | Get / Set | |
| Mirror | Compound | 2byte(Tilt, Pan) position per each mirror (driver side, passenger side, inside mirror) | Get / Set | |
| Steering Wheel Position | Compound | Level per each part (slide, tilt) | Get / Set | |
| Driving Mode | Enum | Comfort, Auto, Sport, Eco, Manual | Get / Set | |
| Driver Seat Position | Compound | Level per each part (recline seatback, slide, cushion height, headrest, back cushion, side cushion) | Get / Set | |
| Passenger Seat Position | Compound | 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 |
| Traction 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 | Compound | Activate/Deactivate/Deployment per each airbag (driver, passenger, side) | Get / Noti | |
| Door Open Status | Compound | Open/Ajar/Close per each door (driver, passenger, rear left, rear right, trunk, fuel filler cap, hood) | Get / Noti | |
| Door Lock Status | Compound | Lock/Unlock per each door (driver, passenger, rear left, rear right) | Get / Noti / Set | |
| Occupants Status | Compound | Type (Adults/Child/Vacant) per each seat (driver, passenger, rear left, rear right) | Get / Noti | |
| Seat Belt | Compound | Fasten or not per each seat (driver, passenger, rear left, rear right) | Get / Noti | |
| Window Lock | Compound | Lock/Unlock per each window (driver, passenger, rear left, rear right) | Get / Noti / Set | |
| Obstacle Distance | Compound | Sensor Status (available or not), Distance per each sensor (Position #) | Get / Noti | |
| Camera frame/stream | ? | request frame/stream from selected vehicle camera(s) (resolution/compressed or not) | Get | |
| 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 | Compound | 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 | Compound | 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 | Compound | % of openness per each window (driver, passenger, rear left, rear right) | Get / Noti | |
| Sunroof | Compound | % 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 | Compound | 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 | |
| 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 | |
Basically, IVI shares Qt Mobility functions. This section is for IVI exclusive functionality about Multimedia
Basically, IVI shares Qt Mobility functions. This section is for IVI exclusive functionality about Communication