123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021 |
- #include "includes.h"
- static unsigned int UserTempIndex=0;
- /****************************状态栏显示部分开始***********************************/
- //显示信号强度
- static void ShowSingle(int CSQ){
- unsigned short x=SIGNAL_ICON_X;
- unsigned short y=3;
- if(sutApp.pocPpp == 0) guiShowBmp(x,y,"/ext/prepack/Single.bmp");
- else guiShowBmp(x,y,"/ext/prepack/SingleOK.bmp");
- //11 3格
- x += 10;
- if(CSQ<5 || CSQ==99){
- guiClearRect(x,y+1,x+14,y+17,COLOR_STATUS_BAR);
- }else if(CSQ<11){
- guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
- guiClearRect(x+4,y+1,x+14,y+17,COLOR_STATUS_BAR);
- }else if(CSQ<18){
- guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
- guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
- guiClearRect(x+8,y+1,x+14,y+17,COLOR_STATUS_BAR);
- }else if(CSQ<22){
- guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
- guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
- guiDrawVLine(x-2,y+16,x+8,y,guiGetBackColor());
- guiClearRect(x+11,y+1,x+14,y+17,COLOR_STATUS_BAR);
- }else{
- guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
- guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
- guiDrawVLine(x-2,y+16,x+8,y,guiGetBackColor());
- guiDrawVLine(x-4,y+16,x+12,y,guiGetBackColor());
- }
- }
- unsigned char netshowvalue=0xff;
- unsigned char ctecCurrentSet=0;
- //显示网络制式
- static void Show_Net(unsigned char s_netshowvalue){
- unsigned short y=0;
- if(s_netshowvalue==4){
- if(sutApp.UserInfo.tnet==5) guiShowStr(NET_ICON_X, y+1,"5G", FONT_MODE_16X16, REVERSED_NO,guiGetBackColor(),COLOR_STATUS_BAR);
- else guiShowStr(NET_ICON_X, y+1,"4G", FONT_MODE_16X16, REVERSED_NO,guiGetBackColor(),COLOR_STATUS_BAR);
- }else guiClearRect(NET_ICON_X,y,NET_ICON_X+NET_ICON_WX,y+11,COLOR_STATUS_BAR);
- }
- static void gpsIconShow(char flash){
- typedef struct{
- unsigned char located:1;
- unsigned char gpsF:1;
- }TMP_GPS_DEF;
- static TMP_GPS_DEF tmpGps;
- unsigned short x=GPS_ICON_X,y=0;
- if(tmpGps.located==sutGpsInfo.isGpsValid && tmpGps.gpsF==sutGpsInfo.isGpsWork&& flash==0) return;
- guiClearRect(x,y,x+GPS_ICON_WX,y+11,COLOR_STATUS_BAR);
- if(sutGpsInfo.isGpsWork==1){//GPS打开时
- guiShowBmp(x,y,"/ext/prepack/GPSA.bmp");
- if(sutGpsInfo.isGpsValid==1) {
- guiShowBmp(x+14,y,"/ext/prepack/GPSL1.bmp");//已定位
- guiShowBmp(x+20,y,"/ext/prepack/GPSL2.bmp");//已定位
- }
- }
- tmpGps.located=sutGpsInfo.isGpsValid;
- tmpGps.gpsF=sutGpsInfo.isGpsWork;
- }
- //显示电量
- static void ShowBatttery(int bat,unsigned int exeInterval){
- static unsigned int flashCnt=0;
- static unsigned char flag=0;
- static unsigned short cnt=0;
- unsigned short x=BAT_ICON_X+1,y=2,h=y+4;
- unsigned char batweight=10;
- int color;
- if(sutApp.chargeStatus)color=COLOR_GREEN;
- else color=guiGetBackColor();
-
- if(bat<WARN_PWR_LEVEL){//请充电
- if(++cnt<(800/exeInterval)) return;
- cnt=0;
- if(sutApp.lowPwrWarn==0){
- sutApp.lowPwrWarn=1;
- sutApp.lowPwrCnt=WARN_TTS_INTERVAL-5000;
- }
- if(flag==0){
- guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
- flag=1;
- }else{
- flag=0;
- guiClearRect(x,y-2,x+398,y-2+1+24,COLOR_STATUS_BAR);
- }
- return;
- }else if(bat<355){//340<x<=355 1格 //test 355
- guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");//3
- guiDrawVLine(h,h+batweight,x+29,y+2,color);
- }
- else if(bat<375){//355<x<=375 2格
- guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
- guiDrawVLine(h,h+batweight,x+22,y+2,color);
- guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
- }
- else if(bat<400){//375<x<=400 3格
- guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
- guiDrawVLine(h,h+batweight,x+15,y+2,color);
- guiDrawVLine(h,h+batweight,x+22,y+2,color);
- guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
- }
- else{//>=400 4格
- guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
- guiDrawVLine(h,h+batweight,x+8,y+2,color);
- guiDrawVLine(h,h+batweight,x+15,y+2,color);
- guiDrawVLine(h,h+batweight,x+22,y+2,color);
- guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
- }
- sutApp.lowPwrWarn=0;
- }
- //显示时间
- static void ShowTime(char flash,unsigned int exeInterval){
- static unsigned short nextExe=0;
- static unsigned char flag=0;
- MY_CLOCK myclock;
- char buf[30]={0};
- if(nextExe==0 || flash){
- //ohpocGetClock(&myclock);
- if(flag){
- snprintf(buf, sizeof(buf), "%02d:%02d",My_Clock.hour, My_Clock. min);
- flag=0;
- }else{
- snprintf(buf, sizeof(buf), "%02d %02d",My_Clock.hour, My_Clock. min);
- flag=1;
- }
- guiShowStr(TIME_ICON_X, 1,buf, FONT_MODE_16X16, REVERSED_NO,guiGetBackColor(),COLOR_STATUS_BAR);
- }
- if(++nextExe>=(1000/exeInterval)) nextExe=0;
- }
- //显示耳机接入状态
- static void ShowEarStatus(char flash){
- static unsigned char lastStatus=0;
- if(lastStatus==sutApp.earLev && flash==0) return;
- if(sutApp.earLev!=0) guiShowBmp(EAR_ICON_X, 1, "/ext/prepack/ear.bmp");
- else guiClearRect(EAR_ICON_X, 1, EAR_ICON_X+EAR_ICON_WX,1+12, COLOR_STATUS_BAR);
- lastStatus=sutApp.earLev;
- }
- //显示键盘锁状态
- static void ShowKeyLocStatus(char flash){
- static unsigned char lastStatus=0;
- if(lastStatus==sutApp.keyLock && flash==0) return;
-
- if(sutApp.keyLock!=0) guiShowBmp(LOCK_ICON_X, 1, "/ext/prepack/lock.bmp");
- else guiClearRect(LOCK_ICON_X, 1, LOCK_ICON_X+LOCK_ICON_WX,12, COLOR_STATUS_BAR);
- lastStatus=sutApp.keyLock;
- }
- //显示状态栏
- void uiShowStatusBar(char flash,unsigned int exeInterval){
- static unsigned char s_netshowvalue=0xff;
- static unsigned char lastPPPStatus;
- static int siCSQ;
- static int siVbat;
- static signed char charging=-1;//充电
- static unsigned short batFirstShow=0;
- static char cardType=0;
- char tempFlash=flash;
-
- if(sutApp.enableKey==0) return;
- if(sutApp.updateStatusBar!=0){
- sutApp.updateStatusBar=0;
- tempFlash=1;
- guiFillRect(0, 0, GLCD_WIDTH-1, UI_STATUS_BAR_HEIGH-1,COLOR_STATUS_BAR);//清除第一区
- guiFillRect(0, UI_LOCATION_SHOW_Y, GLCD_WIDTH-1, GLCD_HEIGHT-1, guiGetForeColor());//清除信标区
-
- }
- //显示信号
- if(tempFlash || siCSQ!=sutApp.g_iCSQ || lastPPPStatus != sutApp.pocPpp){
- lastPPPStatus=sutApp.pocPpp;
- siCSQ=sutApp.g_iCSQ;
- ShowSingle(sutApp.g_iCSQ);
- }
- //显示2G/3G/4G
- if(tempFlash || s_netshowvalue!=netshowvalue){
- s_netshowvalue=netshowvalue;
- Show_Net(s_netshowvalue);
- }
- //显示GPS是否正常
- sutGpsInfo.isGpsValid=1;
- sutGpsInfo.isGpsWork=1;
- gpsIconShow(tempFlash);
- //电量显示
- if(tempFlash || siVbat!=sutApp.g_iBAT || sutApp.g_iBAT < WARN_PWR_LEVEL||charging!=sutApp.chargeStatus){
- if(sutApp.g_iBAT>=0){
- siVbat=sutApp.g_iBAT;
- charging=sutApp.chargeStatus;
- ShowBatttery(sutApp.g_iBAT,exeInterval);
- }
- }
- //文本消息显示
- //sutSms.haveUnRead=1;
- //ShowMessageFlag(0);
-
- //GPS显示
- //时间显示
- ShowTime(tempFlash,exeInterval);
-
- //显示耳机状态
- //sutApp.earLev=1;
- ShowEarStatus(tempFlash);
-
- //显示键盘锁状态
- //ShowKeyLocStatus(tempFlash);
- }
- /****************************状态栏显示部分结束***********************************/
- /****************************待机界面显示部分开始***********************************/
- typedef enum{
- ME_NO_LOGIN,
- ME_NOBODY_SPEAK,
- ME_IAM_SPEAK,
- ME_SOMEBODY_SPEAK
- }ME_ENUM;
- static void uiShowGUName(int update);
- static void uiShowGuaDuan(unsigned char danhu);
- static void uiShowGroup(const char* info);
- static void uiShowUser(const char* info);
- static void uiShowHuaQuan(const char* info,char type);
- static void uiShowCallUserName(void);
- static void uiShowOffLineMessage(void);
- static void uiShowCopsInfo(void){
- char info[50];
- if(newPara.itemShowType==0){
- switch(sutApp.copstype){
- case 0:case 2:case 4:case 7://中国移动
- snprintf(info, sizeof(info), "中国移动");
- break;
- case 1:case 6:case 9://中移联通
- snprintf(info, sizeof(info), "中国联通");
- break;
- case 3:case 8:case 11://中国电信
- snprintf(info, sizeof(info), "中国电信");
- break;
- default:snprintf(info, sizeof(info), "公网集群对讲系统");break;
- }
- }else snprintf(info, sizeof(info), "公网集群对讲系统");
- guiFillRect(0, UI_STATUS_ITEM_Y, GLCD_WIDTH-1, UI_CONTENT_SHOW_Y-1, guiGetForeColor());//清除第二区
- guiShowCaption(0,info, UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- }
- #ifdef USE_LEFT_MOVING
- void movingShowNames(unsigned int dlyInterval,unsigned char reset, unsigned char now,unsigned char voice){
- const char *idleptr="空闲";
- const char *voiceptr="本机在讲话";
- const char *danhuptr="单呼模式";
- char *gname=danhuptr;
- char *voicePri=idleptr;
- char *uname=NULL;
- static unsigned int interval=0xffffff;
-
- if(sutPocStatus.logined==0) return;
- //if(sutPocStatus.statusChaned!=0){
- // sutPocStatus.statusChaned=0;
- // reset=1;
- //}
- if(++interval<500/dlyInterval && reset==0 && now==0) return;//0.5秒刷新一次
- interval=0;
- if(sutPocStatus.danHuStatus==0){
- if(sutPocStatus.LocalGroup.name[0]==0) gname=NULL;
- else gname=sutPocStatus.LocalGroup.name;
- }
- if(voice==0) voicePri=idleptr;
- else if(voice==1) voicePri=voiceptr;
- else voicePri=sutPocStatus.CallName;
- if(sutPocStatus.LocalUser.name[0]!=0) uname=sutPocStatus.LocalUser.name;
- mainScreenShowMoving(UI_GROUP_SHOW_Y, reset,gname,uname,voicePri);
- }
- #endif
- void uiShowMainInterface(char status,unsigned int exeInterval){
- short Flag=ME_NO_LOGIN;//ME_ENUM
- static unsigned char danhu=0;
- static short lastFlag=-1;
- static unsigned short siCt=0;
- char info[20];
- static char firstRun=0;
- static unsigned short dly=0;
- char tmpStatus=status;
- static int copsStatus;
- static unsigned int timer;
- static char lockStep=0;
- unsigned char reset=0;
- unsigned char moveFlash=0;
- static unsigned char voice=0;
-
-
- //提示解锁
- if(sutApp.lockShow!=0){
- if(lockStep==0){
- lockStep=1;
- backLightReset();
- uTimerStart(&timer, 1000);
- guiShowMessageBox("请先解锁!");
- }
- }else lockStep=0;
- if(lockStep==1){
- if(uTimerExpired(&timer)){
- guiClearRect(0,GLCD_HEIGHT/2-20,GLCD_WIDTH-1,GLCD_HEIGHT/2+20,guiGetBackColor());
- lastFlag=-1;//让以下刷新一下
- sutApp.lockShow=0;
- lockStep=0;
- sutUIstatus.ItemRefresh=1;//如果"请插卡"有显示,会被刷掉不再显示,这里让它重新显示出来
- }
- return;
- }
-
- /*逻辑处理开始*/
- if(tmpStatus){
- guiClearAll(guiGetBackColor());
- #ifdef DEVELOP_MODE
- guiShowStr(1, UI_BOTTOM_SHOW_Y,"研发版垚", FONT_MODE_16X16, REVERSED_NO,guiGetBackColor(),COLOR_STATUS_BAR);
- #else
- guiShowStr(1, UI_BOTTOM_SHOW_Y,"菜单", FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR, guiGetBackColor());
- #endif
-
- danhu=sutPocStatus.danHuStatus;
- uiShowGuaDuan(danhu);
- lastFlag=-1;
- siCt=0;
- //return;
- }
- if(copsStatus != sutApp.copstype || tmpStatus){
- copsStatus=sutApp.copstype;
- uiShowCopsInfo();
- }
- //更新单呼显示与否
- if(sutPocStatus.danHuStatus != danhu){
- danhu=sutPocStatus.danHuStatus;
- uiShowGuaDuan(danhu);
- }
-
- //以下持续调用,以便动态更新信息
- if(0==sutPocStatus.logined) Flag=ME_NO_LOGIN;//未登录
- else if(0==sutPocStatus.spk && 0==sutPocStatus.mic){//已登录,无人说话
- Flag=ME_NOBODY_SPEAK;
- }else if(0!=sutPocStatus.mic) Flag=ME_IAM_SPEAK;//已登录,本机说话
- else if(0!=sutPocStatus.spk) Flag=ME_SOMEBODY_SPEAK;//有人说话
- switch(Flag){
- case ME_NO_LOGIN://未登录
- if(Flag != lastFlag){
- guiFillRect(0, UI_CONTENT_SHOW_Y, GLCD_WIDTH-1, UI_BOTTOM_SHOW_Y-1,guiGetBackColor());
- guiShowBmp(0,UI_CONTENT_SHOW_Y, "logo.bmp");
- }
- break;
- case ME_NOBODY_SPEAK://已登录,无人说话
- if(Flag != lastFlag){
- if(ME_NO_LOGIN==lastFlag) guiFillRect(0, UI_CONTENT_SHOW_Y, GLCD_WIDTH-1, UI_CONTENT_SHOW_Y+16,guiGetBackColor());//从未登录到登录,'正在登录'那行也刷掉
- guiFillRect(0, UI_VOICE_SHOW_Y, GLCD_WIDTH-1, UI_VOICE_SHOW_Y+16,guiGetBackColor());
- #ifdef USE_LEFT_MOVING
- voice=0;
- moveFlash=1;
- #else
- uiShowHuaQuan("空闲",0);
- #endif
- sutPocStatus.statusChaned = 1;
- }
- break;
- case ME_IAM_SPEAK://已登录,本机说话
- if(Flag != lastFlag){
- #ifdef USE_LEFT_MOVING
- voice=1;
- moveFlash=1;
- #else
- guiFillRect(0, UI_VOICE_SHOW_Y, GLCD_WIDTH-1, UI_VOICE_SHOW_Y+16,guiGetBackColor());
- uiShowHuaQuan("本机在讲话",1);
- #endif
- }
- break;
- case ME_SOMEBODY_SPEAK://已登录,有人说话
- if(Flag != lastFlag){
- guiFillRect(0, UI_VOICE_SHOW_Y, GLCD_WIDTH-1, UI_VOICE_SHOW_Y+16,guiGetBackColor());
- sutPocStatus.statusChaned=1;//保证要刷新名字
- #ifdef USE_LEFT_MOVING
- voice=2;
- moveFlash=1;
- #endif
- }
- #ifndef USE_LEFT_MOVING
- uiShowCallUserName();
- #endif
- break;
- }
- if(Flag>0){//已登录
- if(Flag != lastFlag && (lastFlag==-1 || ME_NO_LOGIN==lastFlag)){
- #ifdef USE_LEFT_MOVING
- reset=1;
- #else
- uiShowGUName(1);
- #endif
- }
- #ifndef USE_LEFT_MOVING
- else uiShowGUName(0);
- #endif
- }else{//未登录
- snprintf(info, sizeof(info),"正在登陆.");
- switch(siCt){//not finished yet
- case 0:
- strcat(info, " ");
- guiShowStr(1, UI_GROUP_SHOW_Y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- break;
- case (1000/APP_SUB_DIV_TIME):
- strcat(info, ". ");
- guiShowStr(1, UI_GROUP_SHOW_Y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- break;
- case (2000/APP_SUB_DIV_TIME):
- strcat(info, "..");
- guiShowStr(1, UI_GROUP_SHOW_Y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- break;
- }
- //显示登录状态
- uiShowOffLineMessage();
- }
- #ifdef USE_LEFT_MOVING
- movingShowNames(APP_SUB_DIV_TIME,reset,moveFlash,voice);
- #endif
- if(++siCt>=(3000/APP_SUB_DIV_TIME)) siCt=0;
- if(Flag != lastFlag) lastFlag=Flag;
- }
- static void uiShowGUName(int update){
- static char scNameUser[POC_GROUP_USER_NAME_LEN];
- static char scNameGroup[POC_GROUP_USER_NAME_LEN];
- char name[POC_GROUP_USER_NAME_LEN];
- unsigned short len;
- const unsigned char danHuanBuffer[9]={0xB5,0xA5,0xBA,0xF4,0xC4,0xA3,0xCA,0xBD,0};
- char GroupShowUpdate=0;
- char UserShowUpdate=0;
- if(sutPocStatus.danHuStatus==0){
- if(0!=strcmp(sutPocStatus.LocalGroup.name,scNameGroup) || update!=0){
- memset(scNameGroup,0,sizeof(scNameGroup));
- memcpy(scNameGroup,sutPocStatus.LocalGroup.name,sizeof(scNameGroup));
- GroupShowUpdate=1;
- }
- }else{
- if(0!=strcmp((char *)danHuanBuffer,scNameGroup) || update!=0){
- memset(scNameGroup,0,sizeof(scNameGroup));
- memcpy(scNameGroup, danHuanBuffer,sizeof(danHuanBuffer));
- GroupShowUpdate=1;
- }
- }
-
- if(0!=strcmp(sutPocStatus.LocalUser.name,scNameUser) || update!=0){
- memset(scNameUser,0,sizeof(scNameUser));
- memcpy(scNameUser,sutPocStatus.LocalUser.name,sizeof(scNameUser));
- UserShowUpdate=1;
- }
- if(GroupShowUpdate){
- guiClearRect(0,UI_GROUP_SHOW_Y,GLCD_WIDTH-1,UI_GROUP_SHOW_Y+16+2,guiGetBackColor());//18
- //刷新群组栏
- if(sutPocStatus.danHuStatus==0) StrIntercept(name, scNameGroup, sizeof(name));
- else snprintf(name, sizeof(name), "单呼模式");
- uiShowGroup(name);
- sutPocStatus.statusChaned=1;
- }
- if(UserShowUpdate){
- guiClearRect(0,UI_USER_SHOW_Y,GLCD_WIDTH-1,UI_GROUP_SHOW_Y+16,guiGetBackColor());//18
- //刷新成员栏
- StrIntercept(name, scNameUser, sizeof(name));
- uiShowUser(name);
- }
- }
- static void uiShowGuaDuan(unsigned char danhu){
- if(danhu==0) guiClearArea(GLCD_WIDTH-48-1, UI_BOTTOM_SHOW_Y, 48, 24, guiGetBackColor());
- else guiShowStr(GLCD_WIDTH-48, UI_BOTTOM_SHOW_Y, "挂断", FONT_MODE_16X16, REVERSED_NO, COLOR_STATUS_BAR,guiGetBackColor());
- }
- static void uiShowGroup(const char* info){
- unsigned int color=COLOR_BLACK;
- if(sutPocStatus.danHuStatus==0) guiShowBmp(2, UI_GROUP_SHOW_Y, "/ext/prepack/Group2.bmp");
- else{
- guiShowBmp(2, UI_GROUP_SHOW_Y, "/ext/prepack/Onecall.bmp");
- color=COLOR_RED;
- }
- guiClearRect(2+24, UI_GROUP_SHOW_Y, GLCD_WIDTH-1, UI_GROUP_SHOW_Y+24, guiGetBackColor());
- guiShowStr(2+24+8, UI_GROUP_SHOW_Y,info, FONT_MODE_24X24, REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- }
- static void uiShowUser(const char* info){
- guiShowBmp(2, UI_USER_SHOW_Y, "/ext/prepack/people2.bmp");
- guiClearRect(2+24, UI_USER_SHOW_Y, GLCD_WIDTH-1, UI_USER_SHOW_Y+24, guiGetBackColor());
- //guiShowStr(2+16, UI_USER_SHOW_Y," ", FONT_MODE_24X24, REVERSED_NO,guiGetForeColor(),guiGetBackColor());
- guiShowStr(2+24+8, UI_USER_SHOW_Y,info, FONT_MODE_24X24, REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- }
- void showGroup(void){
- uiShowGroup("默认群组");
- }
- void showUser(void){
- uiShowUser("小明");
- }
- static void uiShowHuaQuan(const char* info,char type){
- unsigned int color=COLOR_BLACK;
- if(type==0) guiShowBmp(2, UI_VOICE_SHOW_Y, "/ext/prepack/Phone.bmp");
- else if(type==1){
- color=COLOR_RED;
- guiShowBmp(2, UI_VOICE_SHOW_Y, "/ext/prepack/Csend.bmp");
- }else if(type==2){
- guiShowBmp(2, UI_VOICE_SHOW_Y, "/ext/prepack/Creceive.bmp");
- color=COLOR_DEEP_GREEN;
- }
- guiClearRect(2+8+24, UI_VOICE_SHOW_Y, GLCD_WIDTH-1, UI_VOICE_SHOW_Y+24, guiGetBackColor());
- guiShowStr(2+8+24, UI_VOICE_SHOW_Y,info, FONT_MODE_24X24, REVERSED_NO,color,guiGetBackColor());
- }
- static void uiShowCallUserName(void){
- static char scName[POC_GROUP_USER_NAME_LEN];
- char name[POC_GROUP_USER_NAME_LEN];
- if(0 != strncmp(scName, sutPocStatus.CallName, POC_GROUP_USER_NAME_LEN) ||
- sutPocStatus.statusChaned){
- //当名字变更或UI切换了,刷新显示
- sutPocStatus.statusChaned=0;
- memcpy(scName, sutPocStatus.CallName, POC_GROUP_USER_NAME_LEN);
- uiShowHuaQuan(scName,2);
- }
- }
- static void uiShowOffLineMessage(void){
- static unsigned char laReason;
- char info[50],update=0;
- unsigned short y;
-
- if(sutUIstatus.Status != UIS_STANDBY) return;
- if(sutPocStatus.PocLineOffReason==laReason && sutUIstatus.ItemRefresh==0) return;
- sutUIstatus.ItemRefresh=0;
- laReason=sutPocStatus.PocLineOffReason;
- if(sutApp.cardStatus==0){
- snprintf(info, sizeof(info), "请插卡");
- update=1;
- }else{
- switch(sutPocStatus.PocLineOffReason){
- case 1:snprintf(info, sizeof(info), "无网络连接");break;
- case 2:snprintf(info, sizeof(info), "无法连接");break;
- case 3:snprintf(info, sizeof(info), "没有服务");break;
- case 4:snprintf(info, sizeof(info), "账号信息错误");break;
- }
- if(sutPocStatus.PocLineOffReason!=0) update=1;
- }
- if(update!=0){
- y=UI_USER_SHOW_Y;
- guiClearRect(2,y, GLCD_WIDTH-1, y +12, guiGetBackColor());
- guiShowStr(2, y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- }
- }
- /****************************待机界面显示部分结束***********************************/
- /****************************主菜单显示部分开始*************************************/
- #include "Palace.h"
- SUT_PALACE sutPalace;
- void PalaceIndexReset(){sutPalace.Index=0;}
- void uiShowMenuMain(char update){
- static const char *apcMenuMain[]={
- "群组选择",
- "成员选择",
- "选呼好友",
- "蓝牙设置",
- "信标设置",
- "本机设置",
- "侧键定义",
- "本机信息",
- "首长功能",
- "闹铃设置",
- "初始化",
- "初始化",
- ""
- };
- if(update) PalaceInit(&sutPalace,apcMenuMain,"/ext/prepack/Palace","主菜单");
- }
- void MenuMainResponse(void){
- unsigned short key;
- key=PalaceResponse(&sutPalace);
- if(MKEY_VALUE_MENU==key){
- switch(sutPalace.Index){
- case 0:
- uISetNextStatus(UIS_MENU_GROUP_SEL);
- break;
- case 1:
- uISetNextStatus(UIS_MENU_USER_SEL);
- break;
- case 2:
- uISetNextStatus(UIS_MENU_MAIL_SEL);
- break;
- case 3:
- uISetNextStatus(UIS_MENU_SYS_SEL);
- break;
- case 4:
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- break;
- case 5:
- uISetNextStatus(UIS_MENU_INFO_SEL);
- break;
- case 6:
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- break;
- case 7:
- uISetNextStatus(UIS_MENU_FRIEND_SEL);
- break;
- }
- uiPushStack(sutPalace.Index);
- }
- else if(MKEY_VALUE_ESC==key){
- uISetNextStatus(UIS_STANDBY);
- }
- }
- /****************************主菜单显示部分结束*************************************/
- /*****************************群组选择/成员选择部分开始*********************************/
- bool uiSwitchLock=false;
- bool isUiSwitchReady(void){return uiSwitchLock;}
- static char GUListBoxInited=0;
- static char SelMachine=0;
- static void ReFlashItemGU(char type);
- static void UserAssistAdd(void);
- void numGUFlash(int index, int total){
- char info[10];
- int x;
- snprintf(info, sizeof(info), "%03d", total);
- x=GLCD_WIDTH-strlen(info)*16;
- guiClearRect(x, UI_STATUS_ITEM_Y, GLCD_WIDTH-1, UI_STATUS_ITEM_Y+24, guiGetForeColor());
- guiShowStr(x, UI_STATUS_ITEM_Y+1, info, FONT_MODE_16X16, REVERSED_NO, guiGetBackColor(), guiGetForeColor());
- }
- bool setHandleToZero=true;
- void uiShowGUSel(char StatusUpdate,unsigned int exeInterval,char type){
- static char machine;
- static unsigned int timer;
- unsigned short timeout;
- char temp;
- if(StatusUpdate) machine=0;
- switch(machine){
- case 0:
- if(sutPocStatus.logined == 0){//not login
- guiShowMessageBox(" 请先登录 ");
- uTimerStart(&timer, 1000);
- machine=1;
- }else{
- uiSwitchLock=true;
- if(type==0) appSleepCtl(ASLEEP_GGROUP, 1);//要获取群组信息,不让休眠,记得超时或获取成功或获取失败后需要释放
- else if(type==1)appSleepCtl(ASLEEP_GUSER, 1);
- else appSleepCtl(ASLEEP_GFRIEND,1);
- UiassistStart(0);
- machine=2;
- setHandleToZero=true;
- }
- break;
- case 1:
- if(uTimerExpired(&timer)){
- uISetNextStatus(UIS_STANDBY);
- }
- break;
- case 2:
- temp=getAssistResult();
- if(temp){//??è?íê3é
- guiClearAll(guiGetBackColor());
- if(type==0){
- guiShowCaption(30,"群组选择",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16); //0
- uiMenuShowBottomIndacitor("确定", "返回");
- }else if(type==1){
- guiShowCaption(30,"用户选择",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16); //0
- uiMenuShowBottomIndacitor("单呼", "返回");
- }else {
- guiShowCaption(30,"好友选择",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16); //0
- uiMenuShowBottomIndacitor("呼叫", "返回");
- }
- ReFlashItemGU(type);
- uiMenuShowBottomLine();
- machine=3;
- //获取成功后退出释放休眠
- if(type==0) appSleepCtl(ASLEEP_GGROUP, 0);
- else if(type==1)appSleepCtl(ASLEEP_GUSER, 0);
- else appSleepCtl(ASLEEP_GFRIEND,0);
- uiSwitchLock=false;
- }
- break;
- }
- if(machine != 3) return;
-
- UserAssistAdd();
- LeftMoveSelectedItem(&sutListBox);
- }
- void GroupSelResponse(){
- unsigned int key;
- char buf[50];
- int i;
- key=getKeyValue();
- switch(SelMachine){
- case 0:
- if(GUListBoxInited==0) break;//还未初始化listbox时,不执行按键响应
- if(sutListBox.handle==0 && MKEY_VALUE_UP==key){
- UiassistStart(1);
- SelMachine=1;
- }else if(((sutListBox.handle+1) == sutListBox.itemnum) && (MKEY_VALUE_DOWN==key)){
- setHandleToZero=true;
- UiassistStart(2);
- SelMachine=2;
- }
-
- key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key){
- uiAssist.status=0;
- if(getStackStruct()->FastUiChange)uISetNextStatus(UIS_STANDBY);
- else uISetNextStatus(UIS_MENU_MAIN);
- appSleepCtl(ASLEEP_GGROUP, 0);//按键退出后释放休眠
- GUListBoxInited=0;
- uiSwitchLock=false;
- }else if(MKEY_VALUE_MENU==key){
- if(0 == sutPocStatus.ListCurOnlineNum) break;
- ///////////////////////////////////////
- UiassistEnd(0);
- sutApp.groupTTSEnable=1;
- snprintf(buf, sizeof(buf),"AT+POC=090000%08x\r\n",sutPocStatus.AllGroups[sutListBox.handle].ID);
- msgAtSend(buf);
- MSG_INFO(1,buf);
- snprintf(buf, sizeof(buf),"进入:%s",sutPocStatus.AllGroups[sutListBox.handle].name);
- MSG_INFO(1,buf);
- uISetNextStatus(UIS_STANDBY);
- SelMachine=0;
- }
- break;
- }
- }
- void UserSelResponse(){
- char buf[50];
- unsigned int key;
-
- key=getKeyValue();
- switch(SelMachine){
- case 0:
- if(GUListBoxInited==0) break;//还未初始化listbox时,不执行按键响应
- if(sutListBox.handle==0 && MKEY_VALUE_UP==key){
- UiassistStart(1);
- SelMachine=1;
- }else if((sutListBox.handle+1) == sutListBox.itemnum && (MKEY_VALUE_DOWN==key)){
- setHandleToZero=true;
- UiassistStart(2);
- SelMachine=2;
- }
- key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key){
- uiAssist.status=0;
- if(getStackStruct()->FastUiChange)uISetNextStatus(UIS_STANDBY);
- else uISetNextStatus(UIS_MENU_MAIN);
- appSleepCtl(ASLEEP_GUSER, 0);//按键退出后释放休眠
- GUListBoxInited=0;
- uiSwitchLock=false;
- }else if(MKEY_VALUE_MENU==key){
- if(0 == sutPocStatus.ListCurOnlineNum) break;
- UiassistEnd(0);
- snprintf(buf, sizeof(buf),"AT+POC=0A0000%08x\r\n",sutPocStatus.AllUsers[sutListBox.handle].ID);
- msgAtSend(buf);
- MSG_INFO(1, buf);
- snprintf(buf, sizeof(buf),"呼叫:%s",sutPocStatus.AllUsers[sutListBox.handle].name);
- MSG_INFO(1, buf);
- uISetNextStatus(UIS_STANDBY);
- SelMachine=0;
- }
- break;
- }
- }
- void FriendSelResponse(){
- char buf[50];
- unsigned int key;
-
- key=getKeyValue();
- switch(SelMachine){
- case 0:
- if(GUListBoxInited==0) break;//还未初始化listbox时,不执行按键响应
- if(sutListBox.handle==0 && MKEY_VALUE_UP==key){
- UiassistStart(1);
- SelMachine=1;
- }else if((sutListBox.handle+1) == sutListBox.itemnum && (MKEY_VALUE_DOWN==key)){
- setHandleToZero=true;
- UiassistStart(2);
- SelMachine=2;
- }
- key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key){
- uiAssist.status=0;
- if(getStackStruct()->FastUiChange)uISetNextStatus(UIS_STANDBY);
- else uISetNextStatus(UIS_MENU_MAIN);
- appSleepCtl(ASLEEP_GFRIEND, 0);//按键退出后释放休眠
- GUListBoxInited=0;
- uiSwitchLock=false;
- }else if(MKEY_VALUE_MENU==key){
- if(0 == sutPocStatus.ListCurOnlineNum) break;
- UiassistEnd(0);
- if(sutPocStatus.AllUsers[sutListBox.handle].status==1)break;
-
- snprintf(buf, sizeof(buf),"AT+POC=0A0000%08x\r\n",sutPocStatus.AllUsers[sutListBox.handle].ID);
- msgAtSend(buf);
- MSG_INFO(1, buf);
- snprintf(buf, sizeof(buf),"呼叫:%s",sutPocStatus.AllUsers[sutListBox.handle].name);
- MSG_INFO(1, buf);
- uISetNextStatus(UIS_STANDBY);
- SelMachine=0;
- }
- break;
- }
- }
- static void UserAssistAdd(void){
- switch(SelMachine){
- case 1:
- if(getAssistResult()){
- if(sutUIstatus.Status==UIS_MENU_GROUP_SEL)ReFlashItemGU(0);
- else if(sutUIstatus.Status==UIS_MENU_USER_SEL)ReFlashItemGU(1);
- else ReFlashItemGU(2);
- SelMachine=0;
- }
- break;
- case 2:
- if(getAssistResult()){
- if(sutUIstatus.Status==UIS_MENU_GROUP_SEL)ReFlashItemGU(0);
- else if(sutUIstatus.Status==UIS_MENU_USER_SEL)ReFlashItemGU(1);
- else ReFlashItemGU(2);
- SelMachine=0;
- }
- break;
- }
- }
- static void ReFlashItemGU(char type){
- static unsigned short susCt=0;
- static const char *accIconFileName[]={
- "/ext/prepack/Group1.bmp",
- "/ext/prepack/Group2.bmp",
- "/ext/prepack/people1.bmp",
- "/ext/prepack/people2.bmp",
- "/ext/prepack/people3.bmp",
- ""
- };
- static char *icons[4];//3//3
- int i;
- unsigned short timeout;
- static const char *NullGU="";
- static char *GUName[POC_ALL_GROUPS_NUM+1]; //5
- static char GUFeatures[POC_ALL_GROUPS_NUM+1];//5
- unsigned int showHandle;
- char info[30];
- if(type==0){
- icons[0]=accIconFileName[0];
- icons[1]=accIconFileName[1];
- }else{
- icons[0]=accIconFileName[2];
- icons[1]=accIconFileName[3];
- icons[2]=accIconFileName[4];
- }
- icons[3]=accIconFileName[5];
- for(i=0;i<=POC_ALL_GROUPS_NUM;i++){
- GUName[i]=NullGU;
- GUFeatures[i]=0;
- }
- for(i=0;i<sutPocStatus.ListFillIndex;i++){
- GUFeatures[i]=1;
- if(type==0){
- if(sutPocStatus.AllGroups[i].ID==sutPocStatus.LocalGroup.ID) GUFeatures[i]=0;
- GUName[i]=sutPocStatus.AllGroups[i].name;
- }else if(type==1){
- if(sutPocStatus.AllUsers[i].ID==sutPocStatus.LocalUser.ID) GUFeatures[i]=0;
- GUName[i]=sutPocStatus.AllUsers[i].name;
- }else{
- if(sutPocStatus.AllUsers[i].status==1)GUFeatures[i]=2;
- GUName[i]=sutPocStatus.AllUsers[i].name;
- }
- }
-
- if(sutPocStatus.ListCurOnlineNum==0 || sutPocStatus.ListDetailValid==0){//没有成员总数或没有获取到明细
- GUName[0]="空";
- GUFeatures[i]=0;
- }
-
- //初始化ListBox控件
- numGUFlash(0,sutPocStatus.ListCurOnlineNum);
- if(setHandleToZero==true){
- showHandle=0;
- setHandleToZero=false;
- }else{
- if(sutPocStatus.ListFillIndex) showHandle=sutPocStatus.ListFillIndex-1;
- else showHandle=0;
- }
- ListBoxInit(&sutListBox,GUName,0,icons,GUFeatures,showHandle);
- GUListBoxInited=1;
- }
- /*****************************群组选择/成员选择部分结束*********************************/
- /*****************************系统设置部分开始*********************************/
- void uiShowMenuSysSetup(char flash){
- static const char *apcPtr[]={
- "1.LCD设置",
- "2.功耗模式设置",
- "3.提示音设置",
- "4.键锁设置",
- "5.工程设置",
- ""
- };
- if(flash){
- msgAtSend("AT+RSIM\r\n");//进此菜单前查询一下卡用于后面显示
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"系统设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- uiMenuInit(&sutMenuSysSetup,apcPtr,FONT_MODE_16X16);
- }
- }
- void sysTemSetResponse(void){
- unsigned short key;
-
- key=uiMenuResponse(&sutMenuSysSetup);
- if(MKEY_VALUE_MENU==key){
- switch(sutMenuSysSetup.handle){
- case 0://LCD设置
- uISetNextStatus(UIS_MENU_SYS_LCD);
- break;
- case 1://功耗模式设置
- uISetNextStatus(UIS_MENU_SYS_PWR);
- break;
- case 2://提示音设置
- uISetNextStatus(UIS_MENU_SYS_NOTE);
- break;
- case 3://键锁设置
- uISetNextStatus(UIS_MENU_SYS_LOCK);
- break;
- case 4://工程设置
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- break;
- }
- if(sutMenuSysSetup.handle<=4) uiPushStack(sutMenuSysSetup.handle);
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_MAIN);
- }
- /*****************************系统设置部分结束*********************************/
- /*****************************定位设置部分开始*********************************/
- unsigned char tempGpsIndex;
- static locationTimeFlash(char type);
- static locationXYFlash(char flash);
- void uiShowMenuLocationSel(char flash){
- static unsigned int timer;
- static char machine=0;
- if(flash){
- machine=0;
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"定位设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- if(newPara.gpsEnable==0){
- machine=1;
- uiMenuShowBottomIndacitor(NULL, "返回");
- guiShowMessageBox("版本不支持");
- uTimerStart(&timer, 1000);
- return;
- }
- uiMenuShowBottomIndacitor("保存", "返回");
- locationTimeFlash(0);
- }
- if(newPara.gpsEnable!=0) locationXYFlash(flash);
- if(machine==1){
- if(uTimerExpired(&timer)){
- machine=0;
- uISetNextStatus(UIS_MENU_MAIN);
- }
- }
- }
- void loationSetResponse(void){
- unsigned short key;
-
- key=getKeyValue();
- if(newPara.gpsEnable==0){
- if(key!=MKEY_VALUE_ESC) return;
- }
- if(MKEY_VALUE_UP==key) locationTimeFlash(1);
- else if(MKEY_VALUE_DOWN==key) locationTimeFlash(2);
- else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- if(tempGpsIndex != newPara.gpsTimeIndex){
- MSG_INFO(1, "GPS timeIndex update:%d",getGPSTimeValue(tempGpsIndex));
- newPara.gpsTimeIndex=tempGpsIndex;
- sysIniSave("location");
- gpsCheckInfo();//检测一下
- }
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- static locationTimeFlash(char type){
- unsigned short gpsTimeValue;
- char buf[50];
- unsigned short y=70;
- if(type==0){
- tempGpsIndex=newPara.gpsTimeIndex;
- }else if(type==1){
- if(++tempGpsIndex>=GPS_TABLE_NUM) tempGpsIndex=0;
- }else if(type==2){
- if(tempGpsIndex>0) tempGpsIndex--;
- else tempGpsIndex=GPS_TABLE_NUM-1;
- }else return;
-
- gpsTimeValue=getGPSTimeValue(tempGpsIndex);
- if(gpsTimeValue==0) snprintf(buf, sizeof(buf), "定位上传设置:关闭");
- else snprintf(buf, sizeof(buf), "定位上传设置:%d秒",gpsTimeValue);
- guiClearRect(0,y,GLCD_WIDTH-1, y+12,guiGetBackColor());
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- static locationXYFlash(char flash){
- char buf[50];
- unsigned short y=UI_CONTENT_SHOW_Y+2;
-
- // if(gpsInfo.update==0 && flash==0) return;
- // gpsInfo.update=0;
- guiClearRect(0, y,GLCD_WIDTH-1, y+12+5+12,guiGetBackColor());
- snprintf(buf, sizeof(buf), "纬度 S:%d.%05d",sutGpsInfo.latitue/1000000,sutGpsInfo.latitue%1000000);
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- y+=12+5;
- snprintf(buf, sizeof(buf), "经度 W:%d.%05d",sutGpsInfo.longitue/1000000,sutGpsInfo.longitue%1000000);
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- /*****************************定位设置部分结束*********************************/
- /*******************************终端信息开始**********************************/
- unsigned char sysInfoType;
- static void sysInfoFlash(void){
- unsigned short x,y;
- char buf[50];
- unsigned char LineSpace=12+4;
- unsigned char NeedSpace=0;
- int len;
- char yunyingshang=0;
-
- x=0,y=UI_CONTENT_SHOW_Y+5;
- guiClearRect(0,y,GLCD_WIDTH-1,UI_BOTTOM_LINE_Y-1,guiGetBackColor());
- NeedSpace=0;
- if(sysInfoType==0){
- //终端编码
- snprintf(buf,sizeof(buf),"PSN:%lu", sutApp.UserInfo.psn);
- len=strlen(buf);
- if(len>17){
- y+=LineSpace;
- NeedSpace=LineSpace;
- guiShowStr(x+56,y,buf+17,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- buf[17]=0;
- y-=LineSpace;
- }
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;y+=NeedSpace;
- //账号
- snprintf(buf,sizeof(buf),"账号:%s", sutApp.UserInfo.OtherId);
- len=strlen(buf);
- if(len>17){
- y+=LineSpace;
- NeedSpace=LineSpace;
- guiShowStr(x+56,y,buf+17,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- buf[17]=0;
- y-=LineSpace;
- }
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;y+=NeedSpace;
-
- //应用版本
- snprintf(buf, sizeof(buf),"应用版本:%s",OHPOC_VERSION);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- //内部版本
- snprintf(buf, sizeof(buf),"内部版本:%d",CUSTOMER_CODE);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }else if(sysInfoType==1){
- //对讲平台
- snprintf(buf, sizeof(buf),"对讲平台:%s", OHPOC_POC_PLATFORM);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- //对讲版本号
- NeedSpace=0;
- snprintf(buf, sizeof(buf),"对讲版本:%s",sutApp.pocVersion);
- len=strlen(buf);
- if(len>15){
- y+=LineSpace;
- NeedSpace=LineSpace;
- guiShowStr(0,y,buf+15,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- buf[15]=0;
- y-=LineSpace;
- }
- guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace; y+=NeedSpace;
- //模块
- memset(buf,sizeof(buf),0);
- snprintf(buf,sizeof(buf),"模块:%s", sutApp.modemVer);
- len=strlen(buf);
- if(len>16){
- y+=LineSpace;
- guiShowStr(x+32,y,buf+16,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- buf[16]=0;
- y-=LineSpace;
- }
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }else if(sysInfoType==2){
- NeedSpace=0;
- snprintf(buf, sizeof(buf),"ICCID:");
- guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- //终端编码
- memset(buf,0,sizeof(buf));
- switch(sutApp.copstype){
- case 46000:
- case 46002:
- case 46007:
- yunyingshang=1;
- break;
- case 46001:
- case 46006:
- yunyingshang=2;
- break;
- case 46003:
- case 46005:
- case 46008:
- case 46009:
- case 46010:
- case 46011:
- yunyingshang=3;
- break;
- default:
- yunyingshang=0;
- break;
- }
-
- if(LSAPI_SIM_GetICCID(buf)==0&&yunyingshang!=0){
- strncpy(sutApp.ICCID, buf,sizeof(sutApp.ICCID));
- if(yunyingshang!=1){
- sutApp.ICCID[19]=0;
- }
- snprintf(buf, sizeof(buf),"%s",sutApp.ICCID);
- //guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
-
- }else{
- snprintf(buf, sizeof(buf),"未知");
- //guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }
- len=strlen(buf);
- if(len>15){
- y+=LineSpace;
- NeedSpace=LineSpace;
- guiShowStr(0,y,buf+15,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- buf[15]=0;
- y-=LineSpace;
- }
- guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace; y+=NeedSpace;
-
- //IMEI
- snprintf(buf, sizeof(buf),"IMEI:");
- guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- memset(buf,0,sizeof(buf));
- if(LSAPI_SIM_GetIMEI(buf)==0){
- guiShowStr(0,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }else{
- guiShowStr(0,y,"未知",FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }
- }else if(sysInfoType==3){
- //显示服务器
- //对讲IP
- //getPIPAddr();getGIPAddr();
- guiShowStr(x,y,"交换服务器:",FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+= LineSpace;
- snprintf(buf, sizeof(buf),"%s",showPIP);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- //GPS IP
- guiShowStr(x,y,"定位服务器:",FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+= LineSpace;
- snprintf(buf, sizeof(buf),"%s",showGIP);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- y+=LineSpace;
- snprintf(buf, sizeof(buf),"端口:%d",newPara.gpsPort);
- guiShowStr(x,y,buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK,guiGetBackColor());
- }
- }
- void uiShowInformation(char update){
- if(update){
- sysInfoType=0;
- msgAtSend("AT+POC=7D0000\r\n");
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"终端信息",UI_STATUS_BAR_HEIGH,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor(NULL, "返回");
- sysInfoFlash();
- }
- }
- void uiShowInformationResponse(void){
- unsigned short key=getKeyValue();
-
- if(MKEY_VALUE_ESC==key) uISetNextStatus(sutUIstatus.LastStatus);
- else if(MKEY_VALUE_DOWN==key){
- if(++sysInfoType>2) sysInfoType=0;
- sysInfoFlash();
- }else if(MKEY_VALUE_UP==key){
- if(sysInfoType==0) sysInfoType=2;
- else sysInfoType--;
- sysInfoFlash();
- }else if(MKEY_VALUE_CB_IP==key){
- sysInfoType=3;
- sysInfoFlash();
- }
- }
- /*****************************终端信息结束**********************************/
- static const char *commonIcon2[]={
- "/ext/prepack/APN.bmp",
- "/ext/prepack/APN1.bmp",
- ""
- };
- /*****************************LCD设置开始**********************************/
- unsigned char lcdTmpIndex;
- static void lcdTimeFlash(char type){
- char buf[50];
- unsigned short x=4,y=56,value;
-
- if(type==0) guiShowStr(x+20, y, "背光时间:", FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- else if(type==1){
- if(++lcdTmpIndex>=5) lcdTmpIndex=0;
- }else if(type==2){
- if(lcdTmpIndex>0) lcdTmpIndex--;
- else lcdTmpIndex=4;
- }
- value=newPara.lcdParaList[lcdTmpIndex];
-
- MSG_INFO(1,"lcdTmpIndex==%d,value===%d",lcdTmpIndex,value);
- if(value==0) snprintf(buf, sizeof(buf), " 常亮 ");
- else snprintf(buf, sizeof(buf), "%3d 秒", value);
- guiShowStr(x+80, y, buf, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- void uiShowLcdSel(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"LCD设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- lcdTmpIndex=newPara.lcdParaDefaultIndex;
- lcdTimeFlash(0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowLcdSelResponse(void){
- unsigned short key=getKeyValue();
-
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_DOWN==key)lcdTimeFlash(1);
- else if(MKEY_VALUE_UP==key) lcdTimeFlash(2);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(lcdTmpIndex != newPara.lcdParaDefaultIndex){
- newPara.lcdParaDefaultIndex=lcdTmpIndex;
- MSG_INFO(1, "LCD TimeUpdate");
- backLightReset();
- sysIniSave("lcd");
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- }
- /*****************************LCD设置结束**********************************/
- /*****************************网络设置开始**********************************/
- const unsigned char netModeSetTable[3]={1,2,4};//设置制式:AUTH,2G,4G
- /*输入制式源始值,返回索引值对应值*/
- unsigned char getNetModeIndex(unsigned char netModeValue){
- unsigned char i;
- for(i=0;i<sizeof(netModeSetTable);i++){
- if(netModeValue==netModeSetTable[i]) return i;
- }
- return 0xff;//无对应值
- }
- /*输入制式索引值,返回制式源始值*/
- unsigned char getNetModeValue(unsigned char netModeIndex){
- if(netModeIndex>=sizeof(netModeSetTable)) return 0xff;
- else return netModeSetTable[netModeIndex];
- }
- /*输入制式索引值,发送对应该命令给模块*/
- void netModeSetCmd(unsigned char netMode){
- char buf[30];
-
- snprintf(buf, sizeof(buf), "AT+CTEC=%d,%d\r\n",ctecCurrentSet, netMode);
- msgAtSend(buf);
- }
- #define NET_MODE_NUM 3
- void uiShowNetSel(char StatusUpdate){
- static const char *netMode[NET_MODE_NUM+1]={
- "AUTO",
- "2G",
- "4G",
- ""
- };
- char Features[NET_MODE_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"网络设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<NET_MODE_NUM;i++){
- if(i==newPara.netMode) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,netMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowNetSelResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(sutListBox.handle*2 != newPara.netMode){
- newPara.netMode=sutListBox.handle*2;
- MSG_INFO(1, "netMode update:%d", newPara.netMode);
- sysIniSave("NetSel");
- netModeSetCmd(newPara.netMode);
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- }
- /*****************************网络设置结束**********************************/
- /*****************************卡选择设置开始**********************************/
- #define SIM_MODE_NUM 2
- void uiShowSimSel(char StatusUpdate){
- static const char *simMode[SIM_MODE_NUM+1]={
- "卡1",
- "卡2",
- ""
- };
- char Features[SIM_MODE_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"SIM设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<SIM_MODE_NUM;i++){
- if(i==sutApp.simSel) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,simMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowSimSelResponse(void){
- char buf[30];
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key){
- if(getStackStruct()->FastUiChange)uISetNextStatus(UIS_STANDBY);
- else uISetNextStatus(UIS_MENU_SYS_SEL);
- }else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(sutListBox.handle != sutApp.simSel){
- snprintf(buf, sizeof(buf), "AT+SIMCROSS=%d\r\n",sutListBox.handle);
- msgAtSend(buf);
- guiShowMessageBox("请重启设备");
- msgAtSend("AT+TRB\r\n");
- LSAPI_OSI_ThreadSleep(100);
- CTL_POWER_HOLD(false);
- for(;;){
- MSG_INFO(1, "card changed, wait user reboot");
- CTL_POWER_HOLD(false);
- LSAPI_OSI_ThreadSleep(1000);
- }
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- }
- /*****************************卡选择设置结束**********************************/
- /*****************************功耗设置开始**********************************/
- typedef enum{
- PMODE_DEFAULT_LOW,
- PMODE_SUPER_LOW,
- PMODE_NORMAL
- }PWR_ENUMDEF;
- //低功耗模式
- #define MODE_LOW_PWR_NONE_4G 5
- #define MODE_LOW_PWR_IS_4G 25
- //超长待机模式
- #define MODE_LONG_LOW_PWR_NONE_4G 5
- #define MODE_LONG_LOW_PWR_IS_4G 55
- //常规模式
- #define MODE_NORMAL__NONE_4G 5
- #define MODE_NORMAL__IS_4G 5
- //终端放弃设置模式,由服务器决定使用什么
- #define MODE_AUTO____NONE_4G 0
- #define MODE_AUTO____IS_4G 0
- //默认功耗模式
- #define MODE_PWR_DEFAULT_NONE_4G MODE_LOW_PWR_NONE_4G
- #define MODE_PWR_DEFAULT_IS_4G MODE_LOW_PWR_IS_4G
- const char ZZD_PWRMODE[3]={2,0,3};
- void pwrModeSetCmd(unsigned char pwrMode){
- char buf[30];
- memset(buf,0,sizeof(buf));
- snprintf(buf, sizeof(buf), "AT+POC=3D0000%02d\r\n",ZZD_PWRMODE[pwrMode]);
- msgAtSend(buf);
- }
- void pwrModeAckHandler(unsigned char seg1, unsigned char seg2){
- if(seg1==MODE_PWR_DEFAULT_NONE_4G && seg2==MODE_PWR_DEFAULT_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个模式都不满足则切换为默认模式
- newPara.pwrMode = PMODE_DEFAULT_LOW;
- goto SAVE_PWR_MODE;
- }
- return;
- SAVE_PWR_MODE:
- sysIniSave("workPwr");
- pwrModeSetCmd(newPara.pwrMode);
- }
- #define PWR_MODE_NUM 3
- void uiShowPwrSel(char StatusUpdate){
- static const char *pwrMode[PWR_MODE_NUM+1]={
- "常规省电模式",
- "高性能模式",
- "超长待机模式",
- "",
- };
- char Features[PWR_MODE_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"功耗设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<PWR_MODE_NUM;i++){
- if(i==newPara.pwrMode) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,pwrMode,0,commonIcon2,Features,newPara.pwrMode);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowPwrSelResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(sutListBox.handle != newPara.pwrMode){
- newPara.pwrMode=sutListBox.handle;
- MSG_INFO(1, "pwrMode update:%d", newPara.pwrMode);
- sysIniSave("pwrSel");
- pwrModeSetCmd(newPara.pwrMode);
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- }
- /*****************************功耗设置结束**********************************/
- /*****************************服务器设置输入密码开始**********************************/
- void uiShowServerPassSel(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"密码验证",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- NumEditInit(&sutNumEdit,(GLCD_WIDTH-6*8)/2,(GLCD_HEIGHT-16)/2,"000000");
- NumEditShow(&sutNumEdit);
- uiMenuShowBottomIndacitor("[P1]加值", "[P2]移动");
- }
- }
- void uiShowServerSelPassResponse(void){
- unsigned short key=getKeyValue();
-
- NumEditResponse(&sutNumEdit);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- else if(MKEY_VALUE_MENU==key){
- if(memcmp(sutNumEdit.buffer, getMenuKey(), 6)==0) uISetNextStatus(UIS_MENU_SYS_SERVER);
- else{
- guiShowMessageBox("密码错误");
- LSAPI_OSI_ThreadSleep(1000);
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- }
- }
- /*****************************服务器设置输入密码结束**********************************/
- /*****************************服务器设置开始**********************************/
- void uiShowServerSel(char StatusUpdate){
- static const char *serIcons[]={
- "Ser.bmp",
- "Sersel.bmp",
- ""
- };
- static const char *serName[]={
- "杭州服务器",
- "山东服务器",
- "IP分发服务器",
- "集群服务器",
- "自定义服务器",
- "",
- };
- char Features[5];
- unsigned char tempSer,i;
-
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"服务器列表",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- tempSer=newPara.serList.defaultuse;
- for(i=0;i<=SERVER_UR;i++){
- if(i==tempSer) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,serName,0,serIcons,Features,0);
- }
- }
- void uiShowServerSelResponse(void){
- unsigned char tempSer;
- char buf[50],buf1[100];
- unsigned short key=ListBoxResponse(&sutListBox);
-
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_MENU==key){
- tempSer=sutListBox.handle;
- if(tempSer != newPara.serList.defaultuse){
- newPara.serList.defaultuse=tempSer;
- sysIniSave("serverSel");
- getGIPAddr();
- snprintf(buf, sizeof(buf), "ip=%s;domain=%s;",getPIPAddr(),getDOMAINAddr());
- AscStrTurnHexStr(buf,buf1);
- msgAtSend("AT+POC=010000");
- msgAtSend(buf1);
- msgAtSend("\r\n");
- LSAPI_OSI_ThreadSleep(100);
- msgAtSend("AT+POC=040000\r\n");
- }
- uISetNextStatus(UIS_STANDBY );
- }
- }
- /*****************************服务器设置结束**********************************/
- /*****************************版本设置开始**********************************/
- unsigned char fotaStep;
- unsigned int fotaTick;
- void fotaStepSet(unsigned char newStep){
- fotaStep=newStep;
- }
- void fotaMsgShow(char *msg){
- #ifdef USE_12X12_FONT_ONLY
- int len=guiGetStrXLen((char *)msg,FONT_MODE_16X16);
- #else
- int len=guiGetStrXLen((char *)msg,FONT_MODE_16X16);
- #endif
- guiClearRect(0, 60, GLCD_WIDTH-1, 60+16,guiGetBackColor());
- #ifdef USE_12X12_FONT_ONLY
- guiShowStr((GLCD_WIDTH-len)/2,60+2, msg,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- #else
- guiShowStr((GLCD_WIDTH-len)/2,60, msg,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- #endif
- }
- void fotaMsgShow2(char *msg1, char *msg2){
- guiClearRect(0, 45, GLCD_WIDTH-1, 45+16+2+16,guiGetBackColor());
- int len=guiGetStrXLen((char *)msg1,FONT_MODE_16X16);
- guiShowStr((GLCD_WIDTH-len)/2,45, msg1,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- len=guiGetStrXLen((char *)msg2,FONT_MODE_16X16);
- guiShowStr((GLCD_WIDTH-len)/2,45+16+2, msg2,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- void uiShowVersionSel(char StatusUpdate){
- char buf[50];
- if(StatusUpdate){
- sutApp.fotaVersion[0]=0;
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"版本更新",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- msgAtSend("AT+FOTA?\r\n");
- fotaStep=0;
- sutApp.fotaStatus=0;
- fotaMsgShow("正在检测版本");
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确定", "返回");
- uTimerStart(&fotaTick, 2000);
- }
- switch(fotaStep){
- case 0:
- if(sutApp.fotaStatus==1){
- fotaMsgShow("无更新版本");
- fotaStep=4;
- break;
- }else if(sutApp.fotaStatus==2){
- fotaMsgShow("是否更新到:");
- snprintf(buf, sizeof(buf), "%s",sutApp.fotaVersion);
- fotaMsgShow(buf);
- fotaStep=1;
- break;
- }
- if(uTimerExpired(&fotaTick)){
- fotaMsgShow("检测超时");
- fotaStep=4;
- }
- break;
- case 1://等待用户确定
- break;
- case 2://用户确定后等待结果
- if(sutApp.fotaStatus==3){
- fotaMsgShow("升级失败");
- fotaStep=4;
- break;
- }else if(sutApp.fotaStatus==4){
- sutApp.fotaStatus=0;//否则会一直刷新本消息
- fotaMsgShow("正在下载");
- break;
- }else if(sutApp.fotaStatus==5){
- fotaMsgShow("下载成功");
- fotaStep=3;
- break;
- }
- if(uTimerExpired(&fotaTick)){
- fotaMsgShow("超时退出");
- fotaStep=4;
- }
- break;
- case 3://升级成功,等待重启
- LSAPI_OSI_ThreadSleep(1000);
- fotaStep=6;
- fotaMsgShow2("确定将关机,再","开机需约60秒");
-
- //msgAtSend("AT+POC=050000\r\n");//停止POC后复位
- //MSG_INFO(1, "Stop poc");
- //LSAPI_OSI_ThreadSleep(2000);
- //msgAtSend("AT+TRB\r\n");
- //MSG_INFO(1, "Reset system!!!");
- //while(1){LSAPI_OSI_ThreadSleep(1000);}
- break;
- case 4://延时显示2秒后退出
- uTimerStart(&fotaTick, 2000);
- fotaStep=5;
- break;
- case 5://退出升级流程
- if(uTimerExpired(&fotaTick)){
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- break;
- case 6://无更新版本
- sutApp.timeOutCnt=0;//不让界面返回待机界面
- break;
- }
- }
- void uiShowVersionSelResponse(void){
- unsigned char key=getKeyValue();
- if(fotaStep!=1 && fotaStep!=6) return;
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- else if(MKEY_VALUE_MENU==key){
- if(fotaStep==1){
- fotaMsgShow("请勿断电!");
- fotaStep=2;
- msgAtSend("AT+FOTA=1\r\n");
- uTimerStart(&fotaTick, 10000);
- }else if(fotaStep==6){
- paControl(false);//防止一直滴音
- MSG_INFO(1, "Reset system!!!");
- msgAtSend("AT+POC=050000\r\n");
- msgAtSend("AT+TRB\r\n");
- while(1){LSAPI_OSI_ThreadSleep(1000);}
- }
- }
- }
- /*****************************版本设置结束**********************************/
- /*****************************工程设置开始*********************************/
- void uiShowFactory(char flash){
- static const char *apcPtr[]={
- //"1.服务器设置",
- //"2.版本升级",
- "1.CSQ查看",
- "2.耳机MIC增益",
- // "5.耳机SPK增益",
- // "3.字库更新",
- ""
- };
- if(flash){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"工程设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- uiMenuInit(&sutMenuSysSetup,apcPtr,FONT_MODE_16X16);
- }
- }
- void uiShowFactoryResponse(void){
- unsigned short key;
-
- key=uiMenuResponse(&sutMenuSysSetup);
- if(MKEY_VALUE_MENU==key){
- switch(sutMenuSysSetup.handle){
- // case 0://服务器设置
- // uISetNextStatus(UIS_MENU_SYS_SERVERPASS);
- // break;
- // case 1://版本升级
- // uISetNextStatus(UIS_MENU_SYS_VERSION);
- // break;
- case 0://CSQ查看
- uISetNextStatus(UIS_MENU_SYS_CSQ);
- break;
- case 1://设置mic增益
- uISetNextStatus(UIS_MENU_SYS_MIC);
- break;
- //case 4://耳机SPK增益
- // uISetNextStatus(UIS_MENU_SYS_SPK);
- // break;
-
- /*
- case 2://字库更新
- uISetNextStatus(UIS_MENU_SYS_FONT);
- break;
- */
-
- }
- if(sutMenuSysSetup.handle<=2) uiPushStack(sutMenuSysSetup.handle);
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- /*****************************工程设置结束***********************************/
- /*****************************提示音设置开始********************************/
- unsigned char noteSetTmp;
- static void switchFlash(void){
- char info[30];
- unsigned short x,y,len;
-
- if(noteSetTmp==0) snprintf(info, sizeof(info), "关闭");
- else snprintf(info, sizeof(info), "打开");
-
- len=guiGetStrXLen((char *)info, FONT_MODE_16X16);
- x=(GLCD_WIDTH-len)/2;
- y=UI_CONTENT_SHOW_Y+(GLCD_HEIGHT-UI_CONTENT_SHOW_Y)/2-12;
- guiShowStr(x,y,info, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- void uiShowNoteSel(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"提示音设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- noteSetTmp=newPara.KeySound;
- switchFlash();
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowNoteSelResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.KeySound != noteSetTmp){
- newPara.KeySound=noteSetTmp;
- #ifndef ENABLE_PWM_BEEP
- if(noteSetTmp==0) msgAtSend("AT+TONES=0\r\n");
- else msgAtSend("AT+TONES=1\r\n");
- #endif
- sysIniSave("noteSel");
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }else if(MKEY_VALUE_DOWN || MKEY_VALUE_UP){
- if(noteSetTmp==0) noteSetTmp=1;
- else noteSetTmp=0;
- switchFlash();
- }
- }
- /*****************************提示音设置结束********************************/
- /*****************************关机界面提示开始**********************************/
- void uiShowShutDown(char update){
- if(update){
- lcdBackLightApi(1);
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"关机",UI_STATUS_BAR_HEIGH,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- guiShowMessageBox("确定关机?");
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确定", "取消");
- }
- }
- void uiShowShutDownResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key){
- if(sutApp.waitEscReleased==0) uISetNextStatus(UIS_STANDBY);
- }else if(MKEY_VALUE_MENU==key){
- MSG_INFO(1, "Power is off!");
- appSleepCtl(ASLEEP_PWR, 1);
- }
- }
- /*****************************关机界面提示结束**********************************/
- /*****************************CSQ查看开始********************************/
- void CSQShow(unsigned int exeInterval,char StatusUpdate){
- char info[30];
- static int g_iCSQ=-1,cnt=1000;
- int y=UI_CONTENT_SHOW_Y+(GLCD_HEIGHT-UI_CONTENT_SHOW_Y)/2-12;
-
- if(g_iCSQ!=sutApp.g_iCSQ || StatusUpdate){
- g_iCSQ=sutApp.g_iCSQ;
- snprintf(info, sizeof(info), "CSQ:%d ", g_iCSQ);
- guiShowStr(GLCD_HEIGHT/2-24,y,info, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- if(++cnt<(1500/exeInterval)) return;
- cnt=0;
- msgAtSend("AT+CSQ\r\n");
- }
- void uiShowCsqSel(char StatusUpdate,unsigned int exeInterval){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"CSQ查看",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor(NULL, "返回");
- }
- CSQShow(exeInterval,StatusUpdate);
- }
- void uiShowCsqSelResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- /*****************************CSQ查看结束********************************/
-
- /*******************************MIC/SPK查看************************************/
- unsigned char micSpkTmp;
- void MicSpkShow(void){
- char info[30];
- unsigned short x,y,len;
-
- snprintf(info, sizeof(info), "%d ",micSpkTmp+1);
-
- len=guiGetStrXLen((char *)info, FONT_MODE_16X16);
- x=(GLCD_WIDTH-len)/2;
- y=UI_CONTENT_SHOW_Y+(GLCD_HEIGHT-UI_CONTENT_SHOW_Y)/2-12;
- guiShowStr(x,y,info, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- void uiShowMicSel(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"耳机MIC增益",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确定", "返回");
- micSpkTmp=newPara.micGain;
- MicSpkShow();
- }
- }
- void uiShowMicSelResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_DOWN==key){
- if(micSpkTmp==0) micSpkTmp=MIC_GAIN_NUM-1;
- else micSpkTmp--;
- MicSpkShow();
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- else if(MKEY_VALUE_MENU==key){
- if(micSpkTmp!= newPara.micGain){
- newPara.micGain=micSpkTmp;
- sysIniSave("micSel");
- if(sutApp.earLev!=0) VolMicUpdate();
- }
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- }
- void uiShowSpkSel(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"耳机SPK增益",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确定", "返回");
- micSpkTmp=newPara.spkGain;
- MicSpkShow();
- }
- }
- void uiShowSpkSelResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_DOWN==key){
- if(micSpkTmp==0) micSpkTmp=SPK_GAIN_NUM-1;
- else micSpkTmp--;
- MicSpkShow();
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- else if(MKEY_VALUE_MENU==key){
- if(micSpkTmp!= newPara.spkGain){
- newPara.spkGain=micSpkTmp;
- sysIniSave("spkSel");
- if(sutApp.earLev!=0) VolSpkUpdate();
- }
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- }
- /******************************MIC/SPK查看结束*********************************/
- /******************************fota更新生辟字库**********************************/
- #include "lsapi_http.h"
- #define FONT_16_FILE HZK_16_NEW_FILE
- #define FONT_16_MD5 "HZK16_Ext_md5.txt"
- #define FONT_12_FILE HZK_12_NEW_FILE
- #define FONT_12_MD5 "HZK12_Ext_md5.txt"
- LSAPI_OSI_Thread_t *fontThread=NULL;
- short fontLoadStatus;
- bool fontResult;
- HttpInfoSet httpFont;
- //return:false, not finished, true, done
- //status:1:busy
- //status:-1:get 16 file failed
- //status:-2:16 file len err
- //status:-3:16 file format err
- //status:-4:16 ok, get 12 file failed
- //status:-5:16 ok, get 12 file len err
- //status:-6:16 ok, get 12 file fotmat err
- //status:0 16,12 ok
- bool httpFontGetStatus(short *status){//获取更新结果接口
- if(fontResult==true) *status=fontLoadStatus;
- return fontResult;
- }
- static void fontEntry(void *param);
- bool httpFontGetStart(void){//开启更新接口
- fontResult=false;
- if(NULL != fontThread) return true;
- fontLoadStatus=-1;
- fontThread=LSAPI_OSI_ThreadCreate("lteEntry", fontEntry,NULL,LSAPI_OSI_PRIORITY_NORMAL,1024*10,4);
- if(NULL==fontThread) return false;
- }
- void fontSaveData(unsigned char *data, unsigned int len){
- int fd;
- char filename[30];
- if(data[0]==12){
- extFontFileCtl(data[0],false);
- snprintf(filename,sizeof(filename), "%s",FONT_12_FILE);
- }else if(data[0]==16){
- extFontFileCtl(data[0],false);
- snprintf(filename,sizeof(filename), "%s",FONT_16_FILE);
- }
- else return;
- fd=LSAPI_FS_Open(filename, LSAPI_FS_O_RDWR | LSAPI_FS_O_CREAT | LSAPI_FS_O_TRUNC,0x0);
- if(fd<0){
- extFontFileCtl(data[0],true);
- return;
- }
- LSAPI_FS_Write(fd, data, len);
- LSAPI_FS_Close(fd);
- extFontFileCtl(data[0],true);
- }
- bool checkFileMd5(char type, unsigned char *md5, unsigned int len){
- int fd;
- char filename[30];
- unsigned char rmd5[32];
- if(type==0)snprintf(filename,sizeof(filename), "%s",FONT_16_MD5);
- else if(type==1)snprintf(filename,sizeof(filename), "%s",FONT_12_MD5);
- else return false;
- fd=LSAPI_FS_Open(filename, LSAPI_FS_O_RDONLY,0);
- if(fd<0){
- MSG_WARN(1, "'%s' open failed to read", filename);
- return false;
- }
- LSAPI_FS_Read(fd, rmd5, sizeof(rmd5));
- LSAPI_FS_Close(fd);
- if(0==memcmp(rmd5, md5, len)) return true;
- else return false;
- }
- void fontSaveMd5(char type, unsigned char *md5, unsigned int len){
- int fd;
- char filename[30];
- if(type==0)snprintf(filename,sizeof(filename), "%s",FONT_16_MD5);
- else if(type==1)snprintf(filename,sizeof(filename), "%s",FONT_12_MD5);
- else return;
- fd=LSAPI_FS_Open(filename, LSAPI_FS_O_RDWR | LSAPI_FS_O_CREAT | LSAPI_FS_O_TRUNC,0);
- if(fd<0){
- MSG_WARN(1, "'%s' open failed to save", filename);
- return;
- }
- LSAPI_FS_Write(fd, md5, len);
- LSAPI_FS_Close(fd);
- }
- static void fontEntry(void *param){
- bool font12_noneed_update=true;
- bool font16_noneed_update=true;
- char type=0;
- unsigned int md5_len;
- unsigned char rmd5[32];
- bool needClear=true;
- //get 16 md5
- MSG_INFO(1,"try get 16 md5");
- memset(&httpFont, 0, sizeof(httpFont));httpFont.cid=1;
- snprintf(httpFont.url, sizeof(httpFont.url),"http://120.77.66.129/higos/extFonts/%s",FONT_16_MD5);
- if(LSAPI_HTTP_GET(&httpFont)){
- fontLoadStatus=-2;
- goto FONT_END;
- }
- //ana 16 md5
- if(httpFont.recvlen!=32){
- fontLoadStatus=-3;
- goto FONT_END;
- }
- md5_len=httpFont.recvlen;
- memcpy(rmd5, httpFont.RecvData, md5_len);
- LSAPI_HTTP_ParaClear(&httpFont);
- font16_noneed_update=checkFileMd5(type, rmd5, md5_len);
- if(false==font16_noneed_update){
- MSG_INFO(1,"try get 16 file");
- //get 16 first
- memset(&httpFont, 0, sizeof(httpFont));httpFont.cid=1;
- snprintf(httpFont.url, sizeof(httpFont.url),"http://120.77.66.129/higos/extFonts/%s",FONT_16_FILE);
- if(LSAPI_HTTP_GET(&httpFont)){//尝试获取差分包
- fontLoadStatus=-4;
- goto FONT_END;
- }
- if(httpFont.recvlen<35){//1+[2+32]....
- fontLoadStatus=-5;
- goto FONT_END;
- }else if(httpFont.RecvData[0]!=16 || (httpFont.recvlen-1)%34){
- fontLoadStatus=-6;
- goto FONT_END;
- }
- fontSaveData(httpFont.RecvData, httpFont.recvlen);
- fontSaveMd5(type, rmd5, md5_len);
- LSAPI_HTTP_ParaClear(&httpFont);
- }
- type=1;
- //get 12 md5
- MSG_INFO(1,"try get 12 md5");
- memset(&httpFont, 0, sizeof(httpFont));httpFont.cid=1;
- snprintf(httpFont.url, sizeof(httpFont.url),"http://120.77.66.129/higos/extFonts/%s",FONT_12_MD5);
- if(LSAPI_HTTP_GET(&httpFont)){
- fontLoadStatus=-7;
- goto FONT_END;
- }
- //ana 12 md5
- if(httpFont.recvlen!=32){
- fontLoadStatus=-8;
- goto FONT_END;
- }
- md5_len=httpFont.recvlen;
- memcpy(rmd5, httpFont.RecvData, md5_len);
- LSAPI_HTTP_ParaClear(&httpFont);
- font12_noneed_update=checkFileMd5(type, rmd5, md5_len);
- if(false==font12_noneed_update){
- MSG_INFO(1,"try get 12 file");
- //get 12 then
- memset(&httpFont, 0, sizeof(httpFont));httpFont.cid=1;
- snprintf(httpFont.url, sizeof(httpFont.url),"http://120.77.66.129/higos/extFonts/%s",FONT_12_FILE);
- if(LSAPI_HTTP_GET(&httpFont)){//尝试获取差分包
- fontLoadStatus=-9;
- goto FONT_END;
- }
- if(httpFont.recvlen<27){//1+[2+24]....
- fontLoadStatus=-10;
- goto FONT_END;
- }else if(httpFont.RecvData[0]!=12 || (httpFont.recvlen-1)%26){
- fontLoadStatus=-11;
- goto FONT_END;
- }
- fontSaveData(httpFont.RecvData, httpFont.recvlen);
- fontSaveMd5(type, rmd5, md5_len);
- LSAPI_HTTP_ParaClear(&httpFont);
- needClear=false;
- }else needClear=false;
- if(font12_noneed_update==true && font16_noneed_update==true) fontLoadStatus=0;
- else fontLoadStatus=1;
- FONT_END:
- fontThread=NULL;
- fontResult=true;
- if(needClear==true) LSAPI_HTTP_ParaClear(&httpFont);
- LSAPI_OSI_ThreadExit();
- }
- //6、UI接口界面(供参考)
- char fontUpdateStatus=0;
- void uiShowFontUpdate(char StatusUpdate){
- static unsigned int timer;
- char info[30];
- short status;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"字库更新",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- fontUpdateStatus=0;
- guiShowMessageBox("确定更新?");
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确定", "返回");
- }
- if(fontUpdateStatus==1){
- if(true==httpFontGetStatus(&status)){
- if(status==1){
- guiShowMessageBox("更新成功");
- uTimerStart(&timer, 2000);
- }else if(status==0){
- guiShowMessageBox("无需更新");
- uTimerStart(&timer, 2000);
- }else{
- snprintf(info,sizeof(info), "更新失败:%d",status);
- guiShowMessageBox(info);
- uTimerStart(&timer, 2000);
- }
- fontUpdateStatus=2;
- }
- }else if(fontUpdateStatus==2){
- if(uTimerExpired(&timer)){
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_SYS_FACTORY);
- }
- }
- }
- void uiShowFontUpdateResponse(){
- unsigned short key=getKeyValue();
- if(fontUpdateStatus!=0) return;
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_FACTORY);
- else if(MKEY_VALUE_MENU==key){
- httpFontGetStart();
- fontUpdateStatus=1;
- guiShowMessageBox("正在更新");
- }
- }
- /******************************fota更新生辟字库结束***********************************/
- #ifdef USE_LEFT_MOVING
- /***************************主界面滚动显示**********************************/
- #define MOVING_ITME_NUM 3 //显示三条项目
- #define MAX_ROW_BYTE (20+1+2) //最多显示20个字节,10个中文
- #define MAX_SHOW_BYTE 12 //最多一次性显示10个字节
- void leftMoveStr(char *name, unsigned short len){
- char temp[3];
- unsigned char move=1;
- unsigned short i;
- if(name[0] > 0x80) move=2;
- for(i=0;i<move;i++) temp[i]=name[i];
- for(i=0;i<len-move;i++) name[i]=name[i+move];
- for(i=0;i<move;i++) name[i+len-move]=temp[i];
- }
- void getRealShow(char *des, char *src,int maxsize)
- {//??è?×??à12+1??×??ú??ê?
- int i,j,cpsize=maxsize-1;
- for(i=0;i<cpsize;i++){
- if(src[i]>0x80){
- if(i+2>cpsize){//装不下了,停止
- break;
- }
- des[i]=src[i];
- des[i+1]=src[i+1];
- i++;
- }else des[i]=src[i];
- }
- des[i]=0;
- }
- void showbufdata(char type, unsigned char *data, int len){
- char info[100],buf[3];
- int i;
- sprintf(info, "D[%d]%c:",len,type);
- for(i=0;i<len;i++){
- sprintf(buf, "%02x",data[i]);
- strcat(info, buf);
- }
- MSG_INFO(1, info);
- }
- //除去标识(群组:/成员:/话权:)外的字节数,多的1字节用于加空格
- void mainScreenShowMoving(unsigned short y, unsigned char reset,char *gname,char *uname,char *voicePri){
- unsigned char i;
- int j,len;
- unsigned short showX,showY;
- //显示缓存,最多显示7个中文
- const char indicators[MOVING_ITME_NUM][6]={
- "群组:","成员:","话权:",
- };
- static char item[MOVING_ITME_NUM][MAX_ROW_BYTE];
- static unsigned short itemSum[MOVING_ITME_NUM];
- unsigned short *sum,tsum;
- char *ptr,*showPtr;
- char showMax[MAX_ROW_BYTE];//用于临时存储条目全内容,判定是否发生变化
- char needMove;
-
- for(i=0;i<MOVING_ITME_NUM;i++){
- showX=1;
- showY=y+i*(12+8);//12x12高度,行间距2
- sum=&itemSum[i];
- showPtr=&item[i][0];
- switch(i){
- case 0://群组:默认群组
- snprintf(showMax, sizeof(showMax), "%s ",gname);
- break;
- case 1://成员:测试组1
- snprintf(showMax, sizeof(showMax), "%s ",uname);
- break;
- case 2://话权:空闲
- snprintf(showMax, sizeof(showMax), "%s ",voicePri);
- break;
- }
-
- ptr=showMax;
- len=strlen(ptr);
- //计算buff的sum
- tsum=0;
- for(j=0;j<len;j++) tsum += ptr[j];
- //检测是否需要移动处理
- if(len>MAX_SHOW_BYTE) needMove=1;
- else needMove=0;
- if(*sum != tsum || reset){
- guiClearRect(0, showY, GLCD_WIDTH-1, showY+16,guiGetBackColor());
- guiShowStr(showX, showY+2, &indicators[i][0], FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- showX += 30;
-
- if(needMove==0){
- if(*sum != tsum || reset){//内容发生了变化
- //只显示一次即可
- snprintf(showPtr, MAX_ROW_BYTE, "%s", ptr);
- guiClearRect(showX, showY, GLCD_WIDTH-1, showY+16,guiGetBackColor());
- guiShowStr(showX, showY, showPtr, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- }else{//做移动处理
- if(*sum != tsum) memcpy(showPtr, ptr, MAX_ROW_BYTE);
- else leftMoveStr(showPtr, strlen(showPtr));
- getRealShow(showMax, showPtr,MAX_SHOW_BYTE);
- guiClearRect(showX, showY, GLCD_WIDTH-1, showY+16,guiGetBackColor());
- guiShowStr(showX,showY, showMax, FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- *sum=tsum;
- }
- }
- #endif
- /*****************************提示音设置开始********************************/
- #define LOCK_MODE_NUM 2
- void uiShowLockUpdate(char StatusUpdate){
- static const char *lockMode[LOCK_MODE_NUM+1]={
- "锁按键",
- "锁按键+PTT",
- ""
- };
- char Features[LOCK_MODE_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"键锁设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<LOCK_MODE_NUM;i++){
- if(i==newPara.lockType) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,lockMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowLockUpdateResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_SYS_SEL);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.lockType != sutListBox.handle){
- newPara.lockType=sutListBox.handle;
- sysIniSave("lock");
- }
- uISetNextStatus(UIS_MENU_SYS_SEL);
- }
- }
- /*****************************提示音设置结束********************************/
- /*****************************蓝牙主部分开始*********************************/
- void uiShowBleMenuSysSetup(char flash){
- static const char *apcPtr[]={
- "1.蓝牙开关",
- "2.蓝牙配对",
- "3.指环配对",
- "4.喇叭音量",
- "5.话筒音量",
- "6.蓝牙初始化",
- "7.指环初始化",
- ""
- };
- if(flash){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"蓝牙设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- uiMenuInit(&sutMenuSysSetup,apcPtr,FONT_MODE_16X16);
- }
- }
- void sysBleSetResponse(void){
- unsigned short key;
- key=uiMenuResponse(&sutMenuSysSetup);
- if(MKEY_VALUE_MENU==key){
- switch(sutMenuSysSetup.handle){
- case 0:
- uISetNextStatus(UIS_MENU_BLE_ENABLE);
- break;
- case 1:
- uISetNextStatus(UIS_MENU_BLE_MATCH);
- break;
- case 2:
- uISetNextStatus(UIS_MENU_RING_MATCH);
- break;
- case 3:
- uISetNextStatus(UIS_MENU_BLESPK_SEL);
- break;
- case 4:
- uISetNextStatus(UIS_MENU_BLEMIC_SEL);
- break;
- case 5:
- uISetNextStatus(UIS_MENU_BLE_REBOOT);
- break;
- case 6:
- uISetNextStatus(UIS_MENU_RING_REBOOT);
- break;
- }
- if(sutMenuSysSetup.handle<=6) uiPushStack(sutMenuSysSetup.handle);
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_MAIN);
- }
- /*****************************蓝牙主部分结束*********************************/
- static const char *BoolMode[NORMAL_BOOL_NUM+1]={
- "开启",
- "关闭",
- ""
- };
- /*****************************蓝牙开关开始********************************/
- void uiShowBleEnableUpdate(char StatusUpdate){
- char Features[NORMAL_BOOL_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"蓝牙开关",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<NORMAL_BOOL_NUM;i++){
- if(i==newPara.BleEnable) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,BoolMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowBleEnableUpdateResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.BleEnable != sutListBox.handle){
- newPara.BleEnable=sutListBox.handle;
- if(newPara.BleEnable)BLE_Open();
- else BLE_Close();
- sysIniSave("bleenable");
- }
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- /*****************************蓝牙开关结束********************************/
- static int UiDlycnt=0;
- /*****************************蓝牙耳机配对开始********************************/
- void uiShowBleMacth(char StatusUpdate){
- char info[20];
- short y=GLCD_HEIGHT/2;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"蓝牙配对",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("进入配对", "返回");
- UserTempIndex=0;
- UiDlycnt=0;
- }
- if(UserTempIndex){
- if(UiDlycnt%(1000/APP_SUB_DIV_TIME)==0){
-
- Ble_SendAT(Ble_IO2AT,sizeof(Ble_IO2AT));
-
- snprintf(info, sizeof(info),"正在匹配%02d",UiDlycnt/(1000/APP_SUB_DIV_TIME));
- guiShowStr(50, y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- }
- if(++UiDlycnt>20000/APP_SUB_DIV_TIME){
- UiDlycnt=0;
- BT_Match_IOctr(0);
- UserTempIndex=0;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- }
- void uiShowBleMacthUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- UserTempIndex=1;
- BT_Match_IOctr(1);
-
- }
- }
- /*****************************蓝牙配对耳机结束********************************/
- /*****************************指环配对开始********************************/
- //UserTempIndex
- void StartTimerCnt(){
- }
- void uiShowRingUpdate(char StatusUpdate){
-
- short y=GLCD_HEIGHT/2;
- char info[20];
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"指环配对",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("进入配对", "返回");
- UserTempIndex=0;
- UiDlycnt=0;
- }
- if(UserTempIndex){
- if(UiDlycnt%(1000/APP_SUB_DIV_TIME)==0){
- snprintf(info, sizeof(info),"正在匹配%02d",UiDlycnt/(1000/APP_SUB_DIV_TIME));
- guiShowStr(50, y,info, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
- }
- if(++UiDlycnt>10000/APP_SUB_DIV_TIME){
- UiDlycnt=0;
- Ble_Match_IOCTR(0);
- UserTempIndex=0;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
-
- }
-
- }
- void uiShowRingUpdateResponse(void){
- //static int timer=0;
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) {
- UserTempIndex=0;
- Ble_Match_IOCTR(0);
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- UserTempIndex=1;
- Ble_Match_IOCTR(1);
- }
- }
- /*****************************指环配对结束********************************/
- #define BLEAUD_NUM 16
- static BleAudioLvFlash(char dir,char type){
- char buf[50];
- unsigned short y=70;
- if(dir==0){
- UserTempIndex=newPara.BleSpkLv;
- }else if(dir==1){
- if(++UserTempIndex>BLEAUD_NUM) UserTempIndex=0;
- }else if(dir==2){
- if(UserTempIndex>0) UserTempIndex--;
- else UserTempIndex=BLEAUD_NUM;
- }else return;
- if(!type) snprintf(buf, sizeof(buf), "喇叭音量:%02d",UserTempIndex);
- else snprintf(buf, sizeof(buf), "话筒音量:%02d",UserTempIndex);
-
- guiClearRect(0,y,GLCD_WIDTH-1, y+24,guiGetBackColor());
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- /*****************************蓝牙耳机SPK 开始***********************************/
- void uiShowBleSpkUpdate(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"喇叭音量",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- BleAudioLvFlash(0,0);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
-
- }
- void uiShowBleSpkUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_UP==key)BleAudioLvFlash(1,0);
- else if(MKEY_VALUE_DOWN==key)BleAudioLvFlash(2,0);
- else if(MKEY_VALUE_MENU==key){
- newPara.BleSpkLv=UserTempIndex;
- sysIniSave("lock");
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- /*****************************蓝牙耳机SPK 结束***********************************/
- /*****************************蓝牙耳机MIC 开始***********************************/
- void uiShowBleMicUpdate(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"话筒音量",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- BleAudioLvFlash(0,1);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
-
- }
- void uiShowBleMicUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_UP==key)BleAudioLvFlash(1,1);
- else if(MKEY_VALUE_DOWN==key)BleAudioLvFlash(2,1);
- else if(MKEY_VALUE_MENU==key){
- newPara.BleMicLv=UserTempIndex;
- sysIniSave("lock");
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- /*****************************蓝牙耳机MIC 结束***********************************/
- /*****************************蓝牙初始化开始***********************************/
- void uiShowBleInitUpdate(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"蓝牙初始化",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- BleAudioLvFlash(0,1);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
-
- }
- void uiShowBleInitUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_UP==key)BleAudioLvFlash(1,1);
- else if(MKEY_VALUE_DOWN==key)BleAudioLvFlash(2,1);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- /*****************************蓝牙初始化 结束***********************************/
- /*****************************指环初始化 开始***********************************/
- void uiShowRingInitUpdate(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"指环初始化",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- BleAudioLvFlash(0,1);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
- }
- void uiShowRingInitUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_BLE_MAIN);
- else if(MKEY_VALUE_UP==key)BleAudioLvFlash(1,1);
- else if(MKEY_VALUE_DOWN==key)BleAudioLvFlash(2,1);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_BLE_MAIN);
- }
- }
- /*****************************指环初始化 结束***********************************/
- /*
- UIS_MENU_XINBIAO_MAIN,
- UIS_MENU_GPS_ENABLE,
- UIS_MENU_GPS_STATION,//GPS 站点
- UIS_MENU_XINBIAO_INFO,
- UIS_MENU_XINBIAO_LIVE,
- UIS_MENU_XINBIAO_SENDMODE,
- UIS_MENU_XINBIAO_TIME,
- UIS_MENU_XINBIAO_IP,
- UIS_MENU_XINBIAO_LISTCLEAR,
- */
- /*****************************信标主部分开始*********************************/
- void uiShowXINBIAOMenuSysSetup(char flash){
- static const char *apcPtr[]={
- "1.gps开关",
- "2.站点设置",
- "3.信标详情",
- "4.实时信标",
- "5.信标发送模式",
- "6.定时时间",
- "7.上传网关",
- "8.清除列表",
- ""
- };
- if(flash){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"信标设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- uiMenuInit(&sutMenuSysSetup,apcPtr,FONT_MODE_16X16);
- }
- }
- void sysXINBIAOSetResponse(void){
- unsigned short key;
- key=uiMenuResponse(&sutMenuSysSetup);
- if(MKEY_VALUE_MENU==key){
- switch(sutMenuSysSetup.handle){
- case 0:
- uISetNextStatus(UIS_MENU_GPS_ENABLE);
- break;
- case 1:
- uISetNextStatus(UIS_MENU_GPS_STATION);
- break;
- case 2:
- uISetNextStatus(UIS_MENU_XINBIAO_INFO);
- break;
- case 3:
- uISetNextStatus(UIS_MENU_XINBIAO_LIVE);
- break;
- case 4:
- uISetNextStatus(UIS_MENU_XINBIAO_SENDMODE);
- break;
- case 5:
- uISetNextStatus(UIS_MENU_XINBIAO_TIME);
- break;
- case 6:
- uISetNextStatus(UIS_MENU_XINBIAO_IP);
- break;
- case 7:
- uISetNextStatus(UIS_MENU_XINBIAO_LISTCLEAR);
- break;
- }
- if(sutMenuSysSetup.handle<=7) uiPushStack(sutMenuSysSetup.handle);
- }else if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_MAIN);
- }
- /*****************************信标主部分结束*********************************/
- /*****************************站点开关开始********************************/
- void uiShowXINBIAOStationUpdate(char StatusUpdate){
- char Features[NORMAL_BOOL_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"站点设置",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<NORMAL_BOOL_NUM;i++){
- if(i==newPara.Xinbiao_station) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,BoolMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowXINBIAOStationUpdateResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.Xinbiao_station != sutListBox.handle){
- newPara.Xinbiao_station=sutListBox.handle;
- sysIniSave("bleenable");
- }
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************站点开关结束********************************/
- /*****************************信标详情开始********************************/
- void uiShowXINBIAOPageShow(char dir){
- short y=0;
- char Showbuf[22];
- y=LIST_TOPY; //LIST_ITEM_HEGH
- if(dir==0)UserTempIndex=0;
- else if(dir==1){
- if(++UserTempIndex>sut_xinbiao_info.Max_id)UserTempIndex=0;
- }else if(dir==2){
- if(--UserTempIndex==0)UserTempIndex=sut_xinbiao_info.Max_id-1;
- }
- snprintf(Showbuf,sizeof(Showbuf),"ID号:%03d",sut_xinbiaopage.xb_id);
- guiShowStr(0,y,Showbuf,FONT_MODE_16X16,REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- snprintf(Showbuf,sizeof(Showbuf),"名字:%s",sut_xinbiaopage.xb_CallName);
- guiShowStr(0,y,Showbuf,FONT_MODE_16X16,REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- //guiClearRect(0, y,GLCD_WIDTH-1, y+12+5+12,guiGetBackColor());
- snprintf(Showbuf, sizeof(Showbuf), "纬度 S:%d.%05d",sut_xinbiaopage.xb_latitue/1000000,sut_xinbiaopage.xb_latitue%1000000);
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- snprintf(Showbuf, sizeof(Showbuf), "经度 W:%d.%05d",sut_xinbiaopage.xb_longitue/1000000,sut_xinbiaopage.xb_longitue%1000000);
- guiShowStr(30,y, Showbuf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- snprintf(Showbuf,sizeof(Showbuf),"航向:%s",sut_xinbiaopage.xb_heading);
- guiShowStr(0,y,Showbuf,FONT_MODE_16X16,REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- snprintf(Showbuf,sizeof(Showbuf),"方向:%s",sut_xinbiaopage.xb_dir);
- guiShowStr(0,y,Showbuf,FONT_MODE_16X16,REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- y+=LIST_ITEM_HEGH;
- snprintf(Showbuf,sizeof(Showbuf),"海拔:%s",sut_xinbiaopage.xb_elevation);
- guiShowStr(0,y,Showbuf,FONT_MODE_16X16,REVERSED_NO,COLOR_BLACK,guiGetBackColor());
- y+=LIST_ITEM_HEGH;
-
- }
- void uiShowXINBIAOInfoUpdate(char StatusUpdate){
- char Features[NORMAL_BOOL_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"信标详情",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- UserTempIndex=0;
- uiShowXINBIAOPageShow(0);
- uiMenuShowBottomIndacitor("详情", "返回");
- }
- }
- /*****************************信标详情结束********************************/
- /*****************************实时信标开关开始********************************/
- void uiShowXINBIAOEnableLive(char StatusUpdate){
- char Features[NORMAL_BOOL_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"实时信标",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<NORMAL_BOOL_NUM;i++){
- if(i==newPara.Xinbiao_LiveUpdate) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,BoolMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowXINBIAOEnableLiveResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.Xinbiao_LiveUpdate != sutListBox.handle){
- newPara.Xinbiao_LiveUpdate=sutListBox.handle;
- sysIniSave("bleenable");
- }
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************实时信标开关结束********************************/
- /*****************************信标发送开始********************************/
- void uiShowXINBIAOTriggerMode(char StatusUpdate){
- char Features[3];
- unsigned char i;
- static const char *xinbiaoMode[3+1]={
- "PTT联动",
- "定时发送",
- "PTT联动+定时",
- ""
- };
-
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"信标发送",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<3;i++){
- if(i==newPara.Xinbiao_SendMode) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,xinbiaoMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowXINBIAOTriggerModeResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.Xinbiao_SendMode != sutListBox.handle){
- newPara.Xinbiao_SendMode=sutListBox.handle;
- sysIniSave("bleenable");
- }
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************信标发送结束********************************/
- /*****************************信标时间开始********************************/
- static XinbiaoTimeFlash(char dir){
- char buf[50];
- unsigned short y=70;
- if(dir==0){
- UserTempIndex=newPara.Xinbiao_Time;
- }else if(dir==1){
- if(++UserTempIndex>10) UserTempIndex=0;
- }else if(dir==2){
- if(UserTempIndex>0) UserTempIndex--;
- else UserTempIndex=10;
- }else return;
- snprintf(buf, sizeof(buf), "%02d 秒",(UserTempIndex+1)*5);
- guiClearRect(0,y,GLCD_WIDTH-1, y+24,guiGetBackColor());
- guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
- }
- void uiShowXinbiaoTimeUpdate(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"定时时间",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- XinbiaoTimeFlash(0);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
-
- }
- void uiShowXinbiaoTimeUpdateResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_UP==key)XinbiaoTimeFlash(1);
- else if(MKEY_VALUE_DOWN==key)XinbiaoTimeFlash(2);
- else if(MKEY_VALUE_MENU==key){
- newPara.Xinbiao_Time=UserTempIndex;
- sysIniSave("lock");
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************信标时间结束********************************/
- /*****************************上传网关开始********************************/
- void uiShowXINBIAOGateway(char StatusUpdate){
- char Features[NORMAL_BOOL_NUM];
- unsigned char i;
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"上传网关",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- uiMenuShowBottomLine();
- for(i=0;i<NORMAL_BOOL_NUM;i++){
- if(i==newPara.Xinbiao_IpEnable) Features[i]=1;
- else Features[i]=0;
- }
- ListBoxInit(&sutListBox,BoolMode,0,commonIcon2,Features,0);
- uiMenuShowBottomIndacitor("保存", "返回");
- }
- }
- void uiShowXINBIAOGatewayResponse(void){
- unsigned short key=ListBoxResponse(&sutListBox);
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- if(newPara.Xinbiao_IpEnable != sutListBox.handle){
- newPara.Xinbiao_IpEnable=sutListBox.handle;
- sysIniSave("bleenable");
- }
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************上传网关结束********************************/
- /*****************************清除列表开始********************************/
- void uiShowXinbiaoClearlist(char StatusUpdate){
- if(StatusUpdate){
- guiClearAll(guiGetBackColor());
- guiShowCaption(0,"清除列表",UI_STATUS_ITEM_Y+1,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
- BleAudioLvFlash(0,1);
- uiMenuShowBottomLine();
- uiMenuShowBottomIndacitor("确认", "返回");
- }
- }
- void uiShowXinbiaoClearlistResponse(void){
- unsigned short key=getKeyValue();
- if(MKEY_VALUE_ESC==key) uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- else if(MKEY_VALUE_MENU==key){
- getStackStruct()->ok_back=1;
- uISetNextStatus(UIS_MENU_XINBIAO_MAIN);
- }
- }
- /*****************************清除列表结束********************************/
|