OpenXC Python Library
====================

* Avoid a singleton, but need to start a vehicle service before it can be used
* No need to serialize to fit into AIDL, which simplifies things

    vehicle = Vehicle(data_source=None)
    vehicle.get(VehicleSpeed)
    vehicle.listen(VehicleSpeed, receiver)

    class VehicleMeasurement(object): pass

    | UsbDataSource -> | String -> | JsonSource -> JSON -> | dict -> | Vehicle -> VehicleMeasurement subclass | -> | sinks (including JSONsink for trace)

OpenXC Python Library
====================

* Avoid a singleton, but need to start a vehicle service before it can be used
* No need to serialize to fit into AIDL, which simplifies things

    vehicle = Vehicle(data_source=None)
    vehicle.get(VehicleSpeed)
    vehicle.listen(VehicleSpeed, receiver)

    class VehicleMeasurement(object): pass

    | UsbDataSource -> | String -> | JsonSource -> JSON -> | dict -> | Vehicle -> VehicleMeasurement subclass | -> | sinks (including JSONsink for trace)

### Dependencies

This library uses `pyusb`, which depends on a native USB backend to also be
installed on your system - `libusb-1.0` is the recommended library.

**Mac OS X**

First install [homebrew][], then run:

{% highlight sh %}
$ brew install libusb
{% endhighlight %}

**Ubuntu**

{% highlight sh %}
$ sudo apt-get install libusb-1.0-0
{% endhighlight %}

**Arch Linux**

{% highlight sh %}
$ sudo pacman -S libusbx
{% endhighlight %}

[homebrew]: http://mxcl.github.com/homebrew/

Add docs for installing libusb backend.
Add docs for installing libusb backend.
