2 A little input demo for commands
10 #include <sys/ioctl.h>
21 int aref = AREF_GROUND;
28 static void do_cmd(comedi_t *dev);
29 void dump_cmd(comedi_cmd *cmd);
31 int main(int argc, char *argv[])
38 dev = comedi_open(fn);
45 static void do_cmd(comedi_t *dev)
48 unsigned int chanlist[4];
51 /* the subdevice that the command is sent to */
52 cmd.subdev = subdevice;
57 /* each event requires a trigger, which is specified
58 by a source and an argument. For example, to specify
59 an external digital line 3 as a source, you would use
60 src=TRIG_EXT and arg=3. */
62 cmd.start_src = TRIG_NOW;
65 cmd.scan_begin_src = TRIG_TIMER;
66 cmd.scan_begin_arg = 1; /* in ns */
68 cmd.convert_src = TRIG_TIMER;
69 cmd.convert_arg = 1; /* in ns */
71 cmd.scan_end_src = TRIG_COUNT;
72 cmd.scan_end_arg = 4; /* number of channels */
74 cmd.stop_src = TRIG_COUNT;
77 /* the channel list determined which channels are sampled.
78 In general, chanlist_len is the same as scan_end_arg. Most
79 boards require this. */
80 cmd.chanlist = chanlist;
83 chanlist[0]=CR_PACK(0,range,aref);
84 chanlist[1]=CR_PACK(1,range,aref);
85 chanlist[2]=CR_PACK(2,range,aref);
86 chanlist[3]=CR_PACK(3,range,aref);
88 /* data and data_len are not used for user-space
93 ret=ioctl(comedi_fileno(dev),COMEDI_CMDTEST,&cmd);
95 printf("test ret=%d\n",ret);
97 printf("errno=%d\n",errno);
98 comedi_perror("ioctl");
104 cmd.chanlist = chanlist;
105 cmd.chanlist_len = 4;
107 ret=ioctl(comedi_fileno(dev),COMEDI_CMDTEST,&cmd);
109 printf("test ret=%d\n",ret);
111 printf("errno=%d\n",errno);
112 comedi_perror("ioctl");
118 cmd.chanlist = chanlist;
119 cmd.chanlist_len = 4;
121 ret=ioctl(comedi_fileno(dev),COMEDI_CMD,&cmd);
123 printf("ret=%d\n",ret);
125 printf("errno=%d\n",errno);
126 comedi_perror("ioctl");
131 ret=read(comedi_fileno(dev),buf,BUFSZ);
132 printf("read %d\n",ret);
134 printf("errno=%d\n",errno);
137 char *cmd_src(int src)
162 void dump_cmd(comedi_cmd *cmd)
164 printf("start: %s %d\n",
165 cmd_src(cmd->start_src),
168 printf("scan_begin: %s %d\n",
169 cmd_src(cmd->scan_begin_src),
170 cmd->scan_begin_arg);
172 printf("convert: %s %d\n",
173 cmd_src(cmd->convert_src),
176 printf("scan_end: %s %d\n",
177 cmd_src(cmd->scan_end_src),
180 printf("stop: %s %d\n",
181 cmd_src(cmd->stop_src),