Re: faster return from read() -- buffer problem!!

Hi!

Hmmm. Actually not. I don't have any experience with NI cards.

The driver itself fills the buffer measurement by measurement:

comedi_buf_put(s->async,this_usbduxsub->inBuffer[i])

Then comedi event is called (in my driver also after every measurement):
                 // tell comedi that data is there
                 comedi_event(this_usbduxsub->comedidev,
                              s,
                              s->async->events);

And the buffer can be read measurement by measurement. With usbdux this 
is the case. I never had any problems with this issue.

It's probably so that the NI card triggers an interrupt only if its 
internal buffer has reached a certain threshold...

/Bernd

www:	http://www.berndporr.me.uk/
         http://www.linux-usb-daq.co.uk/
Mobile:	+44 (0)7769 506746
Work:	+44 (0)141 330 5237
         Department of Electronics & Electrical Engineering
         Room 519, Rankine Building, Oakfield Avenue,
         Glasgow, G12 8LT


Christian Fleischer wrote:
> Hi!
> 
> Thanks for the quick reply.
> Unfortunately, that doesn't work... :-(
> 
> comedi_get_buffer_contents(comediDevice,comediSubdevice)
> 
> seems to be a second buffer that is filled by some other buffers with 1024 
> bytes "from time to time". When not reading anything from the buffer, it 
> increases like 0,1024,2048,3072 ...
> when reading values from the buffer slowly, it decreases (of courses), but new 
> data arrives to this buffer in blocks of 1024 bytes... (every 0.5 sec, 1KHz)
> -- and that is too slow.
> maybe it is a problem of the specific pci_das-driver implementation....
> also using comedi_set_buffer_size or comedi_set_max_buffer_size did not change 
> anything...
> 
> Any ideas?
> Christian
> 

Received on 2004-07-20Z10:46:30