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

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

?? busdispatch.c

?? 基于嵌入式linux下
?? C
?? 第 1 頁 / 共 3 頁
字號:
	#include "dispatch.h"

const char *PPP_InitOnFile="/etc/ppp/ppp-init";///etc/ppp/ppp-on";
const char *PPP_OffFile="/etc/ppp/ppp-off";
const char *GPSFile = "/bus/dat/gpsdata.dat";
const char *APCFile = "/bus/dat/passenger.dat";
const char *CRFile = "/bus/dat/carstate.dat";
char *SocketServer;
int SocketPort;
int RegTimes ;
unsigned short CurCarState;
time_t Begin;

Package_Info commInter;


int Dispatch_MsgHandle(char *tmpbuf,struct sockaddr_in echoServAddr,int SockFD)
{
	unsigned short MsgID,tmpInfo;
	
	GPS_Info LocalCurGPS_Info;
	Dispatch_Info LocalDispatch_Info;
	char tmpGps[25],LongP[4],SpeedH[2],Dispatch[3];
	char ServerIP[16],Port[6],GPSID[13],ServerPort[22];
	int i,j;
	
	MsgID=BytesToUshort(tmpbuf,0);

	switch(MsgID)
	{
		case 1:					//System Halt down
			break;
		case 7:					//KeyB message(報警或內置業務信息)
			for(i=0;i<4;i++)
			{
				printf("%02x ",tmpbuf[i]&0xff);
			}
			printf("/n");
			memset(&commInter,0,sizeof(Package_Info));
			memset(tmpGps,0,sizeof(tmpGps));
			
			IPC_ProcState_Read(PROCID_GPS,CurGPS_Info,&LocalCurGPS_Info);
			
			IPC_ProcState_Read(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
			
		    commInter.BeginEnd=HEAD_GPS_PACKAGE;
		    commInter.ByteLength=0x06;
		    memcpy(commInter.SerialNum,GPSID_Send,12);
		    commInter.AppType=0x16;
		    commInter.OperationNo=0x3F;
		    commInter.SerialNo=staticSendSeriNO;
		    commInter.DataType=0x02;
		    commInter.DataLength=0x19;
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.longitude,LongP);
		    
		    tmpGps[0]=LongP[3];
		    tmpGps[1]=LongP[2];
		    tmpGps[2]=LongP[1];
		    tmpGps[3]=LongP[0];
		    
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.latitude,LongP);
		    
		    tmpGps[4]=LongP[3];
		    tmpGps[5]=LongP[2];
		    tmpGps[6]=LongP[1];
		    tmpGps[7]=LongP[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.speed,SpeedH);
		    
		    tmpGps[8]=SpeedH[1];
		    tmpGps[9]=SpeedH[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.direction,SpeedH);
		    
		    tmpGps[10]=SpeedH[1];
		    tmpGps[11]=SpeedH[0];
		    
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.datetime,LongP);
		    
		    tmpGps[12]=LongP[3];
		    tmpGps[13]=LongP[2];
		    tmpGps[14]=LongP[1];
		    tmpGps[15]=LongP[0];
		    
		    //報警標志
		    if (tmpbuf[2]==1)
		    {
			    //CInt16ToBytes((1 << (tmpbuf[3]-1)+LocalDispatch_Info.CarState),SpeedH);
	    		CInt16ToBytes(tmpbuf[3],SpeedH);
	    		
			    tmpGps[16]=SpeedH[1];
			    tmpGps[17]=SpeedH[0];
			    
			    CurCarState=tmpbuf[3];
			    
			    LocalDispatch_Info.CarState=((1 << (tmpbuf[3]-1)) | LocalDispatch_Info.CarState);
			    
			    time(&(LocalDispatch_Info.Proc_Info.ctime));
			    IPC_ProcState_Write(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
			}
			else
			{
				tmpGps[16]=0x00;
			    tmpGps[17]=0x00;
			}
		    
		    //信息標志
		    if (LocalCurGPS_Info.GPSData.valid=='A')
		    {
		    	tmpInfo=0x00;
		    }
		    else
		    {
		    	tmpInfo=0x01;
		    }
		    
		    if ((LocalDispatch_Info.CarState & 0xFFFF)>0)
		    {
		    	tmpInfo=tmpInfo+0x04;
		    }
		    if (tmpbuf[2]==2)
		    {
			    tmpGps[18]=tmpbuf[3];
			    tmpGps[19]=tmpInfo;
			}
			else
			{
				tmpGps[18]=0x00;
			    tmpGps[19]=tmpInfo;
			}
		    
		    tmpGps[20]=LocalCurGPS_Info.GPSData.amount;
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.hpop,SpeedH);
		    
		    tmpGps[21]=SpeedH[1];
		    tmpGps[22]=SpeedH[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.hpe,SpeedH);
		    
		    tmpGps[23]=SpeedH[1];
		    tmpGps[24]=SpeedH[0];
		    memcpy(commInter.DataContent,tmpGps,sizeof(tmpGps));
		    
		    printf("Didpatch EvnBus data Dispatch_DataIP:%s\r\n",Dispatch_DataIP);
    		printf("Didpatch EvnBus data SocketServer!%s\r\n",SocketServer);
				printf("Didpatch EvnBus data SocketPort!%d\r\n",SocketPort);
		    
		    SocketSendInfo(SockFD,commInter,echoServAddr);
		    
			break;
		case 8:					//KeyB message(調度確認信息信息)
			memset(&commInter,0,sizeof(Package_Info));
			
		    commInter.BeginEnd=HEAD_GPS_PACKAGE;
		    memcpy(commInter.SerialNum,GPSID_Send,12);
		    commInter.AppType=0x16;
		    commInter.OperationNo=0x3D;
		    commInter.SerialNo=staticSendSeriNO;
		    commInter.DataType=0x02;
		    commInter.DataLength=0x03;
		    
		    Dispatch[0]=tmpbuf[3];
		    Dispatch[1]=tmpbuf[4];
		    Dispatch[2]=tmpbuf[2];

		    memcpy(commInter.DataContent,Dispatch,sizeof(Dispatch));
		    
		    printf("Didpatch sure data Dispatch_DataIP:%s\r\n",Dispatch_DataIP);
    		printf("Didpatch sure data SocketServer!%s\r\n",SocketServer);
			printf("Didpatch sure data SocketPort!%d\r\n",SocketPort);
    
		    SocketSendInfo(SockFD,commInter,echoServAddr);
			break;
		case 9:
			//設置通信服務器的IP和Port
			memset(ServerIP,0,16);
			memset(Port,0,6);
			memset(ServerPort,0,22);
			
			i=0;
			while((tmpbuf[2+i]!='#') && (tmpbuf[2+i]!=0x00))
			{
				ServerIP[i]=tmpbuf[2+i];
				i++;
			}
			ServerIP[i]='\0';

			i++;
			j=0;
			while(tmpbuf[2+i+j]!=0x00)
			{
				Port[j]=tmpbuf[2+i+j];
				j++;
			}
			Port[j]='\0';
			
			IniSave("SERVER","SERVERIP",ServerIP);
			IniSave("SERVER","SERVERPORT",Port);
			
			memset(SocketServer,0,16);
			memcpy(SocketServer,ServerIP,16);
			
			SocketPort=atoi(Port);
			
			//修改共享內存
			memset(ServerPort,0,sizeof(ServerPort));

			strcat(ServerPort,ServerIP);
			strcat(ServerPort,"#");
			strcat(ServerPort,Port);
		
			memcpy(LocalDispatch_Info.CenterAddr,ServerPort,22);
			
			LocalDispatch_Info.Proc_Info.PID = getpid();
			time(&(LocalDispatch_Info.Proc_Info.ctime));
		
			//Share mem write
			IPC_ProcState_Write(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
			
			break;
		case 0xf:
			printf("receive msg of robbing!*****\n");
			CurCarState = 255;

			memset(&commInter,0,sizeof(Package_Info));
			memset(tmpGps,0,sizeof(tmpGps));
			
			IPC_ProcState_Read(PROCID_GPS,CurGPS_Info,&LocalCurGPS_Info);
			
			IPC_ProcState_Read(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
			
		    commInter.BeginEnd=HEAD_GPS_PACKAGE;
		    commInter.ByteLength=0x06;
		    memcpy(commInter.SerialNum,GPSID_Send,12);
		    commInter.AppType=0x16;
		    commInter.OperationNo=0x3F;
		    commInter.SerialNo=staticSendSeriNO;
		    commInter.DataType=0x02;
		    commInter.DataLength=0x19;
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.longitude,LongP);
		    
		    tmpGps[0]=LongP[3];
		    tmpGps[1]=LongP[2];
		    tmpGps[2]=LongP[1];
		    tmpGps[3]=LongP[0];
		    
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.latitude,LongP);
		    
		    tmpGps[4]=LongP[3];
		    tmpGps[5]=LongP[2];
		    tmpGps[6]=LongP[1];
		    tmpGps[7]=LongP[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.speed,SpeedH);
		    
		    tmpGps[8]=SpeedH[1];
		    tmpGps[9]=SpeedH[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.direction,SpeedH);
		    
		    tmpGps[10]=SpeedH[1];
		    tmpGps[11]=SpeedH[0];
		    
		    CInt32ToBytes(LocalCurGPS_Info.GPSData.datetime,LongP);
		    
		    tmpGps[12]=LongP[3];
		    tmpGps[13]=LongP[2];
		    tmpGps[14]=LongP[1];
		    tmpGps[15]=LongP[0];
		    
		    //報警標志

		    {    		
			    tmpGps[16]=0;
			    tmpGps[17]=0xff;
			    
			    
			    LocalDispatch_Info.CarState=( 1 | LocalDispatch_Info.CarState);			    
			    time(&(LocalDispatch_Info.Proc_Info.ctime));
			    IPC_ProcState_Write(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
			}
			/*
			else
			{
				tmpGps[16]=0x00;
			    tmpGps[17]=0x00;
			}*/
		    
		    //信息標志
		    if (LocalCurGPS_Info.GPSData.valid=='A')
		    {
		    	tmpInfo=0x00;
		    }
		    else
		    {
		    	tmpInfo=0x01;
		    }
		    
		    if ((LocalDispatch_Info.CarState & 0xFFFF)>0)
		    {
		    	tmpInfo=tmpInfo+0x04;
		    }
		    if (tmpbuf[2]==2)
		    {
			    tmpGps[18]=tmpbuf[3];
			    tmpGps[19]=tmpInfo;
			}
			else
			{
				tmpGps[18]=0x00;
			    tmpGps[19]=tmpInfo;
			}
		    
		    tmpGps[20]=LocalCurGPS_Info.GPSData.amount;
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.hpop,SpeedH);
		    
		    tmpGps[21]=SpeedH[1];
		    tmpGps[22]=SpeedH[0];
		    
		    CInt16ToBytes(LocalCurGPS_Info.GPSData.hpe,SpeedH);
		    
		    tmpGps[23]=SpeedH[1];
		    tmpGps[24]=SpeedH[0];
		    memcpy(commInter.DataContent,tmpGps,sizeof(tmpGps));
		    
		    SocketSendInfo(SockFD,commInter,echoServAddr);
			break;
		default:
			break;
	}
	return 0;
}

void main()
{
	int	sockFD,pppCount,selectRet,tmpInfo,WaitTime_S,DataCount;
	Dispatch_Info LocalDispatch_Info;			//Point the share mem
 
	struct sockaddr_in echoServAddr; /* Echo server address */
	char tmpbuf[128],*ServerPort;
	Package_Info commInter;
	char tmpGps[25],LongP[4],SpeedH[2],Dispatch[3];
	char tmpAPC[36],tmpCR[20];
	time_t now;
	
	MB_DEB("Start GPRS program!");
	Signal_Init();
	
	ServerPort=malloc(22);
	Dispatch_DataIP=malloc(16);
	GPSID_Send=malloc(13);
	SocketServer=malloc(16);
	
	memset(Dispatch_DataIP,0,16);
	memset(GPSID_Send,0,13);
	memset(SocketServer,0,16);
	Waitresp = 0;
	RegTimes = 0;
	
	/* Get config value from config file */
	SocketServer = IniLoad("SERVER","SERVERIP","192.168.0.138");
	SocketPort = atoi(IniLoad("SERVER","SERVERPORT","8000"));
	WaitTime_M= atoi(IniLoad("SERVER","TIMER_M","8"));
	WaitTime_S= atoi(IniLoad("SERVER","TIMER_S","8"));
	
	MB_DEB("Didpatch EvnBus data TIMER_M:%d",WaitTime_M);
  MB_DEB("Didpatch EvnBus data SocketServer!%s",SocketServer);
	MB_DEB("Didpatch EvnBus data SocketPort!%d",SocketPort);

   //proc state init
	CurDispatch_Info = (Dispatch_Info *)IPC_ProcState_Init(PROCID_DISPATCH,0);
	CurGPS_Info = (GPS_Info *)IPC_ProcState_Init(PROCID_GPS,SHM_RDONLY);	
	CurKeyB_Info = (KeyB_Info *)IPC_ProcState_Init(PROCID_KEYB,SHM_RDONLY);
	
	//修改共享內存
	memset(ServerPort,0,22);
	LocalDispatch_Info.CarState=0;
	LocalDispatch_Info.CommState=0;
	
	strcat(ServerPort,SocketServer);
	strcat(ServerPort,"#");
	memset(tmpGps,0,sizeof(tmpGps));	
					
	DataCount=NumtoStrL(SocketPort,tmpGps);

	strcat(ServerPort,tmpGps);
	
	memcpy(LocalDispatch_Info.CenterAddr,ServerPort,22);
	
	LocalDispatch_Info.Proc_Info.PID = getpid();
	time(&(LocalDispatch_Info.Proc_Info.ctime));

	//Share mem write
	IPC_ProcState_Write(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);
	
	//IPC_ProcState_Read(PROCID_DISPATCH,CurDispatch_Info,&LocalDispatch_Info);

	//put DISPATCH data and com status to sharemem
	//printf("DISPATCH read success!\r\n");
	//printf("DISPATCH Data CarState:%d\r\n",LocalDispatch_Info.CarState);
	//printf("DISPATCH Data Proc_Info.CommState:%d\r\n",LocalDispatch_Info.CommState);
	//printf("DISPATCH Data Proc_Info.PID:%d\r\n",LocalDispatch_Info.Proc_Info.PID);
	//printf("DISPATCH Data Proc_Info.ctime:%s\r\n",ctime(&(LocalDispatch_Info.Proc_Info.ctime)));
	
	//消息機制初始化
	MSGQ_Init();
	MSGQ_Clear(PROCID_DISPATCH);
	ReceiveMsgQ=0;
	CurCarState=0;
	Begin=time(NULL);			//初始化上次發送數據的時間
	GPSFileInit();
	APCFileInit();
	CRFileInit();
	MB_DEB("unsend GPS %d; send GPS %d!",Offset_UnSendGPS,Offset_SendGPS);
	MB_DEB("unsend APC %d; send APC %d!",Offset_UnSendAPC,Offset_SendAPC);
	MB_DEB("unsend CR %d; send CR %d!",Offset_UnSendCR,Offset_SendCR);
//	DISPATCH_Exec(PPP_OffFile);
	memset(CurDispatch_SendInfo,0,sizeof(CurDispatch_SendInfo));
//	exit(0);
	while(strcmp(GPSID_Send,"")==0)
	{
		if (GPRS_Reset()==0)
		{
			GPRS_GetTermID(GPSID_Send);
		}
		GPSID_Send[12]='\0';
		
		MB_DEB("GPSID_Send:%s",GPSID_Send);
		
		if (PPP_Status())
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区老鸭窝| 亚洲国产成人va在线观看天堂| 国产精品欧美经典| 日韩经典一区二区| 91色在线porny| 久久久久久麻豆| 水野朝阳av一区二区三区| aaa欧美大片| 中文成人综合网| 久久狠狠亚洲综合| 91精品免费观看| 亚洲电影视频在线| 91老师片黄在线观看| 国产欧美一区二区精品性| 精品一区二区三区日韩| 91精品国产高清一区二区三区蜜臀 | 欧美国产日韩亚洲一区| 日韩影院在线观看| 欧美午夜精品一区| 亚洲欧美日韩综合aⅴ视频| 丰满少妇在线播放bd日韩电影| 欧美tk丨vk视频| 免费观看在线综合色| 9191成人精品久久| 美女视频一区在线观看| 欧美一级久久久| 美国av一区二区| 欧美成人aa大片| 久久成人免费网站| 久久精品免视看| jizzjizzjizz欧美| 日韩一区二区三| 免费一级欧美片在线观看| 制服丝袜亚洲网站| 日本不卡123| 精品国产人成亚洲区| 精品一区二区三区视频| 精品国产一区二区精华| 九色porny丨国产精品| 欧美精品一区二区久久婷婷| 国产一区二区三区在线观看精品| 久久久久国产精品麻豆| 成人伦理片在线| 亚洲视频一区二区免费在线观看| 91蝌蚪porny成人天涯| 亚洲一线二线三线久久久| 欧美精品一级二级| 国产乱淫av一区二区三区| 国产精品天美传媒沈樵| 91久久久免费一区二区| 日本欧美一区二区| 国产香蕉久久精品综合网| 成人的网站免费观看| 亚洲444eee在线观看| 精品国产123| 成人av资源在线| 亚洲午夜久久久久中文字幕久| 在线不卡a资源高清| 国产精品系列在线播放| 亚洲自拍偷拍网站| 久久综合狠狠综合| 91蝌蚪porny九色| 老司机精品视频线观看86| 国产精品久久久久天堂| 宅男在线国产精品| 岛国av在线一区| 视频一区二区中文字幕| 国产精品美女久久福利网站| 欧美久久婷婷综合色| 成人永久看片免费视频天堂| 亚洲动漫第一页| 国产三级欧美三级日产三级99| 91亚洲精华国产精华精华液| 青娱乐精品视频在线| 一区在线观看视频| 久久亚区不卡日本| 欧美色综合影院| 99久久免费国产| 国产一区福利在线| 视频一区国产视频| 亚洲精品乱码久久久久久日本蜜臀| 欧美不卡视频一区| 欧洲av在线精品| www.综合网.com| 国内精品久久久久影院色| 亚洲午夜精品网| 亚洲欧美激情视频在线观看一区二区三区 | av亚洲精华国产精华| 精品一区二区三区在线观看国产| 伊人性伊人情综合网| 中文字幕av一区二区三区| 精品免费视频.| 56国语精品自产拍在线观看| 在线免费不卡视频| 97se亚洲国产综合在线| 成人午夜av电影| 国产精品一区不卡| 精品一区二区国语对白| 蜜臀久久99精品久久久画质超高清 | 精品午夜久久福利影院 | 91精品国产欧美一区二区成人| 91欧美一区二区| 波多野结衣精品在线| 国产一区二区三区久久悠悠色av| 麻豆久久一区二区| 老司机一区二区| 久久97超碰国产精品超碰| 极品少妇一区二区三区精品视频| 日本美女视频一区二区| 青娱乐精品在线视频| 久久精品国产77777蜜臀| 免费人成精品欧美精品| 激情深爱一区二区| 国产精品1区二区.| 成人黄色国产精品网站大全在线免费观看| 国产一区二区三区在线观看精品 | 精品久久久久99| 欧美福利电影网| 欧美日韩不卡一区| 欧美精品一二三区| 欧美一区二区三区在线| 日韩西西人体444www| 日韩欧美一二区| www激情久久| 国产精品久久久久aaaa樱花| 亚洲图片激情小说| 夜夜亚洲天天久久| 日韩和欧美的一区| 激情久久五月天| 成人福利视频网站| 在线欧美一区二区| 欧美电视剧免费观看| 久久久精品蜜桃| 亚洲免费观看高清完整版在线观看熊 | 美女一区二区三区在线观看| 卡一卡二国产精品 | 91精品91久久久中77777| 欧洲一区二区av| 日韩欧美色综合网站| 久久久久99精品一区| 亚洲人成电影网站色mp4| 无码av免费一区二区三区试看| 精一区二区三区| 国产.欧美.日韩| 欧美精品自拍偷拍动漫精品| 日韩一区二区三区电影在线观看 | 亚洲欧美激情插| 日本亚洲欧美天堂免费| 成人夜色视频网站在线观看| 欧美午夜电影网| 久久精品夜色噜噜亚洲a∨| 一区二区三区鲁丝不卡| 六月丁香综合在线视频| 97se狠狠狠综合亚洲狠狠| 欧美一级午夜免费电影| 亚洲婷婷综合久久一本伊一区 | 成人在线一区二区三区| 欧美日韩黄视频| 中文字幕一区二区三区不卡| 日韩电影在线免费观看| 99re这里只有精品视频首页| 91麻豆精品国产91久久久资源速度| 国产日本一区二区| 日韩电影在线观看电影| 99免费精品在线观看| 欧美r级在线观看| 亚欧色一区w666天堂| 91在线播放网址| 久久久精品日韩欧美| 蜜桃传媒麻豆第一区在线观看| 95精品视频在线| 国产日产欧美一区二区视频| 日本欧美一区二区在线观看| 色婷婷综合激情| 中文字幕一区二区不卡 | 欧美在线观看一区二区| 国产视频一区二区三区在线观看 | 亚洲自拍都市欧美小说| 北岛玲一区二区三区四区| 久久先锋资源网| 久久97超碰色| 日韩一区二区三| 日韩国产在线观看一区| 欧美日韩免费电影| 一区av在线播放| 色又黄又爽网站www久久| 中文久久乱码一区二区| 成人夜色视频网站在线观看| 国产欧美一区二区精品秋霞影院| 免费一级片91| 欧美变态tickling挠脚心| 日日欢夜夜爽一区| 4438x成人网最大色成网站| 视频一区免费在线观看| 欧美伦理电影网| 蜜乳av一区二区| 精品乱人伦一区二区三区| 国产麻豆日韩欧美久久| 亚洲国产成人午夜在线一区| 国产91精品久久久久久久网曝门|