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

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

?? protocol.c.bak

?? 用來pdu編解碼
?? BAK
?? 第 1 頁 / 共 3 頁
字號:
	//設置當前工作狀態
	SysState.CarWorkState = Data[0];
	
	switch (SysState.CarWorkState)
	{
		case WS_PT_CLASS_1_LOCK:
			SysState.fClass1Loack.RemainTime = WorkPara.sClass1LockDelay_m;
			SysState.fClass1Loack.flag = 0;
			SysState.fClass1Loack.TimeEnabled = 1;
			break;
		case WS_PT_CLASS_2_LOCK:
			SysState.fClass2Loack.flag = 1;
			break;				
	}
		
	//返回車輛狀態消息
	SysState.fSendWorkState = 1;			
}

//**************************************************************************
//函數:tmLoginMsg
//功能: 生成終端注冊消息
//輸出:Msg=消息,Msgtype=消息類型
//返回:0=消息無效,>0=消息長度
//**************************************************************************
int tmLoginMsg( unsigned char *Msg)
{
	unsigned char *pMsg = Msg;
	sprintf(pMsg , BasicPara.TM_Time);//生產日期
	
	pMsg +=TM_TIMELENGTH;

	sprintf(pMsg , BasicPara.TM_type);//型號
	pMsg +=TM_TYPELENGTH;

	sprintf(pMsg , BasicPara.TM_id);//編號
	pMsg +=TM_IDLENGTH;

	return (abs(Msg - pMsg));			
}
//**************************************************************************
//函數:tmCarStateMsg
//功能: 生成車輛狀態消息
//輸出:Msg=消息
//返回:0=消息無效,>0=消息長度
//**************************************************************************
int tmCarStateMsg( unsigned char *Msg)
{
	int len;
	unsigned char *pMsg = Msg;
	
	*pMsg++ = CS_PT_SENSOR;

	for(len=0; len < SENSORSNUM; len++)
	{
		*pMsg++ = SysState.SensorsValue[len] / 256;
		*pMsg++ = SysState.SensorsValue[len] % 256;		
	}

	
	*pMsg++ = CS_PT_CARSTATE;
	*pMsg++ = SysState.SwitchState[0];
	*pMsg++ = SysState.SwitchState[1];
	
	*pMsg++ = CS_PT_GPS;
	sprintf((char*)pMsg, SysState.gpsInfo);//gps信息
	pMsg +=strlen(SysState.gpsInfo);
	return  (abs(Msg - pMsg));				
}
//**************************************************************************
//函數:tmCarStateMsg
//功能: 生成工作參數查詢/設置響應消息
//輸出:Msg=消息,Msgtype=消息類型
//返回:0=消息無效,>0=消息長度
//**************************************************************************
int tmGetWorkParaMsg( unsigned char *Msg)
{
	int kk;
	unsigned char *pMsg = Msg;
		
	*pMsg++ = WP_PT_COMTYPE;
	*pMsg++ = BasicPara.ComuMode;//通信模式	

	//中心gsm號碼
	*pMsg++ = WP_PT_CENTNUM;
	sprintf( pMsg, BasicPara.CenterGsmNum );
	pMsg += CENTERNUMLEN;

	//中心IP和port
	*pMsg++ = WP_PT_CENTIP;
	*pMsg++ = BasicPara.CenterIP[0][0];
	*pMsg++ = BasicPara.CenterIP[0][1];
	*pMsg++ = BasicPara.CenterIP[0][2];
	*pMsg++ = BasicPara.CenterIP[0][3];	
	*pMsg++ = BasicPara.CenterPort[0]/ 256;
	*pMsg++ = BasicPara.CenterPort[0]% 256;	
	
	//終端注冊消息發送間隔時間
	*pMsg++ = WP_PT_MSGPERIOD;
	*pMsg++ = WorkPara.sLoginMsgPeriod / 256;
	*pMsg++ = WorkPara.sLoginMsgPeriod % 256;
	
	//終端報警消息發送間隔時間
	*pMsg++ = WP_PT_WARNPERIOD;
	*pMsg++ = WorkPara.sWarnMsgPeriod / 256;
	*pMsg++ = WorkPara.sWarnMsgPeriod % 256;

	//16路傳感器報警門限
	*pMsg++ = WP_PT_SENSORSBOUND;
	for(kk=0; kk < SENSORSNUM; kk++)
	{
		*pMsg++ = WorkPara.SensorsBound[kk] / 256;
		*pMsg++ = WorkPara.SensorsBound[kk] % 256;		
	}
	
	//傳感器報警使能
	*pMsg++ = WP_PT_SENSORWARNEN;
	*pMsg++ = WorkPara.SensorsWarnEnabled[0];
	*pMsg++ = WorkPara.SensorsWarnEnabled[1];
	
	//開關量正常狀態
	*pMsg++ = WP_PT_WAITCHSTATE;
	*pMsg++ = WorkPara.SwitchNomalState[0];
	*pMsg++ = WorkPara.SwitchNomalState[1];
	
	//開關量報警使能
	*pMsg++ = WP_PT_WAITCHWARNEN;
	*pMsg++ = WorkPara.SwitchWarnEnable[0];
	*pMsg++ = WorkPara.SwitchWarnEnable[1];
	
	//活動范圍
	//......		
	
	return (abs(Msg - pMsg));	
}
//**************************************************************************
//函數:tmCarStateMsg
//功能: 生成工作狀態查詢/設置響應消息
//輸出:Msg=消息,Msgtype=消息類型
//返回:0=消息無效,>0=消息長度
//**************************************************************************
int tmGetWorkStateMsg( unsigned char *Msg)
{
	*Msg = SysState.CarWorkState;
	
	return 1;		
}
//**************************************************************************
//函數:tmCreateMsg
//功能: 生成消息/指示
//輸入:主功能碼和子功能碼
//輸出:消息
//返回:0=消息無效,>0=消息長度
//**************************************************************************
void tmCreateMsg( TFrame *Frame)
{

	unsigned char *pMsg = Frame->msg; 
	uint16_t ck;
	
	//添加幀頭
	myCopy( F_HEAD_STR, pMsg, 0, F_HEAD_LENGTH);	
	pMsg += F_HEAD_LENGTH;
	Frame->msglen = F_HEAD_LENGTH;
	
	//添加ID
	myCopy( BasicPara.TM_Time, pMsg, 0, TM_TIMELENGTH);	
	pMsg += TM_TIMELENGTH;
	Frame->msglen += TM_TIMELENGTH;
	myCopy( BasicPara.TM_type, pMsg, 0, TM_TYPELENGTH);	
	pMsg += TM_TYPELENGTH;
	Frame->msglen += TM_TYPELENGTH;
	myCopy( BasicPara.TM_id, pMsg, 0, TM_IDLENGTH);	
	pMsg += TM_IDLENGTH;	
	Frame->msglen += TM_IDLENGTH;
	//添加分段
	*pMsg++ = '0';
	Frame->msglen++;
	//添加幀長
	*pMsg++ = '0';	
	Frame->msglen++;
	//添加幀主類型
	*pMsg++ = Frame->type;
	Frame->msglen++;
	//添加幀子類型
	*pMsg++ = Frame->code;	
	Frame->msglen++;

	//添加數據段	
	switch (Frame->type)
	{
		case F_TYPE_RESPOND:
					switch(Frame->code)
					{
						//注冊消息
						case F_CODE_LOGIN:							
							Frame->msglen +=tmLoginMsg(pMsg);
							break;	
						//車輛狀態消息
						case F_CODE_CARSTATE:							
							Frame->msglen +=tmCarStateMsg(pMsg);
							break;	
						//工作參數查詢響應消息					
						case F_CODE_GETWORKPARA:							
							Frame->msglen +=tmGetWorkParaMsg(pMsg);
							break;			
						//工作參數設定響應消息			
						case F_CODE_SETWORKPARA:							
							Frame->msglen +=tmGetWorkParaMsg(pMsg);
							break;	
						//工作狀態查詢響應消息				
						case F_CODE_GETWORKSTATE:							
							Frame->msglen +=tmGetWorkStateMsg(pMsg);
							break;
						//工作狀態設定響應消息							
						case F_CODE_SETWORKSTATE:							
							Frame->msglen +=tmGetWorkStateMsg(pMsg);
							break;	
					}			
					break;				
		case F_TYPE_NOTE:break;		
	}	
	
	//計算校驗和
	ck = cksum(Frame->msg, Frame->msglen);

	Frame->msg[Frame->msglen++] = ck / 256;
	Frame->msg[Frame->msglen++] = ck % 256;
	
	Frame->msg[Frame->msglen] = Frame->msglen;
}

//**************************************************************************
//從source的beginindex開始拷貝degits字節到dest
//輸入:source=源字符串;beginindex=起始位置(從0開始算)
//      dest=目標字符串; degits=請求字節數
//返回:實際拷貝的字節數
//dest以'\0'結束
//**************************************************************************
int myCopy(char *source , char *dest , int beginindex ,int degits)
{
	int n ;
	int len ;
	len = strlen(source) ;
	if (degits>=(len-beginindex))
	{
		for(n=beginindex;n<len;n++)
			*(dest++)=source[n];
		*dest='\0';
			
		return (len-beginindex) ;	
		
	}else
	{
		for(n=beginindex;n<(degits+beginindex);n++)
			*(dest++)=source[n];
		*dest='\0';
			
		return degits ;	
		
	}		
}
//***************************************************************************
//尋找字符c在PStr中第Num次出現的位置
//返回:	=-1 不存在
//		>-1 c在PStr中第Num次出現的位置
//**************************************************************************
int FindeCharInStr ( char* PStr , int nSrcLength ,int cNum , char c ) 
{
		int i ,FindeCharInStr = -1 ;
		for(i = 0 ; i<nSrcLength;i++ , PStr++)
		{
			if (*PStr==c)
			{
				cNum-- ;
				if (cNum < 1 )
				{
					FindeCharInStr = i ;
					break ;		
				}
			}	
		}
		return FindeCharInStr ;
}

//void main(void)
//{
//////////////////////////////////////////////////////////////////////////////
//
//	ParaInit();
//
//    centSimunator("ctGetCarState");
//	tmEventProcess();
//    centSimunator("ctSetWorkPara");
//	tmEventProcess();
//    centSimunator("ctSetWorkState");
//	tmEventProcess();
//    centSimunator("ctNoteTmlogin");
//	tmEventProcess();
//    centSimunator("ctGetWorkState");
//	tmEventProcess();
//    centSimunator("ctGetWorkPara");
//    
//	tmEventProcess();		
//}
int ctSetWorkPara(unsigned char *msg)
{
					unsigned char *pcmd=msg;
					int jj;
					
					
					//設置工作參數
					*pcmd++ = '#';
					*pcmd++ = 'Z';
					*pcmd++ = 'F';
					*pcmd++ = '>';
						
					*pcmd++ = '0';
					*pcmd++ = '7';
					*pcmd++ = '0';
					*pcmd++ = '6';
					*pcmd++ = '1';
					*pcmd++ = '4';
					
					*pcmd++ = '0';
					*pcmd++ = '0';
					*pcmd++ = '0';
					*pcmd++ = '1';
					
					*pcmd++ = '0';
					*pcmd++ = '0';
					*pcmd++ = '0';
					*pcmd++ = '1';	
					*pcmd++ = '0';
					*pcmd++ = '1';			
					//分段
					*pcmd++ = '0';
					//幀長
					*pcmd++ = 'F';
					//type
					*pcmd++ = F_TYPE_COMMD;
					//code
					*pcmd++ = F_CODE_SETWORKPARA;

	
					*pcmd++ = WP_PT_COMTYPE;
					*pcmd++ = 1;//通信模式	
					
					*pcmd++ = WP_PT_CENTNUM;
					myCopy( BasicPara.CenterGsmNum, pcmd ,0 ,CENTERNUMLEN);

					pcmd += CENTERNUMLEN;

					*pcmd++ = WP_PT_CENTIP;
					//中心IP和端口
					*pcmd++ = 192;
					*pcmd++ = 168;
					*pcmd++ = 2;
					*pcmd++ = 3;
					
					*pcmd++ = 3689/256;
					*pcmd++ = 3689%256;
					
					//終端消息發送間隔時間
					*pcmd++ = WP_PT_MSGPERIOD;
					*pcmd++ = 1;
					*pcmd++ = 1;
					
					//終端報警消息發送間隔時間
					*pcmd++ = WP_PT_WARNPERIOD;
					*pcmd++ = 1;
					*pcmd++ = 2;

					//16路傳感器報警門限
					*pcmd++ = WP_PT_SENSORSBOUND;
					for(jj=0; jj < 16; jj++)
					{
						*pcmd++ = 1;
						*pcmd++ = jj;
					}

					//傳感器報警使能
					*pcmd++ = WP_PT_SENSORWARNEN;
					*pcmd++ = 1;
					*pcmd++ = 2;
					
					//開關量正常狀態值
					*pcmd++ = WP_PT_WAITCHSTATE;
					*pcmd++ = 0xff;
					*pcmd++ = 0;
	
					//開關量報警使能
					*pcmd++ = WP_PT_WAITCHWARNEN;
					*pcmd++ = 0;
					*pcmd++ = 0xff;
								
					msg[F_LENGTH_BEGIN] = 71+26;
										
//					centFrameDeal(cmd , cmd[F_LENGTH_BEGIN] );
					return msg[F_LENGTH_BEGIN];	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ原创 | 欧美日韩国产系列| 欧美丰满少妇xxxbbb| 精品嫩草影院久久| 中文字幕欧美一区| 日韩精品国产精品| 国产成人免费在线视频| 在线亚洲高清视频| 精品国产伦一区二区三区观看方式| 久久久久国产精品麻豆ai换脸 | bt欧美亚洲午夜电影天堂| 欧美艳星brazzers| 久久亚洲春色中文字幕久久久| 国产精品的网站| 麻豆国产精品777777在线| 成熟亚洲日本毛茸茸凸凹| 欧美日韩国产免费一区二区| 国产欧美日韩亚州综合| 亚洲777理论| 成人激情视频网站| 日韩欧美中文字幕一区| 亚洲欧洲av色图| 国产永久精品大片wwwapp| 中文字幕亚洲不卡| 亚洲精品中文在线| 国产专区欧美精品| 欧美日韩一区二区三区高清| 国产午夜精品福利| 蜜臀久久久99精品久久久久久| 99久久久无码国产精品| 精品美女一区二区三区| 亚洲精品免费在线观看| 国产成人综合在线| 日韩免费福利电影在线观看| 亚洲精选一二三| 高清在线不卡av| 精品国产第一区二区三区观看体验| 一区二区三区.www| 成人av免费在线观看| 欧美高清一级片在线| 亚洲乱码日产精品bd| 国产成人一区二区精品非洲| 日韩欧美国产三级| 亚洲一区二区中文在线| 91影院在线观看| 国产精品久久看| 国产jizzjizz一区二区| 精品精品国产高清一毛片一天堂| 亚洲成人动漫一区| 在线观看一区二区精品视频| 亚洲欧洲一区二区在线播放| 国产精品1区二区.| 精品国产网站在线观看| 蜜桃视频在线观看一区二区| 91精品国产高清一区二区三区| 亚洲一区二区偷拍精品| 色婷婷av一区| 一区二区三区精品视频在线| 成人激情小说乱人伦| 国产精品日韩成人| 成人一区在线看| 国产欧美日本一区视频| 国产盗摄精品一区二区三区在线| 久久只精品国产| 国产呦精品一区二区三区网站| 欧美v日韩v国产v| 精品在线你懂的| 久久免费精品国产久精品久久久久| 美女看a上一区| www久久精品| 精品在线视频一区| 国产亚洲va综合人人澡精品| 精品亚洲aⅴ乱码一区二区三区| 欧美一区二区三区视频在线观看 | 欧美一区二区视频在线观看 | 欧美一区二区观看视频| 日本中文在线一区| 欧美精品一区二区三| 国产中文字幕一区| 国产精品污网站| 91亚洲精品一区二区乱码| 一区二区三区免费在线观看| 日本丶国产丶欧美色综合| 亚洲综合色婷婷| 欧美一区二区三区色| 免费在线视频一区| 欧美精品一区二区久久婷婷| 国产激情偷乱视频一区二区三区| 日本一二三不卡| 91视视频在线观看入口直接观看www | 精品视频在线视频| 天天操天天干天天综合网| 欧美一区二区三区色| 国产美女在线精品| 国产精品久久久久永久免费观看| 色综合久久久久综合99| 亚洲风情在线资源站| 精品国产网站在线观看| 成人av在线网| 亚洲国产精品综合小说图片区| 91精品国产欧美一区二区18| 国产精品一区二区视频| 亚洲欧美怡红院| 欧美色图片你懂的| 久久超碰97中文字幕| 国产精品乱人伦一区二区| 色综合中文字幕国产 | 欧美日本高清视频在线观看| 麻豆国产欧美日韩综合精品二区| 国产日韩av一区二区| 色婷婷久久综合| 精品一区二区三区久久久| 国产精品伦一区二区三级视频| 欧美午夜精品一区二区三区| 久久国产精品一区二区| 综合精品久久久| 欧美一区二区三级| 成人av资源站| 奇米精品一区二区三区在线观看 | 91在线观看视频| 全国精品久久少妇| 中文字幕一区二区三区不卡在线| 8v天堂国产在线一区二区| 成人性生交大片免费看视频在线| 亚洲成人一二三| 国产精品无圣光一区二区| 91精品免费观看| 北岛玲一区二区三区四区| 三级一区在线视频先锋 | 99re视频这里只有精品| 日韩精品一区第一页| 国产精品女人毛片| 欧美日韩的一区二区| 国产99一区视频免费| 五月天丁香久久| 亚洲日本丝袜连裤袜办公室| 欧美精品一区二区久久久| 欧美挠脚心视频网站| 丰满白嫩尤物一区二区| 美女在线观看视频一区二区| 亚洲精品免费播放| 国产日韩欧美激情| 国产成人免费视频一区| 亚洲欧美综合色| 久久久久成人黄色影片| 欧美丰满少妇xxxxx高潮对白| 99久久精品国产导航| 国产精品自拍毛片| 日韩精品1区2区3区| 亚洲综合一区二区三区| 国产精品萝li| 久久久久久久网| 精品日产卡一卡二卡麻豆| 欧美四级电影在线观看| 91浏览器在线视频| 国产v日产∨综合v精品视频| 美女脱光内衣内裤视频久久影院| 一区二区三区四区高清精品免费观看 | 亚洲综合久久久久| 亚洲欧美综合另类在线卡通| 欧美国产欧美亚州国产日韩mv天天看完整 | 一区二区三区在线播放| 国产精品久久久一本精品 | 不卡的电视剧免费网站有什么| 日韩高清不卡一区二区三区| 亚洲一区在线观看网站| 亚洲女子a中天字幕| 综合在线观看色| 亚洲欧洲精品天堂一级| 国产精品免费人成网站| 国产午夜精品理论片a级大结局| 精品国产免费一区二区三区四区 | 精品制服美女丁香| 欧美aaa在线| 久久国产欧美日韩精品| 日韩黄色免费网站| 日韩精品一区第一页| 日韩精品电影在线| 免费人成网站在线观看欧美高清| 石原莉奈一区二区三区在线观看| 视频一区欧美日韩| 日本大胆欧美人术艺术动态| 日本亚洲三级在线| 麻豆精品久久精品色综合| 久久精品国产一区二区三区免费看 | 色噜噜偷拍精品综合在线| 色菇凉天天综合网| 欧美中文字幕一区二区三区| 日本高清无吗v一区| 欧美日本在线一区| 日韩欧美国产电影| 欧美成人激情免费网| 国产亚洲欧美日韩日本| 中文字幕乱码久久午夜不卡| 国产精品美女www爽爽爽| 亚洲三级电影网站| 亚洲v中文字幕| 乱一区二区av| 国v精品久久久网| 色妞www精品视频|