SetSystemPara.c 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215
  1. #include "includes.h"
  2. typedef enum{
  3. PMODE_DEFAULT_LOW,
  4. PMODE_SUPER_LOW,
  5. PMODE_NORMAL
  6. }PWR_ENUMDEF;
  7. unsigned short LcdOnTimeCt;
  8. unsigned int g_uiGpsStat = 1;
  9. SUT_MENU sutMenuSysSetup;
  10. unsigned char Net_temp_flag;
  11. //超长功耗
  12. #define MODE_LONG_LOW_PWR_NONE_4G 5
  13. #define MODE_LONG_LOW_PWR_IS_4G 55
  14. //默认为低功耗模式
  15. #define MODE_LOW_PWR_NONE_4G 5
  16. #define MODE_LOW_PWR_IS_4G 25
  17. //使用常规非低功耗模式
  18. #define MODE_NORMAL__NONE_4G 5
  19. #define MODE_NORMAL__IS_4G 5
  20. //终端放弃设置模式,由服务器决定使用什么情况
  21. #define MODE_AUTO____NONE_4G 0
  22. #define MODE_AUTO____IS_4G 0
  23. static const char*g_ausNetOut[]={"Auto"," 2G "," 3G "," 4G "};
  24. void ModemSetPwrMode(unsigned char mode)
  25. {
  26. char info[30];
  27. unsigned char seg1,seg2;
  28. switch(mode){
  29. case PMODE_DEFAULT_LOW: seg1=MODE_LOW_PWR_NONE_4G;seg2=MODE_LOW_PWR_IS_4G;break;//默认为低功耗模式
  30. case PMODE_SUPER_LOW: seg1=MODE_LONG_LOW_PWR_NONE_4G;seg2=MODE_LONG_LOW_PWR_IS_4G;break;//超长功耗
  31. case PMODE_NORMAL: seg1=MODE_NORMAL__NONE_4G;seg2=MODE_NORMAL__IS_4G;break;//使用常规非低功耗模式
  32. default:return;
  33. }
  34. snprintf(info, sizeof(info), "AT+UDP=%d,%d\r\n",seg1,seg2);
  35. ModemSendAt(info);
  36. SlwTrace(INF, info,0);
  37. }
  38. void GetPwrMode(char *msg)
  39. {//0,5,30
  40. //1,30,30
  41. int seg1,seg2;
  42. short i;
  43. char buf[15];
  44. //if(msg[0]=='0') return;
  45. for(i=2;i<strlen(msg);i++){
  46. if(msg[i]==','){
  47. seg1=atoi(msg+2);
  48. seg2=atoi(msg+i+1);
  49. if(seg1==MODE_LOW_PWR_NONE_4G && seg2==MODE_LOW_PWR_IS_4G && newPara.pwrMode != PMODE_DEFAULT_LOW){
  50. goto SAVE_PWR_MODE;
  51. }else if(seg1==MODE_LONG_LOW_PWR_NONE_4G && seg2==MODE_LONG_LOW_PWR_IS_4G && newPara.pwrMode != PMODE_SUPER_LOW){
  52. goto SAVE_PWR_MODE;
  53. }else if(seg1==MODE_NORMAL__NONE_4G && seg2==MODE_NORMAL__IS_4G && newPara.pwrMode != PMODE_NORMAL){
  54. goto SAVE_PWR_MODE;
  55. }else if(seg2!=MODE_LOW_PWR_IS_4G&&seg2!=MODE_LONG_LOW_PWR_IS_4G&& seg2!=MODE_NORMAL__IS_4G){
  56. //Seg2 3个模式都不满足切换为常规模式
  57. // seg1=MODE_NORMAL__NONE_4G;
  58. // seg2=MODE_NORMAL__IS_4G;
  59. // newPara.pwrMode = PMODE_NORMAL;
  60. goto SAVE_PWR_MODE;
  61. }
  62. }
  63. }
  64. return;
  65. SAVE_PWR_MODE:
  66. snprintf(buf, sizeof(buf), "AT+UDP=%d,%d\r\n",seg1,seg2);
  67. ModemSendAt(buf);
  68. ModemSetPwrMode(newPara.pwrMode);
  69. }
  70. /*****************************************************
  71. 深圳北纬22.33 东经114.07
  72. 经过试验数据比较准确,但是东西南北不知道
  73. ******************************************************/
  74. void GetCoordinates(unsigned char type)
  75. {
  76. //type 0 UI时调用
  77. // 1 上传时调用
  78. char buf[30];
  79. char buf1[8];
  80. char buf2[4]={0};
  81. char temp[3];
  82. char temp1[3];
  83. char temp2[5];
  84. char temp3[5];
  85. int i,num,num1,w,j;
  86. double Jnum1,Jnum2,Jnum3;//有小数位 8位有效
  87. double Wnum1,Wnum2,Wnum3;//有小数位 8位有效
  88. unsigned char laTemp[4],loTemp[4];
  89. laTemp[0] = (sutGpsInfo.latitue>>24);
  90. laTemp[1] = (sutGpsInfo.latitue>>16);
  91. laTemp[2] = (sutGpsInfo.latitue>>8);
  92. laTemp[3] = (sutGpsInfo.latitue);
  93. loTemp[0] = (sutGpsInfo.longitue>>24);
  94. loTemp[1] = (sutGpsInfo.longitue>>16);
  95. loTemp[2] = (sutGpsInfo.longitue>>8);
  96. loTemp[3] = (sutGpsInfo.longitue);
  97. AscStrTurnHexStr((char *)loTemp,buf1);
  98. memset(temp, 0, sizeof(temp));
  99. for(i=0;i<3;i++) temp[i]=buf1[i];
  100. j=atoi(temp);
  101. memset(temp2, 0, sizeof(temp2));
  102. for(i=0;i<6;i++) temp2[i]=buf1[i+3];
  103. num=atoi(temp2);
  104. Jnum1=num/1000;
  105. Jnum1 /=60;
  106. Jnum2 = (num%1000)*60;
  107. Jnum2 /=3600000;
  108. Jnum3=Jnum1+Jnum2;
  109. sutGpsInfo.testJD = j*1000000+Jnum3*1000000;//上传时使用
  110. AscStrTurnHexStr((char *)laTemp,buf2);
  111. for(i=0;i<3;i++) temp1[i]=buf2[i];
  112. w=atoi(temp1);
  113. for(i=0;i<6;i++) temp3[i]=buf2[i+3];
  114. num1=atoi(temp3);
  115. Wnum1=num1/1000;
  116. Wnum1 /=60;
  117. Wnum2 = (num1%1000)*60;
  118. Wnum2 /=3600000;
  119. Wnum3=Wnum1+Wnum2;
  120. sutGpsInfo.testWD = w*1000000+Wnum3*1000000;
  121. if(type == 0){//UI时要显示
  122. snprintf(buf, sizeof(buf)," 纬度 %s: %.3d.%05d","S",w,(unsigned int)(Wnum3*100000));
  123. GuiShowStr(0,STATUS_ITEM_HEIGH,buf,0x01,0);
  124. snprintf(buf, sizeof(buf)," 经度 %s: %d.%05d","W",j,(unsigned int)(Jnum3*100000));
  125. GuiShowStr(0,STATUS_ITEM_HEIGH+16,buf,0x01,0);
  126. }
  127. }
  128. unsigned char validApnNum;
  129. char *APNNAME[APN_NUM+1]=
  130. {
  131. "APN1",
  132. "APN2",
  133. "APN3",
  134. "APN4",
  135. ""
  136. };
  137. static const char *accIconFileNameAPN[]={
  138. "APN.bmp",
  139. "APN1.bmp",
  140. ""
  141. };
  142. void SetAPNShow(int update)
  143. {
  144. int i;
  145. static char GroupsFeatures[APN_NUM];
  146. if(update){
  147. if(showApn!=1)
  148. {
  149. ShowMessageBox("禁止修改");
  150. uTimerHardDly(200);
  151. UISetNextStatus(UIS_MENU_SYS_SET);
  152. return;
  153. }
  154. if(validApnNum==1)
  155. {
  156. ShowMessageBox("配置文件无APN");
  157. uTimerHardDly(200);
  158. UISetNextStatus(UIS_MENU_SYS_SET);
  159. return;
  160. }
  161. GuiClearAll();
  162. ShowCaption("设置APN",2);//
  163. //GuiDrawHLine(0,159,20,1);
  164. //设置Features 将决定选择图标
  165. GroupsFeatures[newPara.apnList.defaultuse]=1;
  166. ListBoxInit(&sutListBox,APNNAME,0,accIconFileNameAPN,GroupsFeatures);
  167. //----------------------------
  168. GuiDrawHLine(0,159,110,1);
  169. GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [S]详情",0x01,0);
  170. }
  171. }
  172. void SetSYSResponse(void)
  173. {
  174. unsigned long key;
  175. key=MenuResponse(&sutMenuSysSetup);
  176. if(KEY_PANEL_MENU==key){
  177. switch(sutMenuSysSetup.handle){
  178. case 0:
  179. UISetNextStatus(UIS_SET_APN);
  180. break;
  181. case 1:
  182. UISetNextStatus(UIS_SET_LCD);
  183. break;
  184. case 2:
  185. UISetNextStatus(UIS_SET_NET);
  186. break;
  187. case 3:
  188. UISetNextStatus(UIS_SET_SERVER_PASS);
  189. break;
  190. case 4:
  191. UISetNextStatus(UIS_SET_KEYSound);
  192. break;
  193. // case 5:
  194. // UISetNextStatus(UIS_SET_SOUNDMODE);
  195. // break;
  196. case 5:
  197. UISetNextStatus(UIS_VOICE_PLAY);
  198. break;
  199. case 6:
  200. UISetNextStatus(UIS_SET_CODETYPE);
  201. break;
  202. case 7:
  203. UISetNextStatus(UIS_SET_PWRMODE);
  204. break;
  205. case 8:
  206. UISetNextStatus(UIS_SOSCONTACT_GROUP);
  207. break;
  208. case 9:
  209. UISetNextStatus(UIS_SOSCONTACT_PERSON);
  210. break;
  211. //UIS_SET_SPKLV
  212. case 10:
  213. UISetNextStatus(UIS_SET_MICLV);
  214. break;
  215. case 11:
  216. UISetNextStatus(UIS_SET_SPKLV);
  217. break;
  218. case 12:
  219. UISetNextStatus(UIS_SET_POC_FOTA);
  220. break;
  221. }
  222. if(sutMenuSysSetup.handle<=12)PushUiStack(&UI_Stack,sutMenuSysSetup.handle);
  223. }
  224. else if(KEY_PANEL_EXIT==key){
  225. UISetNextStatus(UIS_MENU_MAIN); //UIS_MENU_SYS_SET
  226. }
  227. }
  228. char showIndex;
  229. void ShowAPNMessage(char index)
  230. {
  231. char buf[40];
  232. char temp[40];
  233. unsigned char len;
  234. unsigned char i,y,maxLen;
  235. i=0;
  236. y=STATUS_ITEM_HEIGH;
  237. maxLen=14;
  238. GuiClearRect(0, y, LCD_WIDTH-1,LCD_HEIGHT-25);
  239. snprintf(buf, sizeof(buf), "%s:",APNNAME[showIndex]);
  240. GuiShowStr(1,y+16*i++,buf,0x01,0);
  241. len=strlen(newPara.apnList.apnList[showIndex].account);
  242. memcpy(temp, newPara.apnList.apnList[showIndex].account, maxLen);
  243. temp[maxLen]=0;
  244. snprintf(buf, sizeof(buf), "Name:%s",temp);
  245. GuiShowStr(1,y+16*i++,buf,0x01,0);
  246. if(len > maxLen)
  247. {
  248. // memcpy(temp, newPara.apnList.apnList[showIndex].account, maxLen);temp[maxLen]=0;
  249. // snprintf(buf, sizeof(buf), "%s",temp);
  250. // buf[len-maxLen]=0;
  251. strcpy(buf,&(newPara.apnList.apnList[showIndex].account[maxLen]));
  252. GuiShowStr(1,y+16*i++,buf,0x01,0);
  253. }
  254. len=strlen(newPara.apnList.apnList[showIndex].pass);
  255. memcpy(temp, newPara.apnList.apnList[showIndex].pass, maxLen);
  256. temp[maxLen]=0;
  257. snprintf(buf, sizeof(buf), "Pass:%s",temp);
  258. GuiShowStr(1,y+16*i++,buf,0x01,0);
  259. if(len > maxLen)
  260. {
  261. // memcpy(temp, newPara.apnList.apnList[showIndex].pass, maxLen);temp[maxLen]=0;
  262. // snprintf(buf, sizeof(buf), "%s",temp);
  263. // buf[len-maxLen]=0;
  264. strcpy(buf,&(newPara.apnList.apnList[showIndex].pass[maxLen]));
  265. GuiShowStr(1,y+16*i++,buf,0x01,0);
  266. }
  267. }
  268. void SetApnDetailShow(int update)
  269. {
  270. char buf[40];
  271. if(update)
  272. {
  273. GuiClearAll();
  274. ShowCaption("APN详情",2);//
  275. //GuiDrawHLine(0,159,20,1);
  276. showIndex=0;
  277. ShowAPNMessage(showIndex);
  278. //----------------------------
  279. GuiDrawHLine(0,159,110,1);
  280. GuiShowStr(0,SUBSCRIPT_LOCATION," [EXIT]返回",0x01,0);
  281. }
  282. }
  283. //居中显示信息
  284. void FunShowMsg(char *info)
  285. {
  286. int x,y;
  287. SlwTrace(INF, info,1);
  288. x=(LCD_WIDTH-strlen(info)*8)/2;
  289. y=LCD_HEIGHT/2;
  290. GuiClearArea(0,y,LCD_WIDTH, 16);
  291. GuiShowStr(x,y,info,1,0);
  292. }
  293. //配置编码器菜单
  294. unsigned char tempCodetype;
  295. void CodeTypeUpdateShow(void)
  296. {
  297. char info[20];
  298. switch(tempCodetype){
  299. case 0:sprintf(info, "EVRC_HALF");break;
  300. case 1:sprintf(info, "AMRNB-122");break;
  301. case 2:sprintf(info, "EVRC_FULL");break;
  302. default:return;
  303. }
  304. FunShowMsg(info);
  305. }
  306. void SetCodeTypeShow(int update)
  307. {
  308. static unsigned short susCt=0;
  309. int x=4;//4
  310. int i;
  311. if(update==1){
  312. susCt=0;
  313. GuiClearAll();
  314. ShowCaption("编码器设置",1);//0
  315. //GuiDrawHLine(0,159,20,1);
  316. GuiDrawHLine(0,159,110,1);
  317. if(modemInitReady==0){
  318. ShowMessageBox("模块暂未启动");
  319. uTimerHardDly(50);
  320. UISetNextStatus(UIS_MENU_SYS_SET);
  321. }else{
  322. tempCodetype=sutPocStatus.codeType;
  323. CodeTypeUpdateShow();
  324. }
  325. }
  326. if(susCt==0){
  327. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  328. }else if(susCt==200){
  329. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  330. }
  331. if(++susCt>=400)susCt=0;
  332. }
  333. void SetCodeTypeResponse(void)
  334. {
  335. char info[30];
  336. switch(g_ulKeyValue){
  337. case KEY_PANEL_UP:
  338. if(tempCodetype==0) tempCodetype=2;
  339. else tempCodetype--;
  340. CodeTypeUpdateShow();
  341. break;
  342. case KEY_PANEL_DOWN:
  343. if(tempCodetype==2) tempCodetype=0;
  344. else tempCodetype++;
  345. CodeTypeUpdateShow();
  346. break;
  347. case KEY_PANEL_MENU:
  348. if(tempCodetype != sutPocStatus.codeType){
  349. sutPocStatus.codeType=tempCodetype;
  350. sprintf(info, "AT+POC=40000001%02x\r\n", tempCodetype);
  351. ModemSendAt(info);
  352. SlwTrace(INF, "Update codetype",1);
  353. }
  354. UISetNextStatus(UIS_STANDBY);
  355. break;
  356. case KEY_PANEL_EXIT:
  357. UISetNextStatus(UIS_MENU_SYS_SET);
  358. break;
  359. }
  360. }
  361. void SetGPSTimeShowDetail(unsigned char timeIndex)
  362. {
  363. unsigned short tempTime;
  364. char buf[10];
  365. tempTime = GPS_TimeTable[timeIndex];
  366. GuiClearRect(100,STATUS_ITEM_HEIGH+16+16,LCD_WIDTH-1, STATUS_ITEM_HEIGH+16+16+16);
  367. if(tempTime==0)
  368. {
  369. GuiShowStr(100,STATUS_ITEM_HEIGH+16+16," 关闭 ",0x01,0);//130
  370. //GuiReverseRect(108,56,16*2,16);
  371. }else
  372. {
  373. snprintf(buf, sizeof(buf)," %02d 秒",tempTime);
  374. GuiShowStr(100,STATUS_ITEM_HEIGH+16+16,buf,0x01,0);//130
  375. // if(tempTime > 99) GuiReverseRect(108,56,24,16);
  376. // else GuiReverseRect(108,56,16,16);
  377. }
  378. }
  379. /*********************************************************/
  380. void SetGPSShow(int update)
  381. {
  382. static unsigned short susCt=0;
  383. if(update){
  384. GuiClearAll();
  385. ShowCaption("北斗设置",1);//
  386. GuiShowStr(0,STATUS_ITEM_HEIGH+16+16,"北斗上传设置: 秒",0x01,0); //sutGpsInfo.SendTime
  387. //GuiDrawHLine(0,159,20,1);
  388. GetCoordinates(0);
  389. sutGpsInfo.GPS_TimeIndexBackup = newPara.gpsTimeIndex;
  390. SetGPSTimeShowDetail(sutGpsInfo.GPS_TimeIndexBackup);
  391. GuiDrawHLine(0,159,110,1);
  392. susCt=0;
  393. }
  394. if(susCt==0){
  395. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  396. }else if(susCt==200){
  397. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  398. }
  399. if(++susCt>=400)susCt=0;
  400. }
  401. void SetGPSResponse(void)
  402. {
  403. switch(g_ulKeyValue)
  404. {
  405. case KEY_PANEL_UP:
  406. case KEY_PANEL_DOWN:
  407. if(g_ulKeyValue==KEY_PANEL_UP)
  408. {
  409. if(sutGpsInfo.GPS_TimeIndexBackup<(GPS_TABLE_NUM-1))
  410. sutGpsInfo.GPS_TimeIndexBackup++;
  411. else
  412. sutGpsInfo.GPS_TimeIndexBackup=0;
  413. }else{
  414. if(sutGpsInfo.GPS_TimeIndexBackup==0)
  415. sutGpsInfo.GPS_TimeIndexBackup=GPS_TABLE_NUM-1;
  416. else
  417. sutGpsInfo.GPS_TimeIndexBackup--;
  418. }
  419. SetGPSTimeShowDetail(sutGpsInfo.GPS_TimeIndexBackup);
  420. break;
  421. case KEY_PANEL_MENU:
  422. if(sutGpsInfo.GPS_TimeIndexBackup != newPara.gpsTimeIndex)
  423. {//changed
  424. newPara.gpsTimeIndex = sutGpsInfo.GPS_TimeIndexBackup;
  425. GpsTimeUpdate();
  426. //save sys
  427. ModifyConfigureFile(1);
  428. }
  429. UI_Stack.OK_back=1;
  430. UISetNextStatus(UIS_MENU_MAIN);
  431. break;
  432. case KEY_PANEL_EXIT: UISetNextStatus(UIS_MENU_MAIN);break;
  433. //case KEY_PANEL_MENU: UISetNextStatus(UIS_MENU_MAIN);break;
  434. }
  435. }
  436. /***************************提示音设置******************************/
  437. unsigned char tempKeySound;
  438. char *KeySoundNAME[5]=
  439. {
  440. "关闭提示音",
  441. "按键+收发音",
  442. "仅收发音",
  443. ""
  444. };
  445. void SetKeySoundShow(int update)
  446. {
  447. static unsigned short susCt=0;
  448. static char GroupsFeatures[4];
  449. if(update){
  450. GuiClearAll();
  451. ShowCaption("提示音设置",1);
  452. //设置Features 将决定选择图标
  453. memset(GroupsFeatures,0,sizeof(GroupsFeatures));
  454. GroupsFeatures[newPara.KeySound]=1;
  455. ListBoxInit(&sutListBox,KeySoundNAME,0,accIconFileNameAPN,GroupsFeatures);
  456. //----------------------------
  457. GuiDrawHLine(0,159,110,1);
  458. }
  459. if(susCt==20){
  460. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  461. }else if(susCt==200){
  462. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  463. }
  464. if(++susCt>=400)susCt=0;
  465. }
  466. void SetKeysoundResponse(void)
  467. {
  468. unsigned long key;
  469. char buf[20];
  470. key=ListBoxResponse(&sutListBox);
  471. if(KEY_PANEL_MENU==key){
  472. if(sutListBox.handle != newPara.KeySound){
  473. //AT+TONES=1
  474. //ModemSendAt
  475. newPara.KeySound=sutListBox.handle;
  476. ModifyConfigureFile(1);
  477. }
  478. //sutUIstatus.ItemRefresh=1;
  479. UI_Stack.OK_back=1;
  480. UISetNextStatus(UIS_MENU_SYS_SET);
  481. }else if(KEY_PANEL_EXIT==key){
  482. UISetNextStatus(UIS_MENU_SYS_SET);
  483. }
  484. }
  485. unsigned char SetTimeIndex;
  486. void SetLCDShow(int update)
  487. {
  488. static unsigned short susCt=0;
  489. char buf[10];
  490. char buf1[6];
  491. int x=4;//4
  492. int i;
  493. if(update==1){
  494. SetTimeIndex=newPara.lcdParaDefaultIndex;
  495. GuiClearAll();
  496. ShowCaption("LCD设置",1);//0
  497. //GuiDrawHLine(0,159,20,1);
  498. GuiShowStr(x,56," 背光时间: ",1,0);
  499. if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
  500. else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
  501. GuiShowStr(x+(16*5),56,buf,1,0);
  502. //GuiReverseRect(x+(16*5),56,32,16);
  503. snprintf(buf1, sizeof(buf1),"%3d",SetTimeIndex);
  504. SlwTrace(INF,buf1,1);
  505. GuiDrawHLine(0,159,110,1);
  506. susCt=0;
  507. //return;
  508. }else if(update == 2){
  509. GuiClearRect(x+(16*5),56,160,16);
  510. if(SetTimeIndex==4) snprintf(buf, sizeof(buf),"常亮 ");
  511. else snprintf(buf, sizeof(buf),"%3d 秒",newPara.lcdParaList[SetTimeIndex]);
  512. GuiShowStr(x+(16*5),56,buf,1,0);
  513. //GuiReverseRect(x+(16*5),56,32,16);
  514. GuiDrawHLine(0,159,110,1);
  515. }
  516. if(susCt==0){
  517. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  518. }else if(susCt==200){
  519. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  520. }
  521. if(++susCt>=400)susCt=0;
  522. }
  523. void SetLCDResponse(void)
  524. {
  525. int FileIndex;
  526. unsigned long key;
  527. char Buf[10];
  528. int x=4;//4
  529. //TimeOut[]
  530. // key=ListBoxResponse(&sutListBox);
  531. switch(g_ulKeyValue){
  532. case KEY_PANEL_UP:
  533. if(++SetTimeIndex>=5)SetTimeIndex=0;
  534. SetLCDShow(2);//0
  535. break;
  536. case KEY_PANEL_DOWN:
  537. if(SetTimeIndex>0)SetTimeIndex--;
  538. else SetTimeIndex=4;
  539. SetLCDShow(2);//0
  540. break;
  541. case KEY_PANEL_MENU:
  542. if(SetTimeIndex != newPara.lcdParaDefaultIndex){
  543. newPara.lcdParaDefaultIndex=SetTimeIndex;
  544. //save sys
  545. ModifyConfigureFile(1);
  546. }
  547. UI_Stack.OK_back=1;
  548. UISetNextStatus(UIS_MENU_SYS_SET);
  549. break;
  550. case KEY_PANEL_EXIT:
  551. UISetNextStatus(UIS_MENU_SYS_SET);
  552. break;
  553. }
  554. }
  555. void GetMododexWithCard(void)
  556. {
  557. char buf[30];
  558. //根据CardType和ModeSetup转换为Mododex值的一个表
  559. //static const unsigned char MododrxTable[3][3]={{11,24,5},{2,8,5},{17,21,5}};
  560. static const unsigned char MododrxTable[3][4]={{11,15,10,5},{2,25,7,5},{17,25,1,5}};
  561. snprintf(buf,sizeof(buf),"AT+MODODREX=%d\r\n",MododrxTable[thisYunYingShang][newPara.netMode]);
  562. ModemSendAt(buf);
  563. }
  564. void SetNetShow(int update)
  565. {
  566. static unsigned short susCt=0;
  567. static const char *Netmode[NET_NUM+1]=
  568. {
  569. "AUTO",
  570. "2G",
  571. "3G",
  572. "4G",
  573. ""
  574. };
  575. //static
  576. char NetsFeatures[NET_NUM]={0};
  577. if(update){
  578. GuiClearAll();
  579. ShowCaption("网络设置",2);//
  580. NetsFeatures[newPara.netMode]=1;
  581. ListBoxInit(&sutListBox,Netmode,0,accIconFileNameAPN,NetsFeatures);
  582. //----------------------------
  583. GuiDrawHLine(0,159,110,1);
  584. }
  585. if(susCt==0){
  586. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  587. }else if(susCt==200){
  588. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  589. }
  590. if(++susCt>=400)susCt=0;
  591. }
  592. void SetNetResponse(void)
  593. {
  594. unsigned long key;
  595. unsigned char buf[15];
  596. key=ListBoxResponse(&sutListBox);
  597. if(KEY_PANEL_MENU==key){
  598. if(sutListBox.handle != newPara.netMode){
  599. newPara.netMode=sutListBox.handle;
  600. // snprintf(buf,sizeof(buf),"AT+CTEC=%d,%d\r\n",netshowvalue,newPara.netMode);
  601. // ModemSendAt(buf);
  602. GetMododexWithCard();
  603. ModifyConfigureFile(1);
  604. }
  605. UI_Stack.OK_back=1;
  606. UISetNextStatus(UIS_MENU_SYS_SET);
  607. }else if(KEY_PANEL_EXIT==key){
  608. UISetNextStatus(UIS_MENU_SYS_SET);
  609. }
  610. }
  611. void SetPowerModeShow(int update)
  612. {
  613. int i;
  614. static const char *ModeName[]={//这里数量变了记得修改 PWR_MODE_NUM
  615. "低功耗模式",
  616. "超长待机模式",
  617. "常规模式",
  618. ""
  619. };
  620. char GroupsFeatures[PWR_MODE_NUM];
  621. memset(GroupsFeatures,0,sizeof(GroupsFeatures));
  622. if(update){
  623. GuiClearAll();
  624. ShowCaption("模式设置",2);//
  625. //GuiDrawHLine(0,159,20,1);
  626. //设置Features 将决定选择图标
  627. GroupsFeatures[newPara.pwrMode]=1;
  628. ListBoxInit(&sutListBox,ModeName,0,accIconFileNameAPN,GroupsFeatures);
  629. //----------------------------
  630. GuiDrawHLine(0,159,110,1);
  631. GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [EXIT]退出",0x01,0);
  632. }
  633. }
  634. /***************************场景模式设置******************************/
  635. void SetSoundModeShow(int update)
  636. {
  637. int i;
  638. static const char *ModeName[]={
  639. "室内模式",
  640. "室外模式",
  641. ""
  642. };
  643. char GroupsFeatures[2];
  644. memset(GroupsFeatures,0,sizeof(GroupsFeatures));
  645. if(update){
  646. GuiClearAll();
  647. ShowCaption("场景模式",2);//
  648. //GuiDrawHLine(0,159,20,1);
  649. //设置Features 将决定选择图标
  650. GroupsFeatures[newPara.SoundMode]=1;
  651. ListBoxInit(&sutListBox,ModeName,0,accIconFileNameAPN,GroupsFeatures);
  652. //----------------------------
  653. GuiDrawHLine(0,159,110,1);
  654. GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]切换 [EXIT]退出",0x01,0);
  655. }
  656. }
  657. void SetSoundModeResponse(void)
  658. {
  659. unsigned long key;
  660. key=ListBoxResponse(&sutListBox);
  661. if(KEY_PANEL_MENU==key)
  662. {
  663. if(newPara.SoundMode!=sutListBox.handle){
  664. newPara.SoundMode=sutListBox.handle;
  665. if(newPara.SoundMode==1)ModemSendAt("at+syscmd=start_pcm volume 7 7\r\n");
  666. else ModemSendAt("at+syscmd=start_pcm volume 7 5\r\n");
  667. ModifyConfigureFile(1);
  668. }
  669. UI_Stack.OK_back=1;
  670. UISetNextStatus(UIS_MENU_SYS_SET);
  671. }
  672. else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
  673. }
  674. //对讲版本空中升级API
  675. int getNewVersion;
  676. unsigned char fotaPocStatus;
  677. unsigned int fotaTick;
  678. void SetUpIntercomVerShow(int update)
  679. {
  680. char info[40];
  681. if(update){
  682. GuiClearAll();
  683. ShowCaption("升级对讲版本",1);//
  684. //GuiDrawHLine(0,159,20,1);
  685. FunShowMsg("正在检测版本");
  686. GuiDrawHLine(0,159,110,1);
  687. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]升级 [EXIT]退出",0x01,0);
  688. getNewVersion=-1;
  689. fotaPocStatus=0;
  690. ModemSendAt("AT+FOTA?\r\n");//对应用在模块接收消息中添加获取版本代码
  691. uTimerStart(&fotaTick,400);//200
  692. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]确定 [EXIT]退出",0x01,0);
  693. }
  694. switch(fotaPocStatus){
  695. case 0://获取版本信息
  696. if(uTimerExpired(&fotaTick)){
  697. if(getNewVersion ==0){//没有更新版本
  698. fotaPocStatus=1;
  699. FunShowMsg("没有可更新版本");
  700. uTimerStart(&fotaTick,150);
  701. }else if(getNewVersion>0){//有可更新版本
  702. //询问是否更新
  703. sprintf(info, "更新到V%d ?",getNewVersion);
  704. FunShowMsg(info);
  705. fotaPocStatus=2;
  706. }else{//超时未检测到查询版本响应
  707. fotaPocStatus=1;
  708. FunShowMsg("检测超时");
  709. uTimerStart(&fotaTick,150);
  710. }
  711. }
  712. break;
  713. case 1:
  714. if(uTimerExpired(&fotaTick)){//退出显示信息完毕
  715. UISetNextStatus(UIS_STANDBY);
  716. }
  717. break;
  718. }
  719. }
  720. void SetUpIntercomVerResponse(void)
  721. {
  722. switch(fotaPocStatus){
  723. case 2://等待用户确定
  724. if(KEY_PANEL_MENU==g_ulKeyValue){
  725. //确定
  726. fotaPocStatus=3;
  727. ModemSendAt("AT+FOTA=1\r\n");
  728. }else if(KEY_PANEL_EXIT==g_ulKeyValue){
  729. UISetNextStatus(UIS_MENU_SYS_SET);
  730. }
  731. break;
  732. }
  733. }
  734. void FotaStatusProcess(char *pMsg)
  735. {
  736. char info[30];
  737. switch(pMsg[0]){
  738. case '1'://1,0 1,19070702 表示查询POC版本响应
  739. getNewVersion=atoi(pMsg+2);//获取版本结果
  740. break;
  741. case '2'://表示开始执行FOTA升级操作
  742. FunShowMsg("正在升级...");
  743. break;
  744. case '3'://表示获取文件成功,正在安装
  745. FunShowMsg("正在重启...");
  746. break;
  747. case '4'://表示安装完成,正在重启模块
  748. FunShowMsg("正在重启...");
  749. sutPocStatus.modemRstFlag=1;
  750. fotaPocStatus=1;
  751. uTimerStart(&fotaTick,150);
  752. break;
  753. case '0'://退出FOTA升级,原因可能是因为网络不稳定或者文件获取失败
  754. FunShowMsg("失败退出");
  755. fotaPocStatus=1;
  756. uTimerStart(&fotaTick,150);
  757. break;
  758. }
  759. }
  760. void UIShowInformation(int update)
  761. {
  762. u16 x,y;
  763. char temp[11];
  764. char buf[50];
  765. static unsigned char flag=0;
  766. unsigned char LineSpace;//行宽
  767. LineSpace=18;
  768. if(update)
  769. {
  770. flag=0;
  771. GuiClearAll();
  772. ShowCaption("终端信息",1); //0
  773. //GuiDrawHLine(0,159,20,1);
  774. }
  775. x=2,y=STATUS_ITEM_HEIGH+5;//
  776. if(KEY_PANEL_UP==g_ulKeyValue ||
  777. KEY_PANEL_DOWN==g_ulKeyValue ||
  778. update)
  779. {
  780. g_ulKeyValue = 0;
  781. if(flag==0 || flag==2)
  782. {//显示PSN
  783. GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
  784. //终端型号
  785. snprintf(buf, sizeof(buf),"终端型号:%s",sutProductPara.ProductName);
  786. GuiShowStr(x,y,buf,0x01,0);
  787. y+=LineSpace;
  788. //终端编码
  789. snprintf(buf, sizeof(buf),"终端编码:%lu",sutProductPara.PSN);
  790. GuiShowStr(x,y,buf,0x01,0);
  791. y+=LineSpace;
  792. //应用版本号
  793. snprintf(buf, sizeof(buf),"应用版本:V%d",sutProductPara.ProductVersion);
  794. GuiShowStr(x,y,buf,0x01,0);
  795. y+=LineSpace;
  796. //内部版本号
  797. snprintf(buf, sizeof(buf),"内部版本:%d",CUSTOMER_CODE);
  798. GuiShowStr(x,y,buf,0x01,0);
  799. // y+=LineSpace;
  800. // //模块版本号
  801. // snprintf(buf, sizeof(buf),"模块版本:L%d",g_iModemVer);
  802. // GuiShowStr(x,y,buf,0x01,0);
  803. flag=1;
  804. }else if(flag==1)
  805. {
  806. GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
  807. //对讲版本号
  808. snprintf(buf, sizeof(buf),"对讲版本:V%d",g_iPocVer);
  809. GuiShowStr(x,y,buf,0x01,0);
  810. y+=LineSpace;
  811. //校验码
  812. temp[0]=0;
  813. GetCheckCodeByPsnMEID(temp,sutProductPara.PSN,DEV_HARDID);
  814. snprintf(buf, sizeof(buf),"校验码:%s",temp);
  815. GuiShowStr(x,y,buf,0x01,0);
  816. y+=LineSpace;
  817. //显示MCU主频率
  818. snprintf(buf, sizeof(buf),"MCU主频:%d.%d Mhz",USER_MAIN_SYSCLK/1000000,USER_MAIN_SYSCLK%1000000/100000);
  819. GuiShowStr(x,y,buf,0x01,0);
  820. // y+=LineSpace;
  821. // //
  822. // memset(buf,sizeof(buf),0);
  823. // snprintf(buf,sizeof(buf),"模块:%s",ModemVer);
  824. // GuiShowStr(x,y,buf,0x01,0);
  825. flag=2;
  826. }
  827. }else if(KEY_UP_DOWN == g_ulKeyValue)
  828. {
  829. g_ulKeyValue=0;
  830. if(flag==1 || flag==2)
  831. {//显示IP
  832. GuiClearRect(0,y,LCD_WIDTH-1,LCD_HEIGHT-1);
  833. //交换IP
  834. GuiShowStr(x,y,"交换服务器:",0x10,0);
  835. y+= LineSpace;
  836. snprintf(buf, sizeof(buf),"%s",showPIP);
  837. GuiShowStr(x,y,buf,0x01,0);
  838. y+=LineSpace;
  839. //GPS IP
  840. GuiShowStr(x,y,"北斗服务器:",0x10,0);
  841. y+= LineSpace;
  842. snprintf(buf, sizeof(buf),"%s",showGIP);
  843. GuiShowStr(x,y,buf,0x01,0);
  844. y+=LineSpace;
  845. snprintf(buf, sizeof(buf),"PORT:%d",newPara.gpsPort);
  846. GuiShowStr(x,y,buf,0x01,0);
  847. flag=0;
  848. }
  849. }
  850. }
  851. void UIShowPOCSerPass(int update){
  852. if(update){
  853. GuiClearAll();//clear
  854. ShowCaption("密码验证",1); //0
  855. //GuiDrawHLine(0,LCD_WIDTH,20,1);
  856. NumEditInit(&sutNumEdit,(LCD_WIDTH-6*8)/2,(LCD_HEIGHT-16)/2,"000000");
  857. NumEditShow(&sutNumEdit);
  858. GuiDrawHLine(0,LCD_WIDTH,104,1);
  859. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]加值 [下]移动",0x01,0);
  860. }
  861. }
  862. void POCSetSerPassResponse(void){
  863. unsigned long key;
  864. NumEditResponse(&sutNumEdit);
  865. if(KEY_PANEL_MENU==g_ulKeyValue){
  866. if(memcmp(sutNumEdit.buffer, menu_key, 6)==0) UISetNextStatus(UIS_SET_SERVER);
  867. else{
  868. ShowMessageBox("密码错误");
  869. uTimerHardDly(50);
  870. UI_Stack.OK_back=1;
  871. UISetNextStatus(UIS_MENU_SYS_SET);
  872. }
  873. }
  874. if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_MENU_SYS_SET);
  875. }
  876. void UIShowPOCSer(int update){
  877. int i;
  878. unsigned char tempSer;
  879. static const char *accIconFileName[]={
  880. "Ser.bmp",
  881. "Sersel.bmp",
  882. ""
  883. };
  884. static const char *NameAddr[]={
  885. "杭州服务器",
  886. "山东服务器",
  887. "IP分发服务器",
  888. "集群服务器",
  889. "自定义服务器",
  890. ""
  891. };
  892. static char *tempAddr[5];
  893. static char ItemFeatures[4+1];
  894. if(update){
  895. GuiClearAll();
  896. ShowCaption("服务器列表",2); //0
  897. //GuiDrawHLine(0,159,20,1);
  898. GuiDrawHLine(0,159,110,1);
  899. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]确定 [EXIT]退出",0x01,0);
  900. tempSer=newPara.serList.defaultuse;
  901. if(hgs_poc_type != POC_OWN){
  902. if(tempSer >= 2) tempSer -= 2;
  903. }
  904. for(i=0;i<=SER_US;i++){
  905. if(i==tempSer) ItemFeatures[i]=1;
  906. else ItemFeatures[i]=0;
  907. }
  908. //初始化ListBox控件
  909. if(hgs_poc_type == POC_OWN)
  910. ListBoxInit(&sutListBox,NameAddr,0,accIconFileName,ItemFeatures);
  911. else{
  912. for(i=0;i<2;i++) tempAddr[i]=(char *)NameAddr[i];
  913. tempAddr[i++]=(char *)NameAddr[4];
  914. tempAddr[i++]=(char *)NameAddr[5];
  915. ListBoxInit(&sutListBox,tempAddr,0,accIconFileName,ItemFeatures);
  916. }
  917. return;
  918. }
  919. }
  920. void POCSetSerResponse(void)
  921. {
  922. char buf[50],buf1[100];
  923. unsigned long key;
  924. char *pip,*domain=NULL;
  925. unsigned char tempSer;
  926. key=ListBoxResponse(&sutListBox);
  927. if(KEY_PANEL_EXIT==key) UISetNextStatus(UIS_MENU_SYS_SET);
  928. else if(KEY_PANEL_MENU==key){
  929. tempSer=sutListBox.handle;
  930. if(hgs_poc_type != POC_OWN){
  931. if(tempSer >= 2) tempSer += 2;//西安POC没有集群跟IP分发
  932. }
  933. if(tempSer != newPara.serList.defaultuse){
  934. newPara.serList.defaultuse=tempSer;
  935. ShowMessageBox("配置完成");
  936. //sys save
  937. ModifyConfigureFile(0);
  938. getGIPAddr();//更新GPS参数
  939. pip=getPIPAddr();
  940. domain=getDOMAINAddr();
  941. //西安的POC不支持单段设置,且必须同时配置id与ip,最好不配置domain
  942. if(hgs_poc_type==POC_OWN)snprintf(buf, sizeof(buf),"ip=%s;domain=%s;", pip, domain);
  943. else snprintf(buf, sizeof(buf),"id=%ld;ip=%s;", sutProductPara.PSN,pip);
  944. AscStrToHexStr(buf,buf1);
  945. ModemSendAt("AT+POC=010000");
  946. ModemSendAt(buf1);
  947. ModemSendAt("\r\n");
  948. IWDG_ReloadCounter();
  949. uTimerHardDly(20);
  950. //os_dly_wait(20);
  951. ModemSendAt("AT+POC=040000\r\n");
  952. //OsDelayTime(100);
  953. }
  954. UISetNextStatus(UIS_STANDBY );
  955. }
  956. }
  957. void SetAPNResponse(void)
  958. {
  959. unsigned long key;
  960. key=ListBoxResponse(&sutListBox);
  961. if(KEY_PANEL_MENU==key)
  962. {
  963. ShowMessageBox("即将重启更新...");
  964. if(newPara.apnList.defaultuse != sutListBox.handle){
  965. newPara.apnList.defaultuse = sutListBox.handle;
  966. //save sys
  967. ModifyConfigureFile(0);
  968. uTimerHardDly(200);
  969. modemPwrOffNow=1;
  970. }else UISetNextStatus(UIS_MENU_SYS_SET);
  971. }else if(KEY_OPTION==key) UISetNextStatus(UIS_APN_DETAIL);
  972. else if(KEY_PANEL_EXIT==key)UISetNextStatus(UIS_MENU_SYS_SET);
  973. }
  974. void SetApnDetailResponse(void)
  975. {
  976. if(KEY_PANEL_DOWN==g_ulKeyValue)
  977. {
  978. showIndex++;
  979. if(showIndex >= validApnNum) showIndex=0;
  980. ShowAPNMessage(showIndex);
  981. }else if(KEY_PANEL_UP==g_ulKeyValue)
  982. {
  983. if(showIndex==0) showIndex=validApnNum;
  984. if(showIndex > 0) showIndex--;
  985. ShowAPNMessage(showIndex);
  986. }
  987. else if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_SET_APN);
  988. }
  989. void SetPowerModeResponse()
  990. {
  991. unsigned long key;
  992. key=ListBoxResponse(&sutListBox);
  993. if(KEY_PANEL_MENU==key){
  994. if(sutListBox.handle != newPara.pwrMode){
  995. newPara.pwrMode=sutListBox.handle;
  996. ModifyConfigureFile(1);
  997. }
  998. UI_Stack.OK_back=1;
  999. UISetNextStatus(UIS_MENU_SYS_SET);
  1000. }else if(KEY_PANEL_EXIT==key){
  1001. UISetNextStatus(UIS_MENU_SYS_SET);
  1002. }
  1003. }
  1004. void UIShowSinePlay(int update)
  1005. {
  1006. u16 x,y;
  1007. char temp[11];
  1008. char buf[50];
  1009. if(update)
  1010. {
  1011. GuiClearAll();
  1012. ShowCaption("正弦播报测试",1); //0
  1013. //GuiDrawHLine(0,159,20,1);
  1014. }
  1015. GuiDrawHLine(0,159,110,1);
  1016. GuiShowStr(0,SUBSCRIPT_LOCATION,"[OK]播放 [EXIT]退出",0x01,0);
  1017. }
  1018. void PlaySineResponse(void)
  1019. {
  1020. if(KEY_PANEL_MENU==g_ulKeyValue)
  1021. {
  1022. ModemSendAt("AT+SYSCMD=amix 'AUX_PCM_RX Audio Mixer MultiMedia1' 1\r\n");
  1023. uTimerHardDly(100);
  1024. ModemSendAt("AT+SYSCMD=aplay /data/sine.wav\r\n");
  1025. }else if(KEY_PANEL_EXIT==g_ulKeyValue) UISetNextStatus(UIS_MENU_SYS_SET);
  1026. }
  1027. //void SetNetShow(int update)
  1028. //{
  1029. // static unsigned short susCt=0;
  1030. // static const char *Netmode[NET_NUM+1]=
  1031. //{
  1032. // "AUTO",
  1033. // "2G",
  1034. // "3G",
  1035. // "4G",
  1036. // ""
  1037. //};
  1038. // //static
  1039. // char NetsFeatures[NET_NUM]={0};
  1040. // if(update){
  1041. // GuiClearAll();
  1042. // ShowCaption("网络设置",2);//
  1043. // NetsFeatures[newPara.netMode]=1;
  1044. // ListBoxInit(&sutListBox,0,0,accIconFileNameAPN,NetsFeatures);
  1045. // //----------------------------
  1046. // GuiDrawHLine(0,159,110,1);
  1047. // }
  1048. // if(susCt==0){
  1049. // GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  1050. // }else if(susCt==200){
  1051. // GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]保存 [EXIT]退出",0x01,0);
  1052. // }
  1053. // if(++susCt>=400)susCt=0;
  1054. //}
  1055. // void SetNetResponse(void)
  1056. //{
  1057. // unsigned long key;
  1058. // unsigned char buf[15];
  1059. // key=ListBoxResponse(&sutListBox);
  1060. // if(KEY_PANEL_MENU==key){
  1061. // if(sutListBox.handle != newPara.netMode){
  1062. // newPara.netMode=sutListBox.handle;
  1063. //// snprintf(buf,sizeof(buf),"AT+CTEC=%d,%d\r\n",netshowvalue,newPara.netMode);
  1064. //// ModemSendAt(buf);
  1065. // GetMododexWithCard();
  1066. // ModifyConfigureFile(1);
  1067. // }
  1068. // UI_Stack.OK_back=1;
  1069. // UISetNextStatus(UIS_MENU_SYS_SET);
  1070. // }else if(KEY_PANEL_EXIT==key){
  1071. // UISetNextStatus(UIS_MENU_SYS_SET);
  1072. // }
  1073. //}