Updated procedures for building with Python's distutils. Also reduced
line-lengths for 80-character wide terminals. Most of the updated text supplied by W. Trevor King. Ian Abbott added a note that it only applies when building the wrappers separately from Comedilib without 'make'.
This commit is contained in:
parent
3fe8e6baac
commit
cdb3a84f86
1 changed files with 46 additions and 38 deletions
|
@ -1,40 +1,48 @@
|
|||
** General info on the swig-generated wrappers for Comedilib **
|
||||
|
||||
1) Regenerating the wrappers
|
||||
The wrapper were made using swig-1.3.19. Any of the swig-1.3.x seris should work
|
||||
N.B. the default swig on redhat systems is version 1.1. Upgrade to v-1.3.19. It's better!
|
||||
|
||||
run $> swig -python comedi.i
|
||||
|
||||
2) Building the module (section obsolete -Frank Hess)
|
||||
i) edit the setup.py file so that the include and lib paths are correct for your system
|
||||
ii) run $> python setup.py build
|
||||
|
||||
3) Installing the module (section obsolete -Frank Hess)
|
||||
i) Manual installation I'm afraid. Copy comedi.py and _comedi.pyd files to somewhere in your PYTHONPATH
|
||||
|
||||
4) Using the module
|
||||
All the comedilib functions are translated directly to python function. The various comedi structs
|
||||
are now available as python classes (e.g. comedi_cmd_struct). The members of each struct are now
|
||||
attributes of the class and can be set and retrieved in the usual way. Comedilib Functions which
|
||||
take a pointer to a comedilib struct as an argument (in C) now, in python, accept the appropriate
|
||||
struct python object.
|
||||
|
||||
For a multichannel acquisition, a C-array containing the channel list, gains and referencing is
|
||||
required. This can be created using a swig-generated helper class: chanlist(n). This creates a C-array
|
||||
of length n and type Unsigned Int. Individual members of the array can be accessed/set using
|
||||
pythons indexing syntax:
|
||||
mylist = chanlist(3) #creates a chanlist array of length 3
|
||||
mylist[0] = 100 #set some values
|
||||
mylist[1] = 200
|
||||
mylist[2] = 300
|
||||
|
||||
The chanlist object can then be passed to a comedi_cmd_struct object, for example. N.B. The
|
||||
chanlist object contains *no* length-checking or other error protection so use with care! Don't
|
||||
try to get/set indexes outside the array bounds.
|
||||
|
||||
All the comedilib macros (e.g. CR_PACK) are now available as python functions.
|
||||
|
||||
check out the example test_comedi.py to clarify the above.
|
||||
|
||||
|
||||
0) Installing required tools
|
||||
The wrapper are made with SWIG. Any of the swig-1.3.x series should
|
||||
work. Run
|
||||
$ swig -version
|
||||
to check the version you have installed, and upgrade if necessary.
|
||||
|
||||
1) Building the wrappers
|
||||
Note: the following applies when building wrappers separately from
|
||||
the comedilib library, using Python's distutils procedures instead
|
||||
of Comedilib's `make`. In this case, Comedilib should be configured
|
||||
with the `--disable-python-binding` option to prevent it building
|
||||
and installing its own copy of the wrappers.
|
||||
|
||||
After building the main comedilib library (running `make` in the
|
||||
base directory), just follow standard distutils procedures
|
||||
$ python setup.py build
|
||||
$ python setup.py install
|
||||
|
||||
2) Using the module
|
||||
All the comedilib functions are translated directly to python
|
||||
function. The various comedi structs are now available as python
|
||||
classes (e.g. comedi_cmd_struct). The members of each struct are now
|
||||
attributes of the class and can be set and retrieved in the usual
|
||||
way. Comedilib functions which take a pointer to a comedilib struct
|
||||
as an argument (in C) now, in python, accept the appropriate struct
|
||||
python object.
|
||||
|
||||
For a multichannel acquisition, a C-array containing the channel
|
||||
list, gains and referencing is required. This can be created using a
|
||||
swig-generated helper class: chanlist(n). This creates a C-array of
|
||||
length n and type Unsigned Int. Individual members of the array can
|
||||
be accessed/set using pythons indexing syntax:
|
||||
mylist = chanlist(3) #creates a chanlist array of length 3
|
||||
mylist[0] = 100 #set some values
|
||||
mylist[1] = 200
|
||||
mylist[2] = 300
|
||||
|
||||
The chanlist object can then be passed to a comedi_cmd_struct
|
||||
object, for example. N.B. The chanlist object contains *no*
|
||||
length-checking or other error protection so use with care! Don't
|
||||
try to get/set indexes outside the array bounds.
|
||||
|
||||
All the comedilib macros (e.g. CR_PACK) are now available as python
|
||||
functions (e.g. `comedi.cr_pack`).
|
||||
|
||||
Look at the examples in demo/python to clarify the above.
|
||||
|
|
Loading…
Add table
Reference in a new issue