summaryrefslogtreecommitdiff
path: root/RS232/demo_rx.c
diff options
context:
space:
mode:
Diffstat (limited to 'RS232/demo_rx.c')
-rw-r--r--RS232/demo_rx.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/RS232/demo_rx.c b/RS232/demo_rx.c
new file mode 100644
index 0000000..db9c41d
--- /dev/null
+++ b/RS232/demo_rx.c
@@ -0,0 +1,72 @@
+
+/**************************************************
+
+file: demo_rx.c
+purpose: simple demo that receives characters from
+the serial port and print them on the screen,
+exit the program by pressing Ctrl-C
+
+compile with the command: gcc demo_rx.c rs232.c -Wall -Wextra -o2 -o test_rx
+
+**************************************************/
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifdef _WIN32
+#include <Windows.h>
+#else
+#include <unistd.h>
+#endif
+
+#include "rs232.h"
+
+
+
+int main()
+{
+ int i, n,
+ cport_nr=2, /* /dev/ttyS0 (COM1 on windows) */
+ bdrate=9600; /* 9600 baud */
+
+ unsigned char buf[4096];
+
+ char mode[]={'8','N','1',0};
+
+
+ if(RS232_OpenComport(cport_nr, bdrate, mode))
+ {
+ printf("Can not open comport\n");
+
+ return(0);
+ }
+
+ while(1)
+ {
+ n = RS232_PollComport(cport_nr, buf, 4095);
+
+ if(n > 0)
+ {
+ buf[n] = 0; /* always put a "null" at the end of a string! */
+
+ for(i=0; i < n; i++)
+ {
+ if(buf[i] < 32) /* replace unreadable control-codes by dots */
+ {
+ buf[i] = '.';
+ }
+ }
+
+ printf("received %i bytes: %s\n", n, (char *)buf);
+ }
+
+#ifdef _WIN32
+ Sleep(100);
+#else
+ usleep(100000); /* sleep for 100 milliSeconds */
+#endif
+ }
+
+ return(0);
+}
+