#include "includes.h" void saveInfoNow(USER_STOR_INFO *info); void cmdSetting(char *msg){ char info[100],buf[50],ipAddr[40]; char needSendAt=0; char needFeedSms=0; char needSaveSys=0; int len,port; unsigned long psn; if(sutApp.gtMode==0) return; if(sutApp.TbMode!=0) return; /* if(sutApp.TbMode!=0){ Ble_SendAT(msg,strlen(msg)-2); return; } */ if(sutApp.gtTMode!=0){ msgAtSends(msg, strlen(msg)); return; } //GT模式下指令处理 if(msgCmp(msg, "GT+TM")){ snprintf(info, sizeof(info), "TM Mode:OK\r\n"); needFeedSms=1; sutApp.gtTMode=1; }else if(msgCmp(msg, "GT+TB")){ snprintf(info, sizeof(info), "TB Mode:OK\r\n"); needFeedSms=1; sutApp.TbMode=1; } else if(msgCmp(msg, "GT+PWM=")){ // if(msg[7]>='0' && msg[7]<='9') beepStart(atoi(msg+7)); }else if(msgCmp(msg, "GT+RPID")){ snprintf(info, sizeof(info), "GT+RPID:PSN=%lu;\r\n", sutApp.UserInfo.psn); needFeedSms=1; }else if(msgCmp(msg, "GT+SPID")){ len=GetParaFromStr(msg, "PSN",buf); if(len<1 || len>10){ snprintf(info, sizeof(info),"GT+SPID:FAIL[PSN Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } psn=atol(buf); snprintf(info, sizeof(info),"GT+SPID:PSN=%lu;\r\n",psn); needFeedSms=1; if(sutApp.UserInfo.psn != psn){ sutApp.UserInfo.psn=psn; saveInfoNow(&sutApp.UserInfo); } }else if(msgCmp(msg, "GT+SNET")){ //GT+SNET:TNET=4;GT+SNET:TNET=5; len=GetParaFromStr(msg, "TNET", buf); if(len!=1){ TNET_ERR: snprintf(info, sizeof(info),"GT+SNET:FAIL[PSN Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } psn=atoi(buf); if(psn!=4&&psn!=5) goto TNET_ERR; MSG_INFO(1,"psn=====%d",psn); if(psn!=sutApp.UserInfo.tnet){ sutApp.UserInfo.tnet=psn; saveInfoNow(&sutApp.UserInfo); } snprintf(info,sizeof(info),"GT+SNET:TNET=%d\r\n",psn); needFeedSms=1; }else if(msgCmp(msg, "GT+RNET")){ snprintf(info, sizeof(info),"GT+RNET:TNET=%d;\r\n",sutApp.UserInfo.tnet); needFeedSms=1; }else if(msgCmp(msg, "GT+SZZD")){ len=GetParaFromStr(msg,"ID",buf); if(len<1 || len>15){ snprintf(info, sizeof(info),"GT+SZZD:FAIL[ID Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } strcpy(sutApp.UserInfo.OtherId,buf); if(len<1 || len>19){ snprintf(info, sizeof(info),"GT+SZZD:FAIL[PWD Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } len=GetParaFromStr(msg,"PWD",buf); strcpy(sutApp.UserInfo.OtherPassWord,buf); snprintf(info, sizeof(info),"GT+SZZD:ID=%s;PWD=%s;\r\n",sutApp.UserInfo.OtherId,sutApp.UserInfo.OtherPassWord); needFeedSms=1; saveInfoNow(&sutApp.UserInfo); } else if(msgCmp(msg, "GT+RZZD")){ snprintf(info, sizeof(info),"GT+RZZD:Id=%s;Pwd=%s;\r\n",sutApp.UserInfo.OtherId,sutApp.UserInfo.OtherPassWord); needFeedSms=1; goto SETTING_END; }else if(msgCmp(msg, "GT+SFGPS")){ len=GetParaFromStr(msg,"LAT",buf); if(len<1 || len>15){ snprintf(info, sizeof(info),"GT+SFGPS:FAIL[LAT Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } sutApp.UserInfo.Firm_lat=atof(buf); len=GetParaFromStr(msg,"LONG",buf); if(len<1 || len>19){ snprintf(info, sizeof(info),"GT+SFGPS:FAIL[LONG Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } sutApp.UserInfo.Firm_log=atof(buf); snprintf(info, sizeof(info),"GT+SFGPS:LAT=%lf;LONG=%lf;\r\n",sutApp.UserInfo.Firm_lat,sutApp.UserInfo.Firm_log); needFeedSms=1; saveInfoNow(&sutApp.UserInfo); }else if(msgCmp(msg, "GT+RFGPS")){ snprintf(info, sizeof(info),"GT+RFGPS:lat=%lf;long=%lf;\r\n",sutApp.UserInfo.Firm_lat,sutApp.UserInfo.Firm_log); needFeedSms=1; goto SETTING_END; }else if(msgCmp(msg, "GT+SCID")){ len=GetParaFromStr(msg,"CID",buf); if(len<1 || len>8){ snprintf(info, sizeof(info),"GT+SCID:FAIL[CID Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } strcpy(sutApp.UserInfo.Firm_CallID,buf); snprintf(info, sizeof(info),"GT+SCID:CID=%s;\r\n",sutApp.UserInfo.Firm_CallID); needFeedSms=1; saveInfoNow(&sutApp.UserInfo); } else if(msgCmp(msg, "GT+RCID")){ snprintf(info, sizeof(info),"GT+RCID:CID=%s;\r\n",sutApp.UserInfo.Firm_CallID); needFeedSms=1; goto SETTING_END; } /* unsigned char IP[20]; unsigned short port; unsigned char LeaderEnable; */ else if(msgCmp(msg, "GT+RIP")){ snprintf(info, sizeof(info),"GT+RIP:IP=%s;PORT=%d;\r\n",sutApp.UserInfo.IP,sutApp.UserInfo.port); needFeedSms=1; }else if(msgCmp(msg, "GT+SIP")){ len=GetParaFromStr(msg,"IP",buf); if(len<1 || len>15){ snprintf(info, sizeof(info),"GT+SIP:FAIL[IP Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } strcpy(sutApp.UserInfo.IP,buf); len=GetParaFromStr(msg,"PORT",buf); if(len<1 || len>7){ snprintf(info, sizeof(info),"GT+SIP:FAIL[PORT Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } sutApp.UserInfo.port=atoi(buf); snprintf(info, sizeof(info),"GT+SIP:IP=%s;PORT=%d;\r\n",sutApp.UserInfo.IP,sutApp.UserInfo.port); needFeedSms=1; saveInfoNow(&sutApp.UserInfo); }else if(msgCmp(msg, "GT+RLEADER")){ snprintf(info, sizeof(info),"GT+RLEADER:TLEADER=%d;\r\n",sutApp.UserInfo.LeaderEnable); needFeedSms=1; }else if(msgCmp(msg, "GT+SLEADER")){ len=GetParaFromStr(msg, "TLEADER", buf); if(len!=1){ snprintf(info, sizeof(info),"GT+SLEADER:FAIL[LEADER Invalid]\r\n"); needFeedSms=1; goto SETTING_END; } psn=atoi(buf); if(psn!=0&&psn!=1) return; MSG_INFO(1,"LEADER=====%d",psn); if(psn!=sutApp.UserInfo.LeaderEnable){ sutApp.UserInfo.LeaderEnable=psn; saveInfoNow(&sutApp.UserInfo); } snprintf(info,sizeof(info),"GT+SLEADER:TLEADER=%d;\r\n",psn); needFeedSms=1; } SETTING_END: if(needSendAt!=0) msgAtSends(info, strlen(info)); if(needFeedSms!=0) usbOutPut(info, strlen(info)); if(needSaveSys!=0){ snprintf(info, sizeof(info), "cmd:%d",needSaveSys); sysIniSave(info); } } //sysini文件处理 #define SYSINI_FILE "/ext/prepack/sys.ini" SYSINI_HS191X_DEF newPara; char menu_key[6]="502800";//如果资源文件中没有定义服务器菜单密码,则默认使用此密码 char *getMenuKey(void){return menu_key;} static void ttsToBEStr(char *tts, int len){ int i; char tmp[2]; if(len % 4) return; for(i=0;iMAX_SPK_VOL){ newPara.spkVol=7; needsave=1; } if(newPara.gpsEnable!=0){//GPS使能,必需打开布标 MSG_WARN(1, "gpsEnable, force bubiaoEnable"); newPara.bubiaoEnable=1; needsave=1; } if(needsave!=0){ LSAPI_FS_Seek(fd, 0L, LSAPI_FS_SEEK_SET); LSAPI_FS_Write(fd, (unsigned char *)&newPara, sizeof(SYSINI_HS191X_DEF)); //nwy_sdk_fsync(fd); } MSG_INFO(1,"BleEnable=====%d",newPara.BleEnable); LSAPI_FS_Close(fd); } //保存PSN文件处理 #define PSN_FILE "m5700_f2" void saveInfoNow(USER_STOR_INFO *info){ int fd; MSG_INFO(1,"%s save start:",PSN_FILE); fd=LSAPI_FS_Open(PSN_FILE, LSAPI_FS_O_RDWR |LSAPI_FS_O_CREAT,0x0); if(fd<0){ MSG_ERR(1,"%s open failed",PSN_FILE); return; } if(info->tnet!=4&&info->tnet!=5){ info->tnet=4; } //淇濆瓨 LSAPI_FS_Seek(fd, 0L, LSAPI_FS_SEEK_SET); LSAPI_FS_Write(fd, (unsigned char *)&sutApp.UserInfo, sizeof(USER_STOR_INFO)); //nwy_sdk_fsync(fd); LSAPI_FS_Close(fd); MSG_INFO(1,"%s save done", PSN_FILE); } void readInfoNow(void){ int fd; fd=LSAPI_FS_Open(PSN_FILE, LSAPI_FS_O_RDONLY,0); if(fd<0){ MSG_ERR(1,"%s open read failed", PSN_FILE); return; } LSAPI_FS_Seek(fd, 0L, LSAPI_FS_SEEK_SET); LSAPI_FS_Read(fd, (unsigned char *)&sutApp.UserInfo, sizeof(USER_STOR_INFO)); LSAPI_FS_Close(fd); MSG_INFO(1, "%s get info:%s,%s",PSN_FILE, sutApp.UserInfo.OtherId, sutApp.UserInfo.OtherPassWord); } void setFactoryParam(void){ sutApp.UserInfo.psn=newPara.defaultPsn; saveInfoNow(&sutApp.UserInfo); MSG_INFO(1, "set factory psn:%d", sutApp.UserInfo.psn); } void setPocPara(char *pocPara, int len){ int k; char buf[40]; char buf1[100]; char idFlag=0,domainFlag=0,ipFlag=0; char gapFlag=0,gportFlag=0; char enableChangeIp=1; char tmpdata[100]; sutApp.pocParaDone=1; return; //直接返回不处理 } //CY 登录很快直接设置参数 void ModemSetZZDPocPara() { char buf[40]; char buf1[100]; msgAtSend("AT+POC=010000"); snprintf(buf, sizeof(buf),"ip=%s;",ZZD_IP); AscStrTurnHexStr(buf,buf1); ModemSendAt(buf1); MSG_INFO(1,buf1 ); snprintf(buf, sizeof(buf),"id=%s;",sutApp.UserInfo.OtherId); AscStrTurnHexStr(buf,buf1); ModemSendAt(buf1); MSG_INFO(1,buf1 ); snprintf(buf, sizeof(buf),"pwd=%s;",sutApp.UserInfo.OtherPassWord); AscStrTurnHexStr(buf,buf1); ModemSendAt(buf1); ModemSendAt("\r\n"); MSG_INFO(1,buf1 ); //ModemSendAt("AT+POC=000000010100\r\n"); MSG_INFO(1,"Set-ZZDpara--"); } char showPIP[40]; char showGIP[40]; const char invalidIp[]="1.1.1.1"; char *getPIPAddr(void){ char *retAddr=NULL; switch(newPara.serList.defaultuse){ case SERVER_HZ: retAddr=newPara.serList.zh.pip;break; case SERVER_SD: retAddr=newPara.serList.sd.pip;break; case SERVER_FENFA:retAddr=(char *)invalidIp;break; case SERVER_JIQUN:retAddr=(char *)invalidIp;break; case SERVER_UR: retAddr=newPara.serList.ur.pip;break; } memset(showPIP, 0, sizeof(showPIP)); strcpy(showPIP, retAddr); return retAddr; } char *getGIPAddr(void){ char *retAddr=NULL; switch(newPara.serList.defaultuse){ case SERVER_HZ: retAddr=newPara.serList.zh.gip;break; case SERVER_SD: retAddr=newPara.serList.sd.gip;break; case SERVER_FENFA: break; case SERVER_JIQUN: break; case SERVER_UR: retAddr=newPara.serList.ur.gip;break; } if(retAddr==NULL) showGIP[0]=0; else strcpy(showGIP, retAddr); return retAddr; } char *getDOMAINAddr(void) { char *retAddr=NULL; switch(newPara.serList.defaultuse){ case SERVER_HZ:break; case SERVER_SD:break; case SERVER_FENFA:retAddr=newPara.serList.ipFenFa;break; case SERVER_JIQUN:retAddr=newPara.serList.jiqun;break; case SERVER_UR:break; } return retAddr; }