Change cmd tester to check for Comedi version, and then use
SDF_CMD flag.
This commit is contained in:
parent
515a0d426f
commit
22ae504197
2 changed files with 29 additions and 20 deletions
47
lib/filler.c
47
lib/filler.c
|
@ -151,28 +151,35 @@ comedi_range *get_rangeinfo(int fd,unsigned int range_type)
|
|||
|
||||
static int do_test_for_cmd(comedi_t *dev,unsigned int subdevice)
|
||||
{
|
||||
comedi_cmd it;
|
||||
int ret;
|
||||
|
||||
memset(&it,0,sizeof(it));
|
||||
|
||||
it.subdev = subdevice;
|
||||
it.start_src = TRIG_ANY;
|
||||
it.scan_begin_src = TRIG_ANY;
|
||||
it.convert_src = TRIG_ANY;
|
||||
it.scan_end_src = TRIG_ANY;
|
||||
it.stop_src = TRIG_ANY;
|
||||
|
||||
ret = ioctl(dev->fd,COMEDI_CMDTEST,&it);
|
||||
|
||||
if(ret<0 && errno==EIO){
|
||||
/* SDF_CMD was added in 0.7.57 */
|
||||
if(dev->devinfo.version_code >= COMEDI_VERSION_CODE(0,7,57)){
|
||||
if(dev->subdevices[subdevice].subd_flags & SDF_CMD)
|
||||
return 1;
|
||||
return 0;
|
||||
}else{
|
||||
comedi_cmd it;
|
||||
int ret;
|
||||
|
||||
memset(&it,0,sizeof(it));
|
||||
|
||||
it.subdev = subdevice;
|
||||
it.start_src = TRIG_ANY;
|
||||
it.scan_begin_src = TRIG_ANY;
|
||||
it.convert_src = TRIG_ANY;
|
||||
it.scan_end_src = TRIG_ANY;
|
||||
it.stop_src = TRIG_ANY;
|
||||
|
||||
ret = ioctl(dev->fd,COMEDI_CMDTEST,&it);
|
||||
|
||||
if(ret<0 && errno==EIO){
|
||||
return 0;
|
||||
}
|
||||
if(ret<0){
|
||||
fprintf(stderr,"BUG in do_test_for_cmd()\n");
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
if(ret<0){
|
||||
fprintf(stderr,"BUG in do_test_for_cmd()\n");
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int do_test_for_insnlist(comedi_t *dev)
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
|
||||
#define DEBUG(level,format,args...) do{if(__comedi_loglevel>=(level))fprintf(stderr,__FUNCTION__ ": " format, ## args);}while(0)
|
||||
|
||||
#define COMEDI_VERSION_CODE(a,b,c) (((a)<<16) | ((b)<<8) | (c))
|
||||
|
||||
#define COMEDILIB_MAGIC 0xc001dafe
|
||||
|
||||
extern int __comedi_init;
|
||||
|
|
Loading…
Add table
Reference in a new issue