Pico GPS Teseo I2C
|
#include <Python.h>
#include <numpy/ndarrayobject.h>
#include <stdbool.h>
#include <lc3.h>
#include <ltpf.h>
#include <sns.h>
#include <tns.h>
#include <spec.h>
Go to the source code of this file.
Macros | |
#define | CTYPES_CHECK(exc, t) |
#define | to_scalar(obj, t, ptr) |
#define | to_1d_ptr(obj, t, n, ptr) |
#define | to_2d_ptr(obj, t, n1, n2, ptr) |
#define | to_1d_copy(obj, t, ptr, n) |
#define | to_2d_copy(obj, t, ptr, n1, n2) |
#define | new_scalar(obj, ptr) |
#define | new_1d_ptr(t, n, ptr) |
#define | new_2d_ptr(t, n1, n2, ptr) |
#define | new_1d_copy(t, n, src) |
#define | new_2d_copy(t, n1, n2, src) |
Functions | |
__attribute__ ((unused)) static PyObject *__to_scalar(PyObject *obj | |
if (!obj) return NULL = PyDict_New() | |
memcpy (ptr, PyArray_DATA((PyArrayObject *) obj), PyArray_NBYTES((PyArrayObject *) obj)) | |
if (!obj||(n &&PyArray_SIZE((PyArrayObject *) obj) !=n)) return NULL | |
if (!obj||(n1 &&PyArray_DIMS((PyArrayObject *) obj)[0] !=n1)||(n2 &&PyArray_DIMS((PyArrayObject *) obj)[1] !=n2)) return NULL | |
if ((obj=to_1d_ptr(obj, t, n, &src))) memcpy(v | |
PyArray_NBYTES ((PyArrayObject *) obj)) | |
if ((obj=to_2d_ptr(obj, t, n1, n2, &src))) memcpy(v | |
memcpy (PyArray_DATA((PyArrayObject *) obj), ptr, PyArray_NBYTES((PyArrayObject *) obj)) | |
if ((obj=new_1d_ptr(t, n, &dst))) memcpy(dst | |
if ((obj=new_2d_ptr(t, n1, n2, &dst))) memcpy(dst | |
CTYPES_CHECK ("attdet.en1", to_scalar(PyDict_GetItemString(obj, "en1"), NPY_INT32, &attdet->en1)) | |
CTYPES_CHECK ("attdet.an1", to_scalar(PyDict_GetItemString(obj, "an1"), NPY_INT32, &attdet->an1)) | |
CTYPES_CHECK ("attdet.p_att", to_scalar(PyDict_GetItemString(obj, "p_att"), NPY_INT, &attdet->p_att)) | |
PyDict_SetItemString (obj, "en1", new_scalar(NPY_INT32, &attdet->en1)) | |
PyDict_SetItemString (obj, "an1", new_scalar(NPY_INT32, &attdet->an1)) | |
PyDict_SetItemString (obj, "p_att", new_scalar(NPY_INT, &attdet->p_att)) | |
CTYPES_CHECK ("hp50.s1", to_scalar(PyDict_GetItemString(obj, "s1"), NPY_INT64, &hp50->s1)) | |
CTYPES_CHECK ("hp50.s2", to_scalar(PyDict_GetItemString(obj, "s2"), NPY_INT64, &hp50->s2)) | |
PyDict_SetItemString (obj, "s2", new_scalar(NPY_INT64, &hp50->s2)) | |
CTYPES_CHECK ("ltpf", obj &&PyDict_Check(obj)) | |
CTYPES_CHECK ("ltpf.active", to_scalar(PyDict_GetItemString(obj, "active"), NPY_BOOL, <pf->active)) | |
CTYPES_CHECK ("ltpf.pitch", to_scalar(PyDict_GetItemString(obj, "pitch"), NPY_INT, <pf->pitch)) | |
CTYPES_CHECK ("ltpf.nc", nc_obj=to_1d_copy(PyDict_GetItemString(obj, "nc"), NPY_FLOAT, ltpf->nc, 2)) | |
PyDict_SetItemString (obj, "nc", nc_obj) | |
CTYPES_CHECK (NULL, to_ltpf_hp50_state(PyDict_GetItemString(obj, "hp50"), <pf->hp50)) | |
CTYPES_CHECK ("ltpf.x_12k8", x_12k8_obj=to_1d_copy(PyDict_GetItemString(obj, "x_12k8"), NPY_INT16, ltpf->x_12k8, n_12k8)) | |
PyDict_SetItemString (obj, "x_12k8", x_12k8_obj) | |
CTYPES_CHECK ("ltpf.x_6k4", x_6k4_obj=to_1d_copy(PyDict_GetItemString(obj, "x_6k4"), NPY_INT16, ltpf->x_6k4, n_6k4)) | |
PyDict_SetItemString (obj, "x_6k4", x_6k4_obj) | |
CTYPES_CHECK ("ltpf.tc", to_scalar(PyDict_GetItemString(obj, "tc"), NPY_INT, <pf->tc)) | |
PyDict_SetItemString (obj, "active", new_scalar(NPY_BOOL, <pf->active)) | |
PyDict_SetItemString (obj, "pitch", new_scalar(NPY_INT, <pf->pitch)) | |
PyDict_SetItemString (obj, "nc", new_1d_copy(NPY_FLOAT, 2, <pf->nc)) | |
PyDict_SetItemString (obj, "hp50", from_ltpf_hp50_state(PyDict_New(), <pf->hp50)) | |
PyDict_SetItemString (obj, "x_12k8", new_1d_copy(NPY_INT16, n_12k8, <pf->x_12k8)) | |
PyDict_SetItemString (obj, "x_6k4", new_1d_copy(NPY_INT16, n_6k4, <pf->x_6k4)) | |
PyDict_SetItemString (obj, "tc", new_scalar(NPY_INT, <pf->tc)) | |
CTYPES_CHECK ("ltpf.c", c_obj=to_1d_copy(PyDict_GetItemString(obj, "c"), NPY_FLOAT, ltpf->c, 2 *12)) | |
PyDict_SetItemString (obj, "c", c_obj) | |
CTYPES_CHECK ("ltpf.x", x_obj=to_1d_copy(PyDict_GetItemString(obj, "x"), NPY_FLOAT, ltpf->x, 12)) | |
PyDict_SetItemString (obj, "x", x_obj) | |
PyDict_SetItemString (obj, "c", new_1d_copy(NPY_FLOAT, 2 *12, <pf->c)) | |
PyDict_SetItemString (obj, "x", new_1d_copy(NPY_FLOAT, 12, <pf->x)) | |
if ((item=PyDict_GetItemString(obj, "active"))) CTYPES_CHECK("ltpf.active" | |
to_scalar (item, NPY_BOOL, &data->active)) | |
if ((item=PyDict_GetItemString(obj, "pitch_index"))) CTYPES_CHECK("ltpf.pitch_index" | |
to_scalar (item, NPY_INT, &data->pitch_index)) | |
CTYPES_CHECK ("sns", obj &&PyDict_Check(obj)) | |
if ((item=PyDict_GetItemString(obj, "lfcb"))) CTYPES_CHECK("sns.lfcb" | |
if ((item=PyDict_GetItemString(obj, "hfcb"))) CTYPES_CHECK("sns.hfcb" | |
if ((item=PyDict_GetItemString(obj, "shape"))) CTYPES_CHECK("sns.shape" | |
if ((item=PyDict_GetItemString(obj, "gain"))) CTYPES_CHECK("sns.gain" | |
if ((item=PyDict_GetItemString(obj, "idx_a"))) CTYPES_CHECK("sns.idx_a" | |
if ((item=PyDict_GetItemString(obj, "ls_a"))) CTYPES_CHECK("sns.ls_a" | |
if ((item=PyDict_GetItemString(obj, "idx_b"))) CTYPES_CHECK("sns.idx_b" | |
if ((item=PyDict_GetItemString(obj, "ls_b"))) CTYPES_CHECK("sns.ls_b" | |
CTYPES_CHECK ("tns", obj &&PyDict_Check(obj)) | |
if ((item=PyDict_GetItemString(obj, "nfilters"))) CTYPES_CHECK("tns.nfilters" | |
to_scalar (item, NPY_INT, &side->nfilters)) | |
if ((item=PyDict_GetItemString(obj, "lpc_weighting"))) | |
if ((item=PyDict_GetItemString(obj, "rc_order"))) | |
if ((item=PyDict_GetItemString(obj, "rc"))) | |
PyDict_SetItemString (obj, "nbits_off", new_scalar(NPY_FLOAT, &spec->nbits_off)) | |
PyDict_SetItemString (obj, "nbits_spare", new_scalar(NPY_INT, &spec->nbits_spare)) | |
CTYPES_CHECK ("spec.nbits_off", to_scalar(PyDict_GetItemString(obj, "nbits_off"), NPY_FLOAT, &spec->nbits_off)) | |
CTYPES_CHECK ("spec.nbits_spare", to_scalar(PyDict_GetItemString(obj, "nbits_spare"), NPY_INT, &spec->nbits_spare)) | |
CTYPES_CHECK ("side", obj &&PyDict_Check(obj)) | |
if ((item=PyDict_GetItemString(obj, "g_idx"))) CTYPES_CHECK("side.g_idx" | |
if ((item=PyDict_GetItemString(obj, "nq"))) CTYPES_CHECK("side.nq" | |
if ((item=PyDict_GetItemString(obj, "lsb_mode"))) CTYPES_CHECK("side.lsb_mode" | |
to_scalar (item, NPY_BOOL, &side->lsb_mode)) | |
Variables | |
int | t |
int void * | ptr |
return | obj = PyArray_SimpleNew(2, ((const npy_intp []){ n1, n2 }), t) |
int int | n |
int int | n1 |
int int int | n2 |
int void * | v |
src | |
void * | dst |
struct lc3_attdet_analysis * | attdet |
struct lc3_ltpf_hp50_state * | hp50 |
struct lc3_ltpf_analysis * | ltpf |
const int | n_12k8 = sizeof(ltpf->x_12k8) / sizeof(*ltpf->x_12k8) |
const int | n_6k4 = sizeof(ltpf->x_6k4) / sizeof(*ltpf->x_6k4) |
const struct lc3_ltpf_data * | data |
struct lc3_tns_data * | side |
const struct lc3_spec_analysis * | spec |
#define CTYPES_CHECK | ( | exc, | |
t ) |
CTYPES_CHECK | ( | "attdet.an1" | , |
to_scalar(PyDict_GetItemString(obj, "an1"), NPY_INT32, &attdet->an1) | ) |
CTYPES_CHECK | ( | "attdet.en1" | , |
to_scalar(PyDict_GetItemString(obj, "en1"), NPY_INT32, &attdet->en1) | ) |
CTYPES_CHECK | ( | "attdet.p_att" | , |
to_scalar(PyDict_GetItemString(obj, "p_att"), NPY_INT, &attdet->p_att) | ) |
CTYPES_CHECK | ( | "ltpf" | , |
obj && | PyDict_Checkobj ) |
CTYPES_CHECK | ( | "ltpf.active" | , |
to_scalar(PyDict_GetItemString(obj, "active"), NPY_BOOL, <pf->active) | ) |
CTYPES_CHECK | ( | "ltpf.c" | , |
c_obj | = to_1d_copy(PyDict_GetItemString(obj, "c"), NPY_FLOAT, ltpf->c, 2 *12) ) |
CTYPES_CHECK | ( | "ltpf.nc" | , |
nc_obj | = to_1d_copy(PyDict_GetItemString(obj, "nc"), NPY_FLOAT, ltpf->nc, 2) ) |
CTYPES_CHECK | ( | "ltpf.pitch" | , |
to_scalar(PyDict_GetItemString(obj, "pitch"), NPY_INT, <pf->pitch) | ) |
CTYPES_CHECK | ( | "ltpf.x" | , |
x_obj | = to_1d_copy(PyDict_GetItemString(obj, "x"), NPY_FLOAT, ltpf->x, 12) ) |
CTYPES_CHECK | ( | "ltpf.x_12k8" | , |
x_12k8_obj | = to_1d_copy(PyDict_GetItemString(obj, "x_12k8"), NPY_INT16, ltpf->x_12k8, n_12k8) ) |
CTYPES_CHECK | ( | "ltpf.x_6k4" | , |
x_6k4_obj | = to_1d_copy(PyDict_GetItemString(obj, "x_6k4"), NPY_INT16, ltpf->x_6k4, n_6k4) ) |
CTYPES_CHECK | ( | "side" | , |
obj && | PyDict_Checkobj ) |
CTYPES_CHECK | ( | "sns" | , |
obj && | PyDict_Checkobj ) |
CTYPES_CHECK | ( | "spec.nbits_off" | , |
to_scalar(PyDict_GetItemString(obj, "nbits_off"), NPY_FLOAT, &spec->nbits_off) | ) |
CTYPES_CHECK | ( | "spec.nbits_spare" | , |
to_scalar(PyDict_GetItemString(obj, "nbits_spare"), NPY_INT, &spec->nbits_spare) | ) |
CTYPES_CHECK | ( | "tns" | , |
obj && | PyDict_Checkobj ) |
if | ( | ! | obj | ) | = PyDict_New() |
if | ( | !obj|| | n &&PyArray_SIZE((PyArrayObject *) obj) !=n | ) |
if | ( | !obj|| | n1 &&PyArray_DIMS((PyArrayObject *) obj)[0] !=n1)||(n2 &&PyArray_DIMS((PyArrayObject *) obj)[1] !=n2 | ) |
if | ( | (item=PyDict_GetItemString(obj, "active")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "g_idx")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "gain")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "hfcb")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "idx_a")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "idx_b")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "lfcb")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "ls_a")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "ls_b")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "lsb_mode")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "nfilters")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "nq")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "pitch_index")) | ) |
if | ( | (item=PyDict_GetItemString(obj, "shape")) | ) |
if | ( | (obj=new_1d_ptr(t, n, &dst)) | ) |
memcpy | ( | ptr | , |
PyArray_DATA((PyArrayObject *) obj) | , | ||
PyArray_NBYTES((PyArrayObject *) obj) | ) |
memcpy | ( | PyArray_DATA((PyArrayObject *) obj) | , |
ptr | , | ||
PyArray_NBYTES((PyArrayObject *) obj) | ) |
PyArray_NBYTES | ( | (PyArrayObject *) | obj | ) |
PyDict_SetItemString | ( | obj | , |
"active" | , | ||
new_scalar(NPY_BOOL, <pf->active) | ) |
PyDict_SetItemString | ( | obj | , |
"an1" | , | ||
new_scalar(NPY_INT32, &attdet->an1) | ) |
PyDict_SetItemString | ( | obj | , |
"c" | , | ||
c_obj | ) |
PyDict_SetItemString | ( | obj | , |
"c" | , | ||
new_1d_copy(NPY_FLOAT, 2 *12, <pf->c) | ) |
PyDict_SetItemString | ( | obj | , |
"en1" | , | ||
new_scalar(NPY_INT32, &attdet->en1) | ) |
PyDict_SetItemString | ( | obj | , |
"nbits_off" | , | ||
new_scalar(NPY_FLOAT, &spec->nbits_off) | ) |
PyDict_SetItemString | ( | obj | , |
"nbits_spare" | , | ||
new_scalar(NPY_INT, &spec->nbits_spare) | ) |
PyDict_SetItemString | ( | obj | , |
"nc" | , | ||
nc_obj | ) |
PyDict_SetItemString | ( | obj | , |
"nc" | , | ||
new_1d_copy(NPY_FLOAT, 2, <pf->nc) | ) |
PyDict_SetItemString | ( | obj | , |
"p_att" | , | ||
new_scalar(NPY_INT, &attdet->p_att) | ) |
PyDict_SetItemString | ( | obj | , |
"pitch" | , | ||
new_scalar(NPY_INT, <pf->pitch) | ) |
PyDict_SetItemString | ( | obj | , |
"s2" | , | ||
new_scalar(NPY_INT64, &hp50->s2) | ) |
PyDict_SetItemString | ( | obj | , |
"tc" | , | ||
new_scalar(NPY_INT, <pf->tc) | ) |
PyDict_SetItemString | ( | obj | , |
"x" | , | ||
new_1d_copy(NPY_FLOAT, 12, <pf->x) | ) |
PyDict_SetItemString | ( | obj | , |
"x" | , | ||
x_obj | ) |
PyDict_SetItemString | ( | obj | , |
"x_12k8" | , | ||
new_1d_copy(NPY_INT16, n_12k8, <pf->x_12k8) | ) |
PyDict_SetItemString | ( | obj | , |
"x_12k8" | , | ||
x_12k8_obj | ) |
PyDict_SetItemString | ( | obj | , |
"x_6k4" | , | ||
new_1d_copy(NPY_INT16, n_6k4, <pf->x_6k4) | ) |
PyDict_SetItemString | ( | obj | , |
"x_6k4" | , | ||
x_6k4_obj | ) |
to_scalar | ( | item | , |
NPY_BOOL | , | ||
&data-> | active ) |
to_scalar | ( | item | , |
NPY_BOOL | , | ||
&side-> | lsb_mode ) |
to_scalar | ( | item | , |
NPY_INT | , | ||
&data-> | pitch_index ) |
to_scalar | ( | item | , |
NPY_INT | , | ||
&side-> | nfilters ) |
const struct lc3_attdet_analysis * attdet |
struct lc3_sns_data * data |
const struct lc3_ltpf_hp50_state * hp50 |
const struct lc3_ltpf_synthesis * ltpf |
const int n_12k8 = sizeof(ltpf->x_12k8) / sizeof(*ltpf->x_12k8) |
const int n_6k4 = sizeof(ltpf->x_6k4) / sizeof(*ltpf->x_6k4) |
* ptr |
struct lc3_spec_side * side |
struct lc3_spec_analysis * spec |