/********************************************************************************** * File Name: GpsProcess.c * Function Describe:device for Gps Process * Relate Module: * Explain: * Writer: ShiLiangWen * Date: 2015.1.26 ***********************************************************************************/ #define THIS_FILE_ID 11 //------------------------------------------------------------------------------------------- #include "includes.h" SUT_GPS_SEND_DATA sutGpsSendData; /********************************************************************************** GpsSendHead ***********************************************************************************/ void GpsServerConect(void) { //"AT+ZIPSEND=0,12\r"=41542B5A495053454E443D302C31320D //"AT+ZIPSENDU=0,12\r"=41542B5A495053454E44553D302C31320D //unsigned char Data[]={0x29,0x29,0xB1,0x00,0x07,0x59,0x69,0xB5,0xA1,0x00,0x92,0x0D}; //2929B100075969B5A100920D //ModemSendAT("AT+ZIPSEND=0,12\r"); //41542B5A495053454E443D302C31320D2929B100075969B5A100920D //ModemSendData(Data,sizeof(Data)); int len; unsigned char buf[100]; unsigned char temp=0; len=GpsPacket(buf,sutProductPara.PSN,XINGAN_PACKET_CLIENT_CMD_CONNECT,&temp,1); // if(WCDMA){ // ModemSendTcpData(1,buf,len);//+ 1? WCDMA // }else{ // ModemSendTcpData(0,buf,len); // } if(MODEM_TYPE==MODEM_TYPE_MW3650){ MW3650ModemSendTcpData(1,buf,len); }else if(MODEM_TYPE==MODEM_TYPE_MC8332){ MC8332ModemSendTcpData(0,buf,len); } } unsigned char GetCheckSum(unsigned char *pData,int len) { int i; unsigned char sum=0; for(i=0;i>8)&0xff); pBuf[i++]=(unsigned char)(Len&0xff); pBuf[i++]=(unsigned char)((PSN>>24)&0xff); pBuf[i++]=(unsigned char)((PSN>>16)&0xff); pBuf[i++]=(unsigned char)((PSN>>8)&0xff); pBuf[i++]=(unsigned char)(PSN&0xff); for(j=0;j>24)&0xFF; data[7] = (sutGpsInfo.latitue>>16)&0xFF; data[8] = (sutGpsInfo.latitue>>8)&0xFF; data[9] = (sutGpsInfo.latitue)&0xFF; data[10] = (sutGpsInfo.longitue>>24)&0xFF; data[11] = (sutGpsInfo.longitue>>16)&0xFF; data[12] = (sutGpsInfo.longitue>>8)&0xFF; data[13] = (sutGpsInfo.longitue)&0xFF; data[14] = (sutGpsInfo.speed>>8)&0xFF; data[15] = (sutGpsInfo.speed)&0xFF; data[16] = (sutGpsInfo.aspect>>8)&0xFF; data[17] = (sutGpsInfo.aspect)&0xFF; //st; if(sutGpsInfo.isGpsWork==1 && sutGpsInfo.isGpsValid == 1){ data[18] = 0x80; } /* if(sutGpsInfo.isGpsValid == 1 ) { data[18] |= (0x01<<7); } if(sutGpsInfo.isGpsValid == 0) { data[18] |= (0x01<<6); data[18] |= (0x01<<5); } else if(sutGpsInfo.isGpsValid == 0)//:GPS天线短路 { data[18] |= (0x01<<6); } else if(sutGpsInfo.isGpsValid == 0)//:GPS天线开路; { data[18] |= (0x01<<5); } else if(sutGpsInfo.isGpsValid == 0) //0x03:GPS模块故障 { } */ // if(sutGpsInfo.MainPowerStat ==0 )//主电源正常 // { // data[18] |= (0x01<<4); // data[18] |= (0x01<<3); // } // else if(sutGpsInfo.MainPowerStat == 1)//主电源掉电 // { // data[18] |= (0x01<<4); // } // else if(sutGpsInfo.MainPowerStat == 2 || g_xingan_info.MainPowerStat ==3)//主电源过高或过低 // { // data[18] |= (0x01<<3); // } //里程数 data[19] = (sutGpsInfo.StatisticsMile>>16)&0xFF; data[20] = (sutGpsInfo.StatisticsMile>>8)&0xFF; data[21] = (sutGpsInfo.StatisticsMile)&0xFF; //St1: // if(GetAccStat() == FALSE)//ACC关 // { // data[22] |= (0x01<<7); // } // if(GetHighSensor1Stat() == FALSE)//自定义1路高传感器状态为低 // { // data[22] |= (0x01<<6); // } // if(GetHighSensor2Stat() == FALSE)//自定义2路高传感器状态为低 // { // data[22] |= (0x01<<5); // } // if(GetLowSensor1Stat() == TRUE)//自定义1路低传感器状态为高 // { // data[22] |= (0x01<<4); // } // if(GetLowSensor2Stat()== TRUE)//自定义2路低传感器状态为高 // { // data[22] |= (0x01<<3); // } // // if(GetOilWayStat()== TRUE)//油路正常 // { // data[22] |= (0x01<<2); // } // // if(GetLoginStat() == FALSE)//没有登签 // { // data[22] |= (0x01<<1); // } // // if(GetWarningStat() == FALSE)//未设防 // { // data[22] |= (0x01); // } //st2: // if(GetRobWarningStat()== FALSE)//不为劫警报警 // { // data[23] |= (0x01<<7); // } // // if(GetHighSpeedWarningStat()== FALSE)//不为超速报警 // { // data[23] |= (0x01<<6); // } // if(GetStopTimeoutStat()== FALSE)//不为停车超长报警 // { // data[23] |= (0x01<<5); // } // if(GooutOfRegion()== FALSE)//不为驶出区域报警 // { // data[23] |= (0x01<<4); // } // if(ComeintoRegion()==FALSE)//不为驶入区域报警 // { // data[23] |= (0x01<<3); // } // // if(PasswordIsOK()== TRUE)//不为看车密码错误报警 // { // data[23] |= (0x01<<2); // } // // if(GprsIsLogin() == FALSE)//不为GPRS已上线 // { // data[23] |= (0x01<<1); // } // // if(PppIsOK() == FALSE)//不为终端拨号成功 // { // data[23] |= (0x01); // } //st3: // if(GprsIsLogin() == FALSE)//GPRS未注册 // { // data[24] |= (0x01<<7); // }else{ data[24] &= ~(0x01<<7); // } // if(CenterNeedSendCmd21() == TRUE)//中心应下发21指令 // { data[24] |= (0x01<<6); // } // if(g_xingan_info.SendMode == XINGAN_PACKET_SEND_TCP)//TCP通讯方式 // { data[24] |= (0x01<<5); // } //:CSQ信号状态0-31 data[24] += (char)g_iCSQ; //st4 // if(IsHandleOK()== TRUE)//手柄接入 // { // data[25] |= (0x01<<7); // } // if(IsLcdOK() == TRUE)//LCD显示屏接入 // { // data[25] |= (0x01<<6); // } // if(IsImageCollectorOK()== TRUE)//图像采集器接入 // { // data[25] |= (0x01<<5); // } // if(IsFareMeterOK()== TRUE)//计价器接入 // { // data[25] |= (0x01<<4); // } // if(IsVoiceDialerOK()==TRUE)//语音波号器接入 // { // data[25] |= (0x01<<3); // } // if(IsForbiddenDialCall()==TRUE)//禁止打出 // { // data[25] |= (0x01<<2); // } // if(IsForbiddenReceiveCall()==TRUE)//禁止打入 // { // data[25] |= (0x01<<1); // } // if(IsForbiddenAllCalls()==TRUE)//禁止通话 // { // data[25] |= (0x01); // } //v1v2v3v4:终端设置状态 //V1V2:定时发送时间 data[26] = (sutGpsInfo.SendTime>>8)&0xFF; data[27] = (sutGpsInfo.SendTime)&0xFF; //V3: 停车设置时间 //data[28]= sutGpsInfo.StopTimeout&0xFF; //V4: 超速设置时间 // data[29]= sutGpsInfo.HighSpeed; //V5; 电子围栏设置个数 // data[30]= sutGpsInfo.ElectronicFenceNum; //V6: 登签 if(sutGpsInfo.isServerLogin)data[31] = 1; else data[31] = 0; //: 定时发送图片的时间 data[32] = 0;// //: 中心下发的主命令 data[33]= sutGpsInfo.HostCmd; #endif } /* void MakeGpsData(void) { unsigned char *data=(unsigned char *)&sutGpsSendData; if(!sutGpsInfo.isGpsValid)return; data[0] = sutGpsInfo.year; data[1] = sutGpsInfo.month; data[2] = sutGpsInfo.day; data[3] = sutGpsInfo.hour; data[4] = sutGpsInfo.minu; data[5] = sutGpsInfo.sec; data[6] = sutGpsInfo.longitue>>24; data[7] = sutGpsInfo.longitue>>16; data[8] = sutGpsInfo.longitue>>8; data[9] = sutGpsInfo.longitue; data[10] = sutGpsInfo.latitue>>24; data[11] = sutGpsInfo.latitue>>16; data[12] = sutGpsInfo.latitue>>8; data[13] = sutGpsInfo.latitue; data[14] = sutGpsInfo.speed>>8; data[15] = sutGpsInfo.speed; data[16] = sutGpsInfo.aspect>>8; data[17] = sutGpsInfo.aspect; //st data[18] = 1; //空重载状态:表示范围:0-1采用压缩BCD编码. // 1 表示重载 0 表示空载 data[19]= 0; //登退签状态:表示范围:0-1采用压缩BCD编码。 // 1 表示登签 0 表示退签 data[20] = 1; } */