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

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

?? conn3.c

?? microchip公司的DeviceNet協(xié)議桟源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
 *
 * Overview:        Process data for this connection.
 *
 * Note:            This event occurs when the buffer has successfully
 *					placed the requested data on the bus.
 ********************************************************************/
void _Conn3TxEvent(void)
{
	// Set flag indicating data has been placed on the bus
	_txFinFlags.bits.strobe = 1;
	
	// Notify the application
	UsrConnTxDataEvent(3);
}





/*********************************************************************
 * Function:        unsigned char _Conn3ExplicitEvent(void)
 *
 * PreCondition:    none
 *
 * Input:       	none	
 *                  
 * Output:      	unsigned char success of the request
 *
 * Side Effects:    none
 *
 * Overview:        Handle explicit messaging for this instance
 *
 * Note:            None
 ********************************************************************/
unsigned char _Conn3ExplicitEvent(void)
{
	switch(mRouteGetServiceID())
   	{
   		case SRVS_GET_ATTRIB_SINGLE:
   			return (_Conn3GetAttrib());
   		case SRVS_SET_ATTRIB_SINGLE:
   			return (_Conn3SetAttrib());
   	   	default:
   			mRoutePutError(ERR_SERVICE_NOT_SUPPORTED);
   			break;
   	}
		
	return (1);
}


/*********************************************************************
 * Function:        unsigned char _Conn3GetAttrib()
 *
 * PreCondition:    none
 *
 * Input:       	none
 *                  
 * Output:      	unsigned char success of the request
 *
 * Side Effects:    none
 *
 * Overview:        Handle explicit messaging
 *
 * Note:            None
 ********************************************************************/
unsigned char _Conn3GetAttrib(void)
{
	UINT	work;
	USINT 	i;

	switch (mRouteGetAttributeID())
	{
		case	_ATTRIB_STATE:
			mRoutePutByte(uConn3.attrib.state);
			break;
		case	_ATTRIB_INSTANCE_TYPE:
			mRoutePutByte(1);
			break;
		case	_ATTRIB_CLASS_TRIGGER:
			mRoutePutByte(uConn3.attrib.transportClass.byte);
			break;
		case 	_ATTRIB_PRODUCED_CID:
			work.word = (uConn3.attrib.produced_cid.word >> 5);
			mRoutePutByte(work.bytes.LSB);
			mRoutePutByte(work.bytes.MSB);
			break;
		case	_ATTRIB_CONSUMED_CID:
			work.word = (uConn3.attrib.consumed_cid.word >> 5);
			mRoutePutByte(work.bytes.LSB);
			mRoutePutByte(work.bytes.MSB);
			break;	
		case 	_ATTRIB_INITIAL_COMM_CHAR:
			mRoutePutByte(0x02);
			break;
		case	_ATTRIB_PRODUCED_CONN_SIZE:
			mRoutePutByte(uConn3.attrib.produced_con_size.bytes.LSB);
			mRoutePutByte(uConn3.attrib.produced_con_size.bytes.MSB);
			break;
		case	_ATTRIB_CONSUMED_CONN_SIZE:
			mRoutePutByte(uConn3.attrib.consumed_con_size.bytes.LSB);
			mRoutePutByte(uConn3.attrib.consumed_con_size.bytes.MSB);
			break;
		case	_ATTRIB_EXPECTED_RATE:
			mRoutePutByte(uConn3.attrib.expected_packet_rate.bytes.LSB);
			mRoutePutByte(uConn3.attrib.expected_packet_rate.bytes.MSB);
			break;
		case	_ATTRIB_WDT_ACTION:
			mRoutePutByte(0x00);
			break;
		case	_ATTRIB_PRODUCED_CONN_PATH_LEN:
			mRoutePutByte(uConn3.attrib.produced_path_len.bytes.LSB);
			mRoutePutByte(uConn3.attrib.produced_path_len.bytes.MSB);
			break;
		case	_ATTRIB_PRODUCED_CONN_PATH:
			if (mRouteOutLen() > uConn3.attrib.produced_path_len.bytes.LSB)  
			{
				for (i = 0; i < (uConn3.attrib.produced_path_len.bytes.LSB); i++)
				{
					mRoutePutByte(uConn3.attrib.produced_path[i]);
				}
			}
			else
			{
   				mRoutePutError(ERR_REPLY_TOO_LARGE);
			}
			break;
		case	_ATTRIB_CONSUMED_CONN_PATH_LEN:
			mRoutePutByte(uConn3.attrib.consumed_path_len.bytes.LSB);
			mRoutePutByte(uConn3.attrib.consumed_path_len.bytes.MSB);
			break;
		case	_ATTRIB_CONSUMED_CONN_PATH:
			if (mRouteOutLen() > uConn3.attrib.consumed_path_len.bytes.LSB)  
			{
				for (i = 0; i < (uConn3.attrib.consumed_path_len.bytes.LSB); i++)
				{
					mRoutePutByte(uConn3.attrib.consumed_path[i]);
				}
			}
			else
			{
				mRoutePutError(ERR_REPLY_TOO_LARGE);
			}
			break;
		default:
			mRoutePutError(ERR_ATTRIB_NOT_SUPPORTED);
			break;
	}
	return(1);
}




/*********************************************************************
 * Function:        unsigned char _Conn3SetAttrib(void)
 *
 * PreCondition:    none
 *
 * Input:       	none
 *                  
 * Output:      	unsigned char success of the request
 *
 * Side Effects:    none
 *
 * Overview:        Handle explicit messaging
 *
 * Note:            None
 ********************************************************************/
unsigned char _Conn3SetAttrib(void)
{
	unsigned char 	work;
	
	// Ignore the first byte (it is actually the attribute ID) 
	mRouteGetByte();

	switch (mRouteGetAttributeID())
	{	
		case	_ATTRIB_EXPECTED_RATE:
			// Continue only if there is sufficient data
			if (mRouteTestValidInputDataLen(2))
			{
				if (uConn3.attrib.state == _STATE_CONFIGURING)
				{ 
					uConn3.attrib.state = _STATE_ESTABLISHED;
					_establishFlags.bits.strobe = 1;
				}

				// Read in the requested packet rate
				uConn3.attrib.expected_packet_rate.bytes.LSB = mRouteGetByte();
				uConn3.attrib.expected_packet_rate.bytes.MSB = mRouteGetByte();
	
				// Get the ls bits
				work = uConn3.attrib.expected_packet_rate.bytes.LSB & (TICK_RESOLUTION - 1);
	
				// Remove the ls bits from desired resolution
				uConn3.attrib.expected_packet_rate.bytes.LSB &= (~(TICK_RESOLUTION - 1));
				
				// Round up if necessary
				if (work) uConn3.attrib.expected_packet_rate.word += (TICK_RESOLUTION);
	
				// Return the value actually used
				mRoutePutByte(uConn3.attrib.expected_packet_rate.bytes.LSB);
				mRoutePutByte(uConn3.attrib.expected_packet_rate.bytes.MSB);
	
				// Set the timer 4x (section 5-4.4.2)
				uConn3.timer.word = uConn3.attrib.expected_packet_rate.word << 2; 
			}	
			break;
		case	_ATTRIB_CLASS_TRIGGER:
			if (uConn3.attrib.state == _STATE_CONFIGURING)
			{
				if (mRouteTestValidInputDataLen(1))
				{ 
					// To be handled by the app
					UsrConnSetAttribEvent(3);
				}
			}
			else
			{
				mRoutePutError(ERR_OBJECT_STATE_CONFLICT);
			}
			break;
		case	_ATTRIB_PRODUCED_CONN_PATH:
			if (uConn3.attrib.state == _STATE_CONFIGURING)
			{
				if (mRouteTestValidInputDataLen(uConn3.attrib.produced_path_len.bytes.LSB))
				{
					// To be handled by the app
					UsrConnSetAttribEvent(3);
				}
			}
			else
			{
				mRoutePutError(ERR_OBJECT_STATE_CONFLICT);
			}
			break;
		case	_ATTRIB_CONSUMED_CONN_PATH:
			if (uConn3.attrib.state == _STATE_CONFIGURING)
			{
				if (mRouteTestValidInputDataLen(uConn3.attrib.consumed_path_len.bytes.LSB))
				{
					// To be handled by the app
					UsrConnSetAttribEvent(3);
				}
			}
			else
			{
				mRoutePutError(ERR_OBJECT_STATE_CONFLICT);
			}
			break;
		case	_ATTRIB_PRODUCED_CONN_SIZE:
			if (uConn2.attrib.state == _STATE_CONFIGURING)
			{
				if (mRouteTestValidInputDataLen(2))
				{
					// To be handled by the app
					UsrConnSetAttribEvent(3);
				}
			}
			else
			{
				mRoutePutError(ERR_OBJECT_STATE_CONFLICT);
			}
			break;
		case	_ATTRIB_WDT_ACTION:
		case	_ATTRIB_CONSUMED_CONN_SIZE:
		case	_ATTRIB_STATE:
		case	_ATTRIB_INSTANCE_TYPE:
		case 	_ATTRIB_PRODUCED_CID:
		case	_ATTRIB_CONSUMED_CID:
		case 	_ATTRIB_INITIAL_COMM_CHAR:
		case	_ATTRIB_PRODUCED_CONN_PATH_LEN:
		case	_ATTRIB_CONSUMED_CONN_PATH_LEN:
			mRoutePutError(ERR_ATTRIB_NOT_SETTABLE);
			break;
			
		default:
			mRoutePutError(ERR_ATTRIB_NOT_SUPPORTED);
			break;
	}
	return(1);
}

// SUPPORT_BIT_STROBED
#endif 	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷偷要91色婷婷| 日本韩国欧美三级| 日本成人超碰在线观看| 亚洲综合精品久久| 性欧美疯狂xxxxbbbb| 亚洲午夜影视影院在线观看| 欧美精品欧美精品系列| 91九色02白丝porn| 欧美中文字幕亚洲一区二区va在线 | 色婷婷综合中文久久一本| 成人av资源站| 欧美在线综合视频| 欧美日韩一区成人| 精品捆绑美女sm三区| 26uuu国产一区二区三区| 久久久99久久| 亚洲日本青草视频在线怡红院| 亚洲日本青草视频在线怡红院| 夜夜爽夜夜爽精品视频| 日韩黄色小视频| 精品在线一区二区| 国产乱子伦视频一区二区三区 | 午夜激情综合网| 美日韩一区二区三区| 亚洲妇熟xx妇色黄| 婷婷六月综合网| 国产乱子伦视频一区二区三区| 成人不卡免费av| 欧美在线观看18| 日韩一区二区三| 国产精品国产三级国产普通话三级 | 精品成人在线观看| 欧美成人a∨高清免费观看| 久久新电视剧免费观看| 自拍偷拍亚洲欧美日韩| 麻豆91免费看| 欧美午夜电影网| 国产视频一区不卡| 日韩精品久久久久久| 国产电影精品久久禁18| 欧美三级午夜理伦三级中视频| 精品国产百合女同互慰| 一区二区激情视频| 国产精一区二区三区| 欧美另类久久久品| 中文字幕在线一区| 国产一区美女在线| 91精品国产高清一区二区三区 | 91蜜桃视频在线| 欧美一区二区三区在线观看 | 亚洲一区二区三区三| 精品亚洲免费视频| 精品视频色一区| 日韩美女视频一区二区 | 久久综合一区二区| 日日噜噜夜夜狠狠视频欧美人| 成人丝袜高跟foot| 精品久久久久久综合日本欧美| |精品福利一区二区三区| 极品销魂美女一区二区三区| 欧美三级日韩三级| 亚洲视频图片小说| 97久久精品人人做人人爽| 欧美日韩日日摸| 综合色中文字幕| 成人午夜av在线| 国产亚洲一本大道中文在线| 日韩电影在线免费| 欧美色网站导航| 亚洲一区二区三区在线| 91麻豆精品视频| 亚洲激情自拍偷拍| 91网站在线观看视频| 国产精品女同一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 成人av影院在线| 国产午夜久久久久| 国产成人在线免费观看| 久久久亚洲国产美女国产盗摄 | 国产精品久久久久影视| 国产suv精品一区二区883| 久久青草欧美一区二区三区| 极品尤物av久久免费看| 久久青草国产手机看片福利盒子| 国内成人精品2018免费看| 2023国产精品自拍| 久久国产尿小便嘘嘘尿| 久久综合九色综合97_久久久| 国内精品视频一区二区三区八戒| 日韩欧美久久久| 国产在线播精品第三| 久久精品日韩一区二区三区| 国产成人精品www牛牛影视| 国产精品国产三级国产aⅴ无密码| 成人91在线观看| 香蕉影视欧美成人| 欧美一区二区久久| 成人午夜视频网站| 亚洲国产中文字幕在线视频综合 | 日本va欧美va瓶| 欧美mv日韩mv亚洲| 成人污污视频在线观看| 一区二区三区不卡视频在线观看| 在线免费观看日韩欧美| 蜜臀久久久99精品久久久久久| 精品美女一区二区| 91免费国产在线| 男男gaygay亚洲| 中文字幕一区在线观看| 欧美日韩激情在线| 懂色av中文一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美va亚洲va| 欧美亚洲丝袜传媒另类| 狠狠色狠狠色合久久伊人| 亚洲私人黄色宅男| 日韩精品一区二区三区swag| 99麻豆久久久国产精品免费| 欧美aaa在线| 亚洲精品乱码久久久久久| 欧美一级高清片| 色婷婷av一区二区三区之一色屋| 天天操天天综合网| 亚洲少妇中出一区| 久久久亚洲精华液精华液精华液| 欧美日韩一级片网站| 风流少妇一区二区| 久久成人18免费观看| 亚洲永久精品大片| 亚洲欧美一区二区在线观看| 精品国精品国产尤物美女| 色欧美乱欧美15图片| 成人一区在线看| 国产一区二区三区黄视频 | 欧美一区二区三区喷汁尤物| 成人激情动漫在线观看| 久久超碰97人人做人人爱| 亚洲国产精品综合小说图片区| 国产精品乱码久久久久久| 久久色在线观看| 日韩一区二区三区av| 欧美精品久久99| 欧美色综合网站| 欧美日韩日日摸| 欧美三级欧美一级| 欧美日韩在线播放三区四区| 一本一道久久a久久精品| 99视频超级精品| 丁香激情综合国产| 成人激情免费视频| 成人免费电影视频| 成人动漫av在线| 99久久久久免费精品国产| 国产精品综合网| 国产成人鲁色资源国产91色综| 久久99精品久久久久婷婷| 蜜桃av一区二区三区电影| 蜜臂av日日欢夜夜爽一区| 日本三级亚洲精品| 精品在线播放免费| 国内不卡的二区三区中文字幕 | 国产色综合久久| 国产精品久久午夜夜伦鲁鲁| 中文在线免费一区三区高中清不卡| 国产日本欧美一区二区| 国产精品毛片久久久久久| 综合在线观看色| 亚洲1区2区3区视频| 日本不卡视频在线观看| 久久99精品一区二区三区| 国产69精品久久久久毛片| 99久久精品久久久久久清纯| 99久久精品国产导航| 91久久线看在观草草青青| 波多野结衣一区二区三区| 99视频一区二区三区| 欧美日韩一区二区三区在线看 | 国产麻豆精品在线观看| 国产98色在线|日韩| 色综合久久中文综合久久97| 欧美三区在线视频| 精品国产人成亚洲区| 亚洲欧美在线视频观看| 亚洲超碰精品一区二区| 精品一区二区三区在线视频| 成人高清免费在线播放| 欧美日韩激情一区二区三区| 精品乱人伦一区二区三区| 亚洲欧美日韩在线| 久久99精品视频| 91免费在线播放| 精品精品国产高清a毛片牛牛| 欧美国产激情一区二区三区蜜月| 亚洲电影第三页| 成人av在线网站| 欧美tickling网站挠脚心| 一区二区激情小说| 国产成人av资源| 日韩色在线观看| 一区二区三区美女视频|