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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? orc.c

?? 卡內(nèi)基梅隆大學(xué)(CMU)開(kāi)發(fā)的移動(dòng)機(jī)器人控制開(kāi)發(fā)軟件包。可對(duì)多種機(jī)器人進(jìn)行控制
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	request[PACKET_ID] = PACKET_ID_NO_ACK;	packet_fill_checksum(request);	// send the packet	pthread_mutex_lock(&orc->writeLock);	write_fully(orc->fd, request, request[PACKET_DATALEN] + 4);	pthread_mutex_unlock(&orc->writeLock);}void orc_transaction_retry(orc_t *orc, uint8_t *request, uint8_t *response){	int res;loop:	res = orc_transaction_once(orc, request, response);	if (res==0)		return;	usleep(5000);	goto loop;}#define CMDPROLOGUE uint8_t req[256]; \	uint8_t resp[256];void orc_lcd_clear(orc_t *orc){	CMDPROLOGUE;	req[PACKET_DATALEN] = 1;	req[PACKET_DATA +0] = CMD_LCD_CLEAR;	orc_transaction_once(orc, req, resp);}void orc_lcd_console_home(orc_t *orc){	CMDPROLOGUE;	req[PACKET_DATALEN] = 1;	req[PACKET_DATA +0] = CMD_CONSOLE_HOME;	orc_transaction_once(orc, req, resp);}#define CHUNKSIZE 20static int min(int a, int b){	return a < b ? a : b;}void orc_lcd_console_write(orc_t *orc, const char *fmt, ...){	CMDPROLOGUE;	VPRINTALLOC; // this sets up variables 'buf' and 'len'	for (int i = 0; i < len; i+=CHUNKSIZE) {		int thislen = min(len-i, CHUNKSIZE);		req[PACKET_DATALEN] = 1+thislen;		req[PACKET_DATA + 0] = CMD_CONSOLE_WRITECHARS;		memcpy(&req[PACKET_DATA + 1], &buf[i], thislen);		orc_transaction_once(orc, req, resp);	}	free(buf);}void orc_lcd_draw_string(orc_t *orc, int x, int y, int font, const char *fmt, ...){	CMDPROLOGUE;	VPRINTALLOC; // this sets up variables 'buf' and 'len'	for (int i = 0; i < len; i+=CHUNKSIZE) {		int thislen = min(len - i, CHUNKSIZE);		req[PACKET_DATALEN] = thislen + 4;		req[PACKET_DATA + 0] = CMD_LCD_DRAWCHARS;		req[PACKET_DATA + 1] = x;		req[PACKET_DATA + 2] = y;		req[PACKET_DATA + 3] = font;		memcpy(&req[PACKET_DATA + 4], &buf[i], thislen);				orc_transaction_once(orc, req, resp);		x += resp[PACKET_DATA + 1];	}	free(buf);}void orc_lcd_console_goto(orc_t *orc, int x, int y){	CMDPROLOGUE;	req[PACKET_DATALEN] = 3;	req[PACKET_DATA + 0] = CMD_CONSOLE_GOTO;	req[PACKET_DATA + 1] = x;	req[PACKET_DATA + 2] = y;	orc_transaction_retry(orc, req, resp);	}void orc_lcd_write(orc_t *orc, int x, int y, uint8_t *data, uint8_t datalen){	CMDPROLOGUE;	req[PACKET_DATALEN] = 3 + datalen;	req[PACKET_DATA + 0] = CMD_LCD_WRITE;	req[PACKET_DATA + 1] = x;	req[PACKET_DATA + 2] = y;	memcpy(&req[PACKET_DATA+3], data, datalen);	orc_transaction_retry(orc, req, resp);	}int orc_analog_read(orc_t *orc, int port){	CMDPROLOGUE;	req[PACKET_DATALEN] = 2;	req[PACKET_DATA + 0] = CMD_ANALOG_READ;	req[PACKET_DATA + 1] = port;	orc_transaction_retry(orc, req, resp);	return packet_16u(resp, 1);}int orc_quadphase_read(orc_t *orc, int port){	CMDPROLOGUE;	req[PACKET_DATALEN] = 2;	req[PACKET_DATA + 0] = CMD_QUADPHASE_READ;	req[PACKET_DATA + 1] = port;	orc_transaction_retry(orc, req, resp);	return packet_16u(resp, 1);}void orc_motor_set(orc_t *orc, int port, int spwm){	CMDPROLOGUE;	req[PACKET_DATALEN] = 3;	req[PACKET_DATA + 0] = CMD_MOTOR_SET;	req[PACKET_DATA + 1] = port;	req[PACKET_DATA + 2] = spwm;	orc_transaction_retry(orc, req, resp);}orc_button_state_t orc_pad_begin_poll(orc_t *orc){	orc_button_state_t s;	s.up = (orc->pad_updown&0xf0)>>4;	s.down = orc->pad_updown&0x0f;	s.left = (orc->pad_leftright&0xf0)>>4;	s.right = orc->pad_leftright&0x0f;		return s;}int orc_pad_poll(orc_t *orc, orc_button_state_t *s){	int res = orc->pad_switches;	int tup = (orc->pad_updown&0xf0)>>4;	int tdown = orc->pad_updown&0x0f;	int tleft = (orc->pad_leftright&0xf0)>>4;	int tright = orc->pad_leftright&0x0f;		if (tup != s->up)		res |= ORC_PAD_UP;	if (tdown != s->down)		res |= ORC_PAD_DOWN;	if (tleft != s->left)		res |= ORC_PAD_LEFT;	if (tright != s->right)		res |= ORC_PAD_RIGHT;		s->up = tup;	s->down = tdown;	s->right = tright;	s->left = tleft;	return res;}int orc_pad_switches(orc_t *orc){	return orc->pad_switches;}int orc_pad_gets(orc_t *orc){	orc_button_state_t s = orc_pad_begin_poll(orc);	int res = 0;	pthread_mutex_lock(&orc->pad_mutex);	while ((res = orc_pad_poll(orc, &s))==0) {		pthread_cond_wait(&orc->pad_cond, &orc->pad_mutex);	}	pthread_mutex_unlock(&orc->pad_mutex);	return res;}int orc_in_menu(orc_t *orc){	return (orc->heartbeat_flags&1)!=0;}int orc_pad_connected(orc_t *orc){	return (orc->heartbeat_flags&2)!=0;}void orc_null(orc_t *orc, int reqlen, int resplen){	CMDPROLOGUE;	req[PACKET_DATALEN] = 2+reqlen;	req[PACKET_DATA + 0] = CMD_ORC_NULL;	req[PACKET_DATA + 1] = resplen;	orc_transaction_retry(orc, req, resp);	}// added by finalevoid orc_pinmode_set( orc_t *orc, int port, int mode){	CMDPROLOGUE;		req[PACKET_DATALEN] = 3;	req[PACKET_DATA + 0] = CMD_PINMODE_SET;	req[PACKET_DATA + 1] = port;	req[PACKET_DATA + 2] = mode;	orc_transaction_retry(orc, req, resp);}// this takes in an int btw -128 and 127void orc_motor_set_signed( orc_t *orc, int port, int pwm ){  // set the signed pwm value  int spwm  = pwm;  if( pwm < 0 ){    spwm = -1 * ( 128 + pwm );  // twos compliment conversion, note pwm is neg  }  orc_motor_set( orc, port, spwm );}int  orc_sonar_read(orc_t *orc __attribute__ ((unused)), int port __attribute__ ((unused))){  return -1;}int  orc_digital_read(orc_t *orc, int port){          orc_pinmode_set( orc, port, DIGIN );	CMDPROLOGUE;	req[PACKET_DATALEN] = 2;	req[PACKET_DATA + 0] = CMD_DIGIN_READ;	req[PACKET_DATA + 1] = port;	orc_transaction_retry(orc, req, resp);	return packet_16u(resp, 1);}void  orc_digital_set(orc_t *orc, int port, int val){          orc_pinmode_set( orc, port, DIGOUT );	CMDPROLOGUE;		req[PACKET_DATALEN] = 3;	req[PACKET_DATA + 0] = CMD_DIGOUT_SET;	req[PACKET_DATA + 1] = port;	req[PACKET_DATA + 2] = val;	orc_transaction_retry(orc, req, resp);}// between 0 and 1; 1 is full cycle onvoid  orc_pwm_set(orc_t *orc, int port, float v){        orc_pinmode_set( orc, port, PWM );	CMDPROLOGUE;		int pwm = (int) (v*65535);		req[PACKET_DATALEN] = 4;	req[PACKET_DATA + 0] = CMD_SERVO_SET;	req[PACKET_DATA + 1] = port;	req[PACKET_DATA + 2] = pwm >> 8 ;	req[PACKET_DATA + 3] = pwm & 0xff ;	orc_transaction_retry(orc, req, resp);}// warning: see orc manual: sets clock for entire pwm bankvoid orc_clk_set(orc_t *orc, int port, int divider){        CMDPROLOGUE;	int chn = port/4;	req[PACKET_DATALEN] = 3;	req[PACKET_DATA + 0] = CMD_PWMCLK_SET;	req[PACKET_DATA + 1] = chn;	req[PACKET_DATA + 2] = divider&0xff;	orc_transaction_retry(orc, req, resp);}// reads ticks in 60 Hz windowsint orc_quadphase_read_velocity(orc_t *orc, int port){	CMDPROLOGUE;	req[PACKET_DATALEN] = 2;	req[PACKET_DATA + 0] = CMD_QUADPHASE_READ;	req[PACKET_DATA + 1] = port;	orc_transaction_retry(orc, req, resp);	return packet_16u(resp, 3);}int orc_quadphase_read_velocity_signed( orc_t *orc, int port ){  // set the signed pwm value  int v  = orc_quadphase_read_velocity( orc, port );  short real_velocity = v & 0x0000FFFF;   return (int) real_velocity;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av亚洲一区二区图片| 91美女福利视频| 精品视频一区三区九区| 精品第一国产综合精品aⅴ| 日本不卡视频在线| 精品视频一区三区九区| 国产精品69毛片高清亚洲| 精品国产免费视频| 欧美视频精品在线| 免费xxxx性欧美18vr| 一区二区日韩电影| 在线免费亚洲电影| 免费精品视频最新在线| 一区二区三区美女视频| 国产欧美日韩视频一区二区| 紧缚捆绑精品一区二区| 久久精品综合网| 97久久精品人人爽人人爽蜜臀| 国产精品久久久久久久浪潮网站| 丁香五精品蜜臀久久久久99网站| 日本一区中文字幕| 欧美精品一区二区三区很污很色的| 欧美日韩中文字幕一区| 一本大道av一区二区在线播放| 亚洲美腿欧美偷拍| 欧美精品高清视频| 久久99国产精品久久99果冻传媒| 亚洲一区二区综合| 欧美一级午夜免费电影| 国产91精品在线观看| 韩国午夜理伦三级不卡影院| 国产精品久久久久久久岛一牛影视| 精品国产1区2区3区| 日韩精品一区二区三区视频在线观看| 国产不卡在线一区| 国产成人精品影视| 亚洲午夜精品网| 国产香蕉久久精品综合网| 26uuu国产日韩综合| 色国产综合视频| 国产自产v一区二区三区c| 精品一区二区日韩| 精品亚洲国产成人av制服丝袜| 麻豆成人av在线| 一区二区三区欧美日| 亚洲免费在线电影| 一区二区不卡在线播放 | 在线视频你懂得一区| 色先锋aa成人| 欧美视频第二页| 777欧美精品| 色偷偷成人一区二区三区91| 日本高清不卡视频| 欧美老人xxxx18| 日韩亚洲欧美在线| 精品视频一区三区九区| 91精品国产丝袜白色高跟鞋| 欧美电影免费观看高清完整版| 久久综合色综合88| 国产精品欧美一区喷水| 91精品国产入口在线| 精品久久久久久久久久久久久久久| 欧美亚洲动漫制服丝袜| 欧美精品777| 精品久久久久av影院 | 欧美精彩视频一区二区三区| 欧洲精品在线观看| 欧美麻豆精品久久久久久| 日韩欧美一区在线观看| 国产亚洲欧洲一区高清在线观看| 亚洲国产精品传媒在线观看| 亚洲一区二区精品视频| 蜜臀av性久久久久av蜜臀妖精 | 色婷婷综合中文久久一本| 欧美日韩美女一区二区| 91老司机福利 在线| 欧美日韩国产123区| 久久久精品黄色| 久久久美女艺术照精彩视频福利播放| 亚洲欧洲成人av每日更新| 国产日韩欧美制服另类| 一二三区精品福利视频| 久草这里只有精品视频| 色婷婷久久一区二区三区麻豆| 日韩西西人体444www| 成人免费小视频| 伦理电影国产精品| 久久99精品视频| 91蝌蚪porny| 日韩免费在线观看| 亚洲视频一区二区在线| 18欧美乱大交hd1984| 免费一级欧美片在线观看| 成人v精品蜜桃久久一区| 成人一区二区三区中文字幕| 成人av在线资源| 日韩一区二区三| 亚洲美女视频一区| 国产成人丝袜美腿| 555www色欧美视频| 亚洲最色的网站| 国产精品亚洲第一| 日韩一级在线观看| 一区二区三区四区蜜桃| 国产成人亚洲综合a∨婷婷| 欧美日韩国产a| 亚洲欧美一区二区久久| 国产精品1024久久| 日韩女优制服丝袜电影| 午夜免费久久看| 美美哒免费高清在线观看视频一区二区| 不卡的av中国片| 久久精品夜色噜噜亚洲a∨| 蜜乳av一区二区三区| 在线中文字幕不卡| 日韩一区有码在线| 成人黄色在线看| 国产日产欧美一区| 国产一区二区精品久久99| 99久久国产综合精品麻豆| 26uuu色噜噜精品一区二区| 日本中文字幕一区二区视频| 色94色欧美sute亚洲线路二| 国产精品网站在线观看| 国产精品一区二区三区乱码 | 色八戒一区二区三区| 亚洲欧洲日产国码二区| 成人18视频日本| 欧美激情一区二区三区蜜桃视频| 激情综合五月婷婷| 欧美电影免费观看高清完整版在线观看| 亚洲成人激情社区| 国产高清视频一区| 久久久天堂av| 国产成人午夜高潮毛片| 国产欧美一区二区精品性色| 国产在线不卡一卡二卡三卡四卡| 欧美第一区第二区| 国产一区二区三区黄视频 | 欧美午夜片在线观看| 夜色激情一区二区| 欧美日韩国产片| 日韩高清不卡一区| 日韩美女在线视频| 国产一区二区三区黄视频 | 美女在线一区二区| 欧美不卡一二三| 国产精品18久久久| 国产精品久久毛片a| av男人天堂一区| 精品美女一区二区| 国产一区二区精品久久99| 国产午夜精品美女毛片视频| 国产1区2区3区精品美女| 中文在线一区二区| 91蜜桃视频在线| 夜夜嗨av一区二区三区中文字幕| 91久久精品国产91性色tv| 亚洲成a人v欧美综合天堂| 欧美一区二区三区喷汁尤物| 精品一区二区av| 国产精品免费视频一区| 在线视频综合导航| 免费看黄色91| 国产精品网站导航| 欧美三级韩国三级日本三斤| 老司机午夜精品| 欧美激情在线一区二区| 色婷婷久久综合| 奇米精品一区二区三区在线观看| 久久久精品一品道一区| 色系网站成人免费| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品白丝在线| 正在播放亚洲一区| 国产精品自在欧美一区| 亚洲女与黑人做爰| 欧美电影免费观看高清完整版| 不卡的av网站| 麻豆国产精品一区二区三区 | 亚洲国产精品一区二区久久恐怖片| 欧美一区欧美二区| 99久久精品免费观看| 日韩av一二三| 国产精品日产欧美久久久久| 欧美精品自拍偷拍动漫精品| 国产v日产∨综合v精品视频| 亚洲成人av一区二区| 中文字幕免费观看一区| 欧美精品在线一区二区三区| 成人av电影在线播放| 蜜臀av一级做a爰片久久| 亚洲色图第一区| 欧美sm美女调教| 日本韩国欧美在线| 国产精品亚洲人在线观看| 日韩电影在线观看一区| 亚洲日本青草视频在线怡红院 | 亚洲欧美电影院| 国产三级精品在线|