OpenXC
From Wikipedia, the free encyclopedia
Architecture
A typical implementation uses the following architectural layers:
- Vehicle electronic control units
- CAN Bus
- OBDII Interface
- OpenXC Vehicle interface Module [3]
- OpenXC wire messages over USB or Bluetooth
- OpenXC driver or service on a device (currently Android) E.g. OpenXC Enabler app for Android.[4]
- OpenXC enabled applications. See Android sample applications: retro-gauge[5] and mpg.[6]
Not all these layers are necessary, e.g. a vehicle might implement a native CAN Bus interface to USB or Bluetooth, without using the OBD socket or the reference OpenXC Vehicle interface Module. Or an alternative to the reference OpenXC Vehicle interface Module could be developed with a common ELM327 interface.
API
The data available via the API as at January 2012 includes[7]
- AcceleratorPedalPosition
- BrakePedalStatus
- EngineSpeed
- FineOdometer - a persistent odometer recording)
- FuelConsumed - fuel consumed since the vehicle was started)
- FuelLevel - current level of fuel in the gas tank.
- HeadlampStatus - are headlamps are off or on.
- HighBeamStatus
- IgnitionStatus
- Latitude
- Longitude
- Odometer
- ParkingBrakeStatus - is the parking brake is engaged or not.
- SteeringWheelAngle
- TorqueAtTransmission - the actual current torque in the transmission.
- TransmissionGearPosition - the actual current gear of the transmission.
- TurnSignalStatus
- VehicleButtonEvent A ButtonEvent represents a button press, release or hold on the vehicle HMI.
- VehicleDoorStatus - is a door ajar?
- VehicleSpeed - the current forward speed of the vehicle.
- WindshieldWiperStatus