summaryrefslogtreecommitdiffstats
path: root/pywrap
diff options
context:
space:
mode:
authorVasilii Chernov <vchernov@inr.ru>2016-02-26 11:01:39 +0100
committerVasilii Chernov <vchernov@inr.ru>2016-02-26 11:01:39 +0100
commit0e584d07a0776454fd5487b7d23407c0624b56c2 (patch)
tree1e00cacf2077c5004c4e151d2bf3f9dddbb1b9ea /pywrap
parente2550e6df11558ccd6e8b95f489c0988b34347af (diff)
parent30d740cc6accc3bd477e6bc924d5b74dad71ee6d (diff)
downloadpcitool-0e584d07a0776454fd5487b7d23407c0624b56c2.tar.gz
pcitool-0e584d07a0776454fd5487b7d23407c0624b56c2.tar.bz2
pcitool-0e584d07a0776454fd5487b7d23407c0624b56c2.tar.xz
pcitool-0e584d07a0776454fd5487b7d23407c0624b56c2.zip
Merge with ufo.kit.edu/csa/pcitool 357 revision
Diffstat (limited to 'pywrap')
-rw-r--r--pywrap/CMakeLists.txt15
-rw-r--r--pywrap/pcipywrap.c160
-rw-r--r--pywrap/test_pcipywrap.py4
3 files changed, 91 insertions, 88 deletions
diff --git a/pywrap/CMakeLists.txt b/pywrap/CMakeLists.txt
index f77c2ff..b00fdb0 100644
--- a/pywrap/CMakeLists.txt
+++ b/pywrap/CMakeLists.txt
@@ -2,26 +2,29 @@ include_directories(
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/pcilib
+ ${CMAKE_SOURCE_DIR}/pywrap
${CMAKE_BINARY_DIR}/pcilib
${LIBXML2_INCLUDE_DIRS}
${PYTHON_INCLUDE_DIR}
${UTHASH_INCLUDE_DIRS}
)
-set(HEADERS pcipywrap.h)
-
-#Creating python wrapping
include(${SWIG_USE_FILE})
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+set(HEADERS pcipywrap.h)
set(CMAKE_SWIG_FLAGS "")
swig_add_module(pcipywrap python pcipywrap.i pcipywrap.c)
swig_link_libraries(pcipywrap ${PYTHON_LIBRARIES} pcilib)
+
#install pcilib python wrapper into Python site packages folder
execute_process ( COMMAND python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
+
install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_SITE_PACKAGES})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_SITE_PACKAGES})
-configure_file(server.py server.py)
-configure_file(test_pcipywrap.py test_pcipywrap.py)
+if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
+ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/server.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test_pcipywrap.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
diff --git a/pywrap/pcipywrap.c b/pywrap/pcipywrap.c
index dca5973..391bdf4 100644
--- a/pywrap/pcipywrap.c
+++ b/pywrap/pcipywrap.c
@@ -281,7 +281,7 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
{
PyObject* values = PyList_New(0);
-
+
for (int j = 0; listItem.values[j].name; j++)
{
PyObject* valuesItem = PyDict_New();
@@ -306,9 +306,9 @@ PyObject * pcilib_convert_register_info_to_pyobject(pcilib_t* ctx, pcilib_regist
if(listItem.values[j].description)
{
pcilib_pydict_set_item(valuesItem,
- PyString_FromString("description"),
- PyString_FromString(listItem.values[j].description));
-
+ PyString_FromString("description"),
+ PyString_FromString(listItem.values[j].description));
+
}
pcilib_pylist_append(values, valuesItem);
}
@@ -319,7 +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)
@@ -512,101 +512,101 @@ PyObject* Pcipywrap_get_property_list(Pcipywrap *self, const char* branch)
PyObject* Pcipywrap_read_dma(Pcipywrap *self, unsigned char dma, size_t size)
{
- int err;
- void* buf = NULL;
- size_t real_size;
-
- err = pcilib_read_dma(self->ctx, dma, (uintptr_t)NULL, size, buf, &real_size);
- if(err)
- {
- set_python_exception("Failed pcilib_read_dma", err);
- return NULL;
- }
-
-
- PyObject* py_buf = PyByteArray_FromStringAndSize((const char*)buf, real_size);
- if(buf)
- free(buf);
-
- return py_buf;
+ int err;
+ void* buf = NULL;
+ size_t real_size;
+
+ err = pcilib_read_dma(self->ctx, dma, (uintptr_t)NULL, size, buf, &real_size);
+ if(err)
+ {
+ set_python_exception("Failed pcilib_read_dma", err);
+ return NULL;
+ }
+
+
+ PyObject* py_buf = PyByteArray_FromStringAndSize((const char*)buf, real_size);
+ if(buf)
+ free(buf);
+
+ return py_buf;
}
PyObject* Pcipywrap_lock_global(Pcipywrap *self)
{
- int err;
-
- err = pcilib_lock_global(self->ctx);
- if(err)
- {
- set_python_exception("Failed pcilib_lock_global");
- return NULL;
- }
-
- return PyInt_FromLong((long)1);
+ int err;
+
+ err = pcilib_lock_global(self->ctx);
+ if(err)
+ {
+ set_python_exception("Failed pcilib_lock_global");
+ return NULL;
+ }
+
+ return PyInt_FromLong((long)1);
}
void Pcipywrap_unlock_global(Pcipywrap *self)
{
- pcilib_unlock_global(self->ctx);
- return;
+ pcilib_unlock_global(self->ctx);
+ return;
}
-PyObject* Pcipywrap_lock(Pcipywrap *self, const char *lock_id)
-{
- pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
- PCILIB_LOCK_FLAGS_DEFAULT,
- lock_id);
- if(!lock)
- {
- set_python_exception("Failed pcilib_get_lock");
- return NULL;
- }
-
-
- int err = pcilib_lock(lock);
- if(err)
- {
- set_python_exception("Failed pcilib_lock");
- return NULL;
- }
-
- return PyInt_FromLong((long)1);
+PyObject* Pcipywrap_lock(Pcipywrap *self, const char *lock_id)
+{
+ pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
+ PCILIB_LOCK_FLAGS_DEFAULT,
+ lock_id);
+ if(!lock)
+ {
+ set_python_exception("Failed pcilib_get_lock");
+ return NULL;
+ }
+
+
+ int err = pcilib_lock(lock);
+ if(err)
+ {
+ set_python_exception("Failed pcilib_lock");
+ return NULL;
+ }
+
+ return PyInt_FromLong((long)1);
}
PyObject* Pcipywrap_try_lock(Pcipywrap *self, const char *lock_id)
{
- pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
- PCILIB_LOCK_FLAGS_DEFAULT,
- lock_id);
+ pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
+ PCILIB_LOCK_FLAGS_DEFAULT,
+ lock_id);
if(!lock)
- {
- set_python_exception("Failed pcilib_get_lock");
- return NULL;
- }
-
- int err = pcilib_try_lock(lock);
- if(err)
- {
- set_python_exception("Failed pcilib_try_lock");
- return NULL;
- }
-
- return PyInt_FromLong((long)1);
+ {
+ set_python_exception("Failed pcilib_get_lock");
+ return NULL;
+ }
+
+ int err = pcilib_try_lock(lock);
+ if(err)
+ {
+ set_python_exception("Failed pcilib_try_lock");
+ return NULL;
+ }
+
+ return PyInt_FromLong((long)1);
}
PyObject* Pcipywrap_unlock(Pcipywrap *self, const char *lock_id)
{
- pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
- PCILIB_LOCK_FLAGS_DEFAULT,
- lock_id);
+ pcilib_lock_t* lock = pcilib_get_lock(self->ctx,
+ PCILIB_LOCK_FLAGS_DEFAULT,
+ lock_id);
if(!lock)
- {
- set_python_exception("Failed pcilib_get_lock");
- return NULL;
- }
-
- pcilib_unlock(lock);
- return PyInt_FromLong((long)1);
+ {
+ set_python_exception("Failed pcilib_get_lock");
+ return NULL;
+ }
+
+ pcilib_unlock(lock);
+ return PyInt_FromLong((long)1);
}
diff --git a/pywrap/test_pcipywrap.py b/pywrap/test_pcipywrap.py
index 91780ec..809a81a 100644
--- a/pywrap/test_pcipywrap.py
+++ b/pywrap/test_pcipywrap.py
@@ -87,10 +87,10 @@ class test_pcipywrap():
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.read_register(self.register)
print self.pcilib.set_property(val, self.prop)
+ print self.pcilib.get_property(self.prop)
except KeyboardInterrupt:
print 'testing done'
pass