9 cmdtest_messages = [ "success", "invalid source", "source conflict",
10 "invalid argument", "argument conflict",
13 class SWIG::TYPE_p_comedi_t
15 def prepare_cmd_lib(subdevice, freq, cmd)
16 ret, cmd = get_cmd_generic_timed(subdevice, cmd,
20 printf("comedi_get_cmd_generic_timed failed\n")
24 cmd.chanlist = $chanlist
25 cmd.chanlist_len = $n_chan
27 cmd.scan_end_arg = $n_chan
28 cmd.stop_arg = $n_scan if cmd.stop_src == TRIG_COUNT
38 dev = Comedi::open($filename)
40 comedi_perror($filename)
44 $chanlist = Chanlist.new($n_chan)
45 0.upto($n_chan - 1) do |i|
46 $chanlist[i] = cr_pack($channel + i, $range, $aref)
49 ret, cmd = dev.prepare_cmd_lib($subdevice, $freq, Comedi_cmd_struct.new)
51 $stderr.printf("command before testing:\n")
52 dump_cmd($stderr, cmd)
54 ret, cmd = dev.command_test(cmd)
56 comedi_perror("comedi_command_test")
59 $stderr.printf("first test returned %d (%s)\n", ret, cmdtest_messages[ret])
60 dump_cmd($stderr, cmd)
62 ret, cmd = dev.command_test(cmd)
64 comedi_perror("comedi_command_test")
67 $stderr.printf("second test returned %d (%s)\n", ret, cmdtest_messages[ret])
68 dump_cmd($stderr, cmd)
71 $stderr.printf("start time: %d.%06d\n", tstart.tv_sec, tstart.tv_usec)
73 ret = dev.command(cmd)
75 comedi_perror("comedi_command")
79 while line = dev.ios.read(2 * $n_chan)
80 data = line.unpack('S*')
88 $stderr.printf("end time: %d.%06d\n", tend.tv_sec, tend.tv_usec)
91 $stderr.printf("time: %.6f\n", tdiff)