#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界面 //lockWork(); //ApplyPermission(); //PleaseWakeUp(); //SecondMain(); break; } case 1: { lockWork(); break; } case 2: { ApplyPermission(); break; } case 3: { PleaseWakeUp(); break; } case 4: { MACbindDisplay(); break; } case 5: { SecondMain(); 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); 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个字符的空间 macsetptr->openLockCount = macsetptr->macWorked; sprintf(openCount, "%u", macsetptr->openLockCount); char closeCount[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间 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); //*所有锁已 if(macsetptr->sta==BtUnlocking) { OLED_ShowChinese(85,5,18,16,1);//解 } else if(macsetptr->sta==LockSuccessClosed) { OLED_ShowChinese(85,5,17,16,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);//封 }