vehicle.c

来自「robot open source code」· C语言 代码 · 共 209 行

C
209
字号
/**
 *
 * 文 件 名:vehicle.c
 *
 * 描    述:
 *
 * 创 建 者:
 *
 * 创建日期:
 *
 * 备    注:
 *
 *
 * * 维护历史 *
 *
 *   <日期>                <修改者>
 *   <修改内容...>
 *
 **/

#include "vehicle.h"


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

/*<oicc>*/
/*<ibn> OIOIC </ibn>*/
/*<crt>*/
/*</crt>*/
/*</oicc>*/

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

/**
 *
 * 名称:vehicle_Open
 */
static IRESULT  vehicle_Open(OBJECT* This, const VR* pCaller)
{
	OBS_OBJECT_OPEN_;

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


	/* ... */


	return IR_P;
}

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

	/* ... */


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

	SBO_OBJECT_INPUT;
}

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

	/* ... */


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

	SBO_OBJECT_OUTPUT;
}

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

	/* ... */


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

	SBO_OBJECT_IOPUT;
}

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

	/* ... */


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

	SBO_OBJECT_INTERACT0;
}

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

	switch(Act)
	{
	case GET_WEIGHT:
		if(Cty<sizeof(SR32)) /* 判断输出流容量够不够。*/
			return IR_N_INVALIDARG;
		*(SR32*)OStrm = pem->weight; /* 输出重量值。*/
		*pQty = sizeof(SR32); /* 输出的字节数。*/
		return IR_P;
	default:
		break;
	}


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

	SBO_OBJECT_INTERACT1;
}

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

	/* ... */


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

	SBO_OBJECT_INTERACT2;
}

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

	/* ... */


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

	SBO_OBJECT_INTERACT3;
}

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

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


	/* ... */


	return IR_P;
}

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

/**
 *
 * 名称:TOG_vehicle
 */
VOID  TOG_vehicle(OBJECT* pObj)
{
	pObj->Open = vehicle_Open;
	pObj->Input = vehicle_Input;
	pObj->Output = vehicle_Output;
	pObj->IOput = vehicle_IOput;
	pObj->Interact0 = vehicle_Interact0;
	pObj->Interact1 = vehicle_Interact1;
	pObj->Interact2 = vehicle_Interact2;
	pObj->Interact3 = vehicle_Interact3;
	pObj->Close = vehicle_Close;
}

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

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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?