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

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

?? protocol.c

?? 用來pdu編解碼
?? C
?? 第 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[F_LENGTH_BEGIN] = 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| 欧美亚洲国产怡红院影院| 在线成人av影院| 一区二区三区四区在线免费观看| 国产寡妇亲子伦一区二区| 成人免费视频国产在线观看| 欧美三级乱人伦电影| 一区av在线播放| 91久久奴性调教| 一区二区三区加勒比av| 色综合天天综合网国产成人综合天| 国产精品系列在线| 成人精品国产一区二区4080| 欧美国产日韩精品免费观看| 成人国产精品免费观看视频| 国产精品视频观看| 国产大陆精品国产| 精品少妇一区二区三区在线视频| 久久激情五月激情| 久久久久久久久久久电影| 国产福利一区二区三区视频| 国产精品全国免费观看高清| 一本到不卡精品视频在线观看| 亚洲欧美日韩一区二区| 欧美日韩日日摸| 免费看日韩精品| 亚洲国产精品二十页| youjizz久久| 国产精品白丝在线| 欧美精品粉嫩高潮一区二区| 久久精品国产成人一区二区三区| 精品第一国产综合精品aⅴ| 国产黄人亚洲片| 亚洲激情六月丁香| 日韩欧美国产成人一区二区| 免费久久99精品国产| 国产日产亚洲精品系列| 97se亚洲国产综合在线| 免费成人性网站| 中文字幕中文字幕在线一区 | 捆绑调教美女网站视频一区| 国产目拍亚洲精品99久久精品| 91原创在线视频| 午夜精品福利在线| 91精品国产福利| 日本欧美在线观看| 国产精品福利一区| 日韩欧美一级片| 91香蕉视频mp4| 麻豆极品一区二区三区| 国产精品日韩成人| 91精品国产欧美日韩| 东方欧美亚洲色图在线| 亚州成人在线电影| 欧美国产禁国产网站cc| 5月丁香婷婷综合| 成人深夜视频在线观看| 亚洲一区二区三区四区的| 久久综合五月天婷婷伊人| 色先锋久久av资源部| 精品一区二区三区在线播放视频| 亚洲欧美电影院| 久久综合九色综合欧美98| 欧美日韩国产综合一区二区三区| 成人精品免费视频| 蜜桃视频在线一区| 亚洲欧美日韩中文字幕一区二区三区 | 91丨国产丨九色丨pron| 黑人巨大精品欧美一区| 日韩毛片视频在线看| 久久精品免费在线观看| 制服丝袜av成人在线看| 色综合 综合色| 成a人片亚洲日本久久| 麻豆91免费观看| 日韩国产成人精品| 亚洲一区二区免费视频| 久久久久久久久久久久久久久99 | 日韩欧美的一区二区| av亚洲精华国产精华| 国产在线不卡一卡二卡三卡四卡| 亚洲国产精品久久一线不卡| 亚洲欧美一区二区三区孕妇| 欧美国产成人在线| 精品国产电影一区二区| 欧美一卡二卡三卡四卡| 色一情一伦一子一伦一区| 狠狠色综合色综合网络| 老司机免费视频一区二区| 久久不见久久见中文字幕免费| 天天做天天摸天天爽国产一区| 亚洲综合一区二区精品导航| 亚洲激情图片小说视频| 亚洲免费资源在线播放| 久久久91精品国产一区二区精品| 欧美日韩国产天堂| 欧美色综合影院| 欧美日韩国产一区二区三区地区| 一本色道久久综合亚洲91| 91老师片黄在线观看| 91日韩在线专区| 欧洲色大大久久| 成人午夜视频福利| 国产精品一区二区三区99| 国模一区二区三区白浆| 国产美女精品在线| 成人高清视频免费观看| av欧美精品.com| 色视频成人在线观看免| 日本韩国一区二区| 在线视频一区二区三| 欧美日韩不卡在线| 日韩视频在线你懂得| 精品国产乱码久久久久久免费| 欧美精品一区二区三区在线| 久久九九久精品国产免费直播| 国产拍欧美日韩视频二区| 国产精品国产成人国产三级| 亚洲免费观看在线视频| 午夜av区久久| 国内精品久久久久影院薰衣草| 成人午夜视频福利| 成人av手机在线观看| 国产成人自拍网| 91麻豆视频网站| 91精品国产手机| 国产亚洲精品超碰| 亚洲免费在线视频一区 二区| 亚洲欧洲一区二区三区| 天涯成人国产亚洲精品一区av| 国产美女在线观看一区| 91麻豆免费视频| 日韩美女在线视频| 椎名由奈av一区二区三区| 日韩国产精品久久| 粉嫩av一区二区三区| 欧美影院一区二区| 精品国产免费一区二区三区香蕉| 欧美成人一级视频| 亚洲免费看黄网站| 精品一区二区三区在线播放| 色呦呦网站一区| 久久综合一区二区| 一区二区三区中文字幕在线观看| 国产一区二区在线影院| 日韩一区二区三区视频在线观看| 一区二区三区中文字幕| 大陆成人av片| 国产欧美精品一区| 国产麻豆精品theporn| 日韩欧美久久久| 日本91福利区| 欧美日韩国产精品成人| 国产精品对白交换视频| 成人免费毛片aaaaa**| 久久久久国产成人精品亚洲午夜| 男女男精品视频| 91麻豆精品久久久久蜜臀| 一区二区激情小说| 一本一本久久a久久精品综合麻豆| 亚洲国产精品av| 国产v日产∨综合v精品视频| 久久人人超碰精品| 久久99精品一区二区三区 | 一本久久a久久免费精品不卡| 欧美国产日韩在线观看| 成人三级在线视频| 国产精品传媒入口麻豆| 91亚洲国产成人精品一区二三| 亚洲国产精品黑人久久久| 国产成人精品三级麻豆| 日本一区二区免费在线观看视频| 国产剧情一区二区| 国产日韩精品一区二区三区| 成人性生交大片| 亚洲欧洲日本在线| 在线影院国内精品| 午夜精品免费在线观看| 911精品国产一区二区在线| 免费不卡在线观看| 日韩午夜激情视频| 国产一区91精品张津瑜| 国产精品九色蝌蚪自拍| 欧美综合视频在线观看| 午夜精品久久久久久久蜜桃app| 制服丝袜激情欧洲亚洲| 极品少妇xxxx偷拍精品少妇| 国产欧美日本一区二区三区| 99re在线精品| 日韩精品1区2区3区| 欧美精品一区视频| 色综合久久精品| 日韩**一区毛片| 中文字幕精品一区二区精品绿巨人 | 911精品国产一区二区在线| 久久精品噜噜噜成人88aⅴ| 国产亚洲欧美在线| 日本精品一区二区三区四区的功能| 亚洲国产毛片aaaaa无费看| 日韩免费福利电影在线观看|