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

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

?? car.c

?? robot open source code
?? C
字號:
/**
 *
 * 文 件 名:car.c
 *
 * 描    述:
 *
 * 創 建 者:
 *
 * 創建日期:
 *
 * 備    注:
 *
 *
 * * 維護歷史 *
 *
 *   <日期>                <修改者>
 *   <修改內容...>
 *
 **/

#include <stdlib.h>
#include "../vehicle/vehicle.h"
#include "car.h"


VOID  TOG_car(OBJECT* pObj);


/*=====================+ OICC label +====================*/

/*<oicc>*/
/*<ibn> vehicle </ibn>*/
/*<crt>*/FRESULT  CRT_car(OBJID* pOID, BYTKTY IQCty, BYTKTY OQCty, SI32 NumCR, OBJECT** ppObj, BYTE* pExotic){	extern  VOID  InitAIBofND(OBJECT* pND, MLDSN* pMsn, NUMIB nib);	extern  VOID  InitABNofND(OBJECT* pND, MLDSN* pMsn, NUMBN nbn);	extern  VOID  TOG_vehicle(OBJECT* pObj);	extern  VOID  TOG_OIOIC(OBJECT* pObj);	UI32   ux_ND = 3; 	/* ND數量。*/	UI32   ux_BN = 3; 	/* 各ND的BN數量之和。*/	UI32   ux_IB = 2; 	/* 各ND的IBN數量之和。*/	UI32   ux_CS = NumCR*6; 	/* 各ND的最少CS數量之和。*/	UI32   ux_EM = sizeof(EM_CAR) + sizeof(EM_VEHICLE) + sizeof(EM_OIOIC); 	/* 各ND的EM尺寸之和。*/	UI32  sum = ux_ND * sizeof(OBJECT) 	/* for AND. */		 + ux_BN * sizeof(OBJECT*) 	/* for "ppo_ABN". */		 + ux_IB * sizeof(OBJECT*) 	/* for "ppo_AIB". */		 + ux_CS * sizeof(VR) + ux_EM; 	/* for "pvr_ACS" and "pEM". */	BYTE*  pIC = NULL;	if(NULL == pExotic)	{		*ppObj = NULL;		pIC = (BYTE*)calloc(sum, 1);	}else { pIC = pExotic; }	if( pIC != NULL )	{		OBJECT*  pND;		MLDSN    ArrMsn[2];		BYTE*    p = pIC + sizeof(OBJECT) * ux_ND;		/***  確定AND各元素  ***/		/** car **/		pND = (OBJECT*)pIC;		TOG_car(pND);		pND->MSN = MSN_CAR;		pND->OID = (*pOID)++;		pND->po_AND = (OBJECT*)pIC;		pND->NND = ux_ND;		/** vehicle **/		TOG_vehicle(++pND);		pND->MSN = MSN_VEHICLE;		pND->OID = (*pOID)++;		pND->po_AND = (OBJECT*)pIC;		pND->NND = ux_ND;		/** OIOIC **/		TOG_OIOIC(++pND);		pND->MSN = MSN_OIOIC;		pND->OID = (*pOID)++;		pND->po_AND = (OBJECT*)pIC;		pND->NND = ux_ND;		/***  初始化各ND  ***/		/** car **/		pND = (OBJECT*)pIC;		/* - AIB - */		pND->ppo_AIB = (OBJECT**)p;		ArrMsn[0] = MSN_VEHICLE;		InitAIBofND(pND, ArrMsn, 1);		p += sizeof(OBJECT*) * 1;		/* - ABN - */		pND->ppo_ABN = (OBJECT**)p;		ArrMsn[0] = MSN_VEHICLE;		ArrMsn[1] = MSN_OIOIC;		InitABNofND(pND, ArrMsn, 2);		p += sizeof(OBJECT*) * 2;		/* - ACS - */		pND->pvr_ACS = (VR*)p;		pND->NCS = NumCR * 1;		p += sizeof(VR) * pND->NCS;		/* - EM - */		pND->pEM = (EM*)p;		p += sizeof(EM_CAR);		/** vehicle **/		++pND;		/* - AIB - */		pND->ppo_AIB = (OBJECT**)p;		ArrMsn[0] = MSN_OIOIC;		InitAIBofND(pND, ArrMsn, 1);		p += sizeof(OBJECT*) * 1;		/* - ABN - */		pND->ppo_ABN = (OBJECT**)p;		ArrMsn[0] = MSN_OIOIC;		InitABNofND(pND, ArrMsn, 1);		p += sizeof(OBJECT*) * 1;		/* - ACS - */		pND->pvr_ACS = (VR*)p;		pND->NCS = NumCR * 2;		p += sizeof(VR) * pND->NCS;		/* - EM - */		pND->pEM = (EM*)p;		p += sizeof(EM_VEHICLE);		/** OIOIC **/		++pND;		/* - ACS - */		pND->pvr_ACS = (VR*)p;		pND->NCS = NumCR * 3;		p += sizeof(VR) * pND->NCS;		/* - EM - */		pND->pEM = (EM*)p;		if( IQCty > 0 )		{			/* - IQ - */			((EM_OIOIC*)(pND->pEM))->IQ.Dtrm = (BYTE*)calloc(IQCty, 1);			if( NULL == ((EM_OIOIC*)(pND->pEM))->IQ.Dtrm)			{				/* 分配IQ的容量失敗!*/				if(NULL == pExotic)					free(pIC);				return FR_N;			}			((EM_OIOIC*)(pND->pEM))->IQ.Front = ((EM_OIOIC*)(pND->pEM))->IQ.Rear = ((EM_OIOIC*)(pND->pEM))->IQ.Dtrm - 1;			((EM_OIOIC*)(pND->pEM))->IQ.Cty = IQCty;			((EM_OIOIC*)(pND->pEM))->IQ.Qty = ((EM_OIOIC*)(pND->pEM))->IQ.Lost = 0;		}		if( OQCty > 0 ) 		{			/* - OQ - */			((EM_OIOIC*)(pND->pEM))->OQ.Dtrm = (BYTE*)calloc(OQCty, 1);			if(NULL == ((EM_OIOIC*)(pND->pEM))->OQ.Dtrm)			{				/* 分配OQ的容量失敗!*/				if( ((EM_OIOIC*)(pND->pEM))->IQ.Dtrm != NULL )					free(((EM_OIOIC*)(pND->pEM))->IQ.Dtrm);				if(NULL == pExotic)					free(pIC);				return FR_N;			}			((EM_OIOIC*)(pND->pEM))->OQ.Front = ((EM_OIOIC*)(pND->pEM))->OQ.Rear = ((EM_OIOIC*)(pND->pEM))->OQ.Dtrm - 1;			((EM_OIOIC*)(pND->pEM))->OQ.Cty = OQCty;			((EM_OIOIC*)(pND->pEM))->OQ.Qty = ((EM_OIOIC*)(pND->pEM))->OQ.Lost = 0;		}		p += sizeof(EM_OIOIC);	}	if(NULL == pExotic)		*ppObj = (OBJECT*)pIC;	return  FR_P;}
/*</crt>*/
/*</oicc>*/

/*=====================+ Interface +=====================*/

/**
 *
 * 名稱:car_Open
 */
static IRESULT  car_Open(OBJECT* This, const VR* pCaller)
{
	EM_VEHICLE*		pvem = GetEMofBN(This, MSN_VEHICLE); 
	EM_CAR*         pem = (EM_CAR*)This->pEM;

	OBS_OBJECT_OPEN_;

	/* 在下面完成接口自己的任務。*/

	pvem->weight = 1.01f;
	pem->max_load = 1.53f;
	pem->max_velocity = 186.5f;

	return IR_P;
}

/**
 *
 * 名稱:car_Input
 */
static IRESULT  car_Input(OBJECT* This, BYTE* IStrm, BYTKTY Qty, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_INPUT;
}

/**
 *
 * 名稱:car_Output
 */
static IRESULT  car_Output(OBJECT* This, BYTE* OStrm, BYTKTY Cty, BYTKTY* pQty, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_OUTPUT;
}

/**
 *
 * 名稱:car_IOput
 */
static IRESULT  car_IOput(OBJECT* This, BYTE* IStrm, BYTKTY Qty, BYTE* OStrm, BYTKTY Cty, BYTKTY* pQty, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_IOPUT;
}

/**
 *
 * 名稱:car_Interact0
 */
static IRESULT  car_Interact0(OBJECT* This, ACTION Act, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_INTERACT0;
}

/**
 *
 * 名稱:car_Interact1
 */
static IRESULT  car_Interact1(OBJECT* This, ACTION Act, BYTE* OStrm, BYTKTY Cty, BYTKTY* pQty, const VR* pCaller)
{
	EM_CAR*   pem = (EM_CAR*)This->pEM;

	switch(Act)
	{
	case GET_MAXLOAD:
		if(Cty<sizeof(SR32)) /* 判斷輸出流容量夠不夠。*/
			return IR_N_INVALIDARG;
		*(SR32*)OStrm = pem->max_load; /* 輸出最大載重量值。*/
		*pQty = sizeof(SR32); /* 輸出的字節數。*/
		return IR_P;
	case GET_MAXVELOCITY:
		if(Cty<sizeof(SR32)) /* 判斷輸出流容量夠不夠。*/
			return IR_N_INVALIDARG;
		*(SR32*)OStrm = pem->max_velocity; /* 輸出最大速度值。*/
		*pQty = sizeof(SR32); /* 輸出的字節數。*/
		return IR_P;
	default:
		break;
	}

	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_INTERACT1;
}

/**
 *
 * 名稱:car_Interact2
 */
static IRESULT  car_Interact2(OBJECT* This, ACTION  Act, BYTE* IStrm, BYTKTY Qty, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_INTERACT2;
}

/**
 *
 * 名稱:car_Interact3
 */
static IRESULT  car_Interact3(OBJECT* This, ACTION Act, BYTE* IStrm, BYTKTY Qty, BYTE* OStrm, BYTKTY Cty, BYTKTY* pQty, const VR* pCaller)
{

	/* ... */


	/* 在上面完成接口自己的任務。*/

	SBO_OBJECT_INTERACT3;
}

/**
 *
 * 名稱:car_Close
 */
static IRESULT  car_Close(OBJECT* This, const VR* pCaller)
{
	OBS_OBJECT_CLOSE_;

	/* 在下面完成接口自己的任務。*/

	if(0 == This->RefCnt)
		return IR_P_RCZERO;

	return IR_P;
}

/*========================+ TOG +========================*/

/**
 *
 * 名稱:TOG_car
 */
VOID  TOG_car(OBJECT* pObj)
{
	pObj->Open = car_Open;
	pObj->Input = car_Input;
	pObj->Output = car_Output;
	pObj->IOput = car_IOput;
	pObj->Interact0 = car_Interact0;
	pObj->Interact1 = car_Interact1;
	pObj->Interact2 = car_Interact2;
	pObj->Interact3 = car_Interact3;
	pObj->Close = car_Close;
}

/*=======================+ IRF(s) +======================*/
/*... */

/*====================+ Function(s) +====================*/
/* ... */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区影院| 亚洲一二三四在线| 色综合欧美在线视频区| 国产精品你懂的在线| 福利视频网站一区二区三区| 久久精品国产久精国产| 奇米一区二区三区av| 日韩中文字幕不卡| 日韩成人精品在线观看| 老司机午夜精品| 国内久久婷婷综合| 国产精品久久久久桃色tv| 久久精品人人做人人爽97| 久久久久久影视| 中文字幕乱码亚洲精品一区| 日本一区二区视频在线| 亚洲精品成人天堂一二三| 亚洲高清免费在线| 26uuu久久综合| 国产欧美日本一区二区三区| 国产欧美综合在线| 一区二区三区鲁丝不卡| 日韩午夜三级在线| 精品电影一区二区三区 | 日韩1区2区日韩1区2区| 日韩欧美一级二级三级久久久| 国产一区999| 亚洲欧美经典视频| 蜜桃av噜噜一区二区三区小说| 日日夜夜精品视频天天综合网| 免费的国产精品| 亚洲精品视频自拍| 日韩制服丝袜av| 国产精品 欧美精品| 亚洲一区精品在线| 国产拍揄自揄精品视频麻豆 | 99精品欧美一区二区蜜桃免费| 日韩电影免费一区| 国产成人一区二区精品非洲| 五月婷婷激情综合| 亚洲欧洲成人精品av97| 日韩国产在线一| 99久久99精品久久久久久 | 精品av综合导航| 亚洲色图制服丝袜| 欧美一区二区三区公司| 国产亚洲欧美日韩日本| 一区二区三区欧美久久| 国产麻豆精品在线观看| 精品影视av免费| 色婷婷综合久久久久中文一区二区 | 极品美女销魂一区二区三区| 一本大道久久精品懂色aⅴ| 日韩欧美一区二区不卡| 亚洲一区二区三区自拍| 成人综合激情网| 国产主播一区二区三区| 九色综合国产一区二区三区| 91福利精品视频| 欧美韩国日本综合| 国产女人aaa级久久久级| 丝袜亚洲另类欧美| 一本大道久久a久久综合| 欧美高清在线视频| 久久国产精品一区二区| 激情文学综合网| 91精品免费观看| 欧美日韩成人综合在线一区二区| 在线精品视频一区二区三四| 久久久久久久综合日本| 日本麻豆一区二区三区视频| 欧美视频在线一区二区三区 | 国产精品99久久久久久宅男| 久久精品国产亚洲5555| 欧美猛男男办公室激情| 亚洲精品在线观看网站| 人人狠狠综合久久亚洲| 日韩一区国产二区欧美三区| 偷拍一区二区三区四区| 制服丝袜亚洲精品中文字幕| 91精品欧美综合在线观看最新| 亚洲永久精品国产| 欧美写真视频网站| 亚洲成人在线免费| 日韩成人一区二区三区在线观看| 91麻豆精品国产无毒不卡在线观看 | 国产一区在线观看麻豆| 精品国产伦一区二区三区免费| 蜜乳av一区二区| 成人国产一区二区三区精品| 一本一道波多野结衣一区二区| 一道本成人在线| 五月综合激情网| 日韩免费一区二区| 国产精品一区二区果冻传媒| 国产精品天天看| 色综合天天性综合| 亚洲国产日韩一区二区| 欧美一区二区私人影院日本| 国产综合久久久久影院| 国产精品国产三级国产a | 国产一区二区三区观看| av在线免费不卡| 精品美女被调教视频大全网站| 精品一区二区综合| 亚洲精品乱码久久久久久久久| 一本色道**综合亚洲精品蜜桃冫 | 蜜桃91丨九色丨蝌蚪91桃色| 欧美国产综合一区二区| 在线免费观看日本欧美| 中文一区一区三区高中清不卡| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲欧美日韩国产另类专区| 69精品人人人人| 成人动漫一区二区三区| 精品成人在线观看| 91福利在线看| 亚洲国产精品久久不卡毛片 | 国产剧情av麻豆香蕉精品| 天天综合网 天天综合色| 国产mv日韩mv欧美| www欧美成人18+| 蜜桃视频免费观看一区| 亚洲色图.com| 91久久线看在观草草青青| 成人免费一区二区三区在线观看| 精品亚洲免费视频| 国产精品美女久久福利网站| 91小视频在线观看| 午夜久久电影网| 亚洲视频在线一区二区| 久久久久久**毛片大全| 国产白丝精品91爽爽久久| 久久综合精品国产一区二区三区 | 欧美一区二区播放| 99re亚洲国产精品| 五月天欧美精品| 亚洲精品免费看| 精品美女在线观看| 亚洲欧洲国产日韩| 91精品国产乱| 国产老女人精品毛片久久| 国产精品理伦片| 国产片一区二区| 久久精品噜噜噜成人av农村| 五月天一区二区三区| 色综合欧美在线| 一区二区三区在线不卡| 亚洲精品一区二区三区蜜桃下载| 欧美一级欧美三级在线观看| 成人午夜大片免费观看| 激情伊人五月天久久综合| 最新国产の精品合集bt伙计| 中文字幕色av一区二区三区| 7777精品伊人久久久大香线蕉最新版| 欧美日韩免费在线视频| 成人黄色av电影| 色美美综合视频| 亚洲欧美日韩国产手机在线| 亚洲免费观看高清完整版在线| 精品欧美黑人一区二区三区| 26uuu精品一区二区| 欧美色电影在线| 欧美一级片在线观看| 亚洲综合偷拍欧美一区色| 日韩欧美国产精品一区| 亚洲成人午夜影院| 精品久久人人做人人爱| 婷婷丁香久久五月婷婷| 日韩国产精品久久| 一区二区三区中文在线观看| 视频一区二区国产| 亚洲一区二区三区美女| 日韩欧美专区在线| 国产激情91久久精品导航 | 日韩一级高清毛片| 色婷婷综合久久久| 欧美一区二区三区在线视频| 欧美在线视频你懂得| 91麻豆精品国产91久久久更新时间| 亚洲成人av免费| 国内久久婷婷综合| 国内一区二区视频| 97久久人人超碰| 99re在线视频这里只有精品| 555www色欧美视频| 欧美性受xxxx黑人xyx| 国产成人av电影免费在线观看| 婷婷久久综合九色国产成人| 国产风韵犹存在线视精品| 一区二区三区日本| 免费观看在线综合| 97aⅴ精品视频一二三区| av综合在线播放| 国产精品一二三四五| 国产精品久久久久毛片软件| 午夜久久久久久| 椎名由奈av一区二区三区| 成人免费视频网站在线观看| 麻豆精品在线观看|