This section describes how Comedi can be used in an application, to communicate data with a set of Comedi devices. Section 4 gives more details about the various acquisition functions with which the application programmer can perform data acquisition in Comedi.
    Also don't forget to take a good look at the
    demo
    directory of the Comedilib source code. It contains lots of examples
    for the basic functionalities of Comedi.
  
This example requires a card that has analog or digital input. This progam opens the device, gets the data, and prints it out:
	/*
 * Tutorial example #1
 * Part of Comedilib
 *
 * Copyright (c) 1999,2000 David A. Schleef <ds@schleef.org>
 *
 * This file may be freely modified, distributed, and combined with
 * other software, as long as proper attribution is given in the
 * source code.
 */
#include <stdio.h>	/* for printf() */
#include <comedilib.h>
int subdev = 0;		/* change this to your input subdevice */
int chan = 0;		/* change this to your channel */
int range = 0;		/* more on this later */
int aref = AREF_GROUND;	/* more on this later */
int main(int argc,char *argv[])
{
	comedi_t *it;
	int chan = 0;
	lsampl_t data;
	int retval;
	it = comedi_open("/dev/comedi0");
	if(it == NULL) {
		comedi_perror("comedi_open");
		return 1;
	}
	retval = comedi_data_read(it, subdev, chan, range, aref, &data);
	if(retval < 0) {
		comedi_perror("comedi_data_read");
		return 1;
	}
	printf("%d\n", data);
	return 0;
}
      
      The source code file for the above program can be found in Comedilib,
      at demo/tut1.c.  You can compile the program using
    
      cc tut1.c -lcomedi -lm -o tut1
    
      The
      
	comedi_open
       call can only be successful if the
      comedi0 device file is configured with a
      valid Comedi driver. Section 2.1 explains
      how this driver is linked to the “device file”.
    
      The range variable tells
      Comedi which gain to use when measuring an analog voltage.  Since we
      don't know (yet) which numbers are valid, or what each means, we'll
      use 0, because it won't cause errors.  Likewise
      with aref, which determines the
      analog reference used.