123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #include "includes.h"
- SUT_MESS sutMess;
- //GPS_DEF gpsInfo;
- const unsigned short GPS_TimeTable[GPS_TABLE_NUM]={0,5,10,15,30,60,120,300};
- void gpsDataInit(void){
- //memset((unsigned char *)&sutMess, 0, sizeof(SUT_MESS));
- memset((unsigned char *)&sutGpsInfo, 0, sizeof(SUT_GPS_INF));
- GPSInit();
- GpsTimeUpdate();
- }
- unsigned short getGPSTimeValue(unsigned char index){
- return GPS_TimeTable[index];
- }
- unsigned char gpsCheckCnt=1;//榛樿�寮€鏈烘煡璇�竴娆?
- void gpsCheckInfo(void){//鏌ヨ�GPS淇℃伅
- gpsCheckCnt++;
- }
- /*鎺у埗鏌ヨ�GPS鐘舵€?
- dly:鎺ュ彛琚�皟鐢ㄧ殑棰戠巼锛屽崟浣峬s*/
- /*
- AT+POC=11000032322e32333231312c3130332e3132333132312c352c32302c362e302c0425242
- 52600
- 其中 32322e32333231312c3130332e3132333132312c352c32302c362e302c042524252600 表示
- 北纬 22.23211 东经 103.123121 速度 5km/h,方向角 20 度,精度因子为 6.0,共有 4 颗卫星,
- 信噪比分别为 37db, 36db, 37db, 38db。
- */
- void gpsProCtl(int dly){
- static unsigned short cnt=0;
- unsigned char GpsDatabuf[100];
- unsigned char restohex[20];
- unsigned char destohex[40];
-
- if(GPS_TimeTable[newPara.gpsTimeIndex]==0)return;
-
- if(sutApp.gtMode!=0) return;
- if(++cnt<(GPS_TimeTable[newPara.gpsTimeIndex]*1000/dly) && gpsCheckCnt==0) return;
- cnt=0;
- if(sutGpsInfo.g_GpsEnable)msgAtSend("AT+GPSRD=\"ALL\"\r\n");
- //gpsCheckCnt=0;
- if(sutGpsInfo.isGpsValid){
-
- snprintf(restohex,sizeof(restohex),"%d.%06d,%d.%06d",sutGpsInfo.latitue/1000000,sutGpsInfo.latitue%1000000,sutGpsInfo.longitue/1000000,sutGpsInfo.longitue%1000000);
- AscStrTurnHexStr(restohex,destohex);
- snprintf(GpsDatabuf,sizeof(GpsDatabuf),"AT+POC=110000%s2c352c32302c362e302c042524252600\r\n",destohex);
- msgAtSend(GpsDatabuf);
-
-
-
- }
-
- }
- /*
- +CGPS:bf,ba,gf,[Lat],[Long]
- bf:0 閮ㄦ爣鍏抽棴 1 閮ㄦ爣鎵撳紑
- ba:0 閮ㄦ爣鏈�壌鏉?1 閮ㄦ爣宸查壌鏉?
- gf:0 GPS鍏抽棴 1 GPS鎵撳紑
- Lat: 宸插畾浣嶆墠鏈夛紝瀹氫綅绾�害 搴?搴?宸叉斁澶?000000)
- Long: 宸插畾浣嶆墠鏈夛紝瀹氫綅缁忓害 搴?搴?宸叉斁澶?000000)
- msg=bf,ba,gf,[Lat],[Long]
- */
- void proGpsMsg(char *msg){
- // int i;
- // unsigned char needCloseGps=0;
- // unsigned char needOpenGps=0;
- // unsigned char dotNum=0,lach=0;
- // unsigned char bblF=0,bbAuth=0,gpsF=0;
- // unsigned int Lat=0,Long=0;
- // //鑾峰彇閮ㄦ爣寮€鍏崇姸鎬?
- // bblF=atoi(msg);
- // for(i=0;i<strlen(msg);i++){
- // if(msg[i]==',') dotNum++;
- // if(lach==','){
- // if(dotNum==1) bbAuth=atoi(&msg[i]);
- // else if(dotNum==2) gpsF=atoi(&msg[i]);
- // else if(dotNum==3) Lat=atoi(&msg[i]);
- // else if(dotNum==4) Long=atoi(&msg[i]);
- // }
- // lach=msg[i];
- // }
- // //浼樺厛鏍规嵁gpsEnable鎵撳紑鎴栧叧闂璆PS
- // if(newPara.gpsEnable==0){
- // needCloseGps=1;
- // }else{
- // //鏍规嵁GPS涓婁紶闂撮殧锛屾墦寮€/鍏抽棴GPS
- // if(newPara.gpsTimeIndex<GPS_TABLE_NUM){
- // if(GPS_TimeTable[newPara.gpsTimeIndex]==0) needCloseGps=1;
- // else needOpenGps=1;
- // }
- // }
- // if(needCloseGps!=0 && gpsF!=0){
- // MSG_INFO(1, "Shut GPS");
- // msgAtSend("AT+SGPS=0\r\n");
- // gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
- // }
- // if(needOpenGps!=0 && gpsF==0){
- // MSG_INFO(1, "Open GPS");
- // msgAtSend("AT+SGPS=1\r\n");
- // gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
- // }
- // //鏍规嵁bubiaoEnable鎵撳紑鎴栧叧闂璆PS
- // if(newPara.bubiaoEnable==0){
- // if(bblF!=0){
- // MSG_INFO(1, "Shut BUBIAO");
- // msgAtSend("AT+BUBIAO=0\r\n");
- // gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
- // }
- // }else{
- // if(bblF==0){
- // MSG_INFO(1, "Open BUBIAO");
- // msgAtSend("AT+BUBIAO=1\r\n");
- // gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
- // }
- // }
- // //鏇存柊鍊?
- // gpsInfo.bblF=bblF;
- // gpsInfo.bbAuth=bbAuth;
- // gpsInfo.Lat=Lat;
- // gpsInfo.Long=Long;
- // gpsInfo.update++;
- // if(Lat==0 && Long==0) gpsInfo.gpsLocated=0;
- // else gpsInfo.gpsLocated=1;
- }
|