summaryrefslogtreecommitdiffstats
path: root/pywrap
diff options
context:
space:
mode:
authorVasilii Chernov <vchernov@inr.ru>2016-03-02 10:26:13 +0100
committerVasilii Chernov <vchernov@inr.ru>2016-03-02 10:26:13 +0100
commit8719b84a95805d109e21c20f05a0164315e1b38a (patch)
tree2cfbb6ce8af7e9a4acd9e2e085bef8a212bc1701 /pywrap
parent8eca0564a1dd6aac125086a244687b4813a1fd86 (diff)
downloadpcitool-8719b84a95805d109e21c20f05a0164315e1b38a.tar.gz
pcitool-8719b84a95805d109e21c20f05a0164315e1b38a.tar.bz2
pcitool-8719b84a95805d109e21c20f05a0164315e1b38a.tar.xz
pcitool-8719b84a95805d109e21c20f05a0164315e1b38a.zip
Move scripts handing code from py.c to Python wrap
Diffstat (limited to 'pywrap')
-rw-r--r--pywrap/CMakeLists.txt4
-rw-r--r--pywrap/pcilib.py38
-rw-r--r--pywrap/pcipywrap.c327
-rw-r--r--pywrap/pcipywrap.h79
-rw-r--r--pywrap/pcipywrap.i3
-rw-r--r--pywrap/test_pcilib.py (renamed from pywrap/test_pcipywrap.py)10
6 files changed, 169 insertions, 292 deletions
diff --git a/pywrap/CMakeLists.txt b/pywrap/CMakeLists.txt
index 8f14e4f..4cc51da 100644
--- a/pywrap/CMakeLists.txt
+++ b/pywrap/CMakeLists.txt
@@ -19,7 +19,9 @@ swig_link_libraries(pcipywrap ${PYTHON_LIBRARIES} pcilib)
install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_INSTALL_DIR})
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcilib.py DESTINATION ${PYTHON_INSTALL_DIR})
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test_pcipywrap.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/pcilib.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test_pcilib.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
diff --git a/pywrap/pcilib.py b/pywrap/pcilib.py
new file mode 100644
index 0000000..7696524
--- /dev/null
+++ b/pywrap/pcilib.py
@@ -0,0 +1,38 @@
+from pcipywrap import *
+import os
+import sys
+
+class Pcilib(Pcipywrap):
+ def __init__(s, *args):
+ Pcipywrap.__init__(s, *args)
+
+ #load scripts
+ scripts_dir = os.environ.get('PCILIB_SCRIPTS_DIR')
+ if scripts_dir:
+ scripts_dir_abs = os.path.abspath(scripts_dir)
+ if not scripts_dir_abs in sys.path:
+ sys.path.append(scripts_dir_abs)
+
+ s.__scipts = dict()
+ for script in os.listdir(scripts_dir_abs):
+ if script.endswith('.py'):
+ script_module = os.path.splitext(script)[0]
+ __import__(script_module)
+ s.__scipts[script_module] = sys.modules[script_module]
+
+
+ def get_scripts_list(s):
+ scripts = []
+ for script in s.__scipts:
+ curr_script = dict()
+ curr_script['name'] = script
+ if 'description' in dir(s.__scipts[script]):
+ curr_script['description'] = s.__scipts[script].description
+ scripts.append(curr_script)
+ return scripts
+
+
+ def run_script(s, name, input_value):
+ if not name in s.__scipts:
+ raise Exception('Script ' + name +' has not loaded')
+ return s.__scipts[name].run(s, input_value)
diff --git a/pywrap/pcipywrap.c b/pywrap/pcipywrap.c
index 9113d40..0f6729e 100644
--- a/pywrap/pcipywrap.c
+++ b/pywrap/pcipywrap.c
@@ -1,9 +1,6 @@
#include "pcipywrap.h"
#include "locking.h"
-#include <dirent.h>
-#include <strings.h>
-
char* full_log = NULL;
/*!
@@ -104,6 +101,27 @@ void redirect_logs_to_exeption()
pcilib_get_logger_context());
}
+/*!
+ * \brief Wrap for PyDict_SetItem, with decrease reference counting after set.
+ */
+void pcilib_pydict_set_item(PyObject* dict, PyObject* name, PyObject* value)
+{
+ PyDict_SetItem(dict,
+ name,
+ value);
+ Py_XDECREF(name);
+ Py_XDECREF(value);
+}
+
+/*!
+ * \brief Wrap for PyList_Append, with decrease reference counting after append.
+ */
+void pcilib_pylist_append(PyObject* list, PyObject* value)
+{
+ PyList_Append(list, value);
+ Py_XDECREF(value);
+}
+
void add_pcilib_value_to_dict(pcilib_t* ctx, PyObject* dict, pcilib_value_t* val, const char *name)
{
PyObject *py_val = (PyObject*)pcilib_get_value_as_pyobject(ctx, val, NULL);
@@ -197,198 +215,126 @@ PyObject * pcilib_convert_property_info_to_pyobject(pcilib_t* ctx, pcilib_proper
PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_register_info_t listItem)
{
- PyObject* pylistItem = PyDict_New();
-
- if(listItem.name)
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("name"),
- PyString_FromString(listItem.name));
-
- if(listItem.description)
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("description"),
- PyString_FromString(listItem.description));
-
- if(listItem.bank)
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("bank"),
- PyString_FromString(listItem.bank));
-
-
- //serialize modes
- PyObject* modes = PyList_New(0);
-
- if((listItem.mode & PCILIB_REGISTER_R) == PCILIB_REGISTER_R)
- pcilib_pylist_append(modes, PyString_FromString("R"));
- if((listItem.mode & PCILIB_REGISTER_W) == PCILIB_REGISTER_W)
- pcilib_pylist_append(modes, PyString_FromString("W"));
- if((listItem.mode & PCILIB_REGISTER_RW) == PCILIB_REGISTER_RW)
- pcilib_pylist_append(modes, PyString_FromString("RW"));
- if((listItem.mode & PCILIB_REGISTER_W1C) == PCILIB_REGISTER_W1C)
- pcilib_pylist_append(modes, PyString_FromString("W1C"));
- if((listItem.mode & PCILIB_REGISTER_RW1C) == PCILIB_REGISTER_RW1C)
- pcilib_pylist_append(modes, PyString_FromString("RW1C"));
- if((listItem.mode & PCILIB_REGISTER_W1I) == PCILIB_REGISTER_W1I)
- pcilib_pylist_append(modes, PyString_FromString("W1I"));
- if((listItem.mode & PCILIB_REGISTER_RW1I) == PCILIB_REGISTER_RW1I)
- pcilib_pylist_append(modes, PyString_FromString("RW1I"));
- if((listItem.mode & PCILIB_REGISTER_INCONSISTENT) == PCILIB_REGISTER_INCONSISTENT)
- pcilib_pylist_append(modes, PyString_FromString("NO_CHK"));
-
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("mode"),
- modes);
-
- pcilib_value_t defval = {0};
- pcilib_set_value_from_register_value(ctx, &defval, listItem.defvalue);
- add_pcilib_value_to_dict(ctx, pylistItem, &defval, "defvalue");
-
- if(listItem.range)
- {
- pcilib_value_t minval = {0};
- pcilib_set_value_from_register_value(ctx, &minval, listItem.range->min);
-
- pcilib_value_t maxval = {0};
- pcilib_set_value_from_register_value(ctx, &maxval, listItem.range->max);
-
- PyObject* range = PyDict_New();
- add_pcilib_value_to_dict(ctx, range, &minval, "min");
- add_pcilib_value_to_dict(ctx, range, &maxval, "max");
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("range"),
- range);
- }
+ PyObject* pylistItem = PyDict_New();
- if(listItem.values)
- {
+ if(listItem.name)
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("name"),
+ PyString_FromString(listItem.name));
- PyObject* values = PyList_New(0);
+ if(listItem.description)
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("description"),
+ PyString_FromString(listItem.description));
- for (int j = 0; listItem.values[j].name; j++)
- {
- PyObject* valuesItem = PyDict_New();
+ if(listItem.bank)
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("bank"),
+ PyString_FromString(listItem.bank));
- pcilib_value_t val = {0};
- pcilib_set_value_from_register_value(ctx, &val, listItem.values[j].value);
- pcilib_value_t min = {0};
- pcilib_set_value_from_register_value(ctx, &min, listItem.values[j].min);
+ //serialize modes
+ PyObject* modes = PyList_New(0);
- pcilib_value_t max = {0};
- pcilib_set_value_from_register_value(ctx, &max, listItem.values[j].max);
+ if((listItem.mode & PCILIB_REGISTER_R) == PCILIB_REGISTER_R)
+ pcilib_pylist_append(modes, PyString_FromString("R"));
+ if((listItem.mode & PCILIB_REGISTER_W) == PCILIB_REGISTER_W)
+ pcilib_pylist_append(modes, PyString_FromString("W"));
+ if((listItem.mode & PCILIB_REGISTER_RW) == PCILIB_REGISTER_RW)
+ pcilib_pylist_append(modes, PyString_FromString("RW"));
+ if((listItem.mode & PCILIB_REGISTER_W1C) == PCILIB_REGISTER_W1C)
+ pcilib_pylist_append(modes, PyString_FromString("W1C"));
+ if((listItem.mode & PCILIB_REGISTER_RW1C) == PCILIB_REGISTER_RW1C)
+ pcilib_pylist_append(modes, PyString_FromString("RW1C"));
+ if((listItem.mode & PCILIB_REGISTER_W1I) == PCILIB_REGISTER_W1I)
+ pcilib_pylist_append(modes, PyString_FromString("W1I"));
+ if((listItem.mode & PCILIB_REGISTER_RW1I) == PCILIB_REGISTER_RW1I)
+ pcilib_pylist_append(modes, PyString_FromString("RW1I"));
+ if((listItem.mode & PCILIB_REGISTER_INCONSISTENT) == PCILIB_REGISTER_INCONSISTENT)
+ pcilib_pylist_append(modes, PyString_FromString("NO_CHK"));
- add_pcilib_value_to_dict(ctx, valuesItem, &val, "value");
- add_pcilib_value_to_dict(ctx, valuesItem, &min, "min");
- add_pcilib_value_to_dict(ctx, valuesItem, &max, "max");
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("mode"),
+ modes);
- if(listItem.values[j].name)
- 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_value_t defval = {0};
+ pcilib_set_value_from_register_value(ctx, &defval, listItem.defvalue);
+ add_pcilib_value_to_dict(ctx, pylistItem, &defval, "defvalue");
- }
- pcilib_pylist_append(values, valuesItem);
- }
+ if(listItem.range)
+ {
+ pcilib_value_t minval = {0};
+ pcilib_set_value_from_register_value(ctx, &minval, listItem.range->min);
- pcilib_pydict_set_item(pylistItem,
- PyString_FromString("values"),
- values);
- }
+ pcilib_value_t maxval = {0};
+ pcilib_set_value_from_register_value(ctx, &maxval, listItem.range->max);
- return pylistItem;
-}
+ PyObject* range = PyDict_New();
+ add_pcilib_value_to_dict(ctx, range, &minval, "min");
+ add_pcilib_value_to_dict(ctx, range, &maxval, "max");
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("range"),
+ range);
+ }
+
+ if(listItem.values)
+ {
+
+ PyObject* values = PyList_New(0);
+
+ for (int j = 0; listItem.values[j].name; j++)
+ {
+ PyObject* valuesItem = PyDict_New();
+
+ pcilib_value_t val = {0};
+ pcilib_set_value_from_register_value(ctx, &val, listItem.values[j].value);
+
+ pcilib_value_t min = {0};
+ pcilib_set_value_from_register_value(ctx, &min, listItem.values[j].min);
+
+ pcilib_value_t max = {0};
+ pcilib_set_value_from_register_value(ctx, &max, listItem.values[j].max);
+
+ add_pcilib_value_to_dict(ctx, valuesItem, &val, "value");
+ add_pcilib_value_to_dict(ctx, valuesItem, &min, "min");
+ add_pcilib_value_to_dict(ctx, valuesItem, &max, "max");
+
+ if(listItem.values[j].name)
+ 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);
+ }
+
+ pcilib_pydict_set_item(pylistItem,
+ PyString_FromString("values"),
+ values);
+ }
+
+ return pylistItem;
+}
Pcipywrap *new_Pcipywrap(const char* fpga_device, const char* model)
{
//opening device
pcilib_t* ctx = pcilib_open(fpga_device, model);
- if(!ctx) {
+ if(!ctx)
+ {
set_python_exception("Failed pcilib_open(%s, %s)", fpga_device, model);
return NULL;
}
-
Pcipywrap *self;
self = (Pcipywrap *) malloc(sizeof(Pcipywrap));
- if(!self) {
- pcilib_close(ctx);
- return (Pcipywrap *)PyExc_MemoryError;
- }
self->shared = 0;
self->ctx = ctx;
- self->py = NULL;
- self->names = NULL;
- self->names_size = 0;
-
-
- //processing pcilib scrips
- const char *scripts_dir = getenv("PCILIB_SCRIPTS_DIR");
- if(scripts_dir) {
- int err = 0;
-
- self->py = pcilib_init_py_ctx(ctx->py, &err);
- if(err) {
- delete_Pcipywrap(self);
- set_python_exception("Failed pcilib_py_s_clone (%i)", err);
- return NULL;
- }
-
- //add scripts directory to Python path
- err = pcilib_py_ctx_add_script_dir(self->py, scripts_dir);
- if(err) {
- delete_Pcipywrap(self);
- set_python_exception("Failed pcilib_py_add_dir (%i)", err);
- return NULL;
- }
-
- //load scripts in PCILIB_SCRIPTS_DIR
- self->names = malloc(++(self->names_size) * sizeof(char*));
- self->names[self->names_size - 1] = NULL;
-
- DIR *dir;
- struct dirent *script_path;
- dir = opendir(scripts_dir);
- if (dir) {
- while ((script_path = readdir(dir)) != NULL) {
-
- char *py = strrchr(script_path->d_name, '.');
- if ((!py)||(strcasecmp(py, ".py"))) {
- continue;
- }
-
- char *name = malloc(strlen(script_path->d_name));
- if(!name) {
- delete_Pcipywrap(self);
- return (Pcipywrap *)PyExc_MemoryError;
- }
-
- strcpy(name, script_path->d_name);
-
- err = pcilib_py_ctx_load_script(self->py, name);
-
- if(err) {
- delete_Pcipywrap(self);
- set_python_exception("pcilib_py_ctx_load_script (%i)", err);
- return NULL;
- }
-
- self->names = realloc(self->names, ++(self->names_size));
- if(!self->names) {
- delete_Pcipywrap(self);
- return (Pcipywrap *)PyExc_MemoryError;
- }
- self->names[self->names_size - 1] = NULL;
- self->names[self->names_size - 2] = name;
- }
- closedir(dir);
- }
- }
-
return self;
}
@@ -404,27 +350,14 @@ Pcipywrap *create_Pcipywrap(PyObject* ctx)
self = (Pcipywrap *) malloc(sizeof(Pcipywrap));
self->shared = 1;
self->ctx = PyCObject_AsVoidPtr(ctx);
- self->py = NULL;
- self->names = NULL;
- self->names_size = 0;
return self;
}
void delete_Pcipywrap(Pcipywrap *self) {
- if(!self->shared)
- pcilib_close(self->ctx);
-
- pcilib_free_py_ctx(self->py);
-
- if(self->names) {
- for(int i = 0; self->names[i]; i++)
- free(self->names[i]);
- free(self->names);
- self->names = NULL;
- self->names_size = 0;
- }
-
- free(self);
+ if(!self->shared)
+ pcilib_close(self->ctx);
+
+ free(self);
}
PyObject* Pcipywrap_read_register(Pcipywrap *self, const char *regname, const char *bank)
@@ -531,7 +464,7 @@ PyObject* Pcipywrap_get_registers_list(Pcipywrap *self, const char *bank)
set_python_exception("pcilib_get_register_list return NULL");
return NULL;
}
-
+
PyObject* pyList = PyList_New(0);
for(int i = 0; list[i].name; i++)
{
@@ -676,20 +609,4 @@ PyObject* Pcipywrap_unlock(Pcipywrap *self, const char *lock_id)
return PyInt_FromLong((long)1);
}
-PyObject* Pcipywrap_get_scripts_list(Pcipywrap *self)
-{
- return pcilib_py_ctx_get_scripts_info(self->py);
-}
-PyObject* Pcipywrap_run_script(Pcipywrap *self, const char* script_name, PyObject* value)
-{
- int err = 0;
- PyObject* value_out = pcilib_py_ctx_eval_func(self->py, script_name, "run", value, &err);
-
- if(err) {
- set_python_exception("Failed pcilib_py_ctx_eval_func (%i)", err);
- return NULL;
- }
-
- return value_out;
-}
diff --git a/pywrap/pcipywrap.h b/pywrap/pcipywrap.h
index fa7e4f4..0258f04 100644
--- a/pywrap/pcipywrap.h
+++ b/pywrap/pcipywrap.h
@@ -5,23 +5,11 @@
#include "error.h"
#include <Python.h>
-#include "config.h"
-#include "py.h"
-
-#include "pci.h"
-#include "pcilib.h"
-
-
typedef struct {
- char** names;
- int names_size;
-
void* ctx;
- struct pcilib_py_s *py;
int shared;
} Pcipywrap;
-
/*!
* \brief Redirect pcilib standart log stream to exeption text.
* Logger will accumulate errors untill get message, starts with "#E".
@@ -73,55 +61,18 @@ PyObject* Pcipywrap_get_property(Pcipywrap *self, const char *prop);
* \return 1, serialized to PyObject or NULL with exeption text, if failed.
*/
PyObject* Pcipywrap_set_property(Pcipywrap *self, PyObject* val, const char *prop);
-
-
-/*!
- * \brief Wrap for pcilib_get_register_list function.
- * \param bank [in] bank - if set, only register within the specified bank will be returned
- * \return list of registers, serialized to Python object
- */
PyObject* Pcipywrap_get_registers_list(Pcipywrap *self, const char *bank);
-
-/*!
- * \brief Returns the information about the specified register. Wrap for pcilib_get_register_info
- * \param[in] reg the name of the register
- * \param[in] bank indicates the bank where to look for register, autodetected if NULL is passed
- * \return information about the specified register, serialized to Python object
- */
PyObject* Pcipywrap_get_register_info(Pcipywrap *self, const char* reg,const char *bank);
-
-/*!
- * \brief Returns the list of properties available under the specified path. Wrap for pcilib_get_property_list
- * \param[in] branch path or NULL to return the top-level properties
- * \return the list of the properties, serialized to Python object
- */
PyObject* Pcipywrap_get_property_list(Pcipywrap *self, const char* branch);
-/*!
- * \brief Reads data from DMA until timeout is hit, a full DMA packet is read, or the specified number of bytes are read.
- * Wrap for pcilib_read_dma.
- * \param dma ID of DMA engine
- * \param size specifies how many bytes should be read
- * \return DMA data, serialierd to Python bytearray
- * \warning This function has not been tested.
- * \todo Test this fucntion
- */
PyObject* Pcipywrap_read_dma(Pcipywrap *self, unsigned char dma, size_t size);
-/*!
- * \brief Wrap for pcilib_lock_global
- * \return 1, serialized to PyObject or NULL with exeption text, if failed.
- */
PyObject* Pcipywrap_lock_global(Pcipywrap *self);
-
-/*!
- * \brief Wrap for pcilib_unlock_global
- */
void Pcipywrap_unlock_global(Pcipywrap *self);
/*!
* \brief Wrap for pcilib_lock
- * \param[in] lock_id lock identificator
+ * \param lock_id lock identificator
* \warning This function should be called only under Python standart threading lock.
* Otherwise it will stuck with more than 1 threads. See /xml/test/test_prop_mt.py
* for example.
@@ -129,35 +80,7 @@ void Pcipywrap_unlock_global(Pcipywrap *self);
*/
PyObject* Pcipywrap_lock(Pcipywrap *self, const char *lock_id);
-/*!
- * \brief This function will try to take a lock for the mutex pointed by
- * lockfunction to acquire a lock, but that returns immediatly if the lock can't be
- * acquired on first try. Wrap for pcilib_try_lock.
- * \param[in] lock_id lock id
- * \return 1, serialized to PyObject or NULL with exeption text, if failed.
- */
PyObject* Pcipywrap_try_lock(Pcipywrap *self, const char *lock_id);
-
-/*!
- * \brief This function unlocks the lock with specified id. Wrap for pcilib_unlock.
- * \param[in] lock_id lock id
- * \return 1, serialized to PyObject or NULL with exeption text, if failed.
- */
PyObject* Pcipywrap_unlock(Pcipywrap *self, const char *lock_id);
-/*!
- * \brief Returns list with information about aviable scripts
- * \return list with information about scripts, aviable in model
- */
-PyObject* Pcipywrap_get_scripts_list(Pcipywrap *self);
-
-/*!
- * \brief Runs script with specified name
- * \param script_name script name (with extension); name could be found by
- * Pcipywrap_get_scripts_list fucntion
- * \param[in] value input value
- * \return value returned by script
- */
-PyObject* Pcipywrap_run_script(Pcipywrap *self, const char* script_name, PyObject* value);
-
#endif /* PCIPYWRAP_H */
diff --git a/pywrap/pcipywrap.i b/pywrap/pcipywrap.i
index 697820d..7749a67 100644
--- a/pywrap/pcipywrap.i
+++ b/pywrap/pcipywrap.i
@@ -29,8 +29,5 @@ typedef struct {
PyObject* lock(const char *lock_id);
PyObject* try_lock(const char *lock_id);
PyObject* unlock(const char *lock_id);
-
- PyObject* get_scripts_list();
- PyObject* run_script(const char* script_name, PyObject* value);
}
} Pcipywrap;
diff --git a/pywrap/test_pcipywrap.py b/pywrap/test_pcilib.py
index 809a81a..69540ec 100644
--- a/pywrap/test_pcipywrap.py
+++ b/pywrap/test_pcilib.py
@@ -1,5 +1,5 @@
import threading
-import pcipywrap
+import pcilib
import random
import os
import json
@@ -7,7 +7,7 @@ import requests
import time
from optparse import OptionParser, OptionGroup
-class test_pcipywrap():
+class test_pcilib():
def __init__(self,
device,
model,
@@ -35,7 +35,7 @@ class test_pcipywrap():
#create pcilib_instance
self.device = device
self.model = model
- self.pcilib = pcipywrap.Pcipywrap(device, model)
+ self.pcilib = pcilib.Pcilib(device, model)
self.num_threads = num_threads
self.write_percentage = write_percentage
self.register = register
@@ -83,7 +83,7 @@ class test_pcipywrap():
try:
while(1):
val = random.randint(0, 8096)
- self.pcilib = pcipywrap.Pcipywrap(self.device, self.model)
+ self.pcilib = pcilib.Pcilib(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();
@@ -232,7 +232,7 @@ if __name__ == '__main__':
opts = parser.parse_args()[0]
#create pcilib test instance
- lib = test_pcipywrap(opts.device,
+ lib = test_pcilib(opts.device,
opts.model,
num_threads = opts.threads,
write_percentage = opts.write_percentage,