added some error checks
authorFrank Mori Hess <fmhess@speakeasy.net>
Thu, 24 Feb 2005 20:46:56 +0000 (20:46 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Thu, 24 Feb 2005 20:46:56 +0000 (20:46 +0000)
demo/tut2.c

index 056f4b7bb18791bb808391c50564b191265bf5b3..441660294a5c99e0a71237f537f4ddafee22b2bd 100644 (file)
@@ -16,6 +16,7 @@ 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 */
+const char filename[] = "/dev/comedi0";
 
 int main(int argc, char *argv[])
 {
@@ -24,11 +25,32 @@ int main(int argc, char *argv[])
        int maxdata;
        double volts;
        comedi_range *cr;
-
-       cf = comedi_open("/dev/comedi0");
+       int retval;
+       
+       cf = comedi_open(filename);
+       if(cf == NULL)
+       {
+               comedi_perror(filename);
+               return 1;
+       }       
        maxdata = comedi_get_maxdata(cf, subdev, chan);
+       if(maxdata == 0)
+       {
+               comedi_perror(filename);
+               return 1;
+       }       
        cr = comedi_get_range(cf, subdev, chan, range);
-       comedi_data_read(cf, subdev, chan, range, aref, &data);
+       if(cr == NULL)
+       {
+               comedi_perror(filename);
+               return 1;
+       }
+       retval = comedi_data_read(cf, subdev, chan, range, aref, &data);
+       if(retval < 0)
+       {
+               comedi_perror(filename);
+               return 1;
+       }
        volts = comedi_to_phys(data, cr, maxdata);
        printf("%d %g\n", data, volts);