diff options
Diffstat (limited to 'peripheral/libmraa/src/python/mraa.i')
-rw-r--r-- | peripheral/libmraa/src/python/mraa.i | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/peripheral/libmraa/src/python/mraa.i b/peripheral/libmraa/src/python/mraa.i deleted file mode 100644 index 64d086e..0000000 --- a/peripheral/libmraa/src/python/mraa.i +++ /dev/null @@ -1,154 +0,0 @@ -%module(docstring="Python interface to libmraa") mraa - -%feature("autodoc", "3"); - -%include typemaps.i -%include carrays.i - -%array_class(uint8_t, uint8Array); - -// uart write() -%typemap(in) (const char* data, int length) { - if (PyByteArray_Check($input)) { - // whilst this may seem 'hopeful' it turns out this is safe - $1 = (char*) PyByteArray_AsString($input); - $2 = PyByteArray_Size($input); - } else { - PyErr_SetString(PyExc_ValueError, "bytearray expected"); - return NULL; - } -} - -// i2c write() -%typemap(in) (const uint8_t *data, int length) { - if (PyByteArray_Check($input)) { - // whilst this may seem 'hopeful' it turns out this is safe - $1 = (uint8_t*) PyByteArray_AsString($input); - $2 = PyByteArray_Size($input); - } else { - PyErr_SetString(PyExc_ValueError, "bytearray expected"); - return NULL; - } -} - -// Spi write() -%typemap(in) (uint8_t *txBuf, int length) { - if (PyByteArray_Check($input)) { - // whilst this may seem 'hopeful' it turns out this is safe - $1 = (uint8_t*) PyByteArray_AsString($input); - $2 = PyByteArray_Size($input); - } else { - PyErr_SetString(PyExc_ValueError, "bytearray expected"); - return NULL; - } -} - -namespace mraa { -class I2c; -%typemap(out) uint8_t* -{ - // need to loop over length - $result = PyByteArray_FromStringAndSize((char*) $1, arg2); - free($1); -} - -class Spi; -%typemap(out) uint8_t* -{ - // need to loop over length - $result = PyByteArray_FromStringAndSize((char*) $1, arg3); - free($1); -} -} - -%newobject I2c::read(uint8_t *data, int length); -%newobject Spi::write(uint8_t *data, int length); -%newobject Uart::read(char* data, int length); -%newobject Spi::transfer(uint8_t *txBuf, uint8_t *rxBuf, int length); - -// Uart::read() - -%typemap(in) (char* data, int length) { - if (!PyInt_Check($input)) { - PyErr_SetString(PyExc_ValueError, "Expecting an integer"); - return NULL; - } - $2 = PyInt_AsLong($input); - if ($2 < 0) { - PyErr_SetString(PyExc_ValueError, "Positive integer expected"); - return NULL; - } - $1 = (char*) malloc($2 * sizeof(char)); -} - -%typemap(argout) (char* data, int length) { - Py_XDECREF($result); /* Blow away any previous result */ - if (result < 0) { /* Check for I/O error */ - free($1); - PyErr_SetFromErrno(PyExc_IOError); - return NULL; - } - // Append output value $1 to $result - $result = PyByteArray_FromStringAndSize((char*) $1, result); - free($1); -} - -// I2c::read() - -%typemap(in) (uint8_t *data, int length) { - if (!PyInt_Check($input)) { - PyErr_SetString(PyExc_ValueError, "Expecting an integer"); - return NULL; - } - $2 = PyInt_AsLong($input); - if ($2 < 0) { - PyErr_SetString(PyExc_ValueError, "Positive integer expected"); - return NULL; - } - $1 = (uint8_t*) malloc($2 * sizeof(uint8_t)); -} - -%typemap(argout) (uint8_t *data, int length) { - Py_XDECREF($result); /* Blow away any previous result */ - if (result < 0) { /* Check for I/O error */ - free($1); - PyErr_SetFromErrno(PyExc_IOError); - return NULL; - } - // Append output value $1 to $result - $result = PyByteArray_FromStringAndSize((char*) $1, result); - free($1); -} - -// Spi::transfer() - -%typemap(in) (uint8_t* txBuf, uint8_t* rxBuf, int length) { - if (!PyInt_Check($input)) { - PyErr_SetString(PyExc_ValueError, "Expecting an integer"); - return NULL; - } - $3 = PyInt_AsLong($input); - if ($3 < 0) { - PyErr_SetString(PyExc_ValueError, "Positive integer expected"); - return NULL; - } - $2 = (uint8_t*) malloc($3 * sizeof(uint8_t)); -} - -%typemap(argout) (uint8_t* txBuf, uint8_t* rxBuf, int length) { - Py_XDECREF($result); /* Blow away any previous result */ - if (result != MRAA_SUCCESS) { /* Check for I/O error */ - free($2); - PyErr_SetFromErrno(PyExc_IOError); - return NULL; - } - $result = PyByteArray_FromStringAndSize((char*) $2, $3); - free($2); -} - -%include ../mraa.i - -%init %{ - //Adding mraa_init() to the module initialisation process - mraa_init(); -%} |