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

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

?? ndirect_interface.c

?? 一個多機器人的仿真平臺
?? C
字號:
/* * Ndirect_interface.c * * These routines implement the Java native routines specicfied by * running javah on Ndirect.java .  Each routine here then calls * the functions provided by Nomadics in their Ndirect.c library. * * AUTHOR: Tucker Balch, tucker@cc.gatech.edu * */#include <jni.h>#include "EDU_gatech_cc_is_nomad150_Ndirect.h"#include "Nclient.h"static	int	let_me_live = 99;static	jclass	static_placeholder = 0;/* * Class:     edu_gatech_cc_is_nomad150_Ndirect * Method:    make_resident * Signature: ()I *//* * Make the code resident. */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_make_1resident(	JNIEnv *env, 	jobject obj)	{	/*	 * This code makes sure our static variables stay around.	 * Lifted from the javasoft page.	 */	if (static_placeholder == 0)		{		jclass dummy = (*env)->GetObjectClass(env, obj);		if (dummy == 0)			{			fprintf(stderr, "Ndirect_interface: error "				"trying to be static\n");			return(1);/* throw an exception */			}		static_placeholder = (*env)->NewGlobalRef(env, dummy);		if (static_placeholder == 0)			{			fprintf(stderr, "Ndirect_interface: error "				"trying to be static\n");			}		return(0);/* OK */		}	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    make_free * Signature: ()I *//* * Release the resources (ie become non-resident). */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_make_1free(	JNIEnv *env, 	jobject obj)	{	/*	 * This code releases the global reference so gc can get rid	 * of us.	 */	if (static_placeholder != 0)		{		(*env)->DeleteGlobalRef(env, static_placeholder);		}	fprintf(stderr, "Ndirect_interface: releasing\n");	return(0);	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    open_robot * Signature: (II)I *//* * Open and intialize the robot. */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_open_1robot(	JNIEnv *env, 	jobject obj, 	jint serial_port, 	jint baud)	{	int i;	/* this sonar ordering will turn them off */	int     sn_order[16] = {255, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};	/*	 * Open the serial connection.	 */	connect_robot(1);	if (open_serial((unsigned char)serial_port, (unsigned short)baud)==0)		return(1);/*error!*/	/*	 * Zero out the Smask, so we only get the data when we ask.	 */	// actually, now we want the data	for (i = 0; i<=NUM_MASK; i++) Smask[i] = 0;	for (i = SMASK_SONAR_1; i<=SMASK_SONAR_16; i++) Smask[i] = 1;	Smask[SMASK_BUMPER] = 1;	Smask[SMASK_CONF_X] = 1;	Smask[SMASK_CONF_Y] = 1;	Smask[SMASK_CONF_STEER] = 1;	Smask[SMASK_CONF_TURRET] = 1;	Smask[SMASK_VEL_TRANS] = 1;	Smask[SMASK_VEL_STEER] = 1;	Smask[SMASK_VEL_TURRET] = 1;	if (ct() == 0)		return(1);/*error!*/	/*	 * Set some default speeds, accelerations 	 * and timeout values.  The default speeds and accells are maximums.	 */        if (ac(300, 500, 500)==0)                {                fprintf(stderr,"Ndirect.open_robot: ac failed\n");                return(1);/*error!*/                }        if (sp(200, 450, 450)==0)                {                fprintf(stderr,"Ndirect.open_robot: sp failed\n");                return(1);/*error!*/                }        if (conf_sn(0, sn_order)==0) /* turns the sonars off */                {                fprintf(stderr,"Ndirect.open_robot: conf_sn failed\n");                return(1);/*error!*/                }        if (conf_tm(1)==0) /* sets robot timeout to 1 seconds */                {                fprintf(stderr,"Ndirect.open_robot: conf_tm failed\n");                return(1);/*error!*/                }        if (zr()==0) /* zeroes the robot and homes it */                {                fprintf(stderr,"Ndirect.open_robot: zr failed\n");		return(1);/*error!*/		}	return(0);/* OK */	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    da * Signature: (II)I *//* * Set the robot's angles. */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_da  (JNIEnv *env, jobject obj, 	jint th, 	jint tu)	{	if (da(th, tu) == 0)		return(1);/*error!*/	else		return(0);/*OK*/	} /* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    dp * Signature: (II)I *//* * Set the robot's position. */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_dp  (JNIEnv *env, jobject obj, 	jint x, 	jint y)	{	if (dp((long)x, (long)y) == 0)		return(1);/*error!*/	else		return(0);/*OK*/	} /* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    mv * Signature: (IIIIII)I *//* * Move the robot */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_mv(	JNIEnv *env, 	jobject obj, 	jint t_mode, 	jint t_mv, 	jint s_mode, 	jint s_mv, 	jint r_mode, 	jint r_mv)	{	if (mv(t_mode,t_mv,s_mode,s_mv,r_mode,r_mv) == 0)                {		fprintf(stderr,"Ndirect.mv: mv failed\n");		return(1);/*error!*/		}	return(0);/*OK*/	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    st * Signature: ()I *//* * Stop the robot */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_st(	JNIEnv *env, 	jobject obj)	{        if (st() == 0)                {                fprintf(stderr,"Ndirect.st: st failed\n");                return(1);/*error!*/                }        return(0);/*OK*/        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    sn_on * Signature: (I)I *//* * Turn on the sonars */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_sn_1on(	JNIEnv *env, 	jobject obj,	jint	delay)	{	/*	 * The default sonar firing order	 */	int     order[16] = {0,2,15,1,14,3,13,4,12,5,11,6,10,7,9,8};	delay = delay/4; /* convert to 4 millisecond increments used by				nomadics */	if (delay <= 15) delay = 15;	if (conf_sn(delay, order) == 0)		{		fprintf(stderr,"Ndirect.sn_on: conf_sn failed\n");		return(1);/*error*/		}	return(0);/*OK*/	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    sn_off * Signature: ()I *//* * Turn off the sonars */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_sn_1off(	JNIEnv *env, 	jobject obj)	{	int     sn_order[16] = {255, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};		if (conf_sn(0, sn_order) == 0)		{		fprintf(stderr,"Ndirect.sn_off: conf_sn failed\n");		return(1);/*error*/		}	return(0);/*OK*/	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_bp * Signature: ()I *//* * Read the bumper switches */JNIEXPORT jlong JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1bp(	JNIEnv *env, 	jobject obj)	{	/*get_bp();  assume a gs() was issued */	return(State[STATE_BUMPER]);	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    gs * Signature: ()I *//* * Read the sensor data */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_gs  (JNIEnv *env, jobject obj)	{	gs();	return(1);	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_rc * Signature: ()I *//* * Update X,Y,turret and steering info. */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1rc(	JNIEnv *env, 	jobject obj)	{	/*if (get_rc() == 0)*/	if (gs() == 0)		{		fprintf(stderr,"Ndirect.get_rc: gs failed\n");		return(1);/*error*/		}	return(0);/*OK*/	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_x * Signature: ()I *//* * Get robot X */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1x(	JNIEnv *env, 	jobject obj)	{	return(State[STATE_CONF_X]);	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_y * Signature: ()I *//* * Get robot Y */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1y(        JNIEnv *env,        jobject obj)        {        return(State[STATE_CONF_Y]);        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_steering * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1steering(        JNIEnv *env,        jobject obj)        {        return(State[STATE_CONF_STEER]);        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_turret * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1turret(        JNIEnv *env,        jobject obj)        {        return(State[STATE_CONF_TURRET]);        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_rv * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1rv(        JNIEnv *env,        jobject obj)        {        /*if (get_rv() == 0)*/        if (gs() == 0)                {                fprintf(stderr,"Ndirect.get_rv: get_rv failed\n");                return(1);/*error*/                }        return(0);/*OK*/        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_vtranslation * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1vtranslation(        JNIEnv *env,        jobject obj)        {	return(State[STATE_VEL_TRANS]);	}/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_vturret * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1vturret(        JNIEnv *env,        jobject obj)        {        return(State[STATE_VEL_TURRET]);        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_vsteering * Signature: ()I */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1vsteering(        JNIEnv *env,        jobject obj)        {        return(State[STATE_VEL_STEER]);        }/* * Class:     EDU_gatech_cc_is_nomad150_Ndirect * Method:    get_sn * Signature: ([I)I *//* * Read the sonars */JNIEXPORT jint JNICALL Java_EDU_gatech_cc_is_nomad150_Ndirect_get_1sn(	JNIEnv *env, 	jobject obj, 	jintArray readings)	{	int i;	jint *readings_body;	jsize len;	/*         * get ready to access the java array "readings"	 */	len = (*env)->GetArrayLength(env, readings); /* how long is it?*/	if (len<16)		{		fprintf(stderr,"Ndirect.get_sn: readings array too small (%d"			" elements), must be at least 16.\n",len);		return(1);/*error*/		}	/* get pointer to the array, and reserve it. must release it later */	readings_body = (*env)->GetIntArrayElements(env, readings, 0);	/*	 * get the sonar readings from the robot	 */	// Skip this now.  Assume the data comes from an earlier	// gs()	//fprintf(stderr,"Ndirect.get_sn: calling get_sn\n");	//if (get_sn()==0)		//{		//fprintf(stderr,"Ndirect.get_sn: get_sn failed\n");		//(*env)->ReleaseIntArrayElements(env, readings, readings_body, 0);		//return(1);/*error*/		//}	//fprintf(stderr,"Ndirect.get_sn: after get_sn\n");	/*	 * move the readings into the array	 */	for (i = 0; i<16; i++)		readings_body[i] = State[i+STATE_SONAR_0];	/*	 * release the array	 */	(*env)->ReleaseIntArrayElements(env, readings, readings_body, 0);	return(0);/*OK*/	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产河南妇女毛片精品久久久 | 91精品国产色综合久久ai换脸 | 麻豆免费精品视频| 亚洲视频一区二区在线| 日韩情涩欧美日韩视频| 色哟哟一区二区在线观看| 国产一区二区精品久久99| 亚洲一区二区成人在线观看| 亚洲精品一区二区三区蜜桃下载| 欧美在线999| www.亚洲精品| 蜜桃视频在线观看一区二区| 伊人一区二区三区| 国产精品乱人伦| 久久综合色一综合色88| 欧美一区三区四区| 欧美日韩成人在线一区| 色综合久久综合| 99久久婷婷国产| 成人性视频免费网站| 国产在线播精品第三| 蜜臀av一区二区在线观看| 午夜精品一区二区三区免费视频| 自拍偷自拍亚洲精品播放| 欧美经典三级视频一区二区三区| 欧美成人女星排名| 日韩欧美中文字幕制服| 欧美高清dvd| 欧美精品丝袜久久久中文字幕| 色视频成人在线观看免| 91麻豆国产精品久久| 成人18视频在线播放| 成人福利电影精品一区二区在线观看| 韩国午夜理伦三级不卡影院| 久久不见久久见中文字幕免费| 日本不卡一区二区三区| 丝袜美腿亚洲一区| 奇米四色…亚洲| 久久精品国产99国产| 麻豆免费精品视频| 国产九色sp调教91| 国产精品123区| 丁香六月综合激情| 97aⅴ精品视频一二三区| 97久久久精品综合88久久| 91一区二区在线| 欧洲人成人精品| 欧美高清www午色夜在线视频| 777奇米成人网| 日韩你懂的电影在线观看| 日韩一区二区三区在线| 精品国产一区二区三区久久影院| 精品美女被调教视频大全网站| 久久夜色精品国产噜噜av| 中文字幕第一区| 亚洲综合清纯丝袜自拍| 性欧美大战久久久久久久久| 免费在线观看一区二区三区| 国产乱理伦片在线观看夜一区| 成人丝袜18视频在线观看| 99re66热这里只有精品3直播 | 亚洲福利视频导航| 免费看日韩a级影片| 韩国毛片一区二区三区| 99久久久免费精品国产一区二区| 欧美探花视频资源| 日韩亚洲欧美成人一区| 国产欧美精品一区| 亚洲成人中文在线| 国产在线精品一区二区夜色 | 国产.欧美.日韩| 欧美性猛交xxxx黑人交| 欧美大片顶级少妇| 国产精品久久久久久久久久免费看| 亚洲精品乱码久久久久久| 日av在线不卡| 91年精品国产| 日韩欧美在线影院| 亚洲欧洲精品一区二区三区不卡| 亚洲五码中文字幕| 狠狠色丁香婷婷综合| 日本久久一区二区| 久久视频一区二区| 亚洲一二三四在线观看| 久久国产日韩欧美精品| 色综合天天做天天爱| 精品福利视频一区二区三区| 一区二区三区免费网站| 国产在线精品一区二区三区不卡| 欧美影视一区在线| 国产色一区二区| 日韩av不卡在线观看| 91小宝寻花一区二区三区| 日韩精品资源二区在线| 一区二区三区四区精品在线视频| 经典三级视频一区| 欧美日韩精品免费| 亚洲乱码日产精品bd| 精久久久久久久久久久| 欧美日韩一区二区三区四区五区 | 色综合久久天天综合网| 精品国产电影一区二区| 亚洲综合图片区| 成人av高清在线| 精品国产sm最大网站免费看| 亚洲一区二区五区| 成人avav在线| 国产欧美日韩亚州综合 | 亚洲国产激情av| 秋霞成人午夜伦在线观看| 在线免费视频一区二区| 国产精品欧美久久久久无广告| 免费在线视频一区| 欧美群妇大交群中文字幕| 亚洲日本青草视频在线怡红院| 国产乱理伦片在线观看夜一区| 日韩午夜电影在线观看| 三级欧美韩日大片在线看| 欧美性大战久久久久久久蜜臀| 亚洲欧美色综合| 99精品视频一区二区三区| 中文字幕欧美三区| 国产高清一区日本| 久久精品一区二区三区不卡牛牛| 青娱乐精品视频| 欧美一级国产精品| 秋霞午夜av一区二区三区| 欧美日韩国产首页在线观看| 一区二区三区日韩精品| 日本道色综合久久| 亚洲精品国产一区二区精华液| 99精品久久免费看蜜臀剧情介绍| 成人免费在线播放视频| 91在线小视频| 亚洲主播在线观看| 欧美日韩久久久一区| 日韩中文字幕亚洲一区二区va在线| 欧美最新大片在线看 | 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品国产色综合久久不卡电影| 免费在线看成人av| www日韩大片| 国产高清成人在线| 成人欧美一区二区三区1314| 91免费看`日韩一区二区| 亚洲精品国产a久久久久久| 欧美三级视频在线| 蜜臀av一区二区在线观看| 久久人人97超碰com| 国产精品小仙女| 中文字幕一区二区三区乱码在线| 96av麻豆蜜桃一区二区| 亚洲一区二区三区小说| 日韩亚洲欧美高清| 国产suv一区二区三区88区| 国产精品初高中害羞小美女文| 91亚洲精品久久久蜜桃网站 | 免费观看在线色综合| 久久久久久亚洲综合| 成人精品国产免费网站| 一区二区三区在线看| 欧美日韩第一区日日骚| 国产剧情一区二区| 一区二区在线观看视频在线观看| 欧美日韩免费观看一区三区| 免费观看在线综合色| 国产精品麻豆视频| 欧美丰满高潮xxxx喷水动漫| 国产精品一二三四| 亚洲一区二区在线免费看| 日韩欧美国产一区二区在线播放| 国产成人午夜精品影院观看视频 | 久久这里只有精品首页| 91免费看视频| 美腿丝袜在线亚洲一区| 国产精品麻豆一区二区| 欧美一区二区高清| 成人精品gif动图一区| 日韩精品一级中文字幕精品视频免费观看| 久久亚洲欧美国产精品乐播 | 卡一卡二国产精品 | 国产丝袜欧美中文另类| 欧美在线制服丝袜| 日韩高清一区在线| 成人欧美一区二区三区在线播放| 欧美一区二区三区免费视频| 成人高清免费观看| 蜜臀av在线播放一区二区三区| 国产精品久久一卡二卡| 91精品视频网| 色噜噜狠狠色综合中国| 国产一区二区主播在线| 亚洲一卡二卡三卡四卡 | 中文字幕欧美区| 日韩欧美一级精品久久| 日本高清无吗v一区| 丰满少妇久久久久久久| 看电视剧不卡顿的网站| 亚洲va韩国va欧美va| 中文字幕中文在线不卡住|