| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373 |
- /*****************************************************************************
- SetSystemPara.c
- *****************************************************************************/
- #include "includes.h"
- CODEC_PARAM codec_param;
- SUT_MENU sutMenuSysSetup;
- unsigned char Net_temp_flag;
- unsigned char QuickGroupSet;
- unsigned char QuickGrouPIndex;
- unsigned char QuickGroupSelect;
- SUT_LCDGPS_SEND_DATA sutLcdGpsSendData;
- //char ReadApnData(unsigned char *source,unsigned char witchone,char *apnapn,char *apnname,char *apnpass);
- const static unsigned short g_ausTimeOut[5]={10,30,60,300,0};
- static const char*g_ausNetOut[]={"Auto"," 2G "," 3G "," 4G "};
- int ApnFileIndex;
- /*************************************************************************/
- unsigned int g_uiGpsStat = 1;
- unsigned int g_iLCDFlag=0;
- unsigned short LcdOnTimeCt;
- unsigned short g_UpdatePocCount;
- char *APNNAME[APN_NUM+1]=
- {
- "APN1",
- "APN2",
- "APN3",
- "APN4",
- ""
- };
- static const char *accIconFileNameAPN[]={
- "APN.bmp",
- "APN1.bmp",
- ""
- };
- void SetAPNShow(int update)
- {
- int i;
- static char GroupsFeatures[APN_NUM];
- if(update){
- if(showApn!=1)
- {
- ShowMessageBox("禁止修改");
- os_dly_wait(200);
- UISetNextStatus(UIS_MENU_SYS_SET);
- return;
- }
- if(validApnNum==1)
- {
- ShowMessageBox("配置文件无APN");
- os_dly_wait(200);
- UISetNextStatus(UIS_MENU_SYS_SET);
- return;
- }
- GuiClearAll();
- ShowCaption("设置APN",2);//
- GuiDrawHLine(0,159,20,1);
- //设置Features 将决定选择图标
- GroupsFeatures[newPara.apnList.defaultuse]=1;
- ListBoxInit(&sutListBox,APNNAME,0,accIconFileNameAPN,GroupsFeatures);
- //----------------------------
- GuiDrawHLine(0,159,104,1);
- GuiShowStr(0,110,"[OK]切换 [P1]详情",0x01);
- }
- }
-
- void SetSYSResponse(void)
- {
- unsigned long key;
- key=MenuResponse(&sutMenuSysSetup);
- if(KEY_PANEL_MENU==key){
- switch(sutMenuSysSetup.handle){
- case 0:
- UISetNextStatus(UIS_SET_APN);
- break;
- case 1:
- UISetNextStatus(UIS_SET_GPS);
- break;
- case 2:
- UISetNextStatus(UIS_SET_LCD);
- break;
- case 3:
- UISetNextStatus(UIS_SET_NET);
- break;
- case 4:
- UISetNextStatus(UIS_SET_SERVER_PASS);
- break;
- case 5:
- UISetNextStatus(UIS_SET_KEYSound);
- break;
- case 6:
- UISetNextStatus(UIS_SET_SOUNDMODE);
- break;
- case 7:
- UISetNextStatus(UIS_SET_CODETYPE);
- break;
- case 8:
- UISetNextStatus(UIS_SET_PWRMODE);
- break;
- case 9:
- UISetNextStatus(UIS_SET_QUICK_GROUP);
- break;
- case 10:
- UISetNextStatus(UIS_SET_POC_FOTA);
- break;
- case 11:
- UISetNextStatus(UIS_UP_APPRICATION_VER);
- break;
- }
- }
- // else if(KEY_PANEL_MENU==key){
- // UISetNextStatus(UIS_MENU_MAIN);
- // }
- else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_MAIN); //UIS_MENU_SYS_SET
- }
- }
-
- /***************************************
- 注意:CDMA的APN形式跟WCDMA大不相同
- W机子是不需要改来改去的 "IP","UNIM2M.NJM2MAPN","0.0.0.0"
- ****************************************/
- void SetAPNResponse(void)
- {
- unsigned long key;
- key=ListBoxResponse(&sutListBox);
-
- if(KEY_PANEL_MENU==key)
- {
- ShowMessageBox("即将重启更新...");
- if(newPara.apnList.defaultuse != sutListBox.handle){
- newPara.apnList.defaultuse = sutListBox.handle;
- //save sys
- ModifyConfigureFile(0);
- os_dly_wait(200);
- modemPwrOffNow=1;
- }else UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_INFO==key) UISetNextStatus(UIS_APN_DETAIL);
- else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
- }
- void UIShowPOCSerPass(int update){
- if(update){
- GuiClearAll();//clear
- ShowCaption("密码验证",1); //0
- GuiDrawHLine(0,LCD_WIDTH,20,1);
- NumEditInit(&sutNumEdit,(LCD_WIDTH-6*8)/2,(LCD_HEIGHT-16)/2,"000000");
- NumEditShow(&sutNumEdit);
- GuiDrawHLine(0,LCD_WIDTH,104,1);
- GuiShowStr(0,110,"[上]加值 [下]移动",0x01);
- }
- }
- void POCSetSerPassResponse(void){
- unsigned long key;
-
- NumEditResponse(&sutNumEdit);
- if(KEY_PANEL_MENU==g_ulKeyValue){
- if(memcmp(sutNumEdit.buffer, menu_key, 6)==0) UISetNextStatus(UIS_SET_SERVER);
- else{
- ShowMessageBox("密码错误");
- OsDelayTime(100);
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- }
- if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_MENU_SYS_SET);
- }
- void UIShowPOCSer(int update){
- int i;
- unsigned char tempSer;
- static const char *accIconFileName[]={
- "Ser.bmp",
- "Sersel.bmp",
- ""
- };
- static const char *NameAddr[]={
- "杭州服务器",
- "山东服务器",
- "IP分发服务器",
- "集群服务器",
- "自定义服务器",
- ""
- };
- static char *tempAddr[5];
- static char ItemFeatures[4+1];
- if(update){
- GuiClearAll();
- ShowCaption("服务器列表",2); //0
- GuiDrawHLine(0,159,20,1);
- GuiDrawHLine(0,159,104,1);
- GuiShowStr(0,110,"[M]确定 [EXIT]退出",0x01);
-
- tempSer=newPara.serList.defaultuse;
- if(hgs_poc_type != POC_OWN){
- if(tempSer >= 2) tempSer -= 2;
- }
- for(i=0;i<=SER_US;i++){
- if(i==tempSer) ItemFeatures[i]=1;
- else ItemFeatures[i]=0;
- }
- //初始化ListBox控件
- if(hgs_poc_type == POC_OWN)
- ListBoxInit(&sutListBox,NameAddr,0,accIconFileName,ItemFeatures);
- else{
- for(i=0;i<2;i++) tempAddr[i]=(char *)NameAddr[i];
- tempAddr[i++]=(char *)NameAddr[4];
- tempAddr[i++]=(char *)NameAddr[5];
- ListBoxInit(&sutListBox,tempAddr,0,accIconFileName,ItemFeatures);
- }
- return;
- }
- }
- void POCSetSerResponse(void)
- {
- char buf[50],buf1[100];
- unsigned long key;
- char *pip,*domain=NULL;
- unsigned char tempSer;
-
- key=ListBoxResponse(&sutListBox);
-
- if(KEY_PANEL_EXIT==key) UISetNextStatus(UIS_MENU_SYS_SET);
- else if(KEY_PANEL_MENU==key){
- tempSer=sutListBox.handle;
- if(hgs_poc_type != POC_OWN){
- if(tempSer >= 2) tempSer += 2;//西安POC没有集群跟IP分发
- }
-
- if(tempSer != newPara.serList.defaultuse){
- newPara.serList.defaultuse=tempSer;
- ShowMessageBox("配置完成");
- //sys save
- ModifyConfigureFile(0);
- getGIPAddr();//更新GPS参数
- pip=getPIPAddr();
- domain=getDOMAINAddr();
- CloseGPSSocket();
- //西安的POC不支持单段设置,且必须同时配置id与ip,最好不配置domain
- if(hgs_poc_type==POC_OWN)snprintf(buf, sizeof(buf),"ip=%s;domain=%s;", pip, domain);
- else snprintf(buf, sizeof(buf),"id=%ld;ip=%s;", sutProductPara.PSN,pip);
- AscStrToHexStr(buf,buf1);
- ModemSendAT("AT+POC=010000");
- ModemSendAT(buf1);
- ModemSendAT("\r\n");
- IWDG_ReloadCounter();
- os_dly_wait(20);
- ModemSendAT("AT+POC=040000\r\n");
- OsDelayTime(100);
- }
- UISetNextStatus(UIS_STANDBY );
- }
- }
- char showIndex;
- void ShowAPNMessage(char index)
- {
- char buf[40];
- char temp[40];
- unsigned char len;
- unsigned char i,y,maxLen;
- i=0;
- y=22;
- maxLen=14;
- GuiClearRect(0, y, LCD_WIDTH-1,LCD_HEIGHT-25);
- snprintf(buf, sizeof(buf), "%s:",APNNAME[showIndex]);
- GuiShowStr(1,y+16*i++,buf,0x01);
- len=strlen(newPara.apnList.apnList[showIndex].account);
- memcpy(temp, newPara.apnList.apnList[showIndex].account, maxLen);
- temp[maxLen]=0;
- snprintf(buf, sizeof(buf), "Name:%s",temp);
- GuiShowStr(1,y+16*i++,buf,0x01);
- if(len > maxLen)
- {
- memcpy(temp, newPara.apnList.apnList[showIndex].account, maxLen);temp[maxLen]=0;
- snprintf(buf, sizeof(buf), "%s",temp);
- buf[len-maxLen]=0;
- GuiShowStr(1,y+16*i++,buf,0x01);
- }
- len=strlen(newPara.apnList.apnList[showIndex].pass);
- memcpy(temp, newPara.apnList.apnList[showIndex].pass, maxLen);
- temp[maxLen]=0;
- snprintf(buf, sizeof(buf), "Pass:%s",temp);
- GuiShowStr(1,y+16*i++,buf,0x01);
- if(len > maxLen)
- {
- memcpy(temp, newPara.apnList.apnList[showIndex].pass, maxLen);temp[maxLen]=0;
- snprintf(buf, sizeof(buf), "%s",temp);
- buf[len-maxLen]=0;
- GuiShowStr(1,y+16*i++,buf,0x01);
- }
- }
- void SetApnDetailShow(int update)
- {
- char buf[40];
- if(update)
- {
- GuiClearAll();
- ShowCaption("APN详情",2);//
- GuiDrawHLine(0,159,20,1);
- showIndex=0;
- ShowAPNMessage(showIndex);
- //----------------------------
- GuiDrawHLine(0,159,104,1);
- GuiShowStr(0,110,"[EXIT]返回 ",0x01);
- }
- }
- void SetApnDetailResponse(void)
- {
- if(KEY_PANEL_DOWN==g_ulKeyValue)
- {
- showIndex++;
- if(showIndex >= validApnNum) showIndex=0;
- ShowAPNMessage(showIndex);
- }else if(KEY_PANEL_UP==g_ulKeyValue)
- {
- if(showIndex==0) showIndex=validApnNum;
- if(showIndex > 0) showIndex--;
- ShowAPNMessage(showIndex);
- }
- else if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_SET_APN);
- }
- void MakeGpsSendData(void)
- {
- unsigned char *data=(unsigned char *)&sutLcdGpsSendData;
- memset(data, 0, sizeof(SUT_LCDGPS_SEND_DATA));
- data[0] = (sutGpsInfo.latitue>>24)&0xFF;
- data[1] = (sutGpsInfo.latitue>>16)&0xFF;
- data[2] = (sutGpsInfo.latitue>>8)&0xFF;
- data[3] = (sutGpsInfo.latitue)&0xFF;
-
- data[4] = (sutGpsInfo.longitue>>24)&0xFF;
- data[5] = (sutGpsInfo.longitue>>16)&0xFF;
- data[6] = (sutGpsInfo.longitue>>8)&0xFF;
- data[7] = (sutGpsInfo.longitue)&0xFF;
- }
- /*****************************************************
- 深圳北纬22.33 东经114.07
- 经过试验数据比较准确,但是东西南北不知道
- ******************************************************/
- void GetCoordinates(unsigned char type)
- {
- //type 0 UI时调用
- // 1 上传时调用
- char buf[30];
- //char buf0[15]={0};
- char buf1[8];
- char buf2[4]={0};
- char temp[3];
- char temp1[3];
- char temp2[5];
- char temp3[5];
- int i,num,num1,w,j;
- double Jnum1,Jnum2,Jnum3;//有小数位 8位有效
- double Wnum1,Wnum2,Wnum3;//有小数位 8位有效
- // char* g_cGetlongitude;
- // char* g_cGetlatitude;
-
- MakeGpsSendData();
- AscStrTurnHexStr((char *)sutLcdGpsSendData.JJJJ,buf1);
- memset(temp, 0, sizeof(temp));
- for(i=0;i<3;i++){
- temp[i]=buf1[i];
- }
- j=atoi(temp);
- memset(temp2, 0, sizeof(temp2));
- for(i=0;i<6;i++){
- temp2[i]=buf1[i+3];
- }
- num=atoi(temp2);
- Jnum1=num/1000;
- Jnum1 /=60;
- Jnum2 = (num%1000)*60;
- Jnum2 /=3600000;
- Jnum3=Jnum1+Jnum2;
- //sutLcdGpsSendData.j=j*1000000+Jnum3*1000000;
- // sutLcdGpsSendData.j = (j+Jnum3)*1000000;
- //Getlongitude;
- //Getlatitude;
- sutGpsInfo.testJD = j*1000000+Jnum3*1000000;//上传时使用
- // if(type == 0){//UI时要显示
- // sprintf(buf,"经度 %s: %d.%05d","W",j,(unsigned int)(Jnum3*100000));
- // GuiShowStr(0,40,buf,0x01);
- // }
- AscStrTurnHexStr((char *)sutLcdGpsSendData.WWWW,buf2);
- for(i=0;i<3;i++){
- temp1[i]=buf2[i];
- }
- w=atoi(temp1);
- for(i=0;i<6;i++){//5
- temp3[i]=buf2[i+3];
- }
- num1=atoi(temp3);
- Wnum1=num1/1000;
- Wnum1 /=60;
- Wnum2 = (num1%1000)*60;
- Wnum2 /=3600000;
- Wnum3=Wnum1+Wnum2;
- sutGpsInfo.testWD = w*1000000+Wnum3*1000000;
- if(type == 0){//UI时要显示
- snprintf(buf, sizeof(buf)," 纬度 %s: %.3d.%05d","S",w,(unsigned int)(Wnum3*100000));
- GuiShowStr(0,24,buf,0x01);
- snprintf(buf, sizeof(buf)," 经度 %s: %d.%05d","W",j,(unsigned int)(Jnum3*100000));
- GuiShowStr(0,40,buf,0x01);
-
-
- }
- }
-
- void SetGPSTimeShowDetail(unsigned char timeIndex)
- {
- unsigned short tempTime;
- char buf[10];
- tempTime = GPS_TimeTable[timeIndex];
-
- GuiClearRect(100,56,LCD_WIDTH-1, 56+16);
- if(tempTime==0)
- {
- GuiShowStr(100,56," 关闭 ",0x01);//130
- GuiReverseRect(108,56,16*2,16);
- }else
- {
- snprintf(buf, sizeof(buf)," %02d 秒",tempTime);
- GuiShowStr(100,56,buf,0x01);//130
- if(tempTime > 99) GuiReverseRect(108,56,24,16);
- else GuiReverseRect(108,56,16,16);
- }
- }
-
- /*********************************************************/
- void SetGPSShow(int update)
- {
- static unsigned short susCt=0;
- if(update){
- GuiClearAll();
- ShowCaption("北斗设置",1);//
- GuiShowStr(0,56,"北斗上传设置: 秒",0x01); //sutGpsInfo.SendTime
- GuiDrawHLine(0,159,20,1);
- GetCoordinates(0);
- sutGpsInfo.GPS_TimeIndexBackup = newPara.gpsTimeIndex;
- SetGPSTimeShowDetail(sutGpsInfo.GPS_TimeIndexBackup);
- GuiDrawHLine(0,159,104,1);
- susCt=0;
- }
- if(susCt==0){
- GuiShowStr(0,110,"[上]选择 [下]选择 ",0x01);
- }else if(susCt==200){
- GuiShowStr(0,110,"[M]保存 [EXIT]退出",0x01);
- }
- if(++susCt>=400)susCt=0;
- }
-
- void SetGPSResponse(void)
- {
- switch(g_ulKeyValue)
- {
- case KEY_PANEL_UP:
- case KEY_PANEL_DOWN:
- if(g_ulKeyValue==KEY_PANEL_UP)
- {
- if(sutGpsInfo.GPS_TimeIndexBackup<(GPS_TABLE_NUM-1))
- sutGpsInfo.GPS_TimeIndexBackup++;
- else
- sutGpsInfo.GPS_TimeIndexBackup=0;
- }else{
- if(sutGpsInfo.GPS_TimeIndexBackup==0)
- sutGpsInfo.GPS_TimeIndexBackup=GPS_TABLE_NUM-1;
- else
- sutGpsInfo.GPS_TimeIndexBackup--;
- }
- SetGPSTimeShowDetail(sutGpsInfo.GPS_TimeIndexBackup);
- break;
- case KEY_PANEL_MENU:
- if(sutGpsInfo.GPS_TimeIndexBackup != newPara.gpsTimeIndex)
- {//changed
- newPara.gpsTimeIndex = sutGpsInfo.GPS_TimeIndexBackup;
- GpsTimeUpdate();
- //save sys
- ModifyConfigureFile(1);
- }
-
- UISetNextStatus(UIS_STANDBY);
- break;
- case KEY_PANEL_EXIT: UISetNextStatus(UIS_MENU_SYS_SET);break;
- //case KEY_PANEL_MENU: UISetNextStatus(UIS_MENU_MAIN);break;
- }
- }
- unsigned char SetTimeIndex;
- void SetLCDShow(int update)
- {
- static unsigned short susCt=0;
- char buf[10];
- char buf1[6];
- int x=4;//4
- int i;
- if(update==1){
- SetTimeIndex=newPara.lcdParaDefaultIndex;
- GuiClearAll();
- ShowCaption("LCD设置",1);//0
- GuiDrawHLine(0,159,20,1);
- GuiShowStr(x,56," 背光时间: ",1);
- if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
- else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
- GuiShowStr(x+(16*5),56,buf,1);
- GuiReverseRect(x+(16*5),56,32,16);
- snprintf(buf1, sizeof(buf1),"%3d",SetTimeIndex);
- SlwTrace(INF,buf1,1);
- GuiDrawHLine(0,159,104,1);
- susCt=0;
- //return;
- }else if(update == 2){
- if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
- else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
- GuiShowStr(x+(16*5),56,buf,1);
- GuiReverseRect(x+(16*5),56,32,16);
- GuiDrawHLine(0,159,104,1);
- }
-
- if(susCt==0){
- GuiShowStr(0,110,"[上]选择 [下]选择 ",0x01);
- }else if(susCt==200){
- GuiShowStr(0,110,"[M]保存 [EXIT]退出",0x01);
- }
- if(++susCt>=400)susCt=0;
- }
-
-
- void SetLCDResponse(void)
- {
- int FileIndex;
- unsigned long key;
- char Buf[10];
- int x=4;//4
- //TimeOut[]
- // key=ListBoxResponse(&sutListBox);
-
- switch(g_ulKeyValue){
-
- case KEY_PANEL_UP:
- if(++SetTimeIndex>=5)SetTimeIndex=0;
- SetLCDShow(2);//0
- break;
- case KEY_PANEL_DOWN:
- if(SetTimeIndex>0)SetTimeIndex--;
- else SetTimeIndex=4;
- SetLCDShow(2);//0
- break;
- case KEY_PANEL_MENU:
- g_iLCDFlag=1;
- if(SetTimeIndex != newPara.lcdParaDefaultIndex){
- newPara.lcdParaDefaultIndex=SetTimeIndex;
- //save sys
- ModifyConfigureFile(1);
- }
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- case KEY_PANEL_EXIT:
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- // case KEY_PANEL_MENU:
- // UISetNextStatus(UIS_MENU_MAIN);
- // break;
- }
- // //--
- // if(KEY_PANEL_UP==key){
- // Index++;
- // if(Index==5)Index=0;
- // GuiClearArea(32, 56, 170, 24);
- // sprintf(Buf,"LCD定时:%d秒",TimeOut[Index]);
- // GuiShowStr(32,56,Buf,1);
- // }
- // //--
- // if(KEY_PANEL_DOWN==key){
- // if(Index==0)Index=5;
- // Index--;
- // GuiClearArea(32, 56, 170, 24);
- // sprintf(Buf,"LCD定时:%d秒",TimeOut[Index]);
- // GuiShowStr(32,56,Buf,1);
- // }
- // //--
- // if(KEY_PANEL_OK==key){
- // g_LCDFlag=1;
- // g_LCDTimeCt = TimeOut[Index]+5;
- // g_LCDTemp=TimeOut[Index]+5;
- // }
- // if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_STANDBY);
- // else if(KEY_PANEL_MENU==key)UISetNextStatus(UIS_MENU_MAIN);
- }
- unsigned char modemProcessFlash=0;
- MODEM_UPDATE_DEF m_updStatus;
- unsigned char m_process=0;
- int m_updateTimeout=0;
- char updateStart=0;
- void UpdateStatus(MODEM_UPDATE_DEF status)
- {
- modemProcessFlash=1;
- m_updStatus=status;
- m_updateTimeout=0;
- }
- char GetApnPara(unsigned char *source, unsigned char whitchOne,unsigned short *accessP, unsigned short *account,unsigned short *passw)
- {
- unsigned char *ptr=source;
- unsigned char getFlag=0;
-
- unsigned short i,noteAddress[9];//总共3组,共9个;号
-
- if(whitchOne >=3) return 1;//只有3组值
- i=0;
- while(*ptr != 0)
- {
- if(*ptr == ';')
- {
- if(getFlag < 9)
- {
- noteAddress[getFlag++]=i;
- }else{
- //收够了
- break;
- }
- }
- i++;
- ptr++;
- }
- if(getFlag != 9) return 2;//资源文件内容有错误
- switch(whitchOne)
- {
- case 0:*accessP=0;*account=noteAddress[0]+1;*passw=noteAddress[1]+1;break;
- case 1:*accessP=noteAddress[2]+1;*account=noteAddress[3]+1;*passw=noteAddress[4]+1;break;
- case 2:*accessP=noteAddress[5]+1;*account=noteAddress[6]+1;*passw=noteAddress[7]+1;break;
- }
- return 0;
- }
- //char ReadApnData(unsigned char *source,unsigned char witchone,char *apnapn,char *apnname,char *apnpass)
- //{//从缓存中获取数据段,一次一组
- // unsigned char *accessPV,*accountV,*passwV;
- // unsigned short accessP,account,passw;
- // unsigned short i;
- // char buf[30];
- // if(GetApnPara(source, witchone, &accessP, &account, &passw))
- // {
- // SlwTrace(INF, "HGS.apn dataErr",1);//如果初始化失败,则直接使用内存中的了
- // return 1;
- // }
- // accessPV=source+accessP;
- // accountV=source+account;
- // passwV=source+passw;
- // //accesspoint
- // if(apnapn != 0)
- // {
- // if(*accessPV == ';') apnapn[0] = 0;//空数据段
- // else{
- // for(i=0;i<APN_LEN;i++)
- // {
- // if(accessPV[i] != ';') apnapn[i]=accessPV[i];
- // else{
- // apnapn[i]=0;
- // break;
- // }
- // }
- // }
- // }
- // //account name
- // if(apnname != 0)
- // {
- // if(*accountV == ';') apnname[0] = 0;//空数据段
- // else{
- // for(i=0;i<APN_LEN;i++)
- // {
- // if(accountV[i] != ';') apnname[i]=accountV[i];
- // else{
- // apnname[i]=0;
- // break;
- // }
- // }
- // }
- // }
- // //password
- // if(apnpass != 0)
- // {
- // if(*passwV == ';') apnpass[0] = 0;//空数据段
- // else{
- // for(i=0;i<APN_LEN;i++)
- // {
- // if(passwV[i] != ';') apnpass[i]=passwV[i];
- // else{
- // apnpass[i]=0;
- // break;
- // }
- // }
- // }
- // }
- // return 0;
- //}
- //读取Para.ini配置文件获取LCD模式
- char GetApnFromSrc(char *src, char index,char *name, char *pass)
- {
- char target[15];
- char finalData[62];
- unsigned char tempLen,i,j;
- j=0;
- index +=1;
- switch(index)
- {
- case 1:case 2:case 3:case 4:
- snprintf(target, sizeof(target), "APN%d", index);
- break;
- default:return 0;
- }
- tempLen=GetParaFromStr(src, target, finalData);
- if(tempLen == 0) return 0;
- for(i=0;i<tempLen;i++)
- {
- if(finalData[i]==',')
- {
- j=i+1;
- finalData[i]=0;
- i=tempLen;
- }
- }
- tempLen=strlen(finalData);
- if(tempLen>30) tempLen=30;
- memcpy(name, finalData, tempLen);
- name[tempLen]=0;
- tempLen=strlen(finalData+j);
- if(tempLen>30) tempLen=30;
- memcpy(pass, finalData+j, tempLen);
- pass[tempLen]=0;
- return 1;
- }
- unsigned char validApnNum;
- void SetNetResponse(void)
- {
-
- switch(g_ulKeyValue){
-
- case KEY_PANEL_UP:
- if(++Net_temp_flag>=NET_MODE_NUM_MAX)Net_temp_flag=0; //3
- SetNetShow(2);//0
- break;
- case KEY_PANEL_DOWN:
- if(Net_temp_flag>0)Net_temp_flag--;
- else Net_temp_flag=NET_MODE_NUM_MAX-1; //2
- SetNetShow(2);//0
- break;
- case KEY_PANEL_MENU:
- newPara.netMode=Net_temp_flag;
- //save sys
- ModifyConfigureFile(1);
- GetMododexWithCard();
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- case KEY_PANEL_EXIT:
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- }
-
- }
- void SetNetShow(int update)
- {
- static unsigned short susCt=0;
- char buf[10];
- unsigned char len=0;
- char buf2[20];
- int x=12;//4
- if(update==1){
- GuiClearAll();
- ShowCaption("网络设置",1);
- GuiDrawHLine(0,159,20,1);
- GuiShowStr(x,56," 网络选择: ",1);
- snprintf(buf2,sizeof(buf2),"MODE:%s",GetCaptionByMododex(Mododrex_Net));
- //GuiShowStr(x,86,buf2,1);
- ShowCaption(buf2,86);
- snprintf(buf, sizeof(buf),"%s",g_ausNetOut[newPara.netMode]);
- len=strlen(buf);
- GuiShowStr(x+(16*5),56,buf,1);
- GuiReverseRect(x+(16*5),56,8*len,16);//5
- GuiDrawHLine(0,159,104,1);
- susCt=0;
- }else if(update == 2){
- memset(buf,0,sizeof(buf));
- snprintf(buf, sizeof(buf),"%s",g_ausNetOut[Net_temp_flag]);
- len=strlen(buf);
- GuiShowStr(x+(16*5),56,buf,1);
- GuiReverseRect(x+(16*5),56,8*len,16);//5
- GuiDrawHLine(0,159,104,1);
- }
-
- if(susCt==0){
- GuiShowStr(0,110,"[上]选择 [下]选择 ",0x01);
- }else if(susCt==200){
- GuiShowStr(0,110,"[M]保存 [EXIT]退出",0x01);
- }
- if(++susCt>=400)susCt=0;
- }
- void ShowNetCaption(unsigned char g_net)
- {
-
- switch(g_net)
- {
- case 0:
- ShowCaption("当前(Auto)",1); //
- break;
- case 1:
-
- ShowCaption("当前(2G+3G)",1); //
- break;
- case 2:
-
- ShowCaption("当前(4g模式)",1); //
- break;
- default:
- break;
- }
- }
- void GetMododexWithCard(void)
- {
- char buf[30];
- //根据CardType和ModeSetup转换为Mododex值的一个表
- //static const unsigned char MododrxTable[3][3]={{11,24,5},{2,8,5},{17,21,5}};
- static const unsigned char MododrxTable[3][4]={{11,15,10,5},{2,25,7,5},{17,25,1,5}};// 自动 2-4
- snprintf(buf,sizeof(buf),"AT+MODODREX=%d\r\n",MododrxTable[thisYunYingShang][newPara.netMode]);
- SlwTrace(INF,buf,1);
- ModemSendAT(buf);
- }
- const char *GetCaptionByMododex(unsigned int mododex)
- {
-
- static const char *CaptionTable[]={
- "",
- "UMTS ONLY",//1
- "AUTO(LTE)",
- "CDMA AND GSM",
- "AUTO(TDS)",
- "LTE ONLY",
- "TDS ONLY",
- "TDS WCDMA",
- "TDS GSM WCDMA",
- "TDS WCDMA LTE",
- "HDR ONLY",
- "AUTO (TELECOM)",
- "AUTO(HDR)",
- "CDMA HDR LTE",
- "CDMA HDR",
- "CDMA ONLY",
- "AUTO(TDS,LTE)",
- "AUTO(LTE,WCDMA)",
- "AUTO(WCDMA,GSM)",
- "AUTO(WCDMA,LTE)",
- "LTE WCDMA ONLY",
- "WCDMA GSM ONLY",
- "LTE AND TDS",
- "LTE GSM ONLY",
- "CDMA HDR WCDMA GSM",
- "GSM ONLY",
- };
-
- return CaptionTable[mododex];
-
- }
-
- /***************************场景模式设置******************************/
- void SetSoundModeShow(int update)
- {
- int i;
- const char*ModeName[]={
- "室内模式",
- "室外模式",
- ""
- };
-
- char GroupsFeatures[2];
- memset(GroupsFeatures,0,sizeof(GroupsFeatures));
-
- if(update){
- GuiClearAll();
- ShowCaption("场景模式",2);//
- GuiDrawHLine(0,159,20,1);
- //设置Features 将决定选择图标
- GroupsFeatures[newPara.SoundMode]=1;
-
- ListBoxInit(&sutListBox,ModeName,0,accIconFileNameAPN,GroupsFeatures);
- //----------------------------
- GuiDrawHLine(0,159,104,1);
- GuiShowStr(0,110,"[OK]切换 [EXIT]退出",0x01);
- }
- }
- void SetSoundModeResponse(void)
- {
- unsigned long key;
- unsigned char buf[30];
- snprintf(buf,sizeof(buf),"AT+LVL=4,%d\r\n",newPara.lvl);
- key=ListBoxResponse(&sutListBox);
-
- if(KEY_PANEL_MENU==key)
- {
-
- if(newPara.SoundMode!=sutListBox.handle){
- newPara.SoundMode=sutListBox.handle;
- // if(newPara.SoundMode==1){
- // ModemSendAT("at+syscmd=start_pcm volume 7 7\r\n");
- // }
- // else ModemSendAT(buf);// ModemSendAT("at+syscmd=start_pcm volume 7 5\r\n");
- snprintf(buf,sizeof(buf),"AT+LVL=4,%d\r\n",newPara.SoundMode<1?newPara.lvl:newPara.OutDoorLvl);
- ModemSendAT(buf);
-
- ModifyConfigureFile(1);
- }
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
-
- }
- /***************************提示音设置******************************/
- unsigned char tempKeySound;
- void keySoundFlash(void)
- {
- char info[20];
- int x=12,len;
-
- if(tempKeySound==0) sprintf(info, "关闭");
- else sprintf(info, "打开");
- len=strlen(info);
- GuiShowStr(x+(16*4),56,info,1);
- GuiReverseRect(x+(16*4),56,8*len,16);//5
- }
- void SetKeySoundShow(int update)
- {
- static unsigned short susCt=0;
- int x=12;//4
- if(update==1){
- GuiClearAll();
- ShowCaption("PTT提示音设置",1);
- GuiDrawHLine(0,159,20,1);
- GuiShowStr(x,56," 开关:",1);
- tempKeySound=newPara.KeySound;
- keySoundFlash();
- GuiDrawHLine(0,159,104,1);
- susCt=0;
- }
-
- if(susCt==0) GuiShowStr(0,110,"[上]选择 [下]选择",0x01);
- else if(susCt==200) GuiShowStr(0,110,"[M]保存 [EXIT]退出",0x01);
- if(++susCt>=400)susCt=0;
- }
- void SetKeysoundResponse(void)
- {
- switch(g_ulKeyValue){
- case KEY_PANEL_UP:
- case KEY_PANEL_DOWN:
- if(tempKeySound==0) tempKeySound=1;
- else tempKeySound=0;
- keySoundFlash();
- break;
- case KEY_PANEL_MENU:
- if(tempKeySound != newPara.KeySound){
- newPara.KeySound=tempKeySound;
- //save sys
- ModifyConfigureFile(1);
- }
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- case KEY_PANEL_EXIT:
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- }
-
- }
- typedef enum{
- PMODE_NORMAL,
- PMODE_DEFAULT_LOW,
- PMODE_SUPER_LOW,
- PMODE_WCDMA_LOW
- }PWR_ENUMDEF;
- void SetPowerModeShow(int update)
- {
- int i;
- const char*ModeName[]={//这里数量变了记得修改 PWR_MODE_NUM
- "常规模式",
- "低功耗模式",
- "超低功耗模式",
- //"WCDMA模式",
- ""
- };
-
- char GroupsFeatures[PWR_MODE_NUM];
- memset(GroupsFeatures,0,sizeof(GroupsFeatures));
-
- if(update){
- GuiClearAll();
- ShowCaption("模式设置",2);//
- GuiDrawHLine(0,159,20,1);
- //设置Features 将决定选择图标
- GroupsFeatures[newPara.pwrMode]=1;
-
- ListBoxInit(&sutListBox,ModeName,0,accIconFileNameAPN,GroupsFeatures);
- //----------------------------
- GuiDrawHLine(0,159,104,1);
- GuiShowStr(0,110,"[OK]切换 [EXIT]退出",0x01);
- }
- }
- //超长功耗
- #define MODE_LONG_LOW_PWR_NONE_4G 5
- #define MODE_LONG_LOW_PWR_IS_4G 55
- //默认为低功耗模式
- #define MODE_LOW_PWR_NONE_4G 5
- #define MODE_LOW_PWR_IS_4G 25
- //使用常规非低功耗模式
- #define MODE_NORMAL__NONE_4G 5
- #define MODE_NORMAL__IS_4G 5
- //WCDMA模式
- #define MODE_WCDMA__NONE_4G 5
- #define MODE_WCDMA__PWR_IS_4G 15
- //终端放弃设置模式,由服务器决定使用什么情况
- #define MODE_AUTO____NONE_4G 0
- #define MODE_AUTO____IS_4G 0
- void ModemSetPwrMode(unsigned char mode)
- {
- char info[30];
- unsigned char seg1,seg2;
- switch(mode){
- case PMODE_DEFAULT_LOW: seg1=MODE_LOW_PWR_NONE_4G;seg2=MODE_LOW_PWR_IS_4G;break;//默认为低功耗模式
- case PMODE_SUPER_LOW: seg1=MODE_LONG_LOW_PWR_NONE_4G;seg2=MODE_LONG_LOW_PWR_IS_4G;break;//超长功耗
- case PMODE_NORMAL: seg1=MODE_NORMAL__NONE_4G;seg2=MODE_NORMAL__IS_4G;break;//使用常规非低功耗模式
- //case PMODE_WCDMA_LOW: seg1=MODE_WCDMA__NONE_4G; seg2=MODE_WCDMA__PWR_IS_4G;break;//使用WCDMA 功耗模式
- default:return;
- }
- snprintf(info, sizeof(info), "AT+UDP=%d,%d\r\n",seg1,seg2);
- ModemSendAT(info);
- SlwTrace(INF, info,0);
- }
- void SetPowerModeResponse()
- {
- unsigned long key;
-
- key=ListBoxResponse(&sutListBox);
- if(KEY_PANEL_MENU==key){
- if(sutListBox.handle != newPara.pwrMode){
- newPara.pwrMode=sutListBox.handle;
- ModemSetPwrMode(newPara.pwrMode);
- ModifyConfigureFile(1);
- }
- UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- }
- void GetPwrMode(char *msg)
- {//0,5,30
- //1,30,30
- int seg1,seg2;
- short i;
- char buf[10];
-
- if(msg[0]=='0') return;
-
- for(i=2;i<strlen(msg);i++){
- if(msg[i]==','){
- seg1=atoi(msg+2);
- seg2=atoi(msg+i+1);
- if(seg1==MODE_LOW_PWR_NONE_4G && seg2==MODE_LOW_PWR_IS_4G && newPara.pwrMode != PMODE_DEFAULT_LOW){
- newPara.pwrMode = PMODE_DEFAULT_LOW;
- goto SAVE_PWR_MODE;
- }else if(seg1==MODE_LONG_LOW_PWR_NONE_4G && seg2==MODE_LONG_LOW_PWR_IS_4G && newPara.pwrMode != PMODE_SUPER_LOW){
- newPara.pwrMode = PMODE_SUPER_LOW;
- goto SAVE_PWR_MODE;
- }else if(seg1==MODE_NORMAL__NONE_4G && seg2==MODE_NORMAL__IS_4G && newPara.pwrMode != PMODE_NORMAL){
- newPara.pwrMode = PMODE_NORMAL;
- goto SAVE_PWR_MODE;
- }
- }
- }
- return;
- SAVE_PWR_MODE:
- ModifyConfigureFile(0);
- }
- char GetCodecFromSrc(char *src, char index,char *name, char *pass)
- {
- char target[15];
- char finalData[62];
- char buf[30];
- unsigned char tempLen,i,j;
- j=0;
- index +=1;
-
- snprintf(target, sizeof(target), "CODEC%03d", index);
- SlwTrace(INF,target,0);
- tempLen=GetParaFromStr(src, target, finalData);
- // printf("tempLen==%d\r\n",tempLen);
- // SlwTrace(INF,finalData,1);
- if(tempLen == 0) return 0;
-
- for(i=0;i<tempLen;i++)
- {
- if(finalData[i]==',')
- {
- j=i+1;
- finalData[i]=0;
- i=tempLen;
- }
- }
- tempLen=strlen(finalData);
- if(tempLen>30) tempLen=30;
- memcpy(name, finalData, tempLen);
- name[tempLen]=0;
- sprintf(buf,"===%s",name);
- SlwTrace(INF,buf,0);
- //
- tempLen=strlen(finalData+j);
- if(tempLen>30) tempLen=30;
- memcpy(pass, finalData+j, tempLen);
- pass[tempLen]=0;
- sprintf(buf,"===%s",pass);
- SlwTrace(INF,buf,1);
- return 1;
- }
- int CodecFileInit(void)
- {
- int len;
- char tempData[40];
- char name[10];
- char pass[10];
- char buf[40];
- char CodecFileIndex=0;
- int tempLen,i;
- char ret=0;
-
- CodecFileIndex=GetFileIndex("codec.ini");
-
- if(CodecFileIndex == -1)
- {
- printf("No codec.ini file\r\n");
- codec_param.CodecNum=0;
- return -1;
- }
-
- len=GetFileLen(CodecFileIndex);
-
- if(len==0)
- {
- printf("codec.ini empty\r\n");
- return-2;
- }
- // //读出数据
- // if(HgsApnLen > sizeof(tempData))
- // {
- // printf("codec.ini len=%d,should <=%d\r\n",HgsApnLen,sizeof(tempData));
- // HgsApnLen=sizeof(tempData);
- // }
- //REG_NUM=005;
- tempLen=ReadFileData(CodecFileIndex,0,14,(u8*)tempData); //文件,start地址,长度 ,返回数据
- tempLen=GetParaFromStr(tempData, "REG_NUM", name);
-
- if(tempLen==0)
- {
- printf("No 'REG_NUM'\r\n");
- return -2;
- }else{
- codec_param.CodecNum=atoi(name);
- if(codec_param.CodecNum>CODEC_NUM){
-
- printf("REG_NUM OVER:%d\r\n", codec_param.CodecNum);
- codec_param.CodecNum=0;
- return -3;
- }
- }
- printf("REG_NUM:%d\r\n", codec_param.CodecNum);
- //读出数据
- for(i=0;i<codec_param.CodecNum;i++)
- {
- tempLen=ReadFileData(CodecFileIndex,14+21*i,21,(u8*)tempData);
- //printf("temp====%d\r\n",tempLen);
- memcpy(buf,tempData,tempLen);
- buf[tempLen]=0;
- //SlwTrace(INF,buf,1);
-
- if(0==GetCodecFromSrc(buf, i, name,pass))//tempData
- {
- //获取失败,恢复默认
- SlwTrace(INF,"cant find index\r\n",1);
- codec_param.CodecNum=0;
- return -4;
- }else{
- ret=ModemSetCodec(atoi(name),atoi(pass));
-
- if(ret!=0)printf("SET CodecErroAddr=%02x\r\n",ret);
-
- }
- }
-
-
- return 0;
-
- }
- /*****************************************************
- 快捷群组设置
- *****************************************************/
- void SetQuickGroupShow(int update)
- {
- unsigned char i=0;
- unsigned char j=0;
- static int susCt=0;
- unsigned char complete=0;
- char timeout=0;
- char *p[5]={0};
-
- static const char *accIconFileName[]={
- "APN.bmp",
- "APN1.bmp",
- ""
- };
-
- char ModeName[5][20]={
- "快捷 ",
- "1键:",
- "2键:",
- "3键:",
- ""
- };
-
- char GroupsFeatures[2];
- memset(GroupsFeatures,0,sizeof(GroupsFeatures));
-
- if(sutPocStatus.Logined == 0)//not login
- {
- ShowMessageBox(" 请先登录... ");
- timeout=50;
- while(timeout--)
- OsDelayTime(1);
- UISetNextStatus(UIS_STANDBY);
- return;
- }
-
-
- while(j<3){
-
- for(i=0;i<sutPocStatus.GroupsNum;i++)
- {
- /*
- 如果此群组被撤掉将一直匹配不到,
- */
- if(newPara.QuickGroupId[j]==sutPocStatus.AllGroups[i].ID){
- strcat(ModeName[j+1],sutPocStatus.AllGroups[i].name);
- complete=1;
- break;
- }
- }
- if(i==sutPocStatus.GroupsNum && complete==0)strcat(ModeName[j+1],"未启用");
- complete=0;
- j++;//
- }
- if(newPara.QuickGroup==1)strcpy(ModeName[0],"快捷使能: 开启");
- else strcpy(ModeName[0],"快捷使能: 关闭");
-
- //for(i=0;i<4;i++)strcat(ModeName[i],ModeName2[i]);
- // for(i=0;i<4;i++)strcat(ModeName[i],q);
- for(i=0;i<5;i++) p[i]=ModeName[i];
- //p=ModeName;
- if(update){
- GuiClearAll();
- ShowCaption("快捷群组设置",2);//
- GuiDrawHLine(0,159,20,1);
- ListBoxInit(&sutListBox,p,0,0,GroupsFeatures);
- GuiDrawHLine(0,159,104,1);
- susCt=100;
- }
- if(susCt==100){
- GuiShowStr(0,110,"[上]选择 [下]选择",0x01);
-
- }else if(susCt==300){
- GuiShowStr(0,110,"[M]保存 [EXIT]退出",0x01);
- }
- if(++susCt>=400)susCt=0; //400
- }
-
- void SetQuickGroupResponse(void)
- {
- unsigned long key;
- key=ListBoxResponse(&sutListBox);
-
- if(KEY_PANEL_MENU==key )
- {
- if(sutListBox.handle==0)QuickGroupSet=!QuickGroupSet;
- else {
- QuickGroupSelect=1;
- QuickGrouPIndex=sutListBox.handle-1;
- UISetNextStatus(UIS_MENU_GROUP_SEL);
- }
- }
- else
- if(KEY_PANEL_EXIT==key){
- if(QuickGroupSet==1){
- QuickGroupSet=0;
- }else{
- QuickGroupSet=0;
- QuickGroupSelect=0;
- ModifyConfigureFile(0);
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
-
- }
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|