📄 test-serial.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include "serial.h"
#include "rs485.h"
#define RS485_PIO_DEV "/dev/rs485/0"
static int n_com_port = 2;
int main (int argc, char *argv[])
{
int ret = -1;
int len_tty = -1;
int fd_rs485;
unsigned char buf_tty[256];
if (argc > 1) {
n_com_port = strtol( argv[1], NULL, 10 );
}
fd_rs485 = open(RS485_PIO_DEV, O_RDWR);
if (fd_rs485 < 0) {
fprintf(stderr, "Error: open RS485 device, check if driver installed\n");
exit(EXIT_FAILURE);
}
ret = OpenComPort(n_com_port, 9600, 8, "1", 'N');
if (ret < 0) {
fprintf(stderr, "Error: Opening Com Port %d\n", n_com_port);
return ret;
}else{
printf("Open Com Port %d Success, Now going to read port\n", n_com_port);
}
while(1){
ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_RECV);
bzero(buf_tty, sizeof(buf_tty));
len_tty = ReadComPort(buf_tty, 255);
if (len_tty < 0) {
printf("Error: Read Com Port\n");
break;
}
if (len_tty == 0) {
write(STDOUT_FILENO, ".", sizeof("."));
continue;
}
printf("Recv: %d bytes, [%s]\n", len_tty, buf_tty);
ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_SEND);
len_tty = WriteComPort(buf_tty, len_tty);
WriteComPort(" recved:", sizeof(" recved:"));
if (len_tty < 0) {
printf("Error: WriteComPort Error\n");
}
// delay 500 ms to let data transfer complete
// here will cause bugs
usleep(500 * 1000);
ioctl(fd_rs485, RS485_SET_MODE, RS485_MODE_RECV);
}
CloseComPort();
printf("Program Terminated\n");
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -