interface.c 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. #include "interface.h"
  2. #include "bmp.h"
  3. #include "keyboard.h"
  4. #include "tt808.h"
  5. #include "usart.h"
  6. #include "key.h"
  7. /**
  8. * @breaf 本页定义变量
  9. */
  10. //结构体
  11. Menu_table menu;
  12. TipsFlag tipsflag;
  13. extern LockInfo lockinfo;
  14. //布尔
  15. bool refresh=false;
  16. bool ReturnInterface = false;
  17. //字符串
  18. //方法
  19. void logoDisplay(void);
  20. void lockWork(void);//界面1 一键施解封
  21. void ApplyPermission(void);//界面2 申请权限
  22. void PleaseWakeUp(void);//界面3 请唤醒
  23. void SecondMain(void);//次主界面
  24. void MACbindDisplay(void);//界面4
  25. /**
  26. * @breaf 界面跳转
  27. */
  28. void Jump_interface(void)
  29. {
  30. if(refresh)
  31. {
  32. OLED_Clear();
  33. refresh=false;
  34. }
  35. switch(menu.current)
  36. {
  37. case 0:
  38. {
  39. logoDisplay();//无任何绑定,显示Logo界面
  40. //lockWork();
  41. //ApplyPermission();
  42. //PleaseWakeUp();
  43. //SecondMain();
  44. break;
  45. }
  46. case 1:
  47. {
  48. lockWork();
  49. break;
  50. }
  51. case 2:
  52. {
  53. ApplyPermission();
  54. break;
  55. }
  56. case 3:
  57. {
  58. PleaseWakeUp();
  59. break;
  60. }
  61. case 4:
  62. {
  63. MACbindDisplay();
  64. break;
  65. }
  66. }
  67. }
  68. void MACbindDisplay(void)
  69. {
  70. if(menu.down<4)
  71. {
  72. OLED_ShowString(5,0,(unsigned char*)lockinfo.SN1name,16,1);
  73. OLED_ShowString(5,15,(unsigned char*)lockinfo.SN2name,16,1);
  74. OLED_ShowString(5,30,(unsigned char*)lockinfo.SN3name,16,1);
  75. OLED_ShowString(5,45,(unsigned char*)lockinfo.SN4name,16,1);
  76. if(menu.down==0)
  77. OLED_ShowString(5,0,(unsigned char*)lockinfo.SN1name,16,0);
  78. if(menu.down==1)
  79. OLED_ShowString(5,15,(unsigned char*)lockinfo.SN2name,16,0);
  80. if(menu.down==2)
  81. OLED_ShowString(5,30,(unsigned char*)lockinfo.SN3name,16,0);
  82. if(menu.down==3)
  83. OLED_ShowString(5,45,(unsigned char*)lockinfo.SN4name,16,0);
  84. OLED_ShowString(110,45,(unsigned char*)"1/2",12,1);
  85. }
  86. else
  87. {
  88. OLED_ShowString(5,0,(unsigned char*)lockinfo.SN5name,16,1);
  89. OLED_ShowString(5,15,(unsigned char*)lockinfo.SN6name,16,1);
  90. OLED_ShowString(5,30,(unsigned char*)lockinfo.SN7name,16,1);
  91. OLED_ShowString(5,45,(unsigned char*)lockinfo.SN8name,16,1);
  92. if(menu.down==4)
  93. OLED_ShowString(5,0,(unsigned char*)lockinfo.SN5name,16,0);
  94. if(menu.down==5)
  95. OLED_ShowString(5,15,(unsigned char*)lockinfo.SN6name,16,0);
  96. if(menu.down==6)
  97. OLED_ShowString(5,30,(unsigned char*)lockinfo.SN7name,16,0);
  98. if(menu.down==7)
  99. OLED_ShowString(5,45,(unsigned char*)lockinfo.SN8name,16,0);
  100. OLED_ShowString(110,45,(unsigned char*)"2/2",12,1);
  101. }
  102. }
  103. void logoDisplay(void)//界面1
  104. {
  105. if(!MgnssFlag)
  106. {
  107. OLED_ShowString(20,10,(unsigned char*)"System Staring...",12,0);
  108. }
  109. else
  110. {
  111. OLED_ShowPicture(0,0,128,64,BMP7,1);
  112. }
  113. }
  114. void lockWork(void) //界面2
  115. {
  116. char count[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
  117. sprintf(count, "%u", macsetptr->macCount);
  118. OLED_ShowChinese(18,2,56,16,1);//一
  119. OLED_ShowChinese(38,2,57,16,1);//键
  120. OLED_ShowChinese(58,2,18,16,1);//解
  121. OLED_ShowChinese(78,2,19,16,1);//封
  122. OLED_ShowChinese(18,25,56,16,1);//一
  123. OLED_ShowChinese(38,25,57,16,1);//键
  124. OLED_ShowChinese(58,25,17,16,1);//施
  125. OLED_ShowChinese(78,25,19,16,1);//封
  126. OLED_ShowChinese(25,48,26,12,1);//已
  127. OLED_ShowChinese(40,48,27,12,1);//绑
  128. OLED_ShowChinese(55,48,28,12,1);//定
  129. OLED_ShowChinese(70,48,29,12,1);//锁
  130. OLED_ShowString(85,48,(unsigned char*)"(",12,1);
  131. OLED_ShowString(94,48,(unsigned char*)count,12,1);
  132. OLED_ShowString(100,48,(unsigned char*)")",12,1);
  133. //*选择
  134. if(menu.down==0)
  135. {
  136. OLED_ShowString(100,2,(unsigned char*)"<<-",12,0);
  137. }
  138. else if(menu.down==1)
  139. {
  140. OLED_ShowString(100,25,(unsigned char*)"<<-",12,0);
  141. }
  142. else if(menu.down==2)
  143. {
  144. OLED_ShowString(110,48,(unsigned char*)"<<-",12,0);
  145. }
  146. }
  147. void ApplyPermission(void)//界面2 申请权限
  148. {
  149. char count[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
  150. sprintf(count, "%u", macsetptr->macCount);
  151. OLED_ShowChinese(5,20,58,16,1);//正
  152. OLED_ShowChinese(25,20,59,16,1);//在
  153. OLED_ShowChinese(45,20,60,16,1);//申
  154. OLED_ShowChinese(65,20,61,16,1);//请
  155. OLED_ShowChinese(85,20,62,16,1);//权
  156. OLED_ShowChinese(105,20,63,16,1);//限
  157. OLED_ShowString(10,48,(unsigned char*)">",12,1);
  158. OLED_ShowString(25,48,(unsigned char*)count,12,1);
  159. if(reAuth)
  160. {
  161. OLED_ShowString(60,48,(unsigned char*)"->>",12,1);
  162. OLED_ShowString(80,48,(unsigned char*)"Success",12,1);
  163. }
  164. }
  165. void PleaseWakeUp(void)//界面3 请唤醒
  166. {
  167. char workedCount[6]; // 数字1转换为字符串形式最多需要2个字符,再加上终止符'\0'共6个字符的空间
  168. sprintf(workedCount, "%u", macsetptr->macWorked);
  169. OLED_ShowChinese(5,20,64,16,1); //请
  170. OLED_ShowChinese(25,20,65,16,1); //唤
  171. OLED_ShowChinese(45,20,66,16,1); //醒
  172. OLED_ShowChinese(65,20,67,16,1); //蓝
  173. OLED_ShowChinese(85,20,68,16,1); //牙
  174. OLED_ShowChinese(105,20,69,16,1);//锁
  175. OLED_ShowChinese(25,48,26,12,1);//已
  176. OLED_ShowChinese(40,48,30,12,1);//操
  177. OLED_ShowChinese(55,48,31,12,1);//作
  178. OLED_ShowChinese(70,48,29,12,1);//锁
  179. OLED_ShowString(85,48,(unsigned char*)"(",12,1);
  180. OLED_ShowString(94,48,(unsigned char*)workedCount,12,1);
  181. OLED_ShowString(100,48,(unsigned char*)")",12,1);
  182. }
  183. void SecondMain(void)//次主界面
  184. {
  185. //*个数显示
  186. OLED_ShowString(90,25,(unsigned char*)":",16,1);
  187. //*解封
  188. // OLED_ShowChinese(8,25,18,16,1);//解
  189. // OLED_ShowChinese(28,25,19,16,1);//封
  190. // OLED_ShowChinese(48,25,69,16,1);//锁
  191. // OLED_ShowChinese(68,25,70,16,1);//数
  192. // OLED_ShowString(105,26,(unsigned char*)"8",16,1);
  193. //*施封
  194. // OLED_ShowChinese(8,25,17,16,1);//施
  195. // OLED_ShowChinese(28,25,19,16,1);//封
  196. // OLED_ShowChinese(48,25,69,16,1);//锁
  197. // OLED_ShowChinese(68,25,70,16,1);//数
  198. // OLED_ShowString(105,26,(unsigned char*)"8",16,1);
  199. //*所有锁已
  200. OLED_ShowChinese(5,25,71,16,1);//所
  201. OLED_ShowChinese(25,25,72,16,1);//有
  202. OLED_ShowChinese(45,25,69,16,1);//锁
  203. OLED_ShowChinese(65,25,73,16,1);//已
  204. OLED_ShowChinese(105,25,19,16,1);//封
  205. OLED_ShowChinese(85,25,18,16,1);//解
  206. // OLED_ShowChinese(85,25,17,16,1);//施
  207. }