73 lines
1.2 KiB
C
73 lines
1.2 KiB
C
|
|
/**************************************************
|
|
|
|
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=0, /* /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, 0))
|
|
{
|
|
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);
|
|
}
|
|
|