45 lines
1.3 KiB
Perl
Executable file
45 lines
1.3 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
use Comedi qw( :SubdeviceTypes );
|
|
use Comedi::Lib;
|
|
|
|
sub help {
|
|
print STDERR "info </dev/comediN>\n";
|
|
exit(0);
|
|
}
|
|
|
|
%subdevice_types = (
|
|
COMEDI_SUBD_UNUSED, 'unused',
|
|
COMEDI_SUBD_AI, 'analog input',
|
|
COMEDI_SUBD_AO, 'analog output',
|
|
COMEDI_SUBD_DI, 'digital input',
|
|
COMEDI_SUBD_DO, 'digital output',
|
|
COMEDI_SUBD_DIO, 'digital I/O',
|
|
COMEDI_SUBD_COUNTER, 'counter',
|
|
COMEDI_SUBD_TIMER, 'timer',
|
|
COMEDI_SUBD_MEMORY, 'memory',
|
|
COMEDI_SUBD_CALIB, 'calibration',
|
|
COMEDI_SUBD_PROC, 'processor',
|
|
);
|
|
|
|
#
|
|
# Main Program
|
|
#
|
|
|
|
help() if (@ARGV != 1);
|
|
|
|
$it = comedi_open($ARGV[0]) || die "cannot open $ARGV[0]: $!";
|
|
|
|
printf("overall info:\n");
|
|
printf(" version code: %d.%d.%d (0x%06x)\n", comedi_get_version($it), comedi_get_version_code($it));
|
|
printf(" driver name: %s\n", comedi_get_driver_name($it));
|
|
printf(" board name: %s\n", comedi_get_board_name($it));
|
|
printf(" number of subdevices: %d\n", $n_subdevices = comedi_get_n_subdevices($it));
|
|
|
|
for ($i = 0; $i < $n_subdevices; $i++) {
|
|
printf("subdevice %d:\n", $i);
|
|
$type = comedi_get_subdevice_type($it, $i);
|
|
printf(" type: %d (%s)\n", $type, $subdevice_types{$type});
|
|
printf(" number of channels: %d\n", comedi_get_n_channels($it, $i));
|
|
printf(" max data value: %d\n", comedi_get_maxdata($it, $i, 0));
|
|
}
|