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

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

?? ctrl0.c

?? 足球機器人自動程序
?? C
字號:
#include "cmd.h"#include "tty.h"#include "ctrl.h"#include <sys/poll.h>#include <signal.h>#define V 10int fd;struct termios tio;char buf[16];char rbuf[16];inline void msend(void *buf, int n) {	int t;	if ((t = write(fd, buf, n)) != n) {		if (t == -1)			perror("write");		else			fprintf(stderr, "write error %d\n", t);		exit(-1);	}}inline void cleanup() {	buf[0] = STOP;	write(fd, buf, 1);	tcsetattr(0, TCSANOW, &tio);	printf("\nclean up\n");}int main() {	// init ttys	if ((fd = ttys_init(0)) < 0) {		return -1;	}	// init ctrl	if (ctrl_init(fd) < 0) {		return -1;	}	// init tty (key control)	tty_set(&tio);	// clean up at exit	if (atexit(cleanup)) {		fprintf(stderr, "atexit error\n");		return -1;	}	// clean up at ^c exit	if (signal(SIGINT, exit) == SIG_ERR) {		fprintf(stderr, "signal error\n");		return -1;	}	struct pollfd ufds[2] = {{0, POLLIN}, {fd, POLLIN}};	unsigned char sn = 1;	unsigned char bsn = 1;	int res_n = 0;	for (;;) {		if (poll(ufds, 2, -1) <= 0) {			fprintf(stderr, "poll error\n");			exit(-1);		}		if (ufds[1].revents & POLLIN) {			int n;			if ((n = read(fd, rbuf + res_n, sizeof(rbuf) - res_n)) == -1) {				perror("read");				exit(-1);			}			n += res_n;			res_n = 0;			int i = 1;			for (;;) {				int type = rbuf[i] & 0xc0;				int k = rbuf[i] & 0x3f;				if (k > 7) {					fprintf(stderr, "echo len too long\n");					print_buf(rbuf, n);					exit(-1);				}				if (i + k >= n + 2) {	// current len not enough					printf("notice: complex \n");					print_buf(rbuf, n);					res_n = n + 1 - i;					copy_buf(rbuf, rbuf+i-1, res_n);					printf("move trailing %d bytes\n", res_n);					print_buf(rbuf, res_n);					break;				}				switch (k) {					case 2:						if (type != 0) {							fprintf(stderr, "echo error 2\n");							print_buf(rbuf, n);							exit(-1);						}						printf("echo 2: %x\n", sn);						break;					case 4:						if (rbuf[i-1] != sn || type != 0) {							fprintf(stderr, "echo error 4\n");							print_buf(rbuf, n);							exit(-1);						}						printf("echo 4: %x v1=%d v2=%d\n", sn, rbuf[i+1], rbuf[i+2]);						break;					case 5:						printf("IR: %x\n", sn);						//printf("IR: %d %d %d %d\n", rbuf[i+1], rbuf[i+2], rbuf[i+3], rbuf[i+4]);						break;					case 6:						if (!(type == 0 || type == M_RD)) {							fprintf(stderr, "echo error 6\n");							print_buf(rbuf, n);							exit(-1);						}						if (type == M_RD) {							printf("RD: %x\n", sn);							//printf("RD: %d %d %d %d\n", rbuf[i+1], rbuf[i+2], rbuf[i+3], rbuf[i+4]);						}						else {							bsn = sn;							printf("echo 6: %x\n", sn);							//printf("clear: %d %d %d %d\n", rbuf[i+1], rbuf[i+2], rbuf[i+3], rbuf[i+4]);						}						break;					case 7:						if (type != 0) {							fprintf(stderr, "echo error 7\n");							print_buf(rbuf, n);							exit(-1);						}						bsn = sn;						printf("echo 7: %x\n", sn);						//printf("dirty: %d %d %d %d\n", rbuf[i+2], rbuf[i+3], rbuf[i+4], rbuf[i+5]);						break;					default:						printf("what is this?\n");						print_buf(rbuf, n);						exit(-1);				}								i += k;				if (i > n) break;				else if (i == n) {	// trailing 1					res_n = 1;					rbuf[0] = rbuf[n-1];					break;				}			}		}		if (ufds[0].revents & POLLIN) {			char c;			if (read(0, &c, 1) != 1) {				fprintf(stderr, "read error\n");				exit(-1);			}							switch (c) {			case 4:			case 'q':				exit(0);			case 'p':			case ' ':				printf("stop\n");				buf[0] = STOP;				msend(buf, 1);				break;			case 'k':				printf("k\n");				buf[0] = HEAD2;				buf[1] = V;				buf[2] = V;				buf[3] = AA;				msend(buf, 4);				++sn;				break;			case 'j':				printf("j\n");				buf[0] = HEAD2;				buf[1] = -V;				buf[2] = -V;				buf[3] = AA;				msend(buf, 4);				++sn;				break;			case 'h':				printf("h\n");				buf[0] = HEAD2;				buf[1] = -V;				buf[2] = V;				buf[3] = AA;				msend(buf, 4);				++sn;				break;			case 'l':				printf("l\n");				buf[0] = HEAD2;				buf[1] = V;				buf[2] = -V;				buf[3] = AA;				msend(buf, 4);				++sn;				break;			case 'r':				printf("r\n");				buf[0] = RV;				msend(buf, 1);				++sn;				break;			case 'i':				printf("i\n");				buf[0] = IR;				msend(buf, 1);				++sn;				break;			default:				printf("key undefined: %c\n", c);			}		}	}	return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情校园春色| 91免费在线看| 亚洲一区二区精品视频| 国产精品美女一区二区| www国产精品av| 久久久久97国产精华液好用吗| 欧美日韩一本到| 欧美人妖巨大在线| 欧美一区二区在线视频| 日韩欧美中文字幕制服| 日韩欧美国产综合一区| 精品国产一区二区三区不卡| 精品国产一区二区三区忘忧草 | 国产精品卡一卡二| 国产精品每日更新| 亚洲精品老司机| 亚洲国产视频一区二区| 日韩成人免费电影| 裸体在线国模精品偷拍| 国产精品一区二区久久不卡| 国产·精品毛片| 色综合天天综合网天天看片| 欧美在线|欧美| 欧美成人bangbros| 国产精品私房写真福利视频| 亚洲天堂久久久久久久| 亚洲国产色一区| 久久不见久久见中文字幕免费| 国产剧情一区二区三区| eeuss鲁片一区二区三区在线观看| 91美女片黄在线| 日韩视频一区在线观看| 中日韩av电影| 日韩二区在线观看| 成人av午夜影院| 91精品国产入口| 中文字幕亚洲一区二区va在线| 亚洲最大色网站| 国产精品系列在线播放| 欧美性大战久久久| 国产视频一区不卡| 午夜影院久久久| 国产麻豆精品在线| 欧美美女一区二区| 日本一区二区动态图| 午夜精品123| www.亚洲激情.com| 精品福利一二区| 亚洲一区二区高清| 成人高清免费在线播放| 日韩午夜在线影院| 亚洲一区二区视频| gogo大胆日本视频一区| 日韩精品资源二区在线| 亚洲一区在线视频观看| 粉嫩久久99精品久久久久久夜| 在线不卡一区二区| 亚洲精品网站在线观看| 国产suv一区二区三区88区| 在线不卡的av| 午夜不卡在线视频| 欧美在线短视频| 亚洲免费伊人电影| jizzjizzjizz欧美| 国产欧美日韩中文久久| 久久成人羞羞网站| 欧美岛国在线观看| 蜜臀精品一区二区三区在线观看| 欧美性xxxxxxxx| 亚洲激情图片小说视频| 91麻豆免费看片| 国产精品久久久久三级| 国产成人在线网站| 国产亚洲污的网站| 国产乱对白刺激视频不卡| 精品伦理精品一区| 国内精品不卡在线| 51久久夜色精品国产麻豆| 视频一区欧美日韩| 欧美一区二区视频在线观看2022 | 盗摄精品av一区二区三区| 亚洲精品在线免费观看视频| 国产一区不卡视频| 国产午夜精品久久| av资源网一区| 亚洲伊人色欲综合网| 欧美一卡在线观看| 国产一区二区三区免费| 亚洲国产激情av| 一本大道综合伊人精品热热| 亚洲国产sm捆绑调教视频 | 国产在线精品一区二区不卡了| 91免费视频网| 一区二区在线观看免费视频播放| 粉嫩久久99精品久久久久久夜| 精品国产一区二区三区久久影院| 亚洲一区中文在线| 日本高清不卡视频| 日韩码欧中文字| 顶级嫩模精品视频在线看| 2023国产精品自拍| 国精产品一区一区三区mba视频| 欧美一区永久视频免费观看| 免费成人av资源网| 韩国成人精品a∨在线观看| 欧美一区二区人人喊爽| 亚洲欧美一区二区三区久本道91| 国产91综合网| 国产欧美日韩亚州综合| 成人爱爱电影网址| 日韩一区日韩二区| 91一区一区三区| 日韩理论片在线| 色婷婷久久久综合中文字幕 | 国产乱人伦偷精品视频免下载| 精品剧情v国产在线观看在线| 另类的小说在线视频另类成人小视频在线 | av在线不卡电影| 亚洲欧洲无码一区二区三区| 波多野结衣在线一区| 精品88久久久久88久久久| 韩国精品免费视频| 精品国产成人系列| 亚洲成人动漫精品| 日韩欧美在线1卡| 国产精品一区二区久激情瑜伽| 国产精品久久久久久久久果冻传媒| 成人av网在线| 亚洲第一电影网| 日韩欧美区一区二| 国产精品一线二线三线精华| 亚洲日本在线观看| 欧美老肥妇做.爰bbww视频| 青椒成人免费视频| 国产蜜臀97一区二区三区| 99久久国产综合精品色伊| 国产精品久99| 欧美一区二区久久| 成人精品亚洲人成在线| 亚洲综合图片区| 精品国产成人系列| 欧美三级日韩三级国产三级| 日本va欧美va精品| 国产精品系列在线| 欧美丰满少妇xxxxx高潮对白| 午夜精品福利一区二区三区av| 久久久久久久久久久久久久久99| av高清久久久| 亚洲国产精品久久久久婷婷884| 制服丝袜亚洲色图| 日本欧美一区二区在线观看| 欧美一区二区三区四区五区| 大尺度一区二区| 久久精品国产一区二区| 日韩你懂的在线播放| 色婷婷国产精品| 国产在线观看一区二区| 亚洲二区在线视频| 日韩欧美国产wwwww| 日本乱码高清不卡字幕| 亚洲一区二区av在线| 色欧美片视频在线观看在线视频| 亚洲黄色免费网站| 国产精品伦理一区二区| 国产久卡久卡久卡久卡视频精品| 亚洲少妇30p| 色综合欧美在线视频区| 国产一区在线精品| 蜜桃av一区二区| 亚洲国产一区二区在线播放| 国产精品乱码一区二区三区软件 | 亚洲18女电影在线观看| 欧美一级黄色片| 欧美日韩国产电影| 欧美色成人综合| 欧美午夜视频网站| 色999日韩国产欧美一区二区| 国产高清视频一区| 国产成人免费视频精品含羞草妖精| 樱桃国产成人精品视频| 亚洲色图都市小说| 亚洲人成人一区二区在线观看| 国产精品丝袜一区| 国产精品午夜春色av| 中日韩av电影| 亚洲男人天堂av| 亚洲欧美日韩在线| 一区二区日韩av| 亚洲一区二区三区小说| 亚洲国产综合91精品麻豆| 亚洲在线视频网站| 亚洲超碰精品一区二区| 视频在线在亚洲| 韩国一区二区在线观看| 国产高清亚洲一区| 91污片在线观看| 欧美日韩国产小视频在线观看| 欧美日韩成人在线一区| 日韩欧美一区二区在线视频| 2021久久国产精品不只是精品|