diff options
-rw-r--r-- | pcilib/xml.c | 2 | ||||
-rw-r--r-- | pywrap/pcipywrap.c | 15 | ||||
-rw-r--r-- | pywrap/test_pcipywrap.py | 14 |
3 files changed, 19 insertions, 12 deletions
diff --git a/pcilib/xml.c b/pcilib/xml.c index fd12636..0463a40 100644 --- a/pcilib/xml.c +++ b/pcilib/xml.c @@ -615,6 +615,8 @@ static int pcilib_xml_parse_value_name(pcilib_t *ctx, xmlXPathContextPtr xpath, int min_set = 0, max_set = 0; pcilib_register_value_t val; + + memset(desc, 0, sizeof(pcilib_register_value_name_t)); for (cur = node->properties; cur != NULL; cur = cur->next) { if(!cur->children) continue; diff --git a/pywrap/pcipywrap.c b/pywrap/pcipywrap.c index fe53966..64e059a 100644 --- a/pywrap/pcipywrap.c +++ b/pywrap/pcipywrap.c @@ -232,6 +232,7 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist PyString_FromString("bank"), PyString_FromString(listItem.bank)); + //serialize modes PyObject* modes = PyList_New(0); @@ -278,8 +279,9 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist if(listItem.values) { - PyObject* values = PyList_New(0); + PyObject* values = PyList_New(0); + for (int j = 0; listItem.values[j].name; j++) { PyObject* valuesItem = PyDict_New(); @@ -301,12 +303,13 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist pcilib_pydict_set_item(valuesItem, PyString_FromString("name"), PyString_FromString(listItem.values[j].name)); - if(listItem.values[j].description) + { pcilib_pydict_set_item(valuesItem, PyString_FromString("description"), PyString_FromString(listItem.values[j].description)); - + + } pcilib_pylist_append(values, valuesItem); } @@ -316,6 +319,7 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist } return pylistItem; + } Pcipywrap *new_Pcipywrap(const char* fpga_device, const char* model) @@ -456,11 +460,12 @@ PyObject* Pcipywrap_get_registers_list(Pcipywrap *self, const char *bank) { pcilib_register_info_t *list = pcilib_get_register_list(self->ctx, bank, PCILIB_LIST_FLAGS_DEFAULT); PyObject* pyList = PyList_New(0); - for(int i = 0; i < 10/*((pcilib_t*)self->ctx)->num_reg*/; i++) + for(int i = 0; i < ((pcilib_t*)self->ctx)->num_reg; i++) { //serialize item attributes PyObject* pylistItem = pcilib_convert_register_info_to_pyobject(self->ctx, list[i]); pcilib_pylist_append(pyList, pylistItem); + //Py_DECREF(pylistItem); } pcilib_free_register_info(self->ctx, list); return pyList; @@ -544,7 +549,7 @@ void Pcipywrap_unlock_global(Pcipywrap *self) PyObject* Pcipywrap_lock(Pcipywrap *self, const char *lock_id) { pcilib_lock_t* lock = pcilib_get_lock(self->ctx, - PCILIB_LOCK_FLAG_PERSISTENT, + PCILIB_LOCK_FLAGS_DEFAULT, lock_id); if(!lock) { diff --git a/pywrap/test_pcipywrap.py b/pywrap/test_pcipywrap.py index d736639..91780ec 100644 --- a/pywrap/test_pcipywrap.py +++ b/pywrap/test_pcipywrap.py @@ -84,13 +84,13 @@ class test_pcipywrap(): while(1): val = random.randint(0, 8096) self.pcilib = pcipywrap.Pcipywrap(self.device, self.model) - #print self.pcilib.get_property_list(self.branch) - #print self.pcilib.get_register_info(self.register) - #print self.pcilib.get_registers_list(); - #print self.pcilib.read_register(self.register) - #print self.pcilib.write_register(val, self.register) - #print self.pcilib.get_property(self.prop) - #print self.pcilib.set_property(val, self.prop) + print self.pcilib.get_property_list(self.branch) + print self.pcilib.get_register_info(self.register) + print self.pcilib.get_registers_list(); + print self.pcilib.read_register(self.register) + print self.pcilib.write_register(val, self.register) + print self.pcilib.get_property(self.prop) + print self.pcilib.set_property(val, self.prop) except KeyboardInterrupt: print 'testing done' pass |