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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ctrl2.c

?? 足球機器人自動程序
?? C
字號:
#include "cmd.h"#include "tty.h"#include "ctrl.h"#include <stdlib.h>#include <sys/poll.h>#include <signal.h>#define V 10#define DIS 3#define ANG 10int fd;struct termios tio;char buf[20];unsigned char rbuf[20];char bbuf[4] = {HEAD2, 0, 0, AA_ONLY};int bbsn;inline void cleanup() {	buf[0] = STOP;	write(fd, buf, 1);	tcsetattr(0, TCSANOW, &tio);	printf("\nclean up\n");}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);	}}int main() {	unsigned char sn, bsn;	int res_n;	// 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}};	sn = bsn = 1;	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("%x done\n", rbuf[i-1]);						// stop on demand						if (bbsn == bsn) {							msend(bbuf, 4);							++sn;							printf("stop on done\n");						}						break;					case 3:						if (rbuf[i-1] != sn) {							fprintf(stderr, "echo error 3\n");							print_buf(rbuf, n);							exit(-1);						}						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("%x RD\n", rbuf[i-1]);							//printf("RD: %d %d %d %d\n", rbuf[i+1], rbuf[i+2], rbuf[i+3], rbuf[i+4]);						}						else {							bsn = rbuf[i-1];							printf("%x begin clean\n", bsn);							//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 = rbuf[i-1];						printf("%x begin dirty(%x)\n", bsn, rbuf[i+1]);						//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':				buf[0] = HEAD3;				buf[1] = V;				buf[2] = V;				buf[3] = DIS;				buf[4] = AA_DISTANCE;				msend(buf, 5);				++sn;				printf("k %x\n", sn);				bbsn = sn;				break;			case 'j':				buf[0] = HEAD3;				buf[1] = -V;				buf[2] = -V;				buf[3] = -DIS;				buf[4] = AA_DISTANCE;				msend(buf, 5);				++sn;				printf("j %x\n", sn);				bbsn = sn;				break;			case 'h':				buf[0] = HEAD3;				buf[1] = -V;				buf[2] = V;				buf[3] = -ANG;				buf[4] = AA_ANGLE;				msend(buf, 5);				++sn;				printf("h %x\n", sn);				bbsn = sn;				break;			case 'l':				buf[0] = HEAD3;				buf[1] = V;				buf[2] = -V;				buf[3] = ANG;				buf[4] = AA_ANGLE;				msend(buf, 5);				++sn;				printf("l %x\n", sn);				bbsn = sn;				break;			case 'i':				buf[0] = IR;				msend(buf, 1);				++sn;				printf("i %x\n", sn);				break;			default:				printf("key undefined: %c\n", c);			}		}	}	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级免费观看| 91精品国产高清一区二区三区蜜臀| 中文字幕在线不卡一区| 国产91精品露脸国语对白| 国产成人精品亚洲午夜麻豆| 欧美v国产在线一区二区三区| 91国偷自产一区二区使用方法| 欧美性色黄大片| 一区二区视频在线| 色综合激情五月| 亚洲国产精品久久久久婷婷884 | 国产精品免费看片| bt7086福利一区国产| 一区二区理论电影在线观看| 5858s免费视频成人| 免费成人美女在线观看.| xf在线a精品一区二区视频网站| 国产成人av一区| 亚洲精品综合在线| 日韩一区二区三区免费看| 国产一区二区视频在线| 一区二区中文字幕在线| 欧美日韩高清一区二区不卡| 久久狠狠亚洲综合| 中文字幕一区在线观看视频| 欧美精品久久久久久久久老牛影院| 乱一区二区av| 亚洲另类春色国产| 日韩小视频在线观看专区| 成人黄色软件下载| 亚洲18影院在线观看| 久久综合给合久久狠狠狠97色69| 成人免费不卡视频| 日韩国产成人精品| 国产精品毛片无遮挡高清| 欧美日本一道本在线视频| 寂寞少妇一区二区三区| 国产精品久久久久久久久久久免费看| 欧美日韩国产电影| 国产99久久精品| 日本不卡一区二区三区高清视频| 日本一区二区三区电影| 91精品国产91久久久久久一区二区 | 亚洲综合无码一区二区| 欧美酷刑日本凌虐凌虐| 成人在线综合网| 精品一区二区三区的国产在线播放| 国产精品你懂的在线欣赏| 欧美一二三四在线| 欧美伊人久久久久久久久影院 | 日韩精品亚洲一区二区三区免费| 国产精品―色哟哟| 精品福利二区三区| 精品视频1区2区3区| 99久久婷婷国产综合精品电影| 蜜臀av一区二区三区| 中文字幕一区视频| 精品精品国产高清a毛片牛牛| 在线日韩国产精品| a在线欧美一区| 国产精品一级黄| 久久精品国产99久久6| 亚洲成人精品一区| 亚洲综合999| 亚洲男人都懂的| 亚洲欧洲99久久| 国产精品国产成人国产三级| 久久青草欧美一区二区三区| 欧美一区二区三区人| 欧美日韩精品免费观看视频 | 午夜亚洲国产au精品一区二区| 亚洲老妇xxxxxx| 国产精品久久久久久久蜜臀| 欧美激情一区二区在线| 欧美激情综合五月色丁香小说| 2020国产精品| 久久久精品黄色| 国产女主播视频一区二区| 久久综合九色综合欧美就去吻| 日韩欧美国产综合在线一区二区三区| 久久综合成人精品亚洲另类欧美| 91精品国产乱| 精品欧美久久久| 欧美电视剧免费全集观看| 欧美v亚洲v综合ⅴ国产v| 精品日韩一区二区三区免费视频| 日韩欧美一卡二卡| 久久综合五月天婷婷伊人| 久久伊99综合婷婷久久伊| 久久青草欧美一区二区三区| 国产午夜精品在线观看| 国产精品久久久久一区| 亚洲毛片av在线| 一区二区三区在线观看动漫| 亚洲自拍偷拍综合| 亚洲bt欧美bt精品| 久久99最新地址| 成人永久看片免费视频天堂| av成人老司机| 欧美日韩国产高清一区二区| 欧美电影免费观看高清完整版在线| 亚洲精品在线三区| 综合分类小说区另类春色亚洲小说欧美| 亚洲欧美成人一区二区三区| 亚洲香肠在线观看| 久久99精品一区二区三区三区| 国产精品一品二品| 91久久精品一区二区| 日韩一级大片在线| 国产精品理论片| 亚洲电影在线播放| 全国精品久久少妇| 国产大陆a不卡| 欧美日韩免费高清一区色橹橹| 日韩欧美激情四射| 亚洲人精品午夜| 蜜臀av国产精品久久久久| 国产91高潮流白浆在线麻豆| 欧美性色欧美a在线播放| 久久久天堂av| 亚洲福中文字幕伊人影院| 国产一区二区在线观看视频| 91传媒视频在线播放| 26uuu成人网一区二区三区| 亚洲黄色小说网站| 极品少妇一区二区三区精品视频| 91影视在线播放| 久久亚洲一级片| 午夜欧美电影在线观看| 成人网在线播放| 日韩三级在线免费观看| 亚洲综合区在线| 国产乱码精品一品二品| 欧美日韩一区精品| 中文av字幕一区| 韩国av一区二区三区| 欧美日本韩国一区| 亚洲图片你懂的| 国产美女一区二区| 日韩亚洲欧美在线| 亚洲国产婷婷综合在线精品| 成人国产免费视频| 欧美成人猛片aaaaaaa| 亚洲电影一区二区三区| 成人av网站在线| 久久噜噜亚洲综合| 人人精品人人爱| 欧美日本在线播放| 亚洲综合一区在线| 成人av综合一区| 久久精品日产第一区二区三区高清版| 男女男精品视频网| 欧美日韩一区二区三区高清 | 欧美在线视频全部完| 国产精品国产成人国产三级| 国产精品资源在线观看| 91精品国产品国语在线不卡| 亚洲福利视频导航| 欧美性视频一区二区三区| 亚洲精选一二三| 91猫先生在线| 亚洲特黄一级片| 99re这里只有精品视频首页| 国产区在线观看成人精品 | 色婷婷综合久久久久中文| 国产精品美女久久久久aⅴ| 国产成人av一区| 国产欧美日韩精品一区| 成人自拍视频在线| 中文av一区特黄| 97成人超碰视| 亚洲精品成人a在线观看| 色天使色偷偷av一区二区| 一区av在线播放| 欧美日韩国产另类不卡| 日韩中文字幕1| 日韩精品一区二| 国产成人精品www牛牛影视| 国产丝袜美腿一区二区三区| 成人久久久精品乱码一区二区三区 | 国产精品1区2区| 亚洲国产精品t66y| gogogo免费视频观看亚洲一| 亚洲视频一二区| 在线一区二区三区做爰视频网站| 亚洲一区在线视频| 91.xcao| 国产精品99久久久久| 国产精品国模大尺度视频| 色偷偷成人一区二区三区91| 亚洲在线成人精品| 日韩色在线观看| 福利视频网站一区二区三区| 亚洲手机成人高清视频| 欧美日韩一区二区不卡| 免费av网站大全久久| 国产嫩草影院久久久久| 色婷婷av一区二区三区软件| 青青草伊人久久| 国产精品午夜电影|