串口轉十六進制併發送到stdin,尚未調試

#include
#include
#include
#include
#include

#include"./libtinytty.c"
#include"./libasyncstdio.c"

char buf[81];
int flags;
int std = STDIN_FILENO;

void catcherr(int n);

void writestd(char *buf,int len){
	int i;
	int cksum = 0;
	printf("v1:s");
	if(len<10){
		printf("0");
	}
	printf("%d",len);
	printf(":");
	for(i=0;i0){
			writestd(buf,n);}
		n = read(std,buf,24);
		catcherr(n);
		if(n>0){
			write(fd,buf,n);
			writestd(buf,n);}
		usleep(1000);
	}
}

void catcherr(int n){
	if(n==0){
		fprintf(stderr,"error: eof\n");
		_tcioflush(std);
		exit(1);
	}
	else{
		if(n<0){
			if(errno != EAGAIN){
				fprintf(stderr,"error: fail in reading device %s\n","/dev/ttyUSB0");
				perror("");
				exit(1);
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章