]> rtime.felk.cvut.cz Git - mf6xx.git/blobdiff - src/HuLinux-2.4.3/samples/special/ListDevices.c
Initial commit; HuLinux ver. 2.4.3; All files auto-indented
[mf6xx.git] / src / HuLinux-2.4.3 / samples / special / ListDevices.c
diff --git a/src/HuLinux-2.4.3/samples/special/ListDevices.c b/src/HuLinux-2.4.3/samples/special/ListDevices.c
new file mode 100644 (file)
index 0000000..7dc140f
--- /dev/null
@@ -0,0 +1,76 @@
+/* DaWrite.c:\r
+ *   This demo demonstrates how to list devices.  \r
+ */\r
+#include <malloc.h>\r
+#include <string.h>\r
+#include <stdio.h>\r
+\r
+#include "hudaqlib.h"\r
+\r
+\r
+typedef struct\r
+{\r
+       char *DevName;\r
+       int DevOrder;\r
+} DeviceStruct;\r
+\r
+\r
+int ListDevices(DeviceStruct *D)\r
+{\r
+       int index=0;\r
+       int i;\r
+       HUDAQHANDLE h;\r
+\r
+       do\r
+       {\r
+               h = HudaqOpenDevice("", index+1, HudaqOpenNOINIT);  //Open a device\r
+               if(h==0) break;\r
+\r
+               D[index].DevName = strdup(HudaqGetBoardName(h));\r
+               D[index].DevOrder=1;\r
+\r
+               for(i=0;i<index;i++) \r
+                       if(!strcmp(D[index].DevName,D[i].DevName)) D[index].DevOrder++;\r
+               HudaqCloseDevice(h);\r
+\r
+               index++;   \r
+       } while(h!=0);\r
+\r
+       return index;\r
+}\r
+\r
+\r
+int main(int argc, char* argv[])\r
+{\r
+       int i, count;\r
+       char ch;\r
+       HUDAQHANDLE h;\r
+       DeviceStruct ds[10];\r
+\r
+       count = ListDevices(ds);\r
+       if(count<=0) {printf("\nNo Hudaqdevice found");return(-1);}\r
+\r
+       if(count>1) \r
+       {\r
+               for(i=0;i<count;i++)\r
+                       printf("\nPlease hit %c to choose %s card [%d]:",i+'A',ds[i].DevName,ds[i].DevOrder);\r
+               printf("\n");\r
+               i=toupper(getchar());\r
+               i-='A';\r
+               if (i<0 || i>=10) return;\r
+       }\r
+       else\r
+               i=0;\r
+\r
+       h = HudaqOpenDevice(ds[i].DevName,ds[i].DevOrder, HudaqOpenNOINIT);\r
+       if(h==0) \r
+               return -3;                             /* Device cannot be openned. */    \r
+\r
+\r
+       printf("\nDevice [%s(%d)] has been succesfully opened.", ds[i].DevName, ds[i].DevOrder);\r
+\r
+       HudaqCloseDevice(h);                 /* Close handle */\r
+\r
+       return 0;\r
+}\r
+\r