+/* 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