me8100_test_dio/wtest.c
changeset 22 7b722739e329
parent 8 12065fad228b
child 23 8675c3e5d914
--- a/me8100_test_dio/wtest.c	Thu Jan 24 18:53:47 2002 +0100
+++ b/me8100_test_dio/wtest.c	Fri Jan 25 16:55:00 2002 +0100
@@ -20,12 +20,14 @@
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include <signal.h>
-
+#include <stdlib.h>
 #include "me8100.h"
 
 #define USE_WRITE
 
-int main(void){
+const char* DEVICE = "/dev/me8100_0a";
+
+int main(int argc, char** argv) {
   int err = 0;
   static int file_handle = -1;
 
@@ -34,15 +36,16 @@
 #endif
   unsigned short value_a;
 
-  printf("Write test, PID: %d\n", getpid());
+  if (argc > 1) DEVICE = argv[1];
+  printf("Write test, to %s PID: %d\n", DEVICE, getpid());
 #ifdef USE_WRITE
   printf("Using write()\n");
 #endif
-  file_handle = open("/dev/me8100_0a", O_WRONLY, 0);
+
 
-  if(file_handle < 0){
-    printf("Cannot open path !\n");
-    return 1;
+  if (-1 == (file_handle = open(DEVICE, O_WRONLY, 0))) {
+    fprintf(stderr, "Can't open %s: %m\n", DEVICE);
+    exit(EXIT_FAILURE);
   }
 
 #ifndef USE_WRITE
@@ -54,6 +57,10 @@
   }
 #endif
 
+  value_a = 0xffff;
+  write(file_handle, &value_a, sizeof(value_a));
+  exit(EXIT_SUCCESS);
+
   for (value_a = 0x01; value_a < 0xffff; ++value_a) {
 #ifdef USE_WRITE
     write(file_handle, &value_a, sizeof(value_a));
@@ -61,7 +68,7 @@
     ioctl(file_handle, ME8100_WRITE_DO_A, &value_a);
 #endif
     printf("Wrote %04x\n", value_a);
-    sleep(3);
+    sleep(1);
   }
 
   err = close(file_handle);