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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? route.h

?? microchip公司的DeviceNet協(xié)議桟源碼
?? H
字號(hào):
/*****************************************************************************
 *
 * Microchip DeviceNet Stack (Router Object Header)
 *
 *****************************************************************************
 * FileName:        route.h
 * Dependencies:    
 * Processor:       PIC18F with CAN
 * Compiler:       	C18 02.10.02 or higher
 * Linker:          MPLINK 03.20.01 or higher
 * Company:         Microchip Technology Incorporated
 *
 * Software License Agreement
 *
 * The software supplied herewith by Microchip Technology Incorporated
 * (the "Company") is intended and supplied to you, the Company's
 * customer, for use solely and exclusively with products manufactured
 * by the Company. 
 *
 * The software is owned by the Company and/or its supplier, and is 
 * protected under applicable copyright laws. All rights are reserved. 
 * Any use in violation of the foregoing restrictions may subject the 
 * user to criminal sanctions under applicable laws, as well as to 
 * civil liability for the breach of the terms and conditions of this 
 * license.
 *
 * THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES, 
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED 
 * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
 * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, 
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR 
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 *
 * This file contains the Router object described in section 6-3 of 
 * volume 2 of the DeviceNet specification.
 *
 * The router provides several parameters to Explicit Message Handlers.
 * All of the parameters are globals defined in an access section for 
 * fast access. 
 *
 * Receive Buffer									Transmit Buffer
 * ---------------									---------------	
 * |   Header    | 									|   Header    |
 * |   Service   |									|   Service   |
 * |   ClassID   |									|    .....    | <- pOutBuf
 * | InstanceID  |									|    .....    |
 * | AttributeID | <- pInBuf, Ptr to rx data		|    .....    |
 * |    .....    |    aInBufLen, len of buf			|    .....    |
 * |    .....    |	  aInBufDataLen, len of data	|    .....    |
 * |    .....    |									|    .....    |
 * |    .....    | 									|    .....    |
 * |    .....    |									|    .....    |
 * ---------------									---------------		
 *
 * Author               Date        Comment
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Ross Fosler			04/03/03	...	
 * 
 *****************************************************************************/



typedef struct _ROUTE_INFO
{
	USINT		header;				// The header of the explicit message
	USINT		service;			// The service requested
#if (CLASS_WIDTH_16BIT)
 	UINT		classID;			// The class
#else 
	USINT		classID;
#endif
#if (INSTANCE_WIDTH_16BIT)
 	UINT		instanceID;			// The instance
#else
	USINT		instanceID;
#endif
	USINT		attributeID;		// The attribute
	USINT * 	pInBuf;				// Pointer to the received data
	USINT * 	pOutBuf;			// Pointer to the data buffer to transmit
	USINT 		inBufLen;			// The size of the receive buffer
	USINT		inBufDataLen;		// The amount of data in the receive buffer
	USINT		outBufLen;			// The size of the transmit buffer
	USINT		outBufDataLen;		// The amount of data in the transmit buffer
}ROUTE;


/*********************************************************************
 * Route variable made global 
 ********************************************************************/


extern NEAR ROUTE route;

/*********************************************************************
 * Function:        unsigned char RouteMessage(void)
 *
 * PreCondition:    
 *
 * Input:   		aHeader, aService, aClassID, aInstanceID         
 *					aAttributeID, pInBuf, pOutBuf, aInBufLen
 *					aInBufDataLen, aOutBufLen, aOutBufDataLen 
 *                  
 * Output:       	aHeader, aService, pInBuf, pOutBuf, aOutBufDataLen	
 *
 * Side Effects:    
 *
 * Overview:        This is the start of message routing. This function
 * 					decodes the class then calls the appropriate
 *					object to decode the instance, service, and if 
 *					necessary the attribute. If the class is not 
 *					defined in this object then an error is returned 
 *					in aService (= _ERROR_RESPONSE).
 *
 *					pOutBuf is loaded with the responce data and the
 *					length aOutBufDataLen is adjusted.
 *
 * Note:            Edit the case statement below to add more defined
 *					classes of objects to the list.
 ********************************************************************/
unsigned char RouteMessage(void);


/*********************************************************************
 * Function:        unsigned char _RouteExplMsgHandler(void)
 *
 * PreCondition:    
 *
 * Input:           
 *					
 *                  
 * Output:         
 *				
 *				
 *			
 *
 * Side Effects:    
 *
 * Overview:        Handler for explicit messaging 
 *
 * Note:            None
 ********************************************************************/
unsigned char _RouteExplMsgHandler(void);
   

/*********************************************************************
 * Function:        void RoutePutByte(USINT dataByte)
 *
 * PreCondition:    
 *
 * Input:           USINT - a byte to put into the output buffer
 *       
 * Output:       		
 *
 * Side Effects:    
 *
 * Overview:      	This function puts a byte in the output buffer.
 *					Plus it automatically adjusts the buffer count and
 *					pointer into the buffer. 
 *
 * Note:          	 
 ********************************************************************/
void RoutePutByte(USINT dataByte);
#define mRoutePutByte(dataByte)		RoutePutByte(dataByte)



/*********************************************************************
 * Function:        USINT RouteGetByte(void)
 *
 * PreCondition:    
 *
 * Input:           None.
 *       
 * Output:       	USINT - byte from the buffer.		
 *
 * Side Effects:    
 *
 * Overview:      	This function returns a byte from the router's 
 *					input buffer. Plus it auto adjusts to point the 
 *					the next byte in the buffer.   
 *
 * Note:            
 ********************************************************************/
USINT RouteGetByte(void);
#define mRouteGetByte()		RouteGetByte()



/*********************************************************************
 * Function:        unsigned char RouteTestValidInputDataLen(unsigned char expectedSize)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       		
 *
 * Side Effects:    
 *
 * Overview:      	This function tests the input buffer against 
 *					the expected size and automatically generates
 *					the necessary error packet if failed. 
 *
 * Note:          	 
 ********************************************************************/
unsigned char RouteTestValidInputDataLen(unsigned char expectedSize);
#define	mRouteTestValidInputDataLen(expSize) RouteTestValidInputDataLen(expSize)
#define mRouteTestNonValidInputDataLen(expSize) (!RouteTestValidInputDataLen(expSize))



/*********************************************************************
 * Function:        void RoutePutError(unsigned char errorCode)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       		
 *
 * Side Effects:    
 *
 * Overview:      	This function writes the requested error to the 
 *					buffer. 
 *
 * Note:          	 
 ********************************************************************/
void RoutePutError(unsigned char errorCode);
#define mRoutePutError(eCode)	RoutePutError(eCode)





/*********************************************************************
 * Function:        USINT RouteRxLen(void)
 *
 * PreCondition:    
 *
 * Input:           None.
 *       
 * Output:       	USINT - current length of the input buffer		
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the current length of the
 *   				input buffer. 
 *
 * Note:          	Use this function in combination with RouteGetByte
 *					to read the contents of the input buffer. 
 ********************************************************************/
//#define mRouteRxLen()	(aInBufDataLen)
#define mRouteRxLen()	(route.inBufDataLen)
#define mRouteInLen()	(route.inBufDataLen)	

/*********************************************************************
 * Function:        USINT RouteTxLen(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	USINT - the maximum size of the output buffer
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the maximum size of the 
 *					output buffer.
 *
 * Note:          	Use this function in combination with RoutePutByte
 *					to write the contents of the output buffer.	 
 ********************************************************************/
//#define mRouteTxLen()	(aOutBufLen)
#define mRouteTxLen()	(route.outBufLen)
#define	mRouteOutLen()	(route.outBufLen)

/*********************************************************************
 * Function:        USINT RouteGetHeader(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	USINT
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the header of the Explicit
 *					message.
 *
 * Note:          		 
 ********************************************************************/
//#define mRouteGetHeader()	(aHeader)
#define mRouteGetHeader()	(route.header)



/*********************************************************************
 * Function:        USINT RouteGetServiceID(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	USINT
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the Service ID of the Explicit
 *					message.
 *
 * Note:          		 
 ********************************************************************/
//#define mRouteGetServiceID()	(aService)
#define mRouteGetServiceID()	(route.service)


/*********************************************************************
 * Function:        UINT RouteGetClassID(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	UINT
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the Class ID of the Explicit
 *					message.
 *
 * Note:          		 
 ********************************************************************/
//#define mRouteGetClassID()	(aClassID)
#if (CLASS_WIDTH_16BIT)
#define mRouteGetClassID()	(route.classID.word)
#else
#define mRouteGetClassID()	(route.classID)
#endif



/*********************************************************************
 * Function:        UINT RouteGetInstanceID(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	UINT
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the Instance ID of the 
 *					Explicit message.
 *
 * Note:          		 
 ********************************************************************/
//#define mRouteGetInstanceID()	(aInstanceID)
#if (INSTANCE_WIDTH_16BIT)
#define mRouteGetInstanceID()	(route.instanceID.word)
#else
#define mRouteGetInstanceID()	(route.instanceID)
#endif


/*********************************************************************
 * Function:        USINT RouteGetAttributeID(void)
 *
 * PreCondition:    
 *
 * Input:           
 *       
 * Output:       	USINT
 *
 * Side Effects:    
 *
 * Overview:      	This function returns the Attribute ID of the 
 *					Explicit message (if any).
 *
 * Note:          		 
 ********************************************************************/
//#define mRouteGetAttributeID()	(aAttributeID)
#define mRouteGetAttributeID()	(route.attributeID)




#define	mRouteGetInBufferPtr()			(route.pInBuf)
#define	mRouteGetOutBufferPtr()			(route.pOutBuf)
#define mRouteGetInBufferLength()		(route.inBufLen)
#define mRouteGetInBufferDataLength()	(route.inBufDataLen)
#define mRouteGetOutBufferLength()		(route.outBufLen)
#define mRouteGetOutBufferDataLength()	(route.outBufDataLen)



						  




/*********************************************************************
 * Function:        void RoutePutServiceID(USINT serviceCode)
 *
 * PreCondition:    
 *
 * Input:           USINT
 *       
 * Output:       	
 *
 * Side Effects:    
 *
 * Overview:      	This function sets the service code.
 *
 * Note:          	This is useful when the Explicit message handler
 *					must change the service to report an error to the
 *					client.
 ********************************************************************/
//#define mRoutePutServiceID(serviceCode)	(aService = serviceCode)
#define	mRoutePutServiceID(serviceCode)	(route.service = serviceCode)


#define	mRoutePutInBufferPtr(inPtr)				(route.pInBuf = inPtr)
#define	mRoutePutOutBufferPtr(outPtr)			(route.pOutBuf = outPtr)
#define mRoutePutInBufferLength(length)			(route.inBufLen = length)
#define mRoutePutInBufferDataLength(length)		(route.inBufDataLen = length)
#define mRoutePutOutBufferLength(length)		(route.outBufLen = length)
#define mRoutePutOutBufferDataLength(length)	(route.outBufDataLen = length)



	 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产白丝精品91爽爽久久| 亚洲国产一区二区视频| 91丨porny丨户外露出| 美日韩一级片在线观看| 国产精品免费久久久久| 欧美一区二区精品在线| 日本久久一区二区| 国产精品白丝jk白祙喷水网站| 亚洲丰满少妇videoshd| 中文天堂在线一区| 精品电影一区二区三区| 欧美午夜理伦三级在线观看| av不卡在线观看| av毛片久久久久**hd| 亚洲人成在线播放网站岛国| 成人免费毛片aaaaa**| 欧美一区二区三区的| 日韩激情视频在线观看| 中文字幕国产一区| 欧美成人精品3d动漫h| 欧美日韩夫妻久久| 日本韩国视频一区二区| 成人污污视频在线观看| 韩国精品免费视频| 久久99国产精品免费网站| 亚洲精品国产高清久久伦理二区| 欧美高清在线视频| 国产欧美一区二区三区沐欲| 2020国产成人综合网| 精品日产卡一卡二卡麻豆| 日韩欧美色综合网站| 日韩写真欧美这视频| 91麻豆精品国产91久久久久久久久| 91九色最新地址| 在线观看国产一区二区| 色婷婷精品久久二区二区蜜臀av| 亚洲免费观看高清完整版在线 | 久久99热99| 天天综合色天天| 午夜精品免费在线观看| 亚洲成人1区2区| 亚洲不卡一区二区三区| 午夜视频在线观看一区二区| 亚洲大尺度视频在线观看| 日日夜夜精品视频天天综合网| 亚洲国产成人高清精品| 丝瓜av网站精品一区二区| 奇米综合一区二区三区精品视频| 日韩国产在线观看| 国产又黄又大久久| 成人黄色在线网站| 91免费看片在线观看| 欧美在线你懂得| 欧美丰满高潮xxxx喷水动漫| 欧美videos中文字幕| 国产欧美一区二区精品性 | 视频一区在线播放| 午夜国产精品影院在线观看| 国产精品18久久久久久久久久久久| 久久精品夜色噜噜亚洲a∨| 狠狠色丁香久久婷婷综合丁香| 精品国产成人系列| 中文无字幕一区二区三区| 国产精品久久久久久久久快鸭| 亚洲免费三区一区二区| 亚洲大片一区二区三区| 99久久精品国产精品久久| 欧美无砖砖区免费| 欧美大肚乱孕交hd孕妇| 中文字幕精品一区二区三区精品| 亚洲精品videosex极品| 奇米精品一区二区三区在线观看| 久久国产综合精品| 99精品桃花视频在线观看| 91麻豆精品国产91久久久| 久久综合国产精品| 一区二区在线观看av| 久久爱另类一区二区小说| av中文字幕不卡| 日韩一区二区免费在线观看| 国产日韩高清在线| 视频一区二区三区在线| 国产福利一区二区三区视频| 偷偷要91色婷婷| 另类小说视频一区二区| 精品一区二区三区欧美| 成人avav影音| 欧美va亚洲va在线观看蝴蝶网| 自拍偷拍国产精品| 久久99精品国产麻豆婷婷| 91女人视频在线观看| 日韩精品一区国产麻豆| 亚洲一区二区三区四区在线| 国产成人超碰人人澡人人澡| 欧美日韩久久久| 最新欧美精品一区二区三区| 老司机精品视频导航| 欧美在线啊v一区| 国产精品乱码人人做人人爱| 六月丁香综合在线视频| 欧美性一区二区| 亚洲视频免费观看| 国产精品一二三区在线| 7777精品伊人久久久大香线蕉完整版 | 国产一区欧美二区| 欧美日韩在线三级| 亚洲女人****多毛耸耸8| 国产一区二区在线看| 91精品国产色综合久久不卡蜜臀| 亚洲免费电影在线| 成人午夜大片免费观看| 久久久久久久久99精品| 久久精品国产秦先生| 4438x成人网最大色成网站| 亚洲免费色视频| 99国产麻豆精品| 国产日产欧美一区| 激情五月婷婷综合| 精品久久人人做人人爽| 免费黄网站欧美| 在线不卡一区二区| 亚洲1区2区3区视频| 在线影视一区二区三区| 亚洲三级理论片| 91香蕉视频污| 成人免费在线播放视频| 不卡一区二区三区四区| 国产日韩精品一区| 成人免费看黄yyy456| 国产精品伦一区二区三级视频| 国产成人自拍网| 国产清纯在线一区二区www| 国产一区二区精品久久99| 欧美精品一区二区三区很污很色的| 蜜桃av一区二区三区电影| 欧美久久久久中文字幕| 日韩高清国产一区在线| 欧美一区欧美二区| 精品午夜久久福利影院| 久久综合九色综合欧美98| 国内成+人亚洲+欧美+综合在线| 欧美精品一区二区在线观看| 国内精品久久久久影院一蜜桃| 久久综合久久99| 成人av一区二区三区| 亚洲视频在线观看一区| 91黄视频在线观看| 日韩精品成人一区二区三区 | 中文字幕日韩欧美一区二区三区| 国产91对白在线观看九色| 国产欧美在线观看一区| 99精品国产视频| 亚洲国产成人av网| 日韩欧美精品在线视频| 国产成人免费视频网站 | 亚洲一卡二卡三卡四卡| 欧美日韩国产成人在线免费| 日本在线观看不卡视频| 久久综合九色综合欧美98 | 精品国产三级a在线观看| 国产精品系列在线播放| 亚洲精品亚洲人成人网| 欧美精品18+| 国产jizzjizz一区二区| 一区二区三区av电影| 日韩三级中文字幕| 顶级嫩模精品视频在线看| 艳妇臀荡乳欲伦亚洲一区| 91精品中文字幕一区二区三区| 国产一区二区在线观看视频| 亚洲女人的天堂| 精品国产三级a在线观看| 色综合久久久网| 蜜臀99久久精品久久久久久软件| 国产区在线观看成人精品| 精品婷婷伊人一区三区三| 国产福利不卡视频| 亚洲国产日韩综合久久精品| 精品av综合导航| 欧美亚洲一区三区| 国产精品一区在线| 午夜国产不卡在线观看视频| 久久久国产一区二区三区四区小说| 色呦呦国产精品| 国产综合久久久久久鬼色 | 亚洲精品你懂的| 精品久久久久久综合日本欧美| 91免费观看视频在线| 久久国产人妖系列| 亚洲国产视频在线| 国产精品久久国产精麻豆99网站 | 综合网在线视频| 欧美大白屁股肥臀xxxxxx| 色综合色综合色综合色综合色综合| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲欧美偷拍另类a∨色屁股| 精品国产成人系列| 91精品福利在线一区二区三区| 99久久精品免费精品国产| 韩国视频一区二区|