123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- #include "interface.h"
- #include "bmp.h"
- #include "keyboard.h"
- #include "tt808.h"
- #include "usart.h"
- #include "key.h"
- /**
- * @breaf 本页定义变量
- */
-
- //结构体
- Menu_table menu;
- TipsFlag tipsflag;
- extern LockInfo lockinfo;
- //布尔
- bool refresh=false;
- bool ReturnInterface = false;
- //字符串
- //方法
- void logoDisplay(void);
- void lockWork(void);//界面1 一键施解封
- void ApplyPermission(void);//界面2 申请权限
- void PleaseWakeUp(void);//界面3 请唤醒
- void SecondMain(void);//次主界面
- void MACbindDisplay(void);//界面4
- /**
- * @breaf 界面跳转
- */
- void Jump_interface(void)
- {
- if(refresh)
- {
- OLED_Clear();
- refresh=false;
- }
- switch(menu.current)
- {
- case 0:
- {
- logoDisplay();//无任何绑定,显示Logo界面
- break;
- }
- case 1:
- {
- lockWork();
- break;
- }
- case 2:
- {
- ApplyPermission();
- break;
- }
- case 3:
- {
- PleaseWakeUp();
- break;
- }
- case 4:
- {
- MACbindDisplay();
- break;
- }
- case 5:
- {
- if(HAL_GetTick()-enterInterface_time > 15000)
- {
- ReturnInterface = true;
- }
- SecondMain();
- break;
- }
- case 6:
- {
- if(HAL_GetTick()-enterInterface_time > 3000)
- {
- ReturnInterface = true;
- }
- lockWork();
- break;
- }
- }
-
- }
- void MACbindDisplay(void)
- {
- if(menu.down<4)
- {
- OLED_ShowString(5,0,(unsigned char*)lockinfo.SNname[0],16,1);
- OLED_ShowString(5,15,(unsigned char*)lockinfo.SNname[1],16,1);
- OLED_ShowString(5,30,(unsigned char*)lockinfo.SNname[2],16,1);
- OLED_ShowString(5,45,(unsigned char*)lockinfo.SNname[3],16,1);
-
- if(menu.down==0)
- OLED_ShowString(5,0,(unsigned char*)lockinfo.SNname[0],16,0);
- if(menu.down==1)
- OLED_ShowString(5,15,(unsigned char*)lockinfo.SNname[1],16,0);
- if(menu.down==2)
- OLED_ShowString(5,30,(unsigned char*)lockinfo.SNname[2],16,0);
- if(menu.down==3)
- OLED_ShowString(5,45,(unsigned char*)lockinfo.SNname[3],16,0);
-
- OLED_ShowString(110,45,(unsigned char*)"1/2",12,1);
- }
- else
- {
- OLED_ShowString(5,0,(unsigned char*)lockinfo.SNname[4],16,1);
- OLED_ShowString(5,15,(unsigned char*)lockinfo.SNname[5],16,1);
- OLED_ShowString(5,30,(unsigned char*)lockinfo.SNname[6],16,1);
- OLED_ShowString(5,45,(unsigned char*)lockinfo.SNname[7],16,1);
-
- if(menu.down==4)
- OLED_ShowString(5,0,(unsigned char*)lockinfo.SNname[4],16,0);
- if(menu.down==5)
- OLED_ShowString(5,15,(unsigned char*)lockinfo.SNname[5],16,0);
- if(menu.down==6)
- OLED_ShowString(5,30,(unsigned char*)lockinfo.SNname[6],16,0);
- if(menu.down==7)
- OLED_ShowString(5,45,(unsigned char*)lockinfo.SNname[7],16,0);
- OLED_ShowString(110,45,(unsigned char*)"2/2",12,1);
- }
- }
- void logoDisplay(void)//界面1
- {
- if(!MgnssFlag)
- {
- OLED_ShowString(20,10,(unsigned char*)"System Staring...",12,0);
- }
- else
- {
- OLED_ShowPicture(0,0,128,64,BMP7,1);
- }
- }
- void lockWork(void) //界面2
- {
- char count[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
- sprintf(count, "%u", macsetptr->macCount);
- if(menu.current==6)
- {
-
- OLED_ShowChinese(20,48,26,12,1);//已
- OLED_ShowChinese(35,48,27,12,1);//绑
- OLED_ShowChinese(50,48,28,12,1);//定
- OLED_ShowChinese(65,48,29,12,1);//锁
- OLED_ShowString(80,48,(unsigned char*)"(",12,1);
- OLED_ShowString(89,48,(unsigned char*)count,12,1);
- OLED_ShowString(95,48,(unsigned char*)")",12,1);
- }
- else
- {
- OLED_ShowChinese(18,2,56,16,1);//一
- OLED_ShowChinese(38,2,57,16,1);//键
- OLED_ShowChinese(58,2,18,16,1);//解
- OLED_ShowChinese(78,2,19,16,1);//封
- OLED_ShowChinese(18,25,56,16,1);//一
- OLED_ShowChinese(38,25,57,16,1);//键
- OLED_ShowChinese(58,25,17,16,1);//施
- OLED_ShowChinese(78,25,19,16,1);//封
-
- OLED_ShowChinese(20,48,26,12,1);//已
- OLED_ShowChinese(35,48,27,12,1);//绑
- OLED_ShowChinese(50,48,28,12,1);//定
- OLED_ShowChinese(65,48,29,12,1);//锁
- OLED_ShowString(80,48,(unsigned char*)"(",12,1);
- OLED_ShowString(89,48,(unsigned char*)count,12,1);
- OLED_ShowString(95,48,(unsigned char*)")",12,1);
-
- //*选择
- if(menu.down==0)
- {
- OLED_ShowString(100,2,(unsigned char*)"<<-",12,0);
- }
- else if(menu.down==1)
- {
- OLED_ShowString(100,25,(unsigned char*)"<<-",12,0);
- }
- else if(menu.down==2)
- {
- OLED_ShowString(110,48,(unsigned char*)"<<-",12,0);
- }
- }
-
- }
- void ApplyPermission(void)//界面2 申请权限
- {
- char count[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
- sprintf(count, "%u", macsetptr->macCount);
- OLED_ShowChinese(5,20,58,16,1);//正
- OLED_ShowChinese(25,20,59,16,1);//在
- OLED_ShowChinese(45,20,60,16,1);//申
- OLED_ShowChinese(65,20,61,16,1);//请
- OLED_ShowChinese(85,20,62,16,1);//权
- OLED_ShowChinese(105,20,63,16,1);//限
-
- OLED_ShowString(10,48,(unsigned char*)">",12,1);
- OLED_ShowString(25,48,(unsigned char*)count,12,1);
-
- if(reAuth)
- {
- OLED_ShowString(60,48,(unsigned char*)"->>",12,1);
- OLED_ShowString(80,48,(unsigned char*)"Success",12,1);
-
- macsetptr->macWorked=0;
- macsetptr->macWorkedfail=0;
- macsetptr->openLockCount=0;
- macsetptr->closeLockCount=0;
- }
-
- }
- void PleaseWakeUp(void)//界面3 请唤醒
- {
- char workedCount[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
- sprintf(workedCount, "%u", macsetptr->macWorked);
-
- char workedFail[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
- // sprintf(workedFail, "%u", macsetptr->macWorkedfail);
-
- OLED_ShowChinese(5,5,64,16,1); //请
- OLED_ShowChinese(25,5,65,16,1); //唤
- OLED_ShowChinese(45,5,66,16,1); //醒
- OLED_ShowChinese(65,5,67,16,1); //蓝
- OLED_ShowChinese(85,5,68,16,1); //牙
- OLED_ShowChinese(105,5,69,16,1);//锁
-
-
- OLED_ShowChinese(25,30,26,12,1);//已
- OLED_ShowChinese(40,30,30,12,1);//操
- OLED_ShowChinese(55,30,31,12,1);//作
- OLED_ShowChinese(70,30,29,12,1);//锁
- OLED_ShowString(85,30,(unsigned char*)"(",12,1);
- OLED_ShowString(94,30,(unsigned char*)workedCount,12,1);
- OLED_ShowString(100,30,(unsigned char*)")",12,1);
-
-
- OLED_ShowChinese(25,50,19,12,1);//异
- OLED_ShowChinese(40,50,20,12,1);//常
- OLED_ShowChinese(55,50,4,12,1); //锁
- OLED_ShowChinese(70,50,32,12,1);//数
- OLED_ShowString(85,50,(unsigned char*)"(",12,1);
- OLED_ShowString(94,50,(unsigned char*)workedFail,12,1);
- OLED_ShowString(100,50,(unsigned char*)")",12,1);
-
-
-
- }
- void SecondMain(void)//次主界面
- {
- char openCount[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
- char closeCount[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
-
- //*所有锁已
- if(macsetptr->sta==BtUnlocking)
- {
- OLED_ShowChinese(85,5,18,16,1);//解
- macsetptr->openLockCount = macsetptr->macWorked;
- }
- else if(macsetptr->sta==LockSuccessClosed)
- {
- OLED_ShowChinese(85,5,17,16,1);//施
- macsetptr->closeLockCount = macsetptr->macWorked;
- }
-
- sprintf(openCount, "%u", macsetptr->openLockCount);
- sprintf(closeCount, "%u", macsetptr->closeLockCount);
- //*解封
- OLED_ShowChinese(25,30,11,12,1);//解
- OLED_ShowChinese(40,30,10,12,1);//封
- OLED_ShowChinese(55,30,29,12,1);//锁
- OLED_ShowChinese(70,30,32,12,1);//数
- OLED_ShowString(85,30,(unsigned char*)"(",12,1);
- OLED_ShowString(94,30,(unsigned char*)openCount,12,1);
- OLED_ShowString(100,30,(unsigned char*)")",12,1);
-
-
- //*施封
- OLED_ShowChinese(25,50,9,12,1); //施
- OLED_ShowChinese(40,50,10,12,1);//封
- OLED_ShowChinese(55,50,29,12,1);//锁
- OLED_ShowChinese(70,50,32,12,1);//数
- OLED_ShowString(85,50,(unsigned char*)"(",12,1);
- OLED_ShowString(94,50,(unsigned char*)closeCount,12,1);
- OLED_ShowString(100,50,(unsigned char*)")",12,1);
-
- OLED_ShowChinese(5,5,71,16,1);//所
- OLED_ShowChinese(25,5,72,16,1);//有
- OLED_ShowChinese(45,5,69,16,1);//锁
- OLED_ShowChinese(65,5,73,16,1);//已
- OLED_ShowChinese(105,5,19,16,1);//封
-
- }
|