UI.c 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197
  1. #include "includes.h"
  2. char showPIP[40];
  3. char showGIP[40];
  4. signed char netshowvalue=-1;
  5. signed char tempnetshowvalue=-1;
  6. SUT_UI_STATUS sutUIstatus;
  7. UI_STACK UI_Stack;
  8. SUT_LIST_BOX sutListBox;
  9. SUT_PALACE sutPalace;
  10. static void UserAssistAdd(void);
  11. static void UI_Loop(void);
  12. PT_THREAD (ptUITask(struct pt *pt)){
  13. static timer_t ptTimer;
  14. PT_BEGIN(pt);
  15. while(1){
  16. if(uTimerExpired(&bootMapCnt))UI_Loop();
  17. UI_Key();
  18. PTTimerStart(&pt_timerPool, &ptTimer, 1);//1
  19. PT_WAIT_UNTIL(pt, PTTimerIsExpired(&ptTimer));
  20. }
  21. PT_END(pt);
  22. }
  23. /******************************************************
  24. UISetNextStatus
  25. 设置下一个UI状态
  26. *******************************************************/
  27. void UISetNextStatus(unsigned char status)
  28. {
  29. sutUIstatus.LastStatus=sutUIstatus.NextStatus;
  30. sutUIstatus.NextStatus=status;
  31. }
  32. void UI_Init(void)
  33. {
  34. memset(&sutUIstatus,0,sizeof(SUT_UI_STATUS));
  35. UISetNextStatus(UIS_STANDBY);
  36. }
  37. void ShowSingle(int CSQ);
  38. static void ShowGPSICon(void);
  39. static void ShowBatttery(int bat);
  40. static void ShowTime(char update);
  41. static void Show_Net(unsigned int s_netshowvalue);
  42. /************************************************************************
  43. ShowStatusBar
  44. 显示状态栏
  45. *************************************************************************/
  46. void ShowStatusBar(char Update,char change)
  47. {
  48. static char batFirstShow=0;
  49. static uint8_t siHNS;
  50. static int siCSQ;
  51. static int siVbat;
  52. unsigned short usGps;
  53. static unsigned short susGps;
  54. static STATUE lastPPPStatus;
  55. static signed char s_netshowvalue=-1;
  56. static signed char LastSimSelect=-1;
  57. static signed char ItemShow=-1;
  58. static signed char LastthisYunYingShang=-1;
  59. static signed char lastcharge=1;
  60. if(ItemShow==-1){
  61. GuiFillRect(0,0,159,STATUS_BAR_HEIGH-1,COLOR_DEFAULT_BLUE);
  62. GuiFillRect(0,STATUS_BAR_HEIGH,159,STATUS_ITEM_HEIGH-1,COLOR_WARN_RED);
  63. ItemShow=1;
  64. }
  65. if(LastthisYunYingShang!=thisYunYingShang && sutUIstatus.Status==UIS_STANDBY){
  66. GuiFillRect(0,STATUS_BAR_HEIGH,159,STATUS_ITEM_HEIGH-1,COLOR_WARN_RED);
  67. switch(thisYunYingShang){
  68. case CHINA_TELECOM:
  69. ShowCaption("中国电信",STATUS_BAR_HEIGH);
  70. break;
  71. case CHINA_MOBILE:
  72. ShowCaption("中国移动",STATUS_BAR_HEIGH);
  73. break;
  74. case CHINA_UNICOM:
  75. ShowCaption("中国联通",STATUS_BAR_HEIGH);
  76. break;
  77. case CHINA_NONE:
  78. ShowCaption("公网集群对讲系统",STATUS_BAR_HEIGH);
  79. break;
  80. }
  81. LastthisYunYingShang=thisYunYingShang;
  82. }
  83. //2G-4G显示
  84. if(s_netshowvalue!=netshowvalue){
  85. s_netshowvalue=netshowvalue;
  86. Show_Net(s_netshowvalue);
  87. }
  88. //信号显示
  89. if(siCSQ!=g_iCSQ || lastPPPStatus != netPPP){
  90. lastPPPStatus=netPPP;
  91. siCSQ=g_iCSQ;
  92. ShowSingle(g_iCSQ);
  93. }
  94. //卡在位
  95. if(sutPocStatus.CardStatus&&SIMSelect!=LastSimSelect){
  96. if(SIMSelect==0)GuiShowBmp(20,3,"SIM1.bmp");
  97. else GuiShowBmp(20,3,"SIM2.bmp");
  98. LastSimSelect=SIMSelect;
  99. }
  100. if(batFirstShow < 100)
  101. {//开机大概前1秒显示50%电量,之后根据实际显示
  102. g_iVbat=360;
  103. batFirstShow++;
  104. }
  105. //电量显示
  106. if(siVbat!=g_iVbat || g_iVbat < WARN_PWR_LEVEL){
  107. siVbat=g_iVbat;
  108. ShowBatttery(g_iVbat);
  109. }
  110. //消息显示
  111. ShowMessageFlag(0);
  112. //GPS显示
  113. usGps=((unsigned short)sutGpsInfo.isGpsWork<<8) | ((unsigned short)sutGpsInfo.isGpsValid) | ((unsigned short)sutGpsInfo.isGpsAuthOk<<2);
  114. if(susGps!=usGps ){
  115. susGps =usGps;
  116. ShowGPSICon();
  117. }
  118. //时间显示
  119. ShowTime(Update);
  120. }
  121. static void ShowCallUserName(u16 x,u16 y);
  122. static void ShowGroupAndUserName(u16 x,u16 y,int update);
  123. static void UIShowGroupSel(int update);
  124. static void UIShowUserSel(int update);
  125. static void ReFlashItem(void);
  126. static void UIShowMenuMain(int update);
  127. SUT_MENU sutMenuMain;
  128. int siCt1=-1;
  129. void UIShowMainInterface(char StatusUpdate)
  130. {
  131. int Flag;//主界面状态:0--未登录 1--无人说话 2--本机说话 3--对方说话
  132. static int siLastFlag=-1;//上一个Flag状态值
  133. static int siCt=0;
  134. char info[20];
  135. static unsigned char lastLoginResult=0xff;
  136. static signed char danhu=-1;
  137. if(StatusUpdate){
  138. GuiClearAll();
  139. switch(thisYunYingShang){
  140. case CHINA_TELECOM:
  141. ShowCaption("中国电信",STATUS_BAR_HEIGH);
  142. break;
  143. case CHINA_MOBILE:
  144. ShowCaption("中国移动",STATUS_BAR_HEIGH);
  145. break;
  146. case CHINA_UNICOM:
  147. ShowCaption("中国联通",STATUS_BAR_HEIGH);
  148. break;
  149. case CHINA_NONE:
  150. ShowCaption("公网集群对讲系统",STATUS_BAR_HEIGH);
  151. break;
  152. }
  153. if(g_uslockflag==1){
  154. GuiShowBmp(72,110,"lock.bmp");
  155. }
  156. GuiShowStr(1,110,"菜单",0x01,0);
  157. danhu=sutPocStatus.danHunStatus;
  158. if(danhu==0) GuiClearArea(130,110,30,14);//GuiClearRect(120,110,160,14);//136
  159. else GuiShowStr(130,110,"挂断",0x01,0);
  160. siLastFlag=-1;
  161. siCt=0;
  162. return;
  163. }
  164. if(danhu!=sutPocStatus.danHunStatus)
  165. {
  166. danhu=sutPocStatus.danHunStatus;
  167. if(danhu==0) GuiClearArea(130,110,30,14);//GuiClearRect(120,110,160,14);//136
  168. else GuiShowStr(130,110,"挂断",0x01,0);
  169. }
  170. if(Ui_LockFlag==1){
  171. ShowMessageBox("请先解锁!");
  172. uTimerHardDly(50);
  173. // GuiClearRect(0,LCD_HEIGHT/2-20,159,LCD_HEIGHT/2+20);
  174. }
  175. //======以下持续调用,以便动态更新信息==========
  176. //----顶部显示状态栏-----------
  177. //ShowStatusBar(StatusUpdate);
  178. //-----登陆状态标志更新--------
  179. if(0==sutPocStatus.Logined){//未登录时,显示LOGO
  180. Flag=0;
  181. }else if(sutPocStatus.Speaker==0 && sutPocStatus.Mic==0){//对方未说话,本机未说话
  182. Flag=1;
  183. siCt1=0;
  184. }else if(sutPocStatus.Mic>0 ){//对方未说话,本机说话
  185. Flag=2;
  186. }else if(sutPocStatus.Speaker>0){//对方说话了
  187. Flag=3;
  188. // if(siCt1==0){
  189. // siCt1=1;
  190. // GuiClearRect(0,STATUS_ITEM_HEIGH,159,STATUS_ITEM_HEIGH+16);
  191. // }
  192. }
  193. //-------中间图片显示-------
  194. switch(Flag){
  195. case 0://未登录
  196. if(Flag!=siLastFlag||Ui_LockFlag){
  197. GuiClearRect(0,STATUS_ITEM_HEIGH,159,44+64);
  198. GuiShowBmp(0,44,"logo.bmp");
  199. }
  200. break;
  201. case 1://已登录,但无人说话
  202. if(Flag!=siLastFlag||Ui_LockFlag){
  203. GuiClearRect(0,STATUS_ITEM_HEIGH,159,STATUS_ITEM_HEIGH+8);
  204. GuiClearRect(31,STATUS_ITEM_HEIGH+20+20+8,159,STATUS_ITEM_HEIGH+20+20+8+20);
  205. GuiShowStr(31,STATUS_ITEM_HEIGH+20+20+8,"空闲",0x10,0);
  206. sutPocStatus.statusChaned = 1;
  207. }
  208. break;
  209. case 2://已登录,本机说话
  210. if(Flag!=siLastFlag||Ui_LockFlag){
  211. GuiClearRect(40,STATUS_ITEM_HEIGH+20+20+8,159,STATUS_ITEM_HEIGH+20+20+8+20);
  212. }
  213. GuiShowStr(31,STATUS_ITEM_HEIGH+20+20+8,"本机在讲话",0x10,0);
  214. break;
  215. case 3://已登录,对方说话
  216. if(Flag!=siLastFlag||Ui_LockFlag)
  217. {
  218. GuiClearRect(31,STATUS_ITEM_HEIGH+20+20+8,159,STATUS_ITEM_HEIGH+20+20+20+8);
  219. }
  220. //显示对方名字
  221. ShowCallUserName(31,STATUS_ITEM_HEIGH+20+20+8);
  222. break;
  223. }
  224. //------群组、用户显示--------
  225. if(Flag>0){//已登陆
  226. // if(siCt==0 || siCt==100 || siCt==200){//每秒刷一次,以便及时更新。刷太快也影响
  227. // if(Flag!=3)
  228. // {
  229. if((Flag!=siLastFlag&&(siLastFlag==0||siLastFlag==-1))||Ui_LockFlag)
  230. {
  231. ShowGroupAndUserName(0,STATUS_ITEM_HEIGH+8,1);//当前群组和用户名显示 18
  232. }else {
  233. ShowGroupAndUserName(0,STATUS_ITEM_HEIGH+8,0);//当前群组和用户名显示 18
  234. }
  235. // }
  236. //}
  237. }else{//未登陆
  238. memset(info, ' ',sizeof(info));
  239. memcpy(info, "正在登陆.", 9);
  240. if(0==siCt)
  241. {
  242. GuiShowStr(0,STATUS_ITEM_HEIGH,info,1,0);
  243. }
  244. else if(100==siCt)
  245. {
  246. info[9]='.';
  247. GuiShowStr(0,STATUS_ITEM_HEIGH,info,1,0);
  248. }
  249. else if(200==siCt)
  250. {
  251. info[9]='.';info[10]='.';
  252. GuiShowStr(0,STATUS_ITEM_HEIGH,info,1,0);
  253. }
  254. if(lastLoginResult != sutPocStatus.loginResult || siLastFlag==-1)
  255. {
  256. if(sutPocStatus.loginResult==1) snprintf(info, sizeof(info), "账号信息错误");
  257. else if(sutPocStatus.loginResult==2) snprintf(info, sizeof(info), "无网络连接 ");
  258. else if(sutPocStatus.loginResult==4) snprintf(info, sizeof(info), "请插卡 ");
  259. else if(sutPocStatus.loginResult==5&&lastLoginResult!=1) snprintf(info, sizeof(info), "无法连接");
  260. else if(sutPocStatus.loginResult==6) snprintf(info, sizeof(info), "没有服务");
  261. else {
  262. lastLoginResult=sutPocStatus.loginResult;
  263. goto NEXT_STEP;
  264. }
  265. lastLoginResult=sutPocStatus.loginResult;
  266. GuiShowStr(0,STATUS_ITEM_HEIGH+16,info,1,0);
  267. }
  268. }
  269. Ui_LockFlag=0;
  270. NEXT_STEP:
  271. //-------
  272. if(++siCt>=300)siCt=0;
  273. if(Flag!=siLastFlag){//状态变化 才更新 分页
  274. siLastFlag=Flag;
  275. siCt=0;
  276. }
  277. }
  278. /******************************************************
  279. UIShowMenuSysSetup
  280. 系统设置菜单
  281. *******************************************************/
  282. //SUT_MENU sutMenuSysSetup;
  283. void UIShowMenuSysSetup(int update)
  284. {
  285. static const char *apcMenuSysSetup[]={
  286. "1.LCD设置",
  287. "2.亮度调节",
  288. "3.网络设置",
  289. "4.提示音设置",
  290. "5.SIM选择",
  291. // "6.麦克风增益",
  292. "6.串口功能切换",
  293. "7.功耗模式设置",
  294. "8.服务器设置",
  295. "9.对讲版本升级",//此项放最后
  296. ""
  297. ////"6.场景模式",
  298. //"6.编码器设置",
  299. };
  300. static char *staticMenum[11];
  301. char i;
  302. char numb=0;
  303. while(*apcMenuSysSetup[numb++]);
  304. numb--;
  305. if(update){
  306. GuiClearAll();
  307. ShowCaption("系统设置",STATUS_BAR_HEIGH); //1
  308. if(hgs_poc_type != POC_OWN){
  309. for(i=0;i<6;i++) staticMenum[i]=(char *)apcMenuSysSetup[i];
  310. staticMenum[i]=(char *)apcMenuSysSetup[numb];
  311. MenuInit(&sutMenuSysSetup,staticMenum);
  312. }else MenuInit(&sutMenuSysSetup,apcMenuSysSetup);
  313. GuiShowStr(1,114,"确定",0x01,0);
  314. GuiShowStr(125,114,"返回",0x01,0);
  315. GuiDrawHLine(0,159,110,1);
  316. return;
  317. }
  318. }
  319. /******************************************************
  320. UI_Loop
  321. UI循环调用,需要在MainTask的主循环中持续调用,及时处理状态发生变化时的UI显示
  322. 此处按下OK键显示里面内容
  323. *******************************************************/
  324. void UI_Loop(void)
  325. {
  326. char StatusUpdate=0;
  327. if(sutUIstatus.Status!=sutUIstatus.NextStatus||sutUIstatus.ItemRefresh){//状态发生变更
  328. sutUIstatus.LastStatus=sutUIstatus.Status;
  329. sutUIstatus.Status=sutUIstatus.NextStatus;
  330. StatusUpdate=1;
  331. }
  332. ShowStatusBar(1,StatusUpdate);//顶部状态栏
  333. switch(sutUIstatus.Status){
  334. case UIS_STANDBY:
  335. Init_stack(&UI_Stack);//UI 返回栈
  336. UIShowMainInterface(StatusUpdate);
  337. break;
  338. case UIS_MENU_MAIN:
  339. UIShowMenuMain(StatusUpdate);
  340. break;
  341. case UIS_MENU_USER_SEL:
  342. UIShowUserSel(StatusUpdate);
  343. break;
  344. case UIS_MENU_GROUP_SEL:
  345. UIShowGroupSel(StatusUpdate);
  346. break;
  347. case UIS_MAIL_BOX:
  348. UIShowMailBox(StatusUpdate);
  349. break;
  350. case UIS_MENU_SYS_SET:
  351. UIShowMenuSysSetup(StatusUpdate);
  352. break;
  353. case UIS_MENU_INFO:
  354. UIShowInformation(StatusUpdate);
  355. break;
  356. case UIS_MESSAGE_OPTION:
  357. MessageOptionShow(StatusUpdate);
  358. break;
  359. case UIS_MESSAGE_READ:
  360. MessageReadShow(StatusUpdate);
  361. break;
  362. case UIS_CALL_TO_PHONE:
  363. CallToPhoneNum(StatusUpdate);
  364. break;
  365. case UIS_MESSAGE_DELE:
  366. MessageDeletShow(StatusUpdate);
  367. break;
  368. case UIS_MESSAGE_FORMAT:
  369. MessageFormatShow(StatusUpdate);
  370. break;
  371. case UIS_SET_APN:
  372. SetAPNShow(StatusUpdate);
  373. break;
  374. case UIS_APN_DETAIL:
  375. SetApnDetailShow(StatusUpdate);
  376. break;
  377. case UIS_SET_GPS:
  378. SetGPSShow(StatusUpdate);
  379. break;
  380. case UIS_SET_LCD:
  381. SetLCDShow(StatusUpdate);
  382. break;
  383. case UIS_SET_LCDBRIGHT:
  384. SetLcdBrightShow(StatusUpdate);
  385. break;
  386. ////////////////////////////
  387. case UIS_SET_NET:
  388. SetNetShow(StatusUpdate);
  389. break;
  390. ///////////////////////////
  391. case UIS_SET_SERVER_PASS:
  392. UIShowPOCSerPass(StatusUpdate);
  393. break;
  394. case UIS_SET_SERVER:
  395. UIShowPOCSer(StatusUpdate);
  396. break;
  397. case UIS_SET_CODETYPE:
  398. SetCodeTypeShow(StatusUpdate);
  399. break;
  400. case UIS_SET_KEYSound:
  401. SetKeySoundShow(StatusUpdate);
  402. break;
  403. case UIS_SET_SOUNDMODE:
  404. SetSoundModeShow(StatusUpdate);
  405. break;
  406. case UIS_SET_PWRMODE:
  407. SetPowerModeShow(StatusUpdate);
  408. break;
  409. case UIS_SET_POC_FOTA:
  410. SetUpIntercomVerShow(StatusUpdate);
  411. break;
  412. case UIS_SET_USBTTL:
  413. SetUSBorTTLShow(StatusUpdate);
  414. break;
  415. case UIS_SET_SIMCARD:
  416. SetCardShow(StatusUpdate);
  417. break;
  418. case UIS_SET_MICLV:
  419. SetMicLvSelectShow(StatusUpdate);
  420. break;
  421. case UIS_POWEROFF_WAIT:
  422. PoweroffWaitShow(StatusUpdate);
  423. break;
  424. }
  425. }
  426. SUT_MENU sutMenuMain;
  427. static void UserSelResponse();
  428. static void GroupSelResponse();
  429. void UI_Key()
  430. {
  431. int key;
  432. char buf[30];
  433. if(!isKeyPress()) return;
  434. if(g_ucTMMode!=0) return;
  435. switch(sutUIstatus.Status){
  436. case UIS_STANDBY://----待机界面---
  437. switch(g_ulKeyValue){
  438. case KEY_PANEL_MENU:
  439. if(g_uslockflag==1) return;
  440. UISetNextStatus(UIS_MENU_MAIN);
  441. break;
  442. case KEY_PANEL_EXIT:
  443. if(g_uslockflag==1)return;
  444. if(sutPocStatus.danHunStatus==1) {
  445. if(hgs_poc_type==POC_OWN)ModemSendAt("AT+POC=500000\r\n");
  446. else {
  447. snprintf(buf, sizeof(buf),"AT+POC=entergroup,%d\r\n",sutPocStatus.LocalGroup.ID);
  448. ModemSendAt(buf);
  449. }
  450. }
  451. break;
  452. }
  453. break;
  454. case UIS_MENU_MAIN://----主菜单----
  455. key=PalaceResponse(&sutPalace);
  456. if(KEY_PANEL_MENU==g_ulKeyValue){
  457. switch(sutPalace.Index){
  458. case 0://群组选择
  459. UISetNextStatus(UIS_MENU_GROUP_SEL);
  460. break;
  461. case 1://成员选择
  462. UISetNextStatus(UIS_MENU_USER_SEL);
  463. break;
  464. case 2://信箱查阅
  465. UISetNextStatus(UIS_MAIL_BOX);
  466. break;
  467. case 3://系统设置
  468. UISetNextStatus(UIS_MENU_SYS_SET);
  469. break;
  470. case 4: //GPS设置
  471. UISetNextStatus(UIS_SET_GPS);
  472. break;
  473. case 5://终端信息
  474. UISetNextStatus(UIS_MENU_INFO);
  475. break;
  476. }
  477. PushUiStack(&UI_Stack,sutPalace.Index);//
  478. }
  479. else if(KEY_PANEL_EXIT==g_ulKeyValue){
  480. UISetNextStatus(UIS_STANDBY);
  481. }
  482. break;
  483. case UIS_MENU_GROUP_SEL://-----群组选择-----
  484. GroupSelResponse();
  485. break;
  486. case UIS_MENU_USER_SEL://-----成员选择-----
  487. UserSelResponse();
  488. break;
  489. case UIS_MAIL_BOX://-----短信查阅-----
  490. MessageResponse();
  491. break;
  492. case UIS_MENU_SYS_SET://-----系统设置-----
  493. SetSYSResponse(); //名字没取好,实际上是系统
  494. break;
  495. case UIS_MENU_INFO://-----终端信息-----
  496. if(KEY_PANEL_EXIT==g_ulKeyValue){
  497. UISetNextStatus(sutUIstatus.LastStatus);//UIS_STANDBY
  498. }
  499. //else if(KEY_PANEL_MENU==g_ulKeyValue)UISetNextStatus(UIS_MENU_MAIN);
  500. break;
  501. case UIS_MESSAGE_OPTION:
  502. MessageOptionResponse();
  503. break;
  504. case UIS_MESSAGE_READ:
  505. MessageReadResponse();
  506. break;
  507. case UIS_MESSAGE_FORMAT:
  508. MessageFormatResponse();
  509. break;
  510. case UIS_MESSAGE_DELE:
  511. MessageDeletResponse();
  512. break;
  513. case UIS_SET_APN: //-----系统设置-------
  514. SetAPNResponse();
  515. break;
  516. case UIS_APN_DETAIL:
  517. SetApnDetailResponse();
  518. break;
  519. case UIS_SET_GPS:
  520. SetGPSResponse();
  521. break;
  522. case UIS_SET_LCD:
  523. SetLCDResponse();
  524. break;
  525. case UIS_SET_LCDBRIGHT:
  526. SetLcdBrightResponse();
  527. break;
  528. ////////////////////////////////////
  529. case UIS_SET_NET:
  530. SetNetResponse();
  531. break;
  532. //////////////////////////////////
  533. case UIS_SET_SERVER_PASS:
  534. POCSetSerPassResponse();
  535. break;
  536. case UIS_SET_SERVER:
  537. POCSetSerResponse();
  538. break;
  539. case UIS_SET_CODETYPE:
  540. SetCodeTypeResponse();
  541. break;
  542. case UIS_SET_KEYSound:
  543. SetKeysoundResponse();
  544. break;
  545. case UIS_SET_SOUNDMODE:
  546. SetSoundModeResponse();
  547. break;
  548. case UIS_SET_PWRMODE:
  549. SetPowerModeResponse();
  550. break;
  551. case UIS_SET_POC_FOTA:
  552. SetUpIntercomVerResponse();
  553. //SetPocFotaResponse();
  554. break;
  555. case UIS_SET_USBTTL:
  556. SetUSBorTTLResponse();
  557. break;
  558. case UIS_SET_SIMCARD:
  559. SetCardResponse();
  560. break;
  561. case UIS_SET_MICLV:
  562. SetMicLvSelectResponse();
  563. break;
  564. case UIS_POWEROFF_WAIT:
  565. PoweroffWaitResponse();
  566. break;
  567. default:
  568. break;
  569. }
  570. }
  571. /***********************************
  572. 显示信号状态
  573. **********************************/
  574. void ShowSingle(int CSQ)
  575. {
  576. if(netPPP == OPEN) GuiShowBmp(0,0+2,"SingleOK.bmp");
  577. else GuiShowBmp(0,0+2,"Single.bmp");
  578. //11 3格
  579. if(CSQ<1 || CSQ==99){
  580. GuiClearRect(7,3,18,11);
  581. }else if(CSQ<8){
  582. GuiDrawVLine(9,10,7,2,COLOR_WHITE_BACK);
  583. GuiClearRect(9,3,18,11);//21
  584. }else if(CSQ<16){
  585. GuiDrawVLine(9,10,7,2,COLOR_WHITE_BACK);
  586. GuiDrawVLine(7,10,10,2,COLOR_WHITE_BACK);
  587. GuiClearRect(13,3,18,11);
  588. }else if(CSQ<22){
  589. GuiDrawVLine(9,10,7,2,COLOR_WHITE_BACK);
  590. GuiDrawVLine(7,10,10,2,COLOR_WHITE_BACK);
  591. GuiDrawVLine(5,10,13,2,COLOR_WHITE_BACK);
  592. GuiClearRect(16,3,18,11);
  593. }else{
  594. GuiDrawVLine(9,10,7,2,COLOR_WHITE_BACK);
  595. GuiDrawVLine(7,10,10,2,COLOR_WHITE_BACK);
  596. GuiDrawVLine(5,10,13,2,COLOR_WHITE_BACK);
  597. GuiDrawVLine(3,10,16,2,COLOR_WHITE_BACK);//COLOR_DEFAULT_BLUE
  598. }
  599. }
  600. static void ShowGPSICon(void)
  601. {
  602. char x=47;
  603. GuiClearRect(x,0,x+20,11);
  604. if(0== sutGpsInfo.isGpsWork) GuiClearRect(x,0,x+20,11);//未工作或未检测到
  605. else
  606. {
  607. //GPS已工作
  608. if(0 == sutGpsInfo.isGpsValid)
  609. {//未定位
  610. if(sutGpsInfo.isGpsAuthOk==0)//未鉴权
  611. {
  612. GuiShowBmp(x,0,"GPS1.bmp");
  613. }else//已鉴权
  614. {
  615. GuiShowBmp(x,0,"GPSA.bmp");//已鉴权
  616. }
  617. }else
  618. {//已定位
  619. if(sutGpsInfo.isGpsAuthOk==0)//未鉴权
  620. {
  621. GuiShowBmp(x,0,"GPS1.bmp");
  622. }else//已鉴权
  623. {
  624. GuiShowBmp(x,0,"GPSA.bmp");//已鉴权
  625. }
  626. GuiShowBmp(x+10,0,"GPS2.bmp");//定位辐射放最后//2
  627. }
  628. }
  629. }
  630. static void ShowBatttery(int bat)
  631. {
  632. static unsigned int flashCnt=0;
  633. static unsigned char flag=0;
  634. int x=128;
  635. if(bat<WARN_PWR_LEVEL){//请充电
  636. if(uTimerExpired(&flashCnt)==0) return;
  637. uTimerStart(&flashCnt, 80);
  638. if(flag==0)
  639. {
  640. GuiShowBmp(x,1,"VBAT1.bmp");
  641. flag=1;
  642. }else{
  643. flag=0;
  644. GuiClearRect(x,0,x+21,1+12);
  645. }
  646. //GuiDrawVLine(5,12,64+x,2,COLOR_WARN_RED);
  647. }
  648. else if(bat<355){//340<x<=355 1格
  649. GuiShowBmp(x,1,"VBAT1.bmp");//3
  650. GuiDrawVLine(3,8,x+16,3,COLOR_WHITE_BACK);
  651. }
  652. else if(bat<375){//355<x<=375 2格
  653. GuiShowBmp(x,1,"VBAT1.bmp");
  654. GuiDrawVLine(3,8,x+12,3,COLOR_WHITE_BACK);
  655. GuiDrawVLine(3,8,x+16,3,COLOR_WHITE_BACK);//5.12
  656. }
  657. else if(bat<400){//375<x<=400 3格
  658. GuiShowBmp(x,1,"VBAT1.bmp");
  659. GuiDrawVLine(3,8,x+8,3,COLOR_WHITE_BACK);
  660. GuiDrawVLine(3,8,x+12,3,COLOR_WHITE_BACK);
  661. GuiDrawVLine(3,8,x+16,3,COLOR_WHITE_BACK);//5.12
  662. }
  663. else{//>=400 4格
  664. GuiShowBmp(x,1,"VBAT1.bmp");
  665. GuiDrawVLine(3,8,x+4,3,COLOR_WHITE_BACK);
  666. GuiDrawVLine(3,8,x+8,3,COLOR_WHITE_BACK);
  667. GuiDrawVLine(3,8,x+12,3,COLOR_WHITE_BACK);
  668. GuiDrawVLine(3,8,x+16,3,COLOR_WHITE_BACK);//5.12
  669. }
  670. }
  671. static void ShowTime(char update)
  672. {
  673. static unsigned char lastS=0xff;
  674. USER_RTC_DEF tempTime;
  675. char buf[30];
  676. if(sutPocStatus.FirstLogined==0) return;
  677. RTC_UserGetTime(&tempTime);
  678. if(lastS != tempTime.second || update){
  679. lastS=tempTime.second;
  680. if(lastS % 2) snprintf(buf, sizeof(buf),"%02d:%02d",tempTime.hour,tempTime.min);
  681. else snprintf(buf, sizeof(buf),"%02d %02d",tempTime.hour,tempTime.min);
  682. GuiShowStr(65+3,0,buf,0x01,0);
  683. }
  684. }
  685. static void Show_Net(unsigned int s_netshowvalue)
  686. {
  687. if(sutPocStatus.loginResult==4)return; //未插卡不显示2G
  688. if(s_netshowvalue==2||s_netshowvalue==0){
  689. GuiShowStr(30,0,"2G",0x01,0);
  690. }else if(s_netshowvalue==7||s_netshowvalue==4){
  691. GuiShowStr(30,0,"4G",0x01,0);
  692. }else {
  693. GuiClearRect(30,0,46,11);
  694. }
  695. }
  696. void ShowCallUserName(u16 x,u16 y)
  697. {
  698. static char scName[POC_USER_NAME_LEN];
  699. char name[POC_USER_NAME_LEN];
  700. uint8_t thisName;
  701. static uint8_t siCt=0;
  702. if(siCt==0||siCt==20||siCt==40 || siCt==60||siCt==80||siCt==100)
  703. {
  704. if(strncmp(scName, sutPocStatus.Callname,sizeof(scName)) != 0 ||
  705. strncmp(scName, sutPocStatus.Callname,sizeof(sutPocStatus.Callname))!=0 ||
  706. sutPocStatus.statusChaned)
  707. {//当名字变更后,刷新
  708. //GuiClearRect(x+30,y,159,y+18);
  709. GuiClearArea(x+32,y,124,18);
  710. memcpy(scName,sutPocStatus.Callname,sizeof(sutPocStatus.Callname));
  711. sutPocStatus.statusChaned=0;
  712. // SlwTrace(INF,"------------------\r\n",1);
  713. // printf("-------------suct=%d\r\n",siCt);
  714. }
  715. StrIntercept(name,scName,sizeof(name));
  716. //GuiShowStrM20(x+30,y,sutPocStatus.Callname,0x11,BlueColorId,COLOR_WHITE);
  717. GuiShowStr(x,y,sutPocStatus.Callname,0x10,0);
  718. }
  719. if(++siCt>100) siCt=0;
  720. }
  721. //static void ShowCallUserName(u16 x,u16 y)
  722. //{
  723. // static char scName[POC_USER_NAME_LEN];
  724. // char name[20];
  725. // uint8_t thisName;
  726. //
  727. // static uint8_t suCt=0;
  728. //
  729. // if(!(suCt%50))
  730. // {
  731. // if(strncmp(scName, sutPocStatus.Callname,sizeof(scName)) != 0 ||
  732. // strncmp(scName, sutPocStatus.Callname,sizeof(sutPocStatus.Callname))!=0 ||
  733. // sutPocStatus.statusChaned)
  734. // {//当名字变更后,刷新
  735. // GuiClearRect(0,y,159,y+16);
  736. // memcpy(scName,sutPocStatus.Callname,sizeof(sutPocStatus.Callname));
  737. // sutPocStatus.statusChaned=0;
  738. // }
  739. // StrIntercept(name,scName,sizeof(name));
  740. // GuiShowStr(x,y,sutPocStatus.Callname,0x10,0);
  741. //
  742. // //GuiShowStr(x,y,name,0x10,0);
  743. // }
  744. // if(++suCt>=200)
  745. // suCt=0;
  746. //}
  747. /******************************************************
  748. 在同一个位置交替显示本机用户名和本机当前群组名
  749. 参数:x,y 显示位置左上角的坐标
  750. update ==0 时根据内部静态群组名比较决定是否刷屏显示
  751. update !=0 时强制刷屏显示
  752. ******************************************************/
  753. static void ShowGroupAndUserName(u16 x,u16 y,int update)
  754. {
  755. static char scNameUser[POC_GROUP_NAME_LEN];
  756. static char scNameGroup[POC_GROUP_NAME_LEN];
  757. char name[POC_GROUP_NAME_LEN];
  758. u16 len;
  759. unsigned char danHuanBuffer[9]={0xB5,0xA5,0xBA,0xF4,0xC4,0xA3,0xCA,0xBD,0};
  760. char GroupShowUpdate=0;
  761. if(sutPocStatus.danHunStatus==0){
  762. if(0!=strcmp(sutPocStatus.LocalGroup.name,scNameGroup) || update!=0){
  763. memcpy(scNameGroup,sutPocStatus.LocalGroup.name,sizeof(scNameGroup));
  764. GroupShowUpdate=1;
  765. }
  766. }else{
  767. if(0!=strcmp((char *)danHuanBuffer,scNameGroup) || update!=0){
  768. memcpy(scNameGroup, danHuanBuffer,sizeof(danHuanBuffer));
  769. GroupShowUpdate=1;
  770. }
  771. }
  772. if(0!=strcmp(sutPocStatus.LocalUser.name,scNameUser) || update!=0){
  773. memcpy(scNameUser,sutPocStatus.LocalUser.name,sizeof(scNameUser));
  774. GroupShowUpdate=1;
  775. }
  776. if(GroupShowUpdate){
  777. GuiClearRect(x,y,160,y+20);//18
  778. GuiClearRect(x,y+20,160,y+20+20);//18
  779. if(sutPocStatus.danHunStatus==0){
  780. GuiShowStr(x,y+3,"群组:",0x01,0);
  781. }else GuiShowStr(x,y+3,"单呼:",0x01,0);
  782. GuiShowStr(x,y+20+3,"成员:",0x01,0);
  783. GuiShowStr(x,y+20+20+3,"话权:",0x01,0);
  784. StrIntercept(name,scNameGroup,sizeof(name));
  785. GuiShowStr(x+31,y,name,0x10,0);
  786. StrIntercept(name,scNameUser,sizeof(name));
  787. GuiShowStr(x+31,y+20,name,0x10,0);
  788. sutPocStatus.statusChaned=1;
  789. GroupShowUpdate=0;
  790. }
  791. }
  792. void ReFlashItem2(void)
  793. {
  794. static unsigned short susCt=0;
  795. static const char *accIconFileName[]={
  796. "Group1.bmp",
  797. "Group2.bmp",
  798. ""
  799. };
  800. int i;
  801. unsigned short timeout;
  802. static char NullGroup=0;
  803. static char *GroupsName[POC_ALL_GROUPS_NUM+1]; //5
  804. static char GroupFeatures[POC_ALL_GROUPS_NUM+1];//5
  805. char buf[10];
  806. //----------------------------
  807. for(i=0;i<=POC_ALL_GROUPS_NUM;i++){
  808. GroupsName[i]=&NullGroup;
  809. GroupFeatures[i]=0;
  810. }
  811. printf("name111====%d\r\n",sutPocStatus.ListFillIndex);
  812. for(i=0;i<sutPocStatus.ListFillIndex;i++)
  813. {
  814. GroupFeatures[i]=1;
  815. if(sutPocStatus.AllGroups[i].ID==sutPocStatus.LocalGroup.ID)GroupFeatures[i]=0;
  816. GroupsName[i]=sutPocStatus.AllGroups[i].name;
  817. printf("name====%s\r\n",GroupsName[i]);
  818. }
  819. if(sutPocStatus.ListCurOnlineNum==0)
  820. {
  821. GroupsName[0]="空";
  822. GroupFeatures[i]=0;
  823. }
  824. GuiShowStr(2,STATUS_BAR_HEIGH,"群组选择",0x01,0);
  825. snprintf(buf,sizeof(buf),"%03d/%03d",sutPocStatus.ListCurOnlineNum,sutPocStatus.handleIndex*5+1);
  826. GuiShowStr(100,STATUS_BAR_HEIGH,buf,0x01,0);
  827. //初始化ListBox控件
  828. ListBoxInit(&sutListBox,GroupsName,0,accIconFileName,GroupFeatures);
  829. }
  830. /******************************************************
  831. UIShowGroupSel
  832. 群组选择
  833. *******************************************************/
  834. static void UIShowGroupSel(int update)
  835. {
  836. static char machine;
  837. static unsigned int timer;
  838. static unsigned short susCt=0;
  839. unsigned short timeout;
  840. char temp;
  841. if(update){
  842. machine=0;
  843. susCt=0;
  844. }
  845. switch(machine){
  846. case 0:
  847. if(sutPocStatus.Logined == 0){//not login
  848. ShowMessageBox(" 请先登录... ");
  849. uTimerStart(&timer, 50);
  850. machine=1;
  851. }else{
  852. UiassistStart(0);
  853. machine=2;
  854. }
  855. break;
  856. case 1:
  857. if(uTimerExpired(&timer)){
  858. UISetNextStatus(UIS_STANDBY);
  859. }
  860. break;
  861. case 2:
  862. temp=getAssistResult();
  863. if(temp){//获取完成
  864. printf("temp===%d\r\n",temp);
  865. GuiClearAll();
  866. ReFlashItem2();
  867. GuiDrawHLine(0,159,110,1);
  868. machine=3;
  869. }
  870. break;
  871. }
  872. if(machine != 3) return;
  873. //按键提示
  874. if(susCt==0){
  875. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  876. }else if(susCt==200){
  877. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]确认 [EXIT]退出",0x01,0);
  878. }
  879. if(++susCt>=400)susCt=0;
  880. UserAssistAdd();
  881. }
  882. static void ReFlashItem(void)
  883. {
  884. //char buf[100];
  885. static const char *accIconFileName[]={
  886. "people1.bmp",
  887. "people2.bmp",
  888. ""
  889. };
  890. int i;
  891. static char NullUser=0;
  892. static char *UsersName[POC_ALL_USERS_NUM+1]; //5
  893. static char UserFeatures[POC_ALL_USERS_NUM+1];//5
  894. char buf[10];
  895. //----------------------------
  896. for(i=0;i<=POC_ALL_USERS_NUM;i++){
  897. UsersName[i]=&NullUser;
  898. UserFeatures[i]=0;
  899. }
  900. for(i=0;i<sutPocStatus.ListFillIndex;i++)
  901. {
  902. UserFeatures[i]=1;
  903. //UserFeatures[i]=sutPocStatus.AllUsers[i].status-1;
  904. if(sutPocStatus.AllUsers[i].ID==sutPocStatus.LocalGroup.ID)UserFeatures[i]=0;
  905. UsersName[i]=sutPocStatus.AllUsers[i].name;
  906. }
  907. if(sutPocStatus.ListCurOnlineNum==0)
  908. {
  909. UsersName[0]="空";
  910. UserFeatures[i]=0;
  911. }
  912. GuiShowStr(2,STATUS_BAR_HEIGH,"成员选择",0x01,0);
  913. snprintf(buf,sizeof(buf),"%03d/%03d",sutPocStatus.ListCurOnlineNum,sutPocStatus.handleIndex*5+1);
  914. GuiShowStr(100,STATUS_BAR_HEIGH,buf,0x01,0);
  915. //初始化ListBox控件
  916. ListBoxInit(&sutListBox,UsersName,0,accIconFileName,UserFeatures);
  917. }
  918. /******************************************************
  919. UIShowUserSel
  920. 用户选择
  921. *******************************************************/
  922. static void UIShowUserSel(int update)
  923. {
  924. static char machine;
  925. static unsigned int timer;
  926. static unsigned short susCt=0;
  927. unsigned short timeout;
  928. if(update){
  929. machine=0;
  930. susCt=0;
  931. }
  932. switch(machine){
  933. case 0:
  934. if(sutPocStatus.Logined == 0){//not login
  935. ShowMessageBox(" 请先登录... ");
  936. uTimerStart(&timer, 50);
  937. machine=1;
  938. }else{
  939. UiassistStart(0);
  940. machine=2;
  941. }
  942. break;
  943. case 1:
  944. if(uTimerExpired(&timer)){
  945. UISetNextStatus(UIS_STANDBY);
  946. }
  947. break;
  948. case 2:
  949. if(getAssistResult()){//获取完成
  950. GuiClearAll();
  951. ReFlashItem();
  952. GuiDrawHLine(0,159,110,1);
  953. machine=3;
  954. }
  955. break;
  956. }
  957. if(machine != 3) return;
  958. //按键提示
  959. if(susCt==0){
  960. GuiShowStr(0,SUBSCRIPT_LOCATION,"[上]选择 [下]选择",0x01,0);
  961. }else if(susCt==200){
  962. GuiShowStr(0,SUBSCRIPT_LOCATION,"[M]单呼 [EXIT]退出",0x01,0);
  963. }
  964. if(++susCt>=400)susCt=0;
  965. UserAssistAdd();
  966. }
  967. /******************************************************
  968. UIShowMenuMain
  969. 显示主菜单
  970. *******************************************************/
  971. SUT_MENU sutMenuMain;
  972. void UIShowMenuMain(int update)
  973. {
  974. static const char *apcMenuMain[]={
  975. "群组选择",
  976. "成员选择",
  977. "文本消息",//"短信查阅",
  978. // "电话管理",
  979. "系统设置",
  980. "定位设置",
  981. "终端信息",
  982. ""
  983. };
  984. if(update){
  985. PalaceInit(&sutPalace,apcMenuMain,"Palace","主菜单");
  986. }
  987. }
  988. static char SelMachine=0; //上一次仍在处理标志
  989. static void UserAssistAdd(void){
  990. switch(SelMachine){
  991. case 1:
  992. if(getAssistResult()){
  993. if(sutUIstatus.Status==UIS_MENU_GROUP_SEL)ReFlashItem2();//指针会被重置到0位置
  994. else ReFlashItem();
  995. SelMachine=0;
  996. }
  997. break;
  998. case 2:
  999. if(getAssistResult()){
  1000. if(sutUIstatus.Status==UIS_MENU_GROUP_SEL)ReFlashItem2();//指针会被重置到0位置
  1001. else ReFlashItem();
  1002. SelMachine=0;
  1003. }
  1004. break;
  1005. }
  1006. }
  1007. static void UserSelResponse(){
  1008. char buf[50];
  1009. unsigned long key;
  1010. switch(SelMachine){
  1011. case 0:
  1012. if(sutListBox.handle==0 && KEY_PANEL_UP==g_ulKeyValue){
  1013. UiassistStart(1);
  1014. SelMachine=1;
  1015. }else if((sutListBox.handle+1) == sutListBox.itemnum && (KEY_PANEL_DOWN==g_ulKeyValue)){
  1016. UiassistStart(2);
  1017. SelMachine=2;
  1018. }
  1019. key=ListBoxResponse(&sutListBox);
  1020. if(KEY_PANEL_EXIT==g_ulKeyValue){
  1021. uiAssist.status=0;
  1022. if(UI_Stack.FastUiChange)UISetNextStatus(UIS_STANDBY);
  1023. else UISetNextStatus(UIS_MENU_MAIN);
  1024. }else if(KEY_PANEL_MENU==key){
  1025. //单呼成员 AT+POC=AT+POC=0A0000xxxxxxxx
  1026. ///////////////////////////////////////
  1027. if(0 == sutPocStatus.ListCurOnlineNum){
  1028. break;
  1029. }
  1030. ///////////////////////////////////////
  1031. UiassistEnd(1);
  1032. if(hgs_poc_type==POC_BND)ModemSendAt("AT+POC=autoleavetime,30\r\n");//单呼30秒无人通话自动解散
  1033. if(hgs_poc_type==POC_BND)snprintf(buf, sizeof(buf),"AT+POC=singlecall,%d\r\n",sutPocStatus.AllUsers[sutListBox.handle].ID);
  1034. else snprintf(buf, sizeof(buf),"AT+POC=0A0000%08x\r\n",sutPocStatus.AllUsers[sutListBox.handle].ID);
  1035. ModemSendAt(buf);
  1036. SlwTrace(INF, buf,1);
  1037. snprintf(buf, sizeof(buf),"呼叫:%s",sutPocStatus.AllUsers[sutListBox.handle].name);
  1038. SlwTrace(INF, buf,1);
  1039. //ShowMessageBox(buf);
  1040. //OsDelayTime(200);
  1041. UISetNextStatus(UIS_STANDBY);
  1042. SelMachine=0;
  1043. }
  1044. break;
  1045. }
  1046. }
  1047. static void GroupSelResponse(){
  1048. unsigned int key;
  1049. char buf[50];
  1050. int i;
  1051. switch(SelMachine){
  1052. case 0:
  1053. if(sutListBox.handle==0 && KEY_PANEL_UP==g_ulKeyValue){
  1054. UiassistStart(1);
  1055. SelMachine=1;
  1056. }else if((sutListBox.handle+1) == sutListBox.itemnum && (KEY_PANEL_DOWN==g_ulKeyValue)){
  1057. UiassistStart(2);
  1058. SelMachine=2;
  1059. }
  1060. key=ListBoxResponse(&sutListBox);
  1061. if(KEY_PANEL_EXIT==g_ulKeyValue){
  1062. uiAssist.status=0;
  1063. if(UI_Stack.FastUiChange)UISetNextStatus(UIS_STANDBY);
  1064. else UISetNextStatus(UIS_MENU_MAIN);
  1065. }else if(KEY_PANEL_MENU==key){
  1066. if(0 == sutPocStatus.ListCurOnlineNum){
  1067. break;
  1068. }
  1069. ///////////////////////////////////////
  1070. UiassistEnd(1);
  1071. if(hgs_poc_type==POC_BND)snprintf(buf, sizeof(buf),"AT+POC=entergroup,%d\r\n",sutPocStatus.AllGroups[sutListBox.handle].ID);
  1072. else snprintf(buf, sizeof(buf),"AT+POC=090000%08x\r\n",sutPocStatus.AllGroups[sutListBox.handle].ID);
  1073. ModemSendAt(buf);
  1074. SlwTrace(INF, buf,1);
  1075. snprintf(buf, sizeof(buf),"进入:%s",sutPocStatus.AllGroups[sutListBox.handle].name);
  1076. g_ucEnterGroupFlag=1;//进入播报
  1077. SlwTrace(INF, buf,1);
  1078. UISetNextStatus(UIS_STANDBY);
  1079. SelMachine=0;
  1080. }
  1081. break;
  1082. }
  1083. }
  1084. void speciallShow(char type)
  1085. {//他们的FileSys.c中的中文编码设置不到正常的,其它C的正常,所以要显示只能通过这个方式实现了
  1086. if(type==0) ShowMessageBox("正在设置");
  1087. else ShowMessageBox("设置完成");
  1088. }