pycomedi.git
12 years agoAdd info.py demo.
W. Trevor King [Mon, 19 Mar 2012 15:10:30 +0000 (11:10 -0400)]
Add info.py demo.

12 years agoMask range.unit with 0xff when determining the unit.
W. Trevor King [Mon, 19 Mar 2012 14:48:36 +0000 (10:48 -0400)]
Mask range.unit with 0xff when determining the unit.

This avoids crashes like:

  Traceback (most recent call last):
    ...
    File "range.pyx", line 62, in pycomedi.range.Range.__str__
    File "range.pyx", line 70, in pycomedi.range.Range._unit_get
    File "constant.pyx", line 269, in pycomedi.constant._Enum.index_by_value
  KeyError: 256L

when RF_EXTERNAL is set.

12 years agoAdd attributes to PyComediError to make intelligent error handling easier.
W. Trevor King [Mon, 19 Mar 2012 13:31:28 +0000 (09:31 -0400)]
Add attributes to PyComediError to make intelligent error handling easier.

12 years agoAdd .ranges() method to Channel class.
W. Trevor King [Mon, 19 Mar 2012 13:09:30 +0000 (09:09 -0400)]
Add .ranges() method to Channel class.

12 years agoAdd .channels() method to Subdevice class.
W. Trevor King [Mon, 19 Mar 2012 13:04:42 +0000 (09:04 -0400)]
Add .channels() method to Subdevice class.

12 years agoAllow keywords for Channel.get_range().
W. Trevor King [Thu, 15 Mar 2012 13:54:41 +0000 (09:54 -0400)]
Allow keywords for Channel.get_range().

12 years agoAdd docstring to Channel.get_range.
W. Trevor King [Thu, 15 Mar 2012 13:45:57 +0000 (09:45 -0400)]
Add docstring to Channel.get_range.

12 years agoBump to verssion 0.4. 0.4
W. Trevor King [Thu, 15 Mar 2012 03:06:55 +0000 (23:06 -0400)]
Bump to verssion 0.4.

12 years agoAdd __reduce__() method to BitwiseOperator and _NamedInt.
W. Trevor King [Thu, 15 Mar 2012 02:55:45 +0000 (22:55 -0400)]
Add __reduce__() method to BitwiseOperator and _NamedInt.

This makes it possible to successfully pickle and deepcopy instances
of these types [1,2].  This gets the

  TRIG_SRC.now == copy.deepcopy(TRIG_SRC.now)

doctest working, which I needed to successfully dump h5config
ChoiceConfig objects that use _Enum choices [3].

For example, the newly fixed pypiezo.config.ChannelConfig [4] uses the
AREF enum values as possible choices for it's `analog-reference`
setting.  h5config makes deepcopies of mutable objects to avoid
confusion if the mutable is changed externally.  It then compares the
deepcopies with uncopied values.  Now that deepcopying works for
_NamedInts, the h5config behavior will work.

[1] http://docs.python.org/library/pickle.html#pickling-and-unpickling-extension-types
[2] http://docs.python.org/library/copy.html
[3] http://pypi.python.org/pypi/h5config/
[4] http://pypi.python.org/pypi/pypiezo/

12 years agoUse utility.lsample instead of numpy.uint in calibration._convert().
W. Trevor King [Thu, 15 Mar 2012 02:36:21 +0000 (22:36 -0400)]
Use utility.lsample instead of numpy.uint in calibration._convert().

Don't repeat yourself!  Also, numpy.uint is a uint64 on my amd64, and
that does not match with lsampl_t.

12 years agoYes, 2 < 3. (fix constant comparison doctest).
W. Trevor King [Thu, 15 Mar 2012 02:19:22 +0000 (22:19 -0400)]
Yes, 2 < 3.  (fix constant comparison doctest).

12 years agoFix rich comparison doctest prompts and add comparisons to None.
W. Trevor King [Thu, 15 Mar 2012 01:46:00 +0000 (21:46 -0400)]
Fix rich comparison doctest prompts and add comparisons to None.

The None comparison logic avoids:

  TypeError: long() argument must be a string or a number, not 'NoneType'

12 years agoOops, Cython uses __richcmp__() instead of __eq__(), etc.
W. Trevor King [Thu, 15 Mar 2012 01:37:59 +0000 (21:37 -0400)]
Oops, Cython uses __richcmp__() instead of __eq__(), etc.

http://docs.cython.org/src/userguide/special_methods.html#rich-comparisons

12 years agoAdd rich comparisons to BitwiseOperator (compare by .value).
W. Trevor King [Thu, 15 Mar 2012 01:33:06 +0000 (21:33 -0400)]
Add rich comparisons to BitwiseOperator (compare by .value).

12 years agoFix get_version_code parsing and split it off into a new Device.get_version method.
W. Trevor King [Wed, 14 Mar 2012 22:21:28 +0000 (18:21 -0400)]
Fix get_version_code parsing and split it off into a new Device.get_version method.

12 years agoFix wrtier -> writer typo in `pycomedi.utility._MMapReadWriteThread` docstring.
W. Trevor King [Tue, 13 Mar 2012 13:01:26 +0000 (09:01 -0400)]
Fix wrtier -> writer typo in `pycomedi.utility._MMapReadWriteThread` docstring.

12 years agoMove function_name extraction up in pycomedi/_error.pyx's comedi_get.
W. Trevor King [Thu, 8 Mar 2012 19:51:24 +0000 (14:51 -0500)]
Move function_name extraction up in pycomedi/_error.pyx's comedi_get.

This avoids:
  pycomedi/_error.pyx:43:29:
    local variable 'function_name' referenced before assignment

12 years agoUpdate URLs from einstein to tremily.
W. Trevor King [Wed, 22 Feb 2012 18:33:22 +0000 (13:33 -0500)]
Update URLs from einstein to tremily.

12 years agoRan update-copyright.py.
W. Trevor King [Thu, 16 Feb 2012 23:01:12 +0000 (18:01 -0500)]
Ran update-copyright.py.

12 years agoTransition to my external update-copyright package.
W. Trevor King [Thu, 16 Feb 2012 22:58:57 +0000 (17:58 -0500)]
Transition to my external update-copyright package.

http://pypi.python.org/pypi/update-copyright/

12 years agoChange to GPLv2+ licensing.
W. Trevor King [Wed, 25 Jan 2012 15:08:24 +0000 (10:08 -0500)]
Change to GPLv2+ licensing.

Previously COPYING and the README had claimed GPLv3+, but the headers
generated by update_copyright had used GPLv2+.  GPLv2+ is more
inclusive and closer to the standard Comedi library's LGPLv2.1+.

12 years agoAdd AUTHORS (generated by update_copyright.py) to version control.
W. Trevor King [Tue, 24 Jan 2012 18:57:57 +0000 (13:57 -0500)]
Add AUTHORS (generated by update_copyright.py) to version control.

12 years agoRemove separate copyright dates from README.
W. Trevor King [Tue, 24 Jan 2012 18:56:24 +0000 (13:56 -0500)]
Remove separate copyright dates from README.

They wouldn't get updated by update_copyright.py, so they would
inevitably fall out of date.

12 years agoRun update_copyright.py.
W. Trevor King [Tue, 24 Jan 2012 18:55:37 +0000 (13:55 -0500)]
Run update_copyright.py.

12 years agoAdd update_copyright.py.
W. Trevor King [Tue, 24 Jan 2012 18:55:09 +0000 (13:55 -0500)]
Add update_copyright.py.

13 years agoMostly-complete Cython implementation.
W. Trevor King [Tue, 19 Apr 2011 13:17:37 +0000 (09:17 -0400)]
Mostly-complete Cython implementation.

I need some work on Cython upstream to entirely remove the requirement
on the SWIG-wrapped comedi module.

13 years agoConvert to more generic Pythonic wrapper. Not everything works yet. 0.3
W. Trevor King [Wed, 9 Feb 2011 14:22:32 +0000 (09:22 -0500)]
Convert to more generic Pythonic wrapper.  Not everything works yet.

13 years agoFix == -> = in __version__ definition.
W. Trevor King [Tue, 14 Dec 2010 19:53:13 +0000 (14:53 -0500)]
Fix == -> = in __version__ definition.

13 years agoRename simAioError -> SimAioError and use ValueError in common._expand_tuple().
W. Trevor King [Tue, 14 Dec 2010 19:31:34 +0000 (14:31 -0500)]
Rename simAioError -> SimAioError and use ValueError in common._expand_tuple().

13 years agoAlso rename sngAioError -> SngAioError and dioError -> SngDioError.
W. Trevor King [Tue, 14 Dec 2010 19:27:44 +0000 (14:27 -0500)]
Also rename sngAioError -> SngAioError and dioError -> SngDioError.

13 years agoRename pycomediError to PEP-8-compliant PycomediError.
W. Trevor King [Tue, 14 Dec 2010 19:04:09 +0000 (14:04 -0500)]
Rename pycomediError to PEP-8-compliant PycomediError.

13 years agoMove pycomedi.common.VERSION to pycomedi.__version__ and cleanup setup.py.
W. Trevor King [Tue, 14 Dec 2010 19:01:43 +0000 (14:01 -0500)]
Move pycomedi.common.VERSION to pycomedi.__version__ and cleanup setup.py.

15 years agoBumped version to 0.2 0.2
W. Trevor King [Wed, 17 Jun 2009 13:36:01 +0000 (09:36 -0400)]
Bumped version to 0.2

15 years agoAdded bugtracking with Bugs Everywhere.
W. Trevor King [Thu, 7 May 2009 19:35:37 +0000 (15:35 -0400)]
Added bugtracking with Bugs Everywhere.

The bug I added it for turned out to be due to the calling software,
not PyComedi itself.  I also removed an old debugging printout from
simult_aio.py.

15 years agoAllow two passes through test_cmd in simult_aio.
W. Trevor King [Mon, 8 Dec 2008 20:21:16 +0000 (15:21 -0500)]
Allow two passes through test_cmd in simult_aio.

Fixed failing commands when the exact ns sample period was not available.

e.g:

Testing command:
Command on <pycomedi.common.PyComediIO object at 0x8e9184c> (output):
subdevice:      1
flags:          0x40
start:          ext|    18
scan_begin:     timer|  324675
convert:        now|    0
scan_end:       count|  1
stop:           count|  16010
test pass 0, argument conflict
Failing command (4):
Command on <pycomedi.common.PyComediIO object at 0x8e9184c> (output):
subdevice:      1
flags:          0x40
start:          ext|    18
scan_begin:     timer|  324700
convert:        now|    0
scan_end:       count|  1
stop:           count|  16010

15 years agoExplicit cast to int to avoid lsampl type problem.
W. Trevor King [Mon, 8 Dec 2008 19:29:58 +0000 (14:29 -0500)]
Explicit cast to int to avoid lsampl type problem.

See commit 5b69b33d46529be30bbdf15b392f0b96986bdcdd for another example.

15 years agoAdded labels to verbose plot in single_aio.py.
W. Trevor King [Mon, 8 Dec 2008 19:06:53 +0000 (14:06 -0500)]
Added labels to verbose plot in single_aio.py.

15 years agoCast data to int in PyComediSingleIO.write_chan_index.
W. Trevor King [Mon, 8 Dec 2008 17:24:09 +0000 (12:24 -0500)]
Cast data to int in PyComediSingleIO.write_chan_index.

Without the cast, I got this traceback when data was a numpy.uint16:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/wking/.python/unfold.py", line 101, in __init__
    self.zp.jumpToPos(self.zp.pos_nm2out(0))
  File "/home/wking/.python/z_piezo.py", line 161, in jumpToPos
    self.curIn = self._jump.jumpToPos(self.curOut)
  File "/home/wking/.python/z_piezo.py", line 248, in jumpToPos
    self.AO.write(out)
  File
"/home/wking/lib/python2.5/site-packages/pycomedi-0.1-py2.5.egg/pycomedi/single_aio.py",
line 90, in write
    self.write_chan_index(i, data[i])
  File
"/home/wking/lib/python2.5/site-packages/pycomedi-0.1-py2.5.egg/pycomedi/common.py",
line 411, in write_chan_index
    rc = c.comedi_data_write(self.dev, self.subdev,
self.chan[chan_index], self._range[chan_index], self._aref[chan_index],
data);
TypeError: in method 'comedi_data_write', argument 6 of type 'lsampl_t'

16 years agoFixed license reference in setup.py and added license headers to source.
W. Trevor King [Tue, 11 Nov 2008 15:42:31 +0000 (10:42 -0500)]
Fixed license reference in setup.py and added license headers to source.

16 years agoAdded a .gitignore file.
W. Trevor King [Tue, 11 Nov 2008 15:34:04 +0000 (10:34 -0500)]
Added a .gitignore file.

16 years agoAdded ez_setup installation framework.
W. Trevor King [Tue, 11 Nov 2008 15:31:30 +0000 (10:31 -0500)]
Added ez_setup installation framework.

16 years agoAdded subdevice flag checking ability and reworked some tests.
W. Trevor King [Tue, 11 Nov 2008 15:26:35 +0000 (10:26 -0500)]
Added subdevice flag checking ability and reworked some tests.

I was hoping SDF_BUSY would let me know when the output job was
complete, but for some reason it doesn't seem to.
See simult_aio.AIO.reset().

16 years agoFairly large rewrite for more object-oriented pycomedi.
W. Trevor King [Thu, 23 Oct 2008 12:49:39 +0000 (08:49 -0400)]
Fairly large rewrite for more object-oriented pycomedi.

test.py should never have been versioned; it was simply an example
of the test logic for simult_aio._repeat_aio_test().

16 years agoBroke out common functionality into common.py
W. Trevor King [Sun, 5 Oct 2008 04:07:02 +0000 (00:07 -0400)]
Broke out common functionality into common.py

Still need to go through and clean up the simultaneous code.

16 years agoNo changes?
W. Trevor King [Sat, 4 Oct 2008 22:35:29 +0000 (18:35 -0400)]
No changes?

16 years agoCleaned up single_dio.py 0.1
W. Trevor King [Sat, 4 Oct 2008 22:34:58 +0000 (18:34 -0400)]
Cleaned up single_dio.py

16 years agoRenamed modules without the now-redundant `comedi_' prefix
W. Trevor King [Sat, 4 Oct 2008 15:00:11 +0000 (11:00 -0400)]
Renamed modules without the now-redundant `comedi_' prefix

16 years agoVersioning started. 0.0
W. Trevor King [Sat, 4 Oct 2008 14:55:29 +0000 (10:55 -0400)]
Versioning started.

Time to compile this heap-o-stuff into a real package.