still the problem of delay before AI

Hallo,David Schleef ,

Thank you for your reply!
I have tried the simultaneous_start example for my pci-6111card,  and even
simplified the example only to read analog with internal trigger.   And find
that:
1)The delay between the  switching fron AO to  AI is decided  by  the
"select()" command of AI, and the  time needed for "select" command of AI is
indirectly decided by  ai_buf_len or n_scan (for example when n_scan is
55,1000,10000 and the delay for select is respectivly
0.1second,1.6second,6.7second, it is intolerable for my application)  . Other
variables such as freq can only change AO speed, but not change the AI speed.
2)I tried to use select command for reading  first time without reading(one
delay happened), then  do one writing and one  reading(with the second select
command), here the intolerable delay doesn't happen for the second select
command. But I don't trust those datas, are they the old datas from first
select or second?

Can I accelerate the AI speed  effectively without changing  ai_buf_len(or
n_scan) in this example?(primary to cut short the "select" time)

my testing is still in Redhatlinux and the comedi system informations is
followed.

Sincerely yours

Wang Maosen

---------------------------------------------------------------

David Schleef wrote:

> On Fri, Jan 24, 2003 at 05:33:18PM +0100, Wang Maosen wrote:
> > Hallo, Mr. David Schleef,
>
> >
> > Can I use your Comedi driver to do synchronized AO and AI  in
> > Redhatlinux?For example :  synchronizing 4096 samplesAO and AI with delay
> > between AO and AI less than about 0.001 second,.
>
> This only currently works with the ni_pcimio and ni_atmio drivers.
> The simultaneous_start example shows how to do this and get
> synchronization of closer than a few nanoseconds.
>
> dave...

---------------------------------------------------------------
Testing results of my card:

I: Comedi version: 0.7.66
I: Comedilib version: unknown =)
I: driver name: ni_pcimio
I: device name: pci-6111
I:
I: subdevice 0
I: testing info...
rev 1
I: subdevice type: 1 (analog input)
  number of channels: 2
  max data value: 4095
  ranges:
    all chans: [-50,50] [-20,20] [-10,10] [-5,5] [-2,2] [-1,1] [-0.5,0.5]
[-0.2,0.2]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 817 us
I: testing cmd_no_cmd...
not applicable
I: testing cmd_probe_src_mask...
rev 1
command source mask:
  start: now|ext|int
  scan_begin: timer|ext
  convert: now|timer|ext
  scan_end: count
  stop: none|count
I: testing cmd_probe_fast_1chan...
command fast 1chan:
  start: now 0
  scan_begin: timer 200
  convert: timer 0
  scan_end: count 1
  stop: count 2
I: testing cmd_read_fast_1chan...
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
rev 1
command_test returned 1, good
I: testing cmd_fifo_depth_check...
64, 1
128, 1
256, 1
512, 1
1024, 1
2048, 1
4096, 1
8192, 3
16384, 7
32768, 15
I: testing cmd_start_inttrig...
I: testing mmap...
0x40014000 ok
0x40015000 ok
0x40016000 ok
0x40017000 ok
0x40018000 ok
compare ok
0x40014000 segfaulted (ok)
0x40015000 segfaulted (ok)
0x40016000 segfaulted (ok)
0x40017000 segfaulted (ok)
0x40018000 segfaulted (ok)
I: testing read_select...
I: testing bufconfig...
buffer size 65536
max buffer size 65536
setting buffer size to 4096
buffer size set to 4096
buffer size now at 4096
setting buffer size past limit, 69632
got EPERM, good
setting buffer size to max, 65536
buffer size now at 65536
I:
I: subdevice 1
I: testing info...
rev 1
I: subdevice type: 2 (analog output)
  number of channels: 2
  max data value: 65535
  ranges:
    all chans: [-10,10]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 1 us
I: testing cmd_no_cmd...
not applicable
I: testing cmd_probe_src_mask...
rev 1
command source mask:
  start: int
  scan_begin: timer
  convert: now
  scan_end: count
  stop: none
I: testing cmd_probe_fast_1chan...
command fast 1chan:
  start: int 0
  scan_begin: timer 0
  convert: now 0
  scan_end: count 1
  stop: none 0
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
comedi_command: Resource temporarily unavailable
comedi_inttrig: Invalid argument
I: testing cmd_logic_bug...
rev 1
not applicable (no source choices)
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer size 65536
max buffer size 65536
setting buffer size to 4096
buffer size set to 4096
buffer size now at 4096
setting buffer size past limit, 69632
got EPERM, good
setting buffer size to max, 65536
buffer size now at 65536
I:
I: subdevice 2
I: testing info...
rev 1
I: subdevice type: 5 (digital I/O)
  number of channels: 8
  max data value: 1
  ranges:
    all chans: [0,5]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 2 us
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good
I:
I: subdevice 3
I: testing info...
rev 1
I: subdevice type: 0 (unused)
I: testing insn_read...
rev 1
comedi_do_insn: EIO, good
I: testing insn_read_0...
not applicable
I: testing insn_read_time...
rev 1
not applicable
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good
I:
I: subdevice 4
I: testing info...
rev 1
I: subdevice type: 6 (counter)
  number of channels: 2
  max data value: 1
  ranges:
    all chans: [0,1]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
E: comedi_do_insn: Invalid argument
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 6 us
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good
I:
I: subdevice 5
I: testing info...
rev 1
I: subdevice type: 9 (calibration)
  number of channels: 48
  max data value: 255
  ranges:
    all chans: [0,1]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 1 us
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good
I:
I: subdevice 6
I: testing info...
rev 1
I: subdevice type: 8 (memory)
  number of channels: 512
  max data value: 255
  ranges:
    all chans: [0,1]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 29 us
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good
I:
I: subdevice 7
I: testing info...
rev 1
I: subdevice type: 5 (digital I/O)
  number of channels: 10
  max data value: 1
  ranges:
    all chans: [0,1]
I: testing insn_read...
rev 1
comedi_do_insn returned 1, good
I: testing insn_read_0...
comedi_do_insn returned 0, good
I: testing insn_read_time...
rev 1
comedi_do_insn: 3
read time: 0 us
I: testing cmd_no_cmd...
got EIO, good
I: testing cmd_probe_src_mask...
not applicable
I: testing cmd_probe_fast_1chan...
not applicable
I: testing cmd_read_fast_1chan...
not applicable
I: testing cmd_write_fast_1chan...
not applicable
I: testing cmd_logic_bug...
not applicable
I: testing cmd_fifo_depth_check...
not applicable
I: testing cmd_start_inttrig...
not applicable
I: testing mmap...
not applicable
I: testing read_select...
not applicable
I: testing bufconfig...
buffer length is 0, good

Received on 2003-01-26Z17:32:36