123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215 |
- #include "includes.h"
- typedef enum{
- PMODE_DEFAULT_LOW,
- PMODE_SUPER_LOW,
- PMODE_NORMAL
- }PWR_ENUMDEF;
- unsigned short LcdOnTimeCt;
- unsigned int g_uiGpsStat = 1;
- SUT_MENU sutMenuSysSetup;
- unsigned char Net_temp_flag;
- //超长功耗
- #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
- //终端放弃设置模式,由服务器决定使用什么情况
- #define MODE_AUTO____NONE_4G 0
- #define MODE_AUTO____IS_4G 0
- static const char*g_ausNetOut[]={"Auto"," 2G "," 3G "," 4G "};
- 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;//使用常规非低功耗模式
- default:return;
- }
- snprintf(info, sizeof(info), "AT+UDP=%d,%d\r\n",seg1,seg2);
- ModemSendAt(info);
- SlwTrace(INF, info,0);
- }
- void GetPwrMode(char *msg)
- {//0,5,30
- //1,30,30
- int seg1,seg2;
- short i;
- char buf[15];
-
- //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){
- 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){
- goto SAVE_PWR_MODE;
- }else if(seg1==MODE_NORMAL__NONE_4G && seg2==MODE_NORMAL__IS_4G && newPara.pwrMode != PMODE_NORMAL){
- goto SAVE_PWR_MODE;
- }else if(seg2!=MODE_LOW_PWR_IS_4G&&seg2!=MODE_LONG_LOW_PWR_IS_4G&& seg2!=MODE_NORMAL__IS_4G){
- //Seg2 3个模式都不满足切换为常规模式
- // seg1=MODE_NORMAL__NONE_4G;
- // seg2=MODE_NORMAL__IS_4G;
- // newPara.pwrMode = PMODE_NORMAL;
- goto SAVE_PWR_MODE;
-
- }
- }
- }
- return;
- SAVE_PWR_MODE:
- snprintf(buf, sizeof(buf), "AT+UDP=%d,%d\r\n",seg1,seg2);
- ModemSendAt(buf);
- ModemSetPwrMode(newPara.pwrMode);
- }
- /*****************************************************
- 深圳北纬22.33 东经114.07
- 经过试验数据比较准确,但是东西南北不知道
- ******************************************************/
- void GetCoordinates(unsigned char type)
- {
- //type 0 UI时调用
- // 1 上传时调用
- char buf[30];
- 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位有效
- unsigned char laTemp[4],loTemp[4];
- laTemp[0] = (sutGpsInfo.latitue>>24);
- laTemp[1] = (sutGpsInfo.latitue>>16);
- laTemp[2] = (sutGpsInfo.latitue>>8);
- laTemp[3] = (sutGpsInfo.latitue);
-
- loTemp[0] = (sutGpsInfo.longitue>>24);
- loTemp[1] = (sutGpsInfo.longitue>>16);
- loTemp[2] = (sutGpsInfo.longitue>>8);
- loTemp[3] = (sutGpsInfo.longitue);
-
- AscStrTurnHexStr((char *)loTemp,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;
- sutGpsInfo.testJD = j*1000000+Jnum3*1000000;//上传时使用
- AscStrTurnHexStr((char *)laTemp,buf2);
- for(i=0;i<3;i++) temp1[i]=buf2[i];
- w=atoi(temp1);
- for(i=0;i<6;i++) 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,STATUS_ITEM_HEIGH,buf,0x01,0);
- snprintf(buf, sizeof(buf)," 经度 %s: %d.%05d","W",j,(unsigned int)(Jnum3*100000));
- GuiShowStr(0,STATUS_ITEM_HEIGH+16,buf,0x01,0);
- }
- }
-
-
- unsigned char validApnNum;
-
- 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("禁止修改");
- uTimerHardDly(200);
- UISetNextStatus(UIS_MENU_SYS_SET);
- return;
- }
- if(validApnNum==1)
- {
- ShowMessageBox("配置文件无APN");
- uTimerHardDly(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,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [S]详情",0x01,0);
- }
- }
-
- 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_LCD);
- break;
- case 2:
- UISetNextStatus(UIS_SET_NET);
- break;
- case 3:
- UISetNextStatus(UIS_SET_SERVER_PASS);
- break;
- case 4:
- UISetNextStatus(UIS_SET_KEYSound);
- break;
- // case 5:
- // UISetNextStatus(UIS_SET_SOUNDMODE);
- // break;
- case 5:
- UISetNextStatus(UIS_VOICE_PLAY);
- break;
- case 6:
- UISetNextStatus(UIS_SET_CODETYPE);
- break;
- case 7:
- UISetNextStatus(UIS_SET_PWRMODE);
- break;
-
- case 8:
- UISetNextStatus(UIS_SOSCONTACT_GROUP);
- break;
- case 9:
- UISetNextStatus(UIS_SOSCONTACT_PERSON);
- break;
- //UIS_SET_SPKLV
- case 10:
- UISetNextStatus(UIS_SET_MICLV);
- break;
- case 11:
- UISetNextStatus(UIS_SET_SPKLV);
- break;
- case 12:
- UISetNextStatus(UIS_SET_POC_FOTA);
- break;
- }
- if(sutMenuSysSetup.handle<=12)PushUiStack(&UI_Stack,sutMenuSysSetup.handle);
- }
- else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_MAIN); //UIS_MENU_SYS_SET
- }
- }
-
- char showIndex;
- void ShowAPNMessage(char index)
- {
- char buf[40];
- char temp[40];
- unsigned char len;
- unsigned char i,y,maxLen;
- i=0;
- y=STATUS_ITEM_HEIGH;
- 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,0);
- 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,0);
- if(len > maxLen)
- {
- // memcpy(temp, newPara.apnList.apnList[showIndex].account, maxLen);temp[maxLen]=0;
- // snprintf(buf, sizeof(buf), "%s",temp);
- // buf[len-maxLen]=0;
- strcpy(buf,&(newPara.apnList.apnList[showIndex].account[maxLen]));
- GuiShowStr(1,y+16*i++,buf,0x01,0);
- }
- 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,0);
- if(len > maxLen)
- {
- // memcpy(temp, newPara.apnList.apnList[showIndex].pass, maxLen);temp[maxLen]=0;
- // snprintf(buf, sizeof(buf), "%s",temp);
- // buf[len-maxLen]=0;
- strcpy(buf,&(newPara.apnList.apnList[showIndex].pass[maxLen]));
- GuiShowStr(1,y+16*i++,buf,0x01,0);
- }
- }
-
- 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,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION," [EXIT]返回",0x01,0);
- }
- }
-
-
- //居中显示信息
- void FunShowMsg(char *info)
- {
- int x,y;
- SlwTrace(INF, info,1);
- x=(LCD_WIDTH-strlen(info)*8)/2;
- y=LCD_HEIGHT/2;
- GuiClearArea(0,y,LCD_WIDTH, 16);
- GuiShowStr(x,y,info,1,0);
- }
- //配置编码器菜单
- unsigned char tempCodetype;
- void CodeTypeUpdateShow(void)
- {
- char info[20];
-
- switch(tempCodetype){
- case 0:sprintf(info, "EVRC_HALF");break;
- case 1:sprintf(info, "AMRNB-122");break;
- case 2:sprintf(info, "EVRC_FULL");break;
- default:return;
- }
-
- FunShowMsg(info);
- }
- void SetCodeTypeShow(int update)
- {
- static unsigned short susCt=0;
- int x=4;//4
- int i;
- if(update==1){
- susCt=0;
- GuiClearAll();
- ShowCaption("编码器设置",1);//0
- //GuiDrawHLine(0,159,20,1);
- GuiDrawHLine(0,159,110,1);
- if(modemInitReady==0){
- ShowMessageBox("模块暂未启动");
- uTimerHardDly(50);
- UISetNextStatus(UIS_MENU_SYS_SET);
- }else{
- tempCodetype=sutPocStatus.codeType;
- CodeTypeUpdateShow();
- }
- }
- if(susCt==0){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- }else if(susCt==200){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- }
-
- if(++susCt>=400)susCt=0;
- }
- void SetCodeTypeResponse(void)
- {
- char info[30];
- switch(g_ulKeyValue){
- case KEY_PANEL_UP:
- if(tempCodetype==0) tempCodetype=2;
- else tempCodetype--;
- CodeTypeUpdateShow();
- break;
- case KEY_PANEL_DOWN:
- if(tempCodetype==2) tempCodetype=0;
- else tempCodetype++;
- CodeTypeUpdateShow();
- break;
- case KEY_PANEL_MENU:
- if(tempCodetype != sutPocStatus.codeType){
- sutPocStatus.codeType=tempCodetype;
- sprintf(info, "AT+POC=40000001%02x\r\n", tempCodetype);
- ModemSendAt(info);
- SlwTrace(INF, "Update codetype",1);
- }
- UISetNextStatus(UIS_STANDBY);
- break;
- case KEY_PANEL_EXIT:
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- }
- }
- void SetGPSTimeShowDetail(unsigned char timeIndex)
- {
- unsigned short tempTime;
- char buf[10];
- tempTime = GPS_TimeTable[timeIndex];
-
- GuiClearRect(100,STATUS_ITEM_HEIGH+16+16,LCD_WIDTH-1, STATUS_ITEM_HEIGH+16+16+16);
- if(tempTime==0)
- {
- GuiShowStr(100,STATUS_ITEM_HEIGH+16+16," 关闭 ",0x01,0);//130
- //GuiReverseRect(108,56,16*2,16);
- }else
- {
- snprintf(buf, sizeof(buf)," %02d 秒",tempTime);
- GuiShowStr(100,STATUS_ITEM_HEIGH+16+16,buf,0x01,0);//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,STATUS_ITEM_HEIGH+16+16,"北斗上传设置: 秒",0x01,0); //sutGpsInfo.SendTime
- //GuiDrawHLine(0,159,20,1);
- GetCoordinates(0);
- sutGpsInfo.GPS_TimeIndexBackup = newPara.gpsTimeIndex;
- SetGPSTimeShowDetail(sutGpsInfo.GPS_TimeIndexBackup);
- GuiDrawHLine(0,159,110,1);
- susCt=0;
- }
- if(susCt==0){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- }else if(susCt==200){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- }
- 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);
- }
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_MAIN);
- break;
- case KEY_PANEL_EXIT: UISetNextStatus(UIS_MENU_MAIN);break;
- //case KEY_PANEL_MENU: UISetNextStatus(UIS_MENU_MAIN);break;
- }
- }
-
- /***************************提示音设置******************************/
- unsigned char tempKeySound;
- char *KeySoundNAME[5]=
- {
- "关闭提示音",
- "按键+收发音",
- "仅收发音",
- ""
- };
- void SetKeySoundShow(int update)
- {
- static unsigned short susCt=0;
- static char GroupsFeatures[4];
- if(update){
- GuiClearAll();
- ShowCaption("提示音设置",1);
- //设置Features 将决定选择图标
- memset(GroupsFeatures,0,sizeof(GroupsFeatures));
- GroupsFeatures[newPara.KeySound]=1;
- ListBoxInit(&sutListBox,KeySoundNAME,0,accIconFileNameAPN,GroupsFeatures);
- //----------------------------
- GuiDrawHLine(0,159,110,1);
- }
- if(susCt==20){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- }else if(susCt==200){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- }
- if(++susCt>=400)susCt=0;
- }
- void SetKeysoundResponse(void)
- {
- unsigned long key;
- char buf[20];
- key=ListBoxResponse(&sutListBox);
- if(KEY_PANEL_MENU==key){
- if(sutListBox.handle != newPara.KeySound){
- //AT+TONES=1
- //ModemSendAt
- newPara.KeySound=sutListBox.handle;
- ModifyConfigureFile(1);
- }
- //sutUIstatus.ItemRefresh=1;
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
-
- }
- 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,0);
- if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
- else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
- GuiShowStr(x+(16*5),56,buf,1,0);
- //GuiReverseRect(x+(16*5),56,32,16);
- snprintf(buf1, sizeof(buf1),"%3d",SetTimeIndex);
- SlwTrace(INF,buf1,1);
- GuiDrawHLine(0,159,110,1);
- susCt=0;
- //return;
- }else if(update == 2){
- GuiClearRect(x+(16*5),56,160,16);
- if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
- else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
- GuiShowStr(x+(16*5),56,buf,1,0);
- //GuiReverseRect(x+(16*5),56,32,16);
- GuiDrawHLine(0,159,110,1);
- }
-
- if(susCt==0){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- }else if(susCt==200){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- }
- 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:
- if(SetTimeIndex != newPara.lcdParaDefaultIndex){
- newPara.lcdParaDefaultIndex=SetTimeIndex;
- //save sys
- ModifyConfigureFile(1);
- }
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_SYS_SET);
- break;
- case KEY_PANEL_EXIT:
- UISetNextStatus(UIS_MENU_SYS_SET);
- 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}};
- snprintf(buf,sizeof(buf),"AT+MODODREX=%d\r\n",MododrxTable[thisYunYingShang][newPara.netMode]);
- ModemSendAt(buf);
- }
- void SetNetShow(int update)
- {
- static unsigned short susCt=0;
- static const char *Netmode[NET_NUM+1]=
- {
- "AUTO",
- "2G",
- "3G",
- "4G",
- ""
- };
- //static
- char NetsFeatures[NET_NUM]={0};
- if(update){
- GuiClearAll();
- ShowCaption("网络设置",2);//
- NetsFeatures[newPara.netMode]=1;
- ListBoxInit(&sutListBox,Netmode,0,accIconFileNameAPN,NetsFeatures);
- //----------------------------
- GuiDrawHLine(0,159,110,1);
- }
- if(susCt==0){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- }else if(susCt==200){
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- }
- if(++susCt>=400)susCt=0;
- }
- void SetNetResponse(void)
- {
- unsigned long key;
- unsigned char buf[15];
- key=ListBoxResponse(&sutListBox);
- if(KEY_PANEL_MENU==key){
- if(sutListBox.handle != newPara.netMode){
- newPara.netMode=sutListBox.handle;
- // snprintf(buf,sizeof(buf),"AT+CTEC=%d,%d\r\n",netshowvalue,newPara.netMode);
- // ModemSendAt(buf);
- GetMododexWithCard();
- ModifyConfigureFile(1);
- }
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- }
- void SetPowerModeShow(int update)
- {
- int i;
- static const char *ModeName[]={//这里数量变了记得修改 PWR_MODE_NUM
- "低功耗模式",
- "超长待机模式",
- "常规模式",
- ""
- };
-
- 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,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [EXIT]退出",0x01,0);
- }
- }
- /***************************场景模式设置******************************/
- void SetSoundModeShow(int update)
- {
- int i;
- static 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,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [EXIT]退出",0x01,0);
- }
- }
- void SetSoundModeResponse(void)
- {
- unsigned long key;
- 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("at+syscmd=start_pcm volume 7 5\r\n");
- ModifyConfigureFile(1);
- }
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
-
- }
- //对讲版本空中升级API
- int getNewVersion;
- unsigned char fotaPocStatus;
- unsigned int fotaTick;
- void SetUpIntercomVerShow(int update)
- {
- char info[40];
- if(update){
- GuiClearAll();
- ShowCaption("升级对讲版本",1);//
- //GuiDrawHLine(0,159,20,1);
- FunShowMsg("正在检测版本");
- GuiDrawHLine(0,159,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]升级 [EXIT]退出",0x01,0);
- getNewVersion=-1;
- fotaPocStatus=0;
- ModemSendAt("AT+FOTA?\r\n");//对应用在模块接收消息中添加获取版本代码
- uTimerStart(&fotaTick,400);//200
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]确定 [EXIT]退出",0x01,0);
- }
- switch(fotaPocStatus){
- case 0://获取版本信息
- if(uTimerExpired(&fotaTick)){
- if(getNewVersion ==0){//没有更新版本
- fotaPocStatus=1;
- FunShowMsg("没有可更新版本");
- uTimerStart(&fotaTick,150);
- }else if(getNewVersion>0){//有可更新版本
- //询问是否更新
- sprintf(info, "更新到V%d ?",getNewVersion);
- FunShowMsg(info);
- fotaPocStatus=2;
- }else{//超时未检测到查询版本响应
- fotaPocStatus=1;
- FunShowMsg("检测超时");
- uTimerStart(&fotaTick,150);
- }
- }
- break;
- case 1:
- if(uTimerExpired(&fotaTick)){//退出显示信息完毕
- UISetNextStatus(UIS_STANDBY);
- }
- break;
- }
- }
- void SetUpIntercomVerResponse(void)
- {
- switch(fotaPocStatus){
- case 2://等待用户确定
- if(KEY_PANEL_MENU==g_ulKeyValue){
- //确定
- fotaPocStatus=3;
- ModemSendAt("AT+FOTA=1\r\n");
- }else if(KEY_PANEL_EXIT==g_ulKeyValue){
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- break;
- }
- }
- void FotaStatusProcess(char *pMsg)
- {
- char info[30];
- switch(pMsg[0]){
- case '1'://1,0 1,19070702 表示查询POC版本响应
- getNewVersion=atoi(pMsg+2);//获取版本结果
- break;
- case '2'://表示开始执行FOTA升级操作
- FunShowMsg("正在升级...");
- break;
- case '3'://表示获取文件成功,正在安装
- FunShowMsg("正在重启...");
- break;
- case '4'://表示安装完成,正在重启模块
- FunShowMsg("正在重启...");
- sutPocStatus.modemRstFlag=1;
- fotaPocStatus=1;
- uTimerStart(&fotaTick,150);
- break;
- case '0'://退出FOTA升级,原因可能是因为网络不稳定或者文件获取失败
- FunShowMsg("失败退出");
- fotaPocStatus=1;
- uTimerStart(&fotaTick,150);
- break;
- }
- }
- void UIShowInformation(int update)
- {
- u16 x,y;
- char temp[11];
- char buf[50];
- static unsigned char flag=0;
- unsigned char LineSpace;//行宽
- LineSpace=18;
- if(update)
- {
- flag=0;
- GuiClearAll();
- ShowCaption("终端信息",1); //0
- //GuiDrawHLine(0,159,20,1);
- }
- x=2,y=STATUS_ITEM_HEIGH+5;//
- if(KEY_PANEL_UP==g_ulKeyValue ||
- KEY_PANEL_DOWN==g_ulKeyValue ||
- update)
- {
- g_ulKeyValue = 0;
- if(flag==0 || flag==2)
- {//显示PSN
- GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
- //终端型号
- snprintf(buf, sizeof(buf),"终端型号:%s",sutProductPara.ProductName);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //终端编码
- snprintf(buf, sizeof(buf),"终端编码:%lu",sutProductPara.PSN);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //应用版本号
- snprintf(buf, sizeof(buf),"应用版本:V%d",sutProductPara.ProductVersion);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //内部版本号
- snprintf(buf, sizeof(buf),"内部版本:%d",CUSTOMER_CODE);
- GuiShowStr(x,y,buf,0x01,0);
- // y+=LineSpace;
- // //模块版本号
- // snprintf(buf, sizeof(buf),"模块版本:L%d",g_iModemVer);
- // GuiShowStr(x,y,buf,0x01,0);
- flag=1;
- }else if(flag==1)
- {
- GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
- //对讲版本号
- snprintf(buf, sizeof(buf),"对讲版本:V%d",g_iPocVer);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //校验码
- temp[0]=0;
- GetCheckCodeByPsnMEID(temp,sutProductPara.PSN,DEV_HARDID);
- snprintf(buf, sizeof(buf),"校验码:%s",temp);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //显示MCU主频率
- snprintf(buf, sizeof(buf),"MCU主频:%d.%d Mhz",USER_MAIN_SYSCLK/1000000,USER_MAIN_SYSCLK%1000000/100000);
- GuiShowStr(x,y,buf,0x01,0);
- // y+=LineSpace;
- // //
- // memset(buf,sizeof(buf),0);
- // snprintf(buf,sizeof(buf),"模块:%s",ModemVer);
- // GuiShowStr(x,y,buf,0x01,0);
- flag=2;
- }
- }else if(KEY_UP_DOWN == g_ulKeyValue)
- {
- g_ulKeyValue=0;
- if(flag==1 || flag==2)
- {//显示IP
- GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
- //交换IP
- GuiShowStr(x,y,"交换服务器:",0x10,0);
- y+= LineSpace;
- snprintf(buf, sizeof(buf),"%s",showPIP);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- //GPS IP
- GuiShowStr(x,y,"北斗服务器:",0x10,0);
- y+= LineSpace;
- snprintf(buf, sizeof(buf),"%s",showGIP);
- GuiShowStr(x,y,buf,0x01,0);
- y+=LineSpace;
- snprintf(buf, sizeof(buf),"PORT:%d",newPara.gpsPort);
- GuiShowStr(x,y,buf,0x01,0);
- flag=0;
- }
- }
- }
- 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,SUBSCRIPT_LOCATION,"[上]加值 [下]移动",0x01,0);
- }
- }
- 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("密码错误");
- uTimerHardDly(50);
- UI_Stack.OK_back=1;
- 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,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]确定 [EXIT]退出",0x01,0);
-
- 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();
- //西安的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();
- uTimerHardDly(20);
- //os_dly_wait(20);
- ModemSendAt("AT+POC=040000\r\n");
- //OsDelayTime(100);
- }
- UISetNextStatus(UIS_STANDBY );
- }
- }
- 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);
- uTimerHardDly(200);
- modemPwrOffNow=1;
- }else UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_OPTION==key) UISetNextStatus(UIS_APN_DETAIL);
- else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
- }
-
- 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 SetPowerModeResponse()
- {
- unsigned long key;
-
- key=ListBoxResponse(&sutListBox);
- if(KEY_PANEL_MENU==key){
- if(sutListBox.handle != newPara.pwrMode){
- newPara.pwrMode=sutListBox.handle;
- ModifyConfigureFile(1);
- }
- UI_Stack.OK_back=1;
- UISetNextStatus(UIS_MENU_SYS_SET);
- }else if(KEY_PANEL_EXIT==key){
- UISetNextStatus(UIS_MENU_SYS_SET);
- }
- }
- void UIShowSinePlay(int update)
- {
- u16 x,y;
- char temp[11];
- char buf[50];
- if(update)
- {
- GuiClearAll();
- ShowCaption("正弦播报测试",1); //0
- //GuiDrawHLine(0,159,20,1);
- }
- GuiDrawHLine(0,159,110,1);
- GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]播放 [EXIT]退出",0x01,0);
- }
- void PlaySineResponse(void)
- {
- if(KEY_PANEL_MENU==g_ulKeyValue)
- {
- ModemSendAt("AT+SYSCMD=amix 'AUX_PCM_RX Audio Mixer MultiMedia1' 1\r\n");
- uTimerHardDly(100);
- ModemSendAt("AT+SYSCMD=aplay /data/sine.wav\r\n");
- }else if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_MENU_SYS_SET);
- }
- //void SetNetShow(int update)
- //{
- // static unsigned short susCt=0;
- // static const char *Netmode[NET_NUM+1]=
- //{
- // "AUTO",
- // "2G",
- // "3G",
- // "4G",
- // ""
- //};
- // //static
- // char NetsFeatures[NET_NUM]={0};
- // if(update){
- // GuiClearAll();
- // ShowCaption("网络设置",2);//
- // NetsFeatures[newPara.netMode]=1;
- // ListBoxInit(&sutListBox,0,0,accIconFileNameAPN,NetsFeatures);
- // //----------------------------
- // GuiDrawHLine(0,159,110,1);
- // }
- // if(susCt==0){
- // GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
- // }else if(susCt==200){
- // GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
- // }
- // if(++susCt>=400)susCt=0;
- //}
- // void SetNetResponse(void)
- //{
- // unsigned long key;
- // unsigned char buf[15];
- // key=ListBoxResponse(&sutListBox);
- // if(KEY_PANEL_MENU==key){
- // if(sutListBox.handle != newPara.netMode){
- // newPara.netMode=sutListBox.handle;
- //// snprintf(buf,sizeof(buf),"AT+CTEC=%d,%d\r\n",netshowvalue,newPara.netMode);
- //// ModemSendAt(buf);
- // GetMododexWithCard();
- // ModifyConfigureFile(1);
- // }
- // UI_Stack.OK_back=1;
- // UISetNextStatus(UIS_MENU_SYS_SET);
- // }else if(KEY_PANEL_EXIT==key){
- // UISetNextStatus(UIS_MENU_SYS_SET);
- // }
- //}
-
-
-
-
-
-
-
-
-
-
-
-
-
|