So now that you have Comedi talking to the hardware, try to
talk to Comedi.
Call the command comedi_board_info, which provides information
about each subdevice on the board.
Here's part of the output for the USB-DUX sigma
board (which is on /dev/comedi0), as a result of
the command comedi_board_info -v.
overall info:
version code: 0x00074c
driver name: usbduxsigma
board name: usbduxsigma
number of subdevices: 4
subdevice 0:
type: 1 (analog input)
flags: 0x10119000
SDF_CMD_READ:can do asynchronous input commands
SDF_READABLE:subdevice can be read
SDF_GROUND:can do aref=ground
SDF_LSAMPL:subdevice uses 32-bit samples for commands
number of channels: 16
max data value: 16777215
ranges:
all chans: [-1.325 V,1.325 V]
command:
start: now|int
scan_begin: timer
convert: now
scan_end: count
stop: none|count
command structure filled with probe_cmd_generic_timed for 16 channels:
start: now 0
scan_begin: timer 1000000
scan_begin_src = TRIG_TIMER:
The sampling rate is defined per scan
meaning all channels are sampled at
the same time. The maximum sampling rate is f=1000 Hz
convert: now 0
scan_end: count 16
stop: count 2
subdevice 1:
type: 2 (analog output)
flags: 0x00125000
SDF_CMD_WRITE:can do asynchronous output commands
SDF_WRITABLE:subdevice can be written
SDF_GROUND:can do aref=ground
number of channels: 4
max data value: 255
ranges:
all chans: [0 V,2.5 V]
command:
start: now|int
scan_begin: timer
convert: now
scan_end: count
stop: none|count
command structure filled with probe_cmd_generic_timed for 4 channels:
start: now 0
scan_begin: timer 1000000
scan_begin_src = TRIG_TIMER:
The sampling rate is defined per scan
meaning all channels are sampled at
the same time. The maximum sampling rate is f=1000 Hz
convert: now 0
scan_end: count 4
stop: count 2
subdevice 2:
type: 5 (digital I/O)
flags: 0x00030000
SDF_READABLE:subdevice can be read
SDF_WRITABLE:subdevice can be written
number of channels: 24
max data value: 1
ranges:
all chans: [0 V,5 V]
command:
not supported
subdevice 3:
type: 12 (pwm)
flags: 0x00020100
SDF_MODE1:can do mode 1
SDF_WRITABLE:subdevice can be written
number of channels: 8
max data value: 512
ranges:
all chans: [0,1]
command:
not supported
This board has four subdevices. Devices are separated into subdevices that each have a distinct purpose; e.g., analog input, analog output, digital input/output.
Here's the information from Comedi's /proc/comedi
file, which indicates what drivers are loaded and which
boards are configured:
cat /proc/comedi
comedi version 0.7.76 format string: "%2d: %-20s %-20s %4d",i,driver_name,board_name,n_subdevices 0: usbduxsigma usbduxsigma 4 usbduxfast: usbduxfast usbduxsigma: usbduxsigma
This documentation feature currently returns the driver name, the device name, and the number of subdevices. Following those lines are a list of the Comedi kernel driver modules currently loaded, each followed by a list of the board names it recognizes (names that can be used with comedi_config).