moved stuff from comedi
authorDavid Schleef <ds@schleef.org>
Sat, 3 Jun 2000 19:57:41 +0000 (19:57 +0000)
committerDavid Schleef <ds@schleef.org>
Sat, 3 Jun 2000 19:57:41 +0000 (19:57 +0000)
comedi_config/Makefile [new file with mode: 0644]
comedi_config/comedi_config.c [new file with mode: 0644]
man/comedi.7 [new file with mode: 0644]
man/comedi_config.8 [new file with mode: 0644]

diff --git a/comedi_config/Makefile b/comedi_config/Makefile
new file mode 100644 (file)
index 0000000..1fe9eee
--- /dev/null
@@ -0,0 +1,12 @@
+
+CFLAGS=-Wall -O2 -I../include
+#LDFLAGS=-L../lib/ -lcomedi
+LDFLAGS=
+
+OBJS=comedi_config.o
+
+comedi_config: $(OBJS)
+       $(CC) -o comedi_config $(OBJS) $(LDFLAGS)
+
+clean:
+       rm -f comedi_config *.o
diff --git a/comedi_config/comedi_config.c b/comedi_config/comedi_config.c
new file mode 100644 (file)
index 0000000..da4e90b
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+    comedi_config/comedi_config.c
+    configuration program for comedi kernel module
+
+    COMEDI - Linux Control and Measurement Device Interface
+    Copyright (C) 1998 David A. Schleef <ds@stm.lbl.gov>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#define CC_VERSION     "0.6.13"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <stdio.h>
+#include <getopt.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <comedi.h>
+
+int quiet=0,verbose=0,script=0;
+
+void do_script(void);
+
+void do_help(int i)
+{
+       fputs(
+"comedi_config version " CC_VERSION "\n"
+"usage:  comedi_config [-[vVq]] <device file> <driver> <option1>,<option2>,...\n"
+"where <optionN> are integers (or blank) whose interpretation depends on\n"
+"the driver.  In general, however, option1 refers to the I/O port address\n"
+"and option2 refers to IRQ number to be used by the driver\n"
+               ,stderr);
+       exit(i);
+}
+
+int main(int argc,char *argv[])
+{
+       comedi_devconfig it;
+       int fd;
+       int c,i,num,k;
+       char *opts;
+       char *fn,*driver;
+       struct stat statbuf;
+       int ret;
+       int remove=0;
+       
+       while(1){
+               c=getopt(argc,argv,"rvVq");
+               if(c==-1)break;
+               switch(c){
+               case 'v':
+                       verbose=1;
+                       break;
+               case 'V':
+                       fputs("comedi_config version " CC_VERSION "\n",stderr);
+                       exit(0);
+                       break;
+               case 'q':
+                       quiet=1;
+                       break;
+               case 'a':
+                       script=1;
+                       break;
+               case 'r':
+                       remove=1;
+                       break;
+               default:
+                       do_help(1);
+               }
+       }
+
+       if(script){
+               if( (argc-optind)>0 ){
+                       do_help(1);
+               }else{
+                       do_script();
+               }
+       }
+       
+       if((argc-optind)!=2 && (argc-optind)!=3){
+               do_help(1);
+       }
+               
+       fn=argv[optind];
+       
+       driver=argv[optind+1];
+       strncpy(it.board_name,driver,COMEDI_NAMELEN-1);
+
+       for(i=0;i<COMEDI_NDEVCONFOPTS;i++)it.options[i]=0;
+
+       if((argc-optind)==3){
+               opts=argv[optind+2];
+               i=0;
+               while(*opts){
+                       if((*opts)==','){
+                               i++;
+                               opts++;
+                               if(i>=COMEDI_NDEVCONFOPTS)
+                                       do_help(1);
+                               continue;
+                       }
+                       if(sscanf(opts,"%i%n",&num,&k)>0){
+                               it.options[i]=num;
+                               opts+=k;
+                               continue;
+                       }
+                       do_help(1);
+               }
+       }
+       
+       ret=stat(fn,&statbuf);
+       if(ret<0){
+               perror(fn);
+               exit(1);
+       }
+#if 0
+       /* this appears to be broken */
+       if(  !(S_ISCHR(statbuf.st_mode)) ||
+            major(statbuf.st_dev)!=COMEDI_MAJOR){
+               if(!quiet)
+                       fprintf(stderr,"warning: %s might not be a comedi device\n",fn);
+       }
+#endif
+       
+       fd=open(fn,O_RDWR);
+       if(fd<0){
+               perror(fn);
+               exit(1);
+       }
+       
+       /* add: sanity check for device */
+       
+       if(verbose){
+               printf("configuring driver=%s ",it.board_name);
+               for(i=0;i<COMEDI_NDEVCONFOPTS;i++)printf("%d,",it.options[i]);
+               printf("\n");
+       }
+       if(ioctl(fd,COMEDI_DEVCONFIG,remove?NULL:&it)<0){
+               perror("Configure failed!");
+               exit(1);
+       }
+       exit(0);
+}
+
+void do_script(void)
+{
+       printf("comedi_config: -a option not supported (yet).\n");
+       exit(0);
+}
+
diff --git a/man/comedi.7 b/man/comedi.7
new file mode 100644 (file)
index 0000000..9be638b
--- /dev/null
@@ -0,0 +1,59 @@
+.TH comedi 7 ""
+.SH NAME
+\fBcomedi\fR - the Linux Control and Measurement Device Interface
+.SH SYNOPSIS
+\fB#include <comedi.h>\fR
+.br
+.SH DESCRIPTION
+The \fBcomedi\fR package is a collection of hardware drivers and
+library routines that can be used to communicate with a variety of
+data acquisition boards, including A/D converters, D/A converters,
+digital I/O and timers.
+
+The hardware drivers that are installed on your system may include
+one or more of the following:
+
+       \fB8255\fR - Generic 8255 support
+.br
+       \fBdas08\fR - Keithley DAS08 and compatibles
+.br
+       \fBdt2811\fR - Data Translation DT2811
+.br
+       \fBdt2814\fR - Data Translation DT2814
+.br
+       \fBdt2817\fR - Data Translation DT2817
+.br
+       \fBdt282x\fR - Data Translation DT2821 series
+.br
+       \fBni_E\fR - National Instruments AT-MIO E series
+.br
+       \fBni_E\fR - National Instruments AT-MIO (Am9513 based)
+.br
+       \fBparport\fR - Standard PC parallel port digital I/O
+.br
+       \fBpcl711\fR - PC-LabCard PCL-711, 711B
+.br
+       \fBpcl711\fR - PC-LabCard PCL-725
+.br
+       \fBpcl711\fR - PC-LabCard PCL-726
+.br
+       \fBrti800\fR - Analog Devices RTI-800/815
+
+.SH OTHER DOCUMENTATION
+
+The following man pages may be useful:
+
+\fBcomedi_config\fR(8), 
+
+Additional text documentation is located in /usr/doc/comedi-0.5.0.
+
+.SH VERSION
+
+0.5.0
+
+The current version can be found at ftp://stm.lbl.gov/pub/comedi.
+
+.SH AUTHOR
+
+David Schleef, <ds@stm.lbl.gov>
+
diff --git a/man/comedi_config.8 b/man/comedi_config.8
new file mode 100644 (file)
index 0000000..9296475
--- /dev/null
@@ -0,0 +1,177 @@
+.TH comedi_config 8 ""
+.SH NAME
+\fBcomedi_config\fR - COMEDI configuration utility
+.SH SYNOPSIS
+\fB/usr/sbin/comedi_config\fR [-vVq] /dev/comediN <driver>
+<option1>[,<option2>...]
+.br
+.SH DESCRIPTION
+\fBcomedi_config\fR is a utility designed to configure
+control and measurement hardware associated with a particular
+\fBcomedi\fR device.  You must have the \fBcomedi\fR module installed
+in the kernel to use this utility.
+
+Each control and measurement card in your computer is associated
+with an individual comedi device; to a user, these appear as the
+files \fB/dev/comedi\fRN, with N being 0,1,2,3,etc.  To configure
+\fBcomedi\fR to use a particular hardware driver for your card,
+you would use this utility with the device file, driver name, and
+other vital parameters (I/O base address, IRQ, etc.) on the
+command line.
+
+As an example, the command line used to tell the comedi module that
+you want to access a National Instruments AT-MIO E series board as
+\fB/dev/comedi0\fR would be:
+
+       /usr/sbin/comedi_config /dev/comedi0 atmio-E 0x220,3
+
+This tells the driver that the board is configured
+for I/O base 0x220 and IRQ 3.  In general, I/O base is listed first
+and IRQ, if necessary, is listed second.  Additional parameters
+vary, so see the information below for the particular driver.
+
+Parameters can be expressed in either decimal or hexadecimal, with
+a 0x prefix.
+
+
+.SH OPTIONS
+
+\fBcomedi_config\fR recognizes the following options:
+
+\fB-a\fR       obtain configuration information from the file
+/fB/etc/comedi.conf/fR.
+
+\fB-q\fR       don't print output while running.
+
+\fB-v\fR       print verbose output while running.
+
+\fB-V\fR       print version number and exit.
+
+.SH HARDWARE DRIVERS
+
+Additional information pertaining to each hardware driver is
+available in \fB/usr/doc/comedi-0.5.0\fR.  Unless noted,
+the names below are the same as the driver names given on
+the command line.
+
+\fB8255\fR     Generic 8255 support
+.br
+       <I/O base>
+
+\fBdas08\fR - Keithley DAS08 and compatibles
+.br
+       <I/O base>
+
+\fBdt2811\fR - Data Translation DT2811
+.br
+       <I/O base>
+.br
+       Interrupts are not used with this board.
+
+\fBdt2814\fR - Data Translation DT2814
+.br
+       <I/O base>,<IRQ>
+.br
+       Set IRQ to -1 to probe for IRQ.
+
+\fBdt2817\fR - Data Translation DT2817
+.br
+       <I/O base>
+
+\fBdt282x\fR - Data Translation DT2821 series
+.br
+       <I/O base>,<IRQ>,<DMA 1>,<DMA 2>,
+<analog reference>,
+<encoding, analog input>,
+<encoding, analog output 0>,
+<encoding, analog output 1>,
+<voltage range, analog input>,
+<voltage range, analog output 0>,
+<voltage range, analog output 1>.
+.br
+       Valid values for analog reference are 0=single ended,
+1=differential.
+Valid values for encoding are
+[0=straight or offset binary, 1=two's complement].
+Valid values for voltage range are
+0=(-10,10), 1=(0,10), 2=(-5,+5), 3=(0,5),
+4=(-2.5,2.5).
+Options must agree with how your board is
+configured.
+.br
+       The driver recognizes the following names:
+\fBdt2821\fR,
+\fBdt2823\fR,
+\fBdt2824-pgh\fR,
+\fBdt2824-pgl\fR,
+\fBdt2825\fR,
+\fBdt2827\fR,
+\fBdt2828\fR.
+Use the name that best represents your board.
+
+\fBatmio-E\fR - National Instruments AT-MIO E series
+.br
+       <I/O base>,<IRQ>
+.br
+       This driver automatically detects which board is installed
+in your computer.  The E-series boards are plug-and-play, so use
+\fBisapnptools\fR to tell the board which I/O port to use before
+running \fBcomedi_config\fR.  In a random fit of stupidity, the
+E-series boards ignore the IRQ which PnP assigns to it.
+
+\fBparport\fR - Standard PC parallel port digital I/O
+.br
+       <I/O base>
+.br
+       This driver does not work with the new parallel port sharing
+capabilities of Linux.
+
+\fBpcl711\fR - PC-LabCard PCL-711, 711B, ACL-8112
+.br
+       <I/O base>
+.br
+       Use the driver name \fBpcl711b\fR to configure for a 711B board.
+
+\fBpcl725\fR - PC-LabCard PCL-725
+.br
+       <I/O base>
+.br
+
+\fBpcl726\fR - PC-LabCard PCL-726
+.br
+       <I/O base>
+.br
+
+\fBrti800\fR - Analog Devices RTI-800/815
+.br
+       <I/O base>
+
+.SH CONFIGURATION FILE
+
+[This section has not been implemented yet.]
+
+A list of device configurations can be put into the file
+\fB/etc/comedi.conf\fR.  This file takes the form
+
+       <device> <driver> <param1>,<param2>,...
+
+These configurations will be read and performed when the
+switch \fB-a\fR is used.  This is potentially useful when
+run from an initialization script.
+
+.SH OTHER DOCUMENTATION
+
+\fBcomedi\fR(7), 
+
+Additional text documentation is located in /usr/doc/comedi-0.5.0.
+
+.SH VERSION
+
+0.5.0
+
+The current version can be obtained from ftp://stm.lbl.gov/pub/comedi.
+
+.SH AUTHOR
+
+David Schleef, <ds@stm.lbl.gov>
+