JAKE sensor device driver
Project description
# JAKE Drivers
This project contains drivers for the JAKE sensor packs. For more information on the devices and their capabilities, [see the wiki](https://github.com/andrewramsay/jake-drivers/wiki/Overview).
This repo contains multiple drivers. The most feature complete implementation is a C++ driver that can be compiled for Windows, OSX and Linux (32/64-bit). This driver also has bindings for Python, C# and Java, although in some cases functionality supported by the C++ code has not yet been exposed through these bindings.
In addition, there are two separate implementations, one written in Python (with a dependency on [pyserial](http://pyserial.sourceforge.net/)) and one written in Java (probably most useful in that it supports Android).
**NOTE**: If you install both the Python/C++ bindings and the pure Python implementation in the same Python environment you may encounter naming conflicts, as both include a module called "pyjake".
## Installation on Windows
The easiest way to get up and running quickly on Windows is to use the Python implementation. Install pyserial, then run `python setup.py install` from the `jake-drivers/python` directory.
If you want to use the C++ driver, you'll need to compile it first. Inside the `jake-drivers/cpp` directory, you'll find:
* jake\_driver (the C++ code)
* pyjake (Python bindings for jake\_driver)
* jake\_cs (C# bindings for jake\_driver)
* jake\_java (Java bindings for jake\_driver)
* jake\_mex (Basic Matlab bindings for jake\_driver)
Each of these should have a Visual Studio project file that can be used to compile them individually depending on which parts you need. They will probably also compile with gcc/g++ from MingW, but there are no build scripts for this at the moment.
## Installation on OSX
Again the Python implementation is the easiest way to get started quickly:
* Install pyserial
* Run `python setup.py install` from `jake-drivers/python`
If you have the XCode/developer packages installed and want to compile the C++/Python bindings:
* Run `sh build_osx_64.sh` from `jake-drivers/cpp/jake_driver`
* Run `python setup_osx.py install` from `jake-drivers/cpp/pyjake`
## Installation on Linux
Similar to OSX. For the Python implementation:
* Install pyserial
* Run `python setup.py install` from `jake-drivers/python`
For the C++/Python bindings:
* Run `sh build.sh` from `jake-drivers/cpp/jake_driver`
* Run `python setup.py install` from `jake-drivers/cpp/pyjake`
## A basic example
(for more examples see [the wiki page](https://github.com/andrewramsay/jake-drivers/wiki/Examples)
**Python / pyserial**
```python
from pyjake import *
jd = jake_device()
# connection details depend on platform
# Windows (virtual COM port number)
device = 10
# OSX (Serial Port Profile dev node)
# device = '/dev/tty.JAKESN0077-SPP'
jd.connect(device) # returns False if connection failed
print jd.acc() # current accelerometer output
print jd.mag() # current magnetometer output
print jd.heading() # current heading output
jd.close()
```
**Python/C++ bindings**
```python
from jake import *
jd = jake_device()
# Windows: for non-Microsoft Bluetooth stacks
jd.connect(10)
# Windows: if you're using the Microsoft Bluetooth stack,
# you can instead connect by specifying the device address directly
jd.connect_rfcomm('aa:bb:cc:dd:ee:ff')
# OSX: always use this function
# TODO
# Linux: Bluetooth device address
jd.connect_rfcomm('aa:bb:cc:dd:ee:ff')
# access data...
print jd.acc(), jd.mag(), jd.heading()
jd.close()
```
This project contains drivers for the JAKE sensor packs. For more information on the devices and their capabilities, [see the wiki](https://github.com/andrewramsay/jake-drivers/wiki/Overview).
This repo contains multiple drivers. The most feature complete implementation is a C++ driver that can be compiled for Windows, OSX and Linux (32/64-bit). This driver also has bindings for Python, C# and Java, although in some cases functionality supported by the C++ code has not yet been exposed through these bindings.
In addition, there are two separate implementations, one written in Python (with a dependency on [pyserial](http://pyserial.sourceforge.net/)) and one written in Java (probably most useful in that it supports Android).
**NOTE**: If you install both the Python/C++ bindings and the pure Python implementation in the same Python environment you may encounter naming conflicts, as both include a module called "pyjake".
## Installation on Windows
The easiest way to get up and running quickly on Windows is to use the Python implementation. Install pyserial, then run `python setup.py install` from the `jake-drivers/python` directory.
If you want to use the C++ driver, you'll need to compile it first. Inside the `jake-drivers/cpp` directory, you'll find:
* jake\_driver (the C++ code)
* pyjake (Python bindings for jake\_driver)
* jake\_cs (C# bindings for jake\_driver)
* jake\_java (Java bindings for jake\_driver)
* jake\_mex (Basic Matlab bindings for jake\_driver)
Each of these should have a Visual Studio project file that can be used to compile them individually depending on which parts you need. They will probably also compile with gcc/g++ from MingW, but there are no build scripts for this at the moment.
## Installation on OSX
Again the Python implementation is the easiest way to get started quickly:
* Install pyserial
* Run `python setup.py install` from `jake-drivers/python`
If you have the XCode/developer packages installed and want to compile the C++/Python bindings:
* Run `sh build_osx_64.sh` from `jake-drivers/cpp/jake_driver`
* Run `python setup_osx.py install` from `jake-drivers/cpp/pyjake`
## Installation on Linux
Similar to OSX. For the Python implementation:
* Install pyserial
* Run `python setup.py install` from `jake-drivers/python`
For the C++/Python bindings:
* Run `sh build.sh` from `jake-drivers/cpp/jake_driver`
* Run `python setup.py install` from `jake-drivers/cpp/pyjake`
## A basic example
(for more examples see [the wiki page](https://github.com/andrewramsay/jake-drivers/wiki/Examples)
**Python / pyserial**
```python
from pyjake import *
jd = jake_device()
# connection details depend on platform
# Windows (virtual COM port number)
device = 10
# OSX (Serial Port Profile dev node)
# device = '/dev/tty.JAKESN0077-SPP'
jd.connect(device) # returns False if connection failed
print jd.acc() # current accelerometer output
print jd.mag() # current magnetometer output
print jd.heading() # current heading output
jd.close()
```
**Python/C++ bindings**
```python
from jake import *
jd = jake_device()
# Windows: for non-Microsoft Bluetooth stacks
jd.connect(10)
# Windows: if you're using the Microsoft Bluetooth stack,
# you can instead connect by specifying the device address directly
jd.connect_rfcomm('aa:bb:cc:dd:ee:ff')
# OSX: always use this function
# TODO
# Linux: Bluetooth device address
jd.connect_rfcomm('aa:bb:cc:dd:ee:ff')
# access data...
print jd.acc(), jd.mag(), jd.heading()
jd.close()
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size jake_drivers-1.0.1-py2.py3-none-any.whl (16.1 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Close
Hashes for jake_drivers-1.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db570cb1dc29923edacc56ea24f12e699f03769b9f66dd0a346300010083cd40 |
|
MD5 | deec5849b052ecbfb594defa8b46cf26 |
|
BLAKE2-256 | 459455a135935c4201cf74baebe58ccb253a95ad3d9a77ccb5cc39f7b5a292fe |