亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sct.c

?? LINUX下串口編程
?? C
?? 第 1 頁 / 共 2 頁
字號:
	bufstat[bufno].size = 0;		//set terminal to nonblock and raw mode	tio_saveset(STDIN_FILENO, &in_tios);	tio_raw(STDIN_FILENO);	//setbuf as ascii form	if (inpmode == INP_ASC) {		printf("Set buf as ascii form\x0d\x0a");		printf("Enter text and input Ctrl-Z for end\x0d\x0a");		i = 0;		while(i<MAXBUFSIZE) {			if (read(STDIN_FILENO,&ch,1) > 0) {				if (ch == 26)					break;				write(STDOUT_FILENO,&ch,1);				bufstat[bufno].buf[i++] = ch;				if (ch == 0x0d) {					bufstat[bufno].buf[i++] = 0x0a;					write(STDOUT_FILENO,"\x0a",1);				}			}		}		bufstat[bufno].size=i;		} else {		printf("Set buf as hex form\x0d\x0a");		printf("Enter hex data and input Ctrl-Z for end\x0d\x0a");		i = 0;		while(i<MAXBUFSIZE) {			if (read(STDIN_FILENO,&ch,1) > 0) {				if (ch == 26)					break;				if (!isxdigit(ch))					continue;				write(STDOUT_FILENO,&ch,1);				buf[i++] = ch;			}		}		if(i%2) {			printf("\x0d\x0alength of hex bits is not multiple to 2\x0d\x0a");	       		printf("Fail to set data to the buf");		} else if(i>0) {			ascs2hex(bufstat[bufno].buf, buf, i);			bufstat[bufno].size = i/2;		}	}		tio_reset(STDIN_FILENO, &in_tios);	printf("\nBuf %d setted %d bytes\n",bufno,bufstat[bufno].size);}void cmd_dispbuf(int parc, char *parv[]){	int i,totbuf,bufno;	totbuf=0;	if (parc == 1) {		for (i=0;i<MAXBUFS;i++)			if(bufstat[i].used) totbuf++;		printf("Used %d bufs inall\n",totbuf);		for(i=0;i<MAXBUFS;i++)			if(bufstat[i].used)				printf("Buf %d, Used, Size = %d\n",i,bufstat[i].size);			else				printf("Buf %d, Unused\n",i);	} else if (parc == 2) {		bufno=atoi(parv[1]);		if ( (bufno < 0) || (bufno>MAXBUFS)) {			printf("BufNo out of range\n");			return;		}		if (bufstat[bufno].used)			disp_hexasc(bufstat[bufno].buf, bufstat[bufno].size);		else			printf("Buf %d unused\n",bufno);		} else {		deal_with_errarg();	}		}void cmd_send(int parc, char *parv[]){	int bufno;	if (parc != 2)		deal_with_errarg();		bufno=atoi(parv[1]);	if (bufno<0 || bufno>MAXBUFS) {		printf("Buffer_no must be 0 to %d",MAXBUFS-1);		return;	}		if (!bufstat[bufno].used) {		printf("No Data in buf\n");		return;	}		if (!devstat.opened) {		printf("Please open port first\n");		return;	}	printf("Sending %d bytes in Buf %d ...\n",bufstat[bufno].size,bufno);	write(devstat.fd, bufstat[bufno].buf, bufstat[bufno].size);	printf("Send done\n");}void cmd_recv(int parc, char *parv[]){	int bufno,totrcv,res,i;	fd_set readset,writeset;	bool stop;	struct termios in_tios, out_tios;	char key,outch[10];	unsigned char buf[256];	if (parc != 2)		deal_with_errarg();		bufno = atoi(parv[1]);	if (bufno < 0 || bufno > MAXBUFS) {		printf("Buffer_no must be 0 to %s\n",MAXBUFS-1);		return;	}		if (!devstat.opened) {		printf("Please open port first\n");		return;	}		if(!bufstat[bufno].used) {		bufstat[bufno].buf = malloc(MAXBUFSIZE);		bufstat[bufno].used = true;	}	bufstat[bufno].size = 0;		printf("Start receive now, input 'Ctrl-C' for break\n");	tio_saveset(STDOUT_FILENO, &out_tios);	tio_raw(STDOUT_FILENO);		FD_ZERO(&readset);	FD_ZERO(&writeset);		stop = false;	totrcv = 0;	while (!stop) {		FD_SET(STDIN_FILENO, &readset);		FD_SET(devstat.fd, &readset);		if ( (select(devstat.fd+1, &readset, &writeset, NULL, NULL) < 0)){			stop = true;			continue;		}		if (FD_ISSET(devstat.fd, &readset)) {			res = read(devstat.fd, buf, sizeof(buf));			memcpy(&bufstat[bufno].buf[totrcv], buf, res);			for (i = 0; i < res; i++) {				if(!(totrcv % 24))					write(STDOUT_FILENO,"\x0d\x0a",2);				sprintf(outch,"%02X ",buf[i]);				write(STDOUT_FILENO,outch,strlen(outch));				totrcv++;			}			bufstat[bufno].size = totrcv;		}		if ( FD_ISSET(STDIN_FILENO, &readset)) {			read(STDIN_FILENO, &key, 1); 			if(key == 3) {	//ctrl-c				stop = true;				sleep(1);			}		}	}//end of while					tio_reset(STDOUT_FILENO, &out_tios);	printf("\nReceive stopped,%d bytes received into buffer %d inall\n",totrcv,bufno);	}bool load_deflcfg(){	bool ret = false;	int fd;	FILE *fp;	struct stat buf;	mode_t mode;	//default set	memset(&defl_devstat,0,sizeof(defl_devstat));	strcpy(devstat.devname,"/dev/ttyS0");	strcpy(devstat.frameset,"9600,n,8,1");	devstat.opened = false;	devstat.hsflag = 0;		if (stat(FPATH_CONF,&buf) != 0) { //create new config file		printf("\nCreat config file \\etc\\sct.conf ");		mode = umask(0);		fd = creat(FPATH_CONF,S_IRUSR				|S_IWUSR				|S_IRGRP				|S_IWGRP				|S_IROTH				|S_IWOTH);		umask(mode);		if(fd<0) {			printf("Fail\n");			ret = false;		} else {			printf("OK\n");			close(fd);			fp = fopen(FPATH_CONF,"a+");			fprintf(fp,"%s\n",devstat.devname);			fprintf(fp,"%s\n",devstat.frameset);			memcpy(&defl_devstat,&devstat,sizeof(devstat));			fclose(fp);			ret = true;		}	} else { //read config file        	fp = fopen(FPATH_CONF,"r");		if(fp == NULL) {			printf("\nFail to open config file\n");			ret = false;		}			if( fgets(defl_devstat.devname,sizeof(devstat.devname),fp)			&& fgets(defl_devstat.frameset,				sizeof(devstat.frameset),fp)) {			//trim '\n'			defl_devstat.devname[strlen(defl_devstat.devname)-1]=0;			defl_devstat.frameset[strlen(defl_devstat.frameset)-1]=0;			memcpy(&devstat,&defl_devstat,sizeof(devstat));			fclose(fp);			ret = true;		} else {			fclose(fp);			ret = false;		}		}	printf("\nCurrent port: %s\n",devstat.devname);	printf("Frameset: %s\n",devstat.frameset);	return true;}void update_deflcfg(){	FILE *fp;	if(strcmp(defl_devstat.devname,devstat.devname)		|| strcmp(defl_devstat.frameset,devstat.frameset)){		fp = fopen(FPATH_CONF,"w+");		fprintf(fp,"%s\n",devstat.devname);		fprintf(fp,"%s\n",devstat.frameset);		fclose(fp);	}		}void init_buf(){	int i;	for(i=0;i<MAXBUFS;i++) {		bufstat[i].used=false;		bufstat[i].size=0;	}}void cmd_sendrecv(int parc, char *parv[]){		char *parv_send[2];	char *parv_recv[2];	int send_bufno,recv_bufno;	if(parc!=3)		deal_with_errarg();		send_bufno = atoi(parv[1]);	recv_bufno = atoi(parv[2]);		if(send_bufno<0 || send_bufno>=MAXBUFS) {		printf("Buffer no bust be 0 to %d",MAXBUFS-1);		return;	}		if(recv_bufno<0 || send_bufno>=MAXBUFS) {		printf("Buffer no bust be 0 to %d",MAXBUFS-1);		return;	}		parv_send[0] = NULL;	parv_send[1] = parv[1];	parv_recv[0] = NULL;	parv_recv[1] = parv[2];	cmd_send(2,parv_send);	cmd_recv(2,parv_recv);}void cmd_loadbuf(int parc, char *parv[]){	FILE *f;	int dest_bufno,flen;	char src_fpath[256];	struct stat buf;	if(parc != 3)		deal_with_errarg();	strcpy(src_fpath,parv[2]);	dest_bufno = atoi(parv[1]);		if(stat(src_fpath,&buf) == 0) {		flen = buf.st_size;		if (flen == 0) {			printf("The file is empty!\n");			return;		} else if(flen>MAXBUFSIZE) {			printf("The file size must less than %d bytes",MAXBUFSIZE);			return;		}		} else {		printf("Can not stat file or the file does not exist!\n");		return;	}		f = fopen(src_fpath,"r");	if (f == NULL) {		printf("Fail to open file %s\nFile error = %s\n",src_fpath,strerror(errno));		return;	}		if (!bufstat[dest_bufno].used) {		bufstat[dest_bufno].buf = malloc(MAXBUFSIZE);		bufstat[dest_bufno].used = true;	}	bufstat[dest_bufno].size = 0;		if (fread(bufstat[dest_bufno].buf,1,flen,f) != flen) 		printf("Fail to load file to buf\n");	else {		printf("%d bytes of data from file %s has been loaded to buf %d\n",flen,src_fpath,dest_bufno);		bufstat[dest_bufno].size = flen;	}	fclose(f);}void cmd_savebuf(int parc, char *parv[]){	FILE *f;	int src_bufno;	char dest_fpath[256];	if (parc != 3)		deal_with_errarg();	strcpy(dest_fpath,parv[1]);	src_bufno = atoi(parv[2]);		if (!bufstat[src_bufno].used) {		printf("Source buf is empty,no data to save!\n");		return;	}				f = fopen(dest_fpath,"w");	if (f == NULL) {		printf("Fail to create file %s for saving buf\nFile error: %s",dest_fpath,strerror(errno));		return;	} 	if (fwrite(bufstat[src_bufno].buf,1,bufstat[src_bufno].size,f) != bufstat[src_bufno].size)		printf("Fail to save data to file!\n");	else		printf("Buf %d has been saved to file %s\n", src_bufno,dest_fpath);	fclose(f);}void cmd_copybuf(int parc, char *parv[]){	int dest_bufno,src_bufno;	if (parc != 3)		deal_with_errarg();	dest_bufno = atoi(parv[1]);	src_bufno = atoi(parv[2]);	if (dest_bufno >= MAXBUFS 		|| dest_bufno < 0		|| src_bufno >= MAXBUFS		|| src_bufno < 0)		printf("the buffer_no not exist!\n");	else if (!bufstat[src_bufno].used)		printf("source buf is empty,no data to copy!");	else {		if (!bufstat[dest_bufno].used) {			bufstat[dest_bufno].buf = malloc(MAXBUFSIZE);			bufstat[dest_bufno].used = true;			bufstat[dest_bufno].size = 0;		}		memcpy(bufstat[dest_bufno].buf,			bufstat[src_bufno].buf,			bufstat[src_bufno].size);		bufstat[dest_bufno].size = bufstat[src_bufno].size;	}	}void cmd_clrbuf(int parc, char *parv[]){	int dest_bufno,i;	if (parc != 2)		deal_with_errarg();		if (!strcmp(parv[1],"all")) {		for(i=0;i<MAXBUFS;i++) {			if(bufstat[i].used) {				free(bufstat[i].buf);				bufstat[i].used = false;				bufstat[i].size = 0;			}		}	} else {		dest_bufno = atoi(parv[1]);		if (dest_bufno >= 0 && dest_bufno < MAXBUFS) {			bufstat[dest_bufno].used = false;			bufstat[dest_bufno].size = 0;			free(bufstat[dest_bufno].buf);		} else  			printf("the buffer_no not exist!\n");	}}/* file transmission */void cmd_sendfile(int parc, char *parv[]){	printf(UNDER_DEV);	}void cmd_recvfile(int parc, char *parv[]){	printf(UNDER_DEV);}/* directory operation */void cmd_cd(int parc, char *parv[]){	printf(UNDER_DEV);}void cmd_ls(int parc, char *parv[]){	printf(UNDER_DEV);}/* io line logic setting */void cmd_setline(int parc, char *parv[]){}void cmd_linestat(int parc, char *parv[]){}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久一区二区三区捆绑**| 日韩一区二区三区四区五区六区| 亚洲成人777| 国产拍欧美日韩视频二区| 欧美偷拍一区二区| 国产馆精品极品| 日日骚欧美日韩| 亚洲欧美另类综合偷拍| 久久久久久久综合色一本| 欧美日本在线一区| 色婷婷av一区二区三区大白胸| 国产一区二区在线免费观看| 婷婷国产在线综合| 亚洲另类在线一区| 欧美极品aⅴ影院| 精品久久久久久久久久久久久久久 | 成人一区二区三区中文字幕| 欧美aaaaa成人免费观看视频| 亚洲欧美一区二区三区极速播放 | 成人动漫一区二区三区| 日日夜夜免费精品视频| 亚洲精品老司机| 亚洲欧洲国产日韩| 国产精品人成在线观看免费 | 亚洲一区二三区| 国产精品久久久久影院亚瑟| 久久一区二区三区四区| 精品国产一区二区亚洲人成毛片| 欧美肥胖老妇做爰| 欧美日韩国产另类一区| 色婷婷国产精品综合在线观看| 成人动漫av在线| 波多野结衣中文字幕一区二区三区| 精品无码三级在线观看视频| 久久国产三级精品| 麻豆一区二区三区| 黄色小说综合网站| 精品无人区卡一卡二卡三乱码免费卡| 久久精品国产亚洲5555| 精品系列免费在线观看| 国产一区久久久| 国产大陆亚洲精品国产| 国产成人免费xxxxxxxx| 成人午夜精品一区二区三区| 成人免费观看男女羞羞视频| av在线不卡观看免费观看| 91美女片黄在线观看91美女| 一道本成人在线| 欧美亚洲综合在线| 5858s免费视频成人| 日韩丝袜情趣美女图片| 精品久久久久久综合日本欧美| 久久久久久久电影| 国产精品久久久久久久久免费相片| 136国产福利精品导航| 亚洲乱码国产乱码精品精98午夜| 亚洲国产精品久久久男人的天堂| 午夜电影一区二区三区| 久久99国产精品免费| 国产一区二区三区免费看 | 一区二区三区电影在线播| 亚洲午夜影视影院在线观看| 免费久久精品视频| 国产剧情一区二区| 色婷婷精品大视频在线蜜桃视频| 欧美日本国产视频| 久久免费看少妇高潮| 中文字幕日韩一区二区| 亚洲高清免费一级二级三级| 精品一区二区三区视频| 成人av在线资源网站| 欧美性猛片aaaaaaa做受| 欧美高清精品3d| 国产人久久人人人人爽| 亚洲永久免费av| 国产又粗又猛又爽又黄91精品| 91浏览器在线视频| 欧美不卡视频一区| 亚洲视频香蕉人妖| 美女免费视频一区| 99精品欧美一区二区蜜桃免费 | 国产精品一区二区男女羞羞无遮挡| av在线一区二区三区| 51精品秘密在线观看| 中文字幕第一区第二区| 婷婷开心久久网| 99精品久久99久久久久| 欧美一级日韩一级| 一区二区视频在线看| 精品一区二区三区久久久| 91黄视频在线观看| 国产网站一区二区三区| 日韩精品欧美精品| 91丨九色porny丨蝌蚪| 精品国产sm最大网站免费看| 亚洲在线中文字幕| 成人免费高清在线| 日韩精品一区国产麻豆| 一区二区三区日韩精品| 国产成人免费9x9x人网站视频| 欧美猛男超大videosgay| 国产精品超碰97尤物18| 国产在线播放一区二区三区| 欧美日韩国产中文| 亚洲人妖av一区二区| 国产在线观看免费一区| 91精品国产色综合久久不卡电影 | 亚洲免费看黄网站| 国产九色sp调教91| 日韩你懂的电影在线观看| 亚洲五月六月丁香激情| 色呦呦国产精品| 国产精品护士白丝一区av| 国产一区二区三区在线观看免费| 欧美日本国产视频| 亚洲成人动漫在线免费观看| 99vv1com这只有精品| 国产精品美女久久久久久久| 精品亚洲成a人| 精品免费一区二区三区| 日韩av成人高清| 5566中文字幕一区二区电影| 亚洲国产综合人成综合网站| 91免费视频网| 亚洲视频在线观看三级| 99视频国产精品| 亚洲视频一区二区在线观看| 成人av在线播放网址| 国产精品女人毛片| 东方欧美亚洲色图在线| 亚洲国产精华液网站w| 国产伦精品一区二区三区视频青涩| 欧美r级电影在线观看| 日本欧美一区二区三区| 欧美一区二区黄| 麻豆91在线播放免费| 精品国产乱码久久久久久夜甘婷婷| 免费高清不卡av| 欧美videos中文字幕| 九色|91porny| 国产亚洲短视频| 成人h精品动漫一区二区三区| 亚洲欧洲精品天堂一级| 色噜噜偷拍精品综合在线| 亚洲国产另类精品专区| 欧美日本视频在线| 久久国内精品自在自线400部| 精品国产一区二区亚洲人成毛片| 国产精品亚洲第一| 国产精品国产三级国产有无不卡 | 午夜久久久影院| 欧美一二三区在线观看| 国产一区二区三区四区五区入口 | 欧美国产激情二区三区 | 91美女蜜桃在线| 性做久久久久久免费观看欧美| 欧美一区日本一区韩国一区| 精品亚洲porn| 成人欧美一区二区三区白人| 欧美少妇性性性| 国内精品免费**视频| 国产精品卡一卡二卡三| 精品视频一区二区不卡| 久久99久久久欧美国产| 国产精品毛片久久久久久| 欧美色精品天天在线观看视频| 麻豆精品视频在线观看| 国产精品美女久久久久久久久| 欧美一a一片一级一片| 精品在线免费观看| 中文字幕人成不卡一区| 欧美理论片在线| 国产综合色在线视频区| 中文字幕视频一区二区三区久| 欧美日韩黄视频| 国产suv一区二区三区88区| 一区二区三区四区在线免费观看| 日韩一区二区电影| 99久久精品国产观看| 亚洲成av人片一区二区梦乃| 国产视频911| 欧美精品少妇一区二区三区| 国产精品一区二区你懂的| 亚洲午夜影视影院在线观看| 久久精品一区二区三区不卡牛牛| 在线亚洲人成电影网站色www| 狠狠色狠狠色综合系列| 一区二区在线观看免费视频播放| 精品久久人人做人人爰| 91极品视觉盛宴| 成人性生交大合| 琪琪一区二区三区| 亚洲精品伦理在线| 久久久亚洲国产美女国产盗摄| 在线观看不卡视频| 成人免费视频一区| 久久国产剧场电影| 亚洲国产综合人成综合网站| 国产精品麻豆99久久久久久| 欧美一区二区三区公司|