libftdi Archives

Subject: Re: Re: [ANNOUNCE] libftdi 1.0 third release candidate

From: Xiaofan Chen <xiaofanc@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Fri, 25 Jan 2013 22:28:03 +0800
On Fri, Jan 25, 2013 at 9:39 PM, Xiaofan Chen <xiaofanc@xxxxxxxxx> wrote:
> I think the better fix is to use usleep and get rid of the
> ugly __WIN32__ defines.
>

Yes this works fine. Here is the patch.

Change sleep() to usleep() to make examples build
successful under Windows with MinGW.

diff --git a/examples/bitbang.c b/examples/bitbang.c
index 1d69e2e..a6bd649 100644
--- a/examples/bitbang.c
+++ b/examples/bitbang.c
@@ -3,9 +3,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
-#ifdef __WIN32__
-#define sleep(x) Sleep(x)
-#endif
 #include <ftdi.h>

 int main(int argc, char **argv)
@@ -35,7 +32,7 @@ int main(int argc, char **argv)
     printf("enabling bitbang mode\n");
     ftdi_set_bitmode(ftdi, 0xFF, BITMODE_BITBANG);

-    sleep(3);
+    usleep(3000);

     buf[0] = 0x0;
     printf("turning everything on\n");
@@ -45,7 +42,7 @@ int main(int argc, char **argv)
         fprintf(stderr,"write failed for 0x%x, error %d
(%s)\n",buf[0],f, ftdi_get_error_string(ftdi));
     }

-    sleep(3);
+    usleep(3000);

     buf[0] = 0xFF;
     printf("turning everything off\n");
@@ -55,7 +52,7 @@ int main(int argc, char **argv)
         fprintf(stderr,"write failed for 0x%x, error %d
(%s)\n",buf[0],f, ftdi_get_error_string(ftdi));
     }

-    sleep(3);
+    usleep(3000);

     for (i = 0; i < 32; i++)
     {
@@ -71,7 +68,7 @@ int main(int argc, char **argv)
         {
             fprintf(stderr,"write failed for 0x%x, error %d
(%s)\n",buf[0],f, ftdi_get_error_string(ftdi));
         }
-        sleep(1);
+        usleep(1000);
     }

     printf("\n");
diff --git a/examples/bitbang2.c b/examples/bitbang2.c
index 26f3338..f10a496 100644
--- a/examples/bitbang2.c
+++ b/examples/bitbang2.c
@@ -32,9 +32,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
-#ifdef __WIN32__
-#define usleep(x) Sleep((x+999)/1000)
-#endif
 #include <ftdi.h>

 void ftdi_fatal (struct ftdi_context *ftdi, char *str)
diff --git a/examples/bitbang_ft2232.c b/examples/bitbang_ft2232.c
index 253555a..0c2f33f 100644
--- a/examples/bitbang_ft2232.c
+++ b/examples/bitbang_ft2232.c
@@ -11,9 +11,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
-#ifdef __WIN32__
-#define sleep(x) Sleep(x)
-#endif
 #include <ftdi.h>

 int main(int argc, char **argv)
@@ -70,28 +67,28 @@ int main(int argc, char **argv)
         f = ftdi_write_data(ftdi, buf, 1);
         if (f < 0)
             fprintf(stderr,"write failed on channel 1 for 0x%x, error
%d (%s)\n", buf[0], f, ftdi_get_error_string(ftdi));
-        sleep(1);
+        usleep(1000);

         buf[0] =  0x2;
         printf("porta: %02i: 0x%02x \n",i,buf[0]);
         f = ftdi_write_data(ftdi, buf, 1);
         if (f < 0)
             fprintf(stderr,"write failed on channel 1 for 0x%x, error
%d (%s)\n", buf[0], f, ftdi_get_error_string(ftdi));
-        sleep(1);
+        usleep(1000);

         buf[0] =  0x1;
         printf("portb: %02i: 0x%02x \n",i,buf[0]);
         f = ftdi_write_data(ftdi2, buf, 1);
         if (f < 0)
             fprintf(stderr,"write failed on channel 2 for 0x%x, error
%d (%s)\n", buf[0], f, ftdi_get_error_string(ftdi2));
-        sleep(1);
+        usleep(1000);

         buf[0] =  0x2;
         printf("portb: %02i: 0x%02x \n",i,buf[0]);
         f = ftdi_write_data(ftdi2, buf, 1);
         if (f < 0)
             fprintf(stderr,"write failed on channel 2 for 0x%x, error
%d (%s)\n", buf[0], f, ftdi_get_error_string(ftdi2));
-        sleep(1);
+        usleep(1000);
     }
     printf("\n");

diff --git a/examples/serial_test.c b/examples/serial_test.c
index 6a9d8ff..e883030 100644
--- a/examples/serial_test.c
+++ b/examples/serial_test.c
@@ -8,9 +8,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
-#ifdef __WIN32__
-#define sleep(x) Sleep(x)
-#endif
 #include <getopt.h>
 #include <signal.h>
 #include <ftdi.h>
@@ -162,7 +159,7 @@ int main(int argc, char **argv)
         else
             f = ftdi_read_data(ftdi, buf, sizeof(buf));
         if (f<0)
-            sleep(1);
+            usleep(1000);
         else if(f> 0 && !do_write)
         {
             fprintf(stderr, "read %d bytes\n", f);


-- 
Xiaofan

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread