Allow two passes through test_cmd in simult_aio.
authorW. Trevor King <wking@drexel.edu>
Mon, 8 Dec 2008 20:21:16 +0000 (15:21 -0500)
committerW. Trevor King <wking@drexel.edu>
Mon, 8 Dec 2008 20:27:03 +0000 (15:27 -0500)
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

pycomedi/simult_aio.py

index 73099aeed81cca27d96a9f61f5068f8c9c7d1758..a497e7200b37a35f15425dc3b6fd9d87815705ce 100644 (file)
@@ -112,7 +112,7 @@ class cmd (object) :
         rc = 0
         if  very_verbose : 
             print "Testing command:"
-            _print_command(self.cmd)
+            print self
         while i < max_passes :
             rc = self.IO._comedi.comedi_command_test(self.IO.dev, self.cmd)
             if (rc == 0) :
@@ -297,12 +297,12 @@ values samples output on each channel are the same."""
         self._ocmd.cmd.scan_begin_arg = int(1e9/freq)
         self._ocmd.cmd.stop_arg = onsamps
         if VERBOSE :
-            print "Configure the board (%d ns per scan, %d samps)" % (self._icmd.cmd.scan_begin_arg, self._icmd.cmd.stop_arg)
+            print "Configure the board (%d ns per scan, %d samps, %g Hz)" % (self._icmd.cmd.scan_begin_arg, self._icmd.cmd.stop_arg, 1e9/self._ocmd.cmd.scan_begin_arg)
         self._obuffer = out_buffer
         self._onremain = nsamps
-        self._ocmd.test_cmd()
+        self._ocmd.test_cmd(max_passes=2)
         self._ocmd.execute()
-        self._icmd.cmd.scan_begin_arg = int(1e9/freq)
+        self._icmd.cmd.scan_begin_arg = self._ocmd.cmd.scan_begin_arg
         self._icmd.cmd.stop_arg = nsamps
         self._icmd.test_cmd()
         self._inremain = nsamps