doc: add missing -lm option to command line for compiling tut1
[comedilib.git] / testing / insn_read.c
1
2 #include <stdio.h>
3 #include <comedilib.h>
4 #include <fcntl.h>
5 #include <unistd.h>
6 #include <sys/ioctl.h>
7 #include <errno.h>
8 #include <getopt.h>
9 #include <ctype.h>
10 #include <math.h>
11 #include <sys/time.h>
12 #include <string.h>
13 #include "comedi_test.h"
14
15
16 int test_insn_read(void)
17 {
18         comedi_insn it;
19         lsampl_t data = 0xffffffff;
20         int ret;
21         int type;
22
23         printf("rev 1\n");
24
25         type = comedi_get_subdevice_type(device,subdevice);
26
27         memset(&it,0,sizeof(it));
28         it.subdev = subdevice;
29         it.insn = INSN_READ;
30         it.n = 1;
31         it.chanspec = CR_PACK(0,0,0);
32         it.data = &data;
33
34         ret = comedi_do_insn(device,&it);
35
36         if(type==COMEDI_SUBD_UNUSED){
37                 if(ret<0){
38                         if(errno==EIO){
39                                 printf("comedi_do_insn: EIO, good\n");
40                         }else{
41                                 printf("E: comedi_do_insn: %s\n",
42                                         strerror(errno));
43                         }
44                 }else{
45                         printf("E: comedi_do_insn: returned %d, expected error\n",
46                                 ret);
47                 }
48         }else{
49                 if(ret<0){
50                         printf("E: comedi_do_insn: %s\n",strerror(errno));
51                 }else if(ret==1){
52                         printf("comedi_do_insn returned 1, good\n");
53                 }else{
54                         printf("E: comedi_do_insn returned %d\n",ret);
55                 }
56         }
57
58         return 0;
59 }
60
61 /*
62  * This function tests reading with n=0.
63  */
64 int test_insn_read_0(void)
65 {
66         comedi_insn it;
67         lsampl_t data = 0xffffffff;
68         int ret;
69         int type;
70
71         type = comedi_get_subdevice_type(device,subdevice);
72         if(type==COMEDI_SUBD_UNUSED){
73                 printf("not applicable\n");
74                 return 0;
75         }
76
77         memset(&it,0,sizeof(it));
78         it.subdev = subdevice;
79         it.insn = INSN_READ;
80         it.n = 0;
81         it.chanspec = CR_PACK(0,0,0);
82         it.data = &data;
83
84         ret = comedi_do_insn(device,&it);
85
86         if(ret<0){
87                 printf("E: comedi_do_insn: %s\n",strerror(errno));
88         }else if(ret==0){
89                 printf("comedi_do_insn returned 0, good\n");
90         }else{
91                 printf("E: comedi_do_insn returned %d\n",ret);
92         }
93
94         return 0;
95 }
96