key.c 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470
  1. #include "key.h"
  2. #include "usart.h"
  3. #include "interface.h"
  4. extern Menu_table menu;
  5. extern TipsFlag tipsflag;
  6. bool sent1_key = false;
  7. bool sent2_key = false;
  8. bool sent3_key = false;
  9. bool sent4_key = false;
  10. struct keys key[1]={0};
  11. char timeout[] = "+CONNECT TIMEOUT";
  12. uint16_t S1 = 0;
  13. uint16_t S2 = 0;
  14. uint16_t S3 = 0;
  15. uint16_t S4 = 0;
  16. uint8_t KEY_1_Scan(void)
  17. {
  18. static uint8_t key_state = 0;
  19. static uint8_t last_key_state = 0;
  20. static uint32_t debounce_time = 0;
  21. key_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3);
  22. if (key_state != last_key_state) // 检测按键状态变化
  23. {
  24. last_key_state = key_state;
  25. debounce_time = HAL_GetTick(); // 记录当前时间
  26. }
  27. else
  28. {
  29. if (HAL_GetTick() - debounce_time > 30) // 去抖时间
  30. {
  31. if (key_state == GPIO_PIN_RESET) // 按键按下
  32. {
  33. if(!sent1_key)
  34. {
  35. switch(menu.current)
  36. {
  37. case 0:
  38. {
  39. SET_MENU_STATUS(0,0,0,0);
  40. break;
  41. }
  42. case 1:
  43. {
  44. SET_MENU_STATUS(1,1,0,1);
  45. break;
  46. }
  47. case 2:
  48. {
  49. if(menu.up!=4)
  50. {
  51. menu.up+=1;
  52. menu.next-=1;
  53. }
  54. else if(menu.up==4)
  55. {
  56. menu.up=0;
  57. menu.next=4;
  58. }
  59. refresh=true;
  60. break;
  61. }
  62. case 3:
  63. {
  64. if(menu.up!=3)
  65. {
  66. menu.up+=1;
  67. menu.next-=1;
  68. }
  69. else if(menu.up==3)
  70. {
  71. menu.up=0;
  72. menu.next=3;
  73. }
  74. refresh=true;
  75. break;
  76. }
  77. case 4:
  78. case 5:
  79. case 6:
  80. case 7:
  81. {
  82. if(menu.up!=1)
  83. {
  84. menu.up+=1;
  85. menu.next-=1;
  86. }
  87. else if(menu.up==1)
  88. {
  89. menu.up=0;
  90. menu.next=1;
  91. }
  92. refresh=true;
  93. break;
  94. }
  95. case 8:
  96. case 9:
  97. case 0xa:
  98. case 0xb:
  99. case 0x0D:
  100. case 0xA1:
  101. {
  102. if(menu.up!=0xF)
  103. {
  104. menu.up+=1;
  105. menu.next-=1;
  106. }
  107. else if(menu.up==0xF)
  108. {
  109. menu.up=0;
  110. menu.next=0xF;
  111. }
  112. refresh=true;
  113. break;
  114. }
  115. }
  116. PRINT_MENU_STATUS("K1");
  117. sent1_key = true;
  118. }
  119. return 1;
  120. }
  121. else // 按键释放
  122. {
  123. sent1_key = false;
  124. return 0;
  125. }
  126. }
  127. }
  128. return 0;
  129. }
  130. uint8_t KEY_2_Scan(void)
  131. {
  132. static uint8_t key_state = 0;
  133. static uint8_t last_key_state = 0;
  134. static uint32_t debounce_time = 0;
  135. key_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4);
  136. if (key_state != last_key_state) // 检测按键状态变化
  137. {
  138. last_key_state = key_state;
  139. debounce_time = HAL_GetTick(); // 记录当前时间
  140. }
  141. else
  142. {
  143. if (HAL_GetTick() - debounce_time > 30) // 去抖时间大于50ms
  144. {
  145. if (key_state == GPIO_PIN_RESET) // 按键按下
  146. {
  147. if (!sent2_key)
  148. {
  149. switch (menu.current)
  150. {
  151. case 0:
  152. {
  153. SET_MENU_STATUS(0,0,0,0);
  154. break;
  155. }
  156. case 1:
  157. {
  158. SET_MENU_STATUS(1,0,1,1);
  159. break;
  160. }
  161. case 2:
  162. {
  163. if(menu.next!=4)
  164. {
  165. menu.up-=1;
  166. menu.next+=1;
  167. }
  168. else if(menu.next==4)
  169. {
  170. menu.up=4;
  171. menu.next=0;
  172. }
  173. refresh=true;
  174. break;
  175. }
  176. case 3:
  177. {
  178. if(menu.next!=3)
  179. {
  180. menu.up-=1;
  181. menu.next+=1;
  182. }
  183. else if(menu.next==3)
  184. {
  185. menu.up=3;
  186. menu.next=0;
  187. }
  188. refresh=true;
  189. break;
  190. }
  191. case 4:
  192. case 5:
  193. case 6:
  194. case 7:
  195. {
  196. if(menu.next!=1)
  197. {
  198. menu.up-=1;
  199. menu.next+=1;
  200. }
  201. else if(menu.next==1)
  202. {
  203. menu.up=1;
  204. menu.next=0;
  205. }
  206. refresh=true;
  207. break;
  208. }
  209. case 8:
  210. case 9:
  211. case 0xa:
  212. case 0xb:
  213. case 0x0D:
  214. case 0xA1:
  215. {
  216. if(menu.next!=0xF)
  217. {
  218. menu.up-=1;
  219. menu.next+=1;
  220. }
  221. else if(menu.next==0xF)
  222. {
  223. menu.up=0xF;
  224. menu.next=0;
  225. }
  226. refresh=true;
  227. break;
  228. }
  229. }
  230. PRINT_MENU_STATUS("K2");
  231. sent2_key = true;
  232. }
  233. return 1;
  234. }
  235. else // 按键释放
  236. {
  237. sent2_key = false;
  238. return 0;
  239. }
  240. }
  241. }
  242. return 0;
  243. }
  244. uint8_t KEY_3_Scan(void)
  245. {
  246. static uint8_t key_state = 0;
  247. static uint8_t last_key_state = 0;
  248. static uint32_t debounce_time = 0;
  249. key_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_5);
  250. if (key_state != last_key_state) // 检测按键状态变化
  251. {
  252. last_key_state = key_state;
  253. debounce_time = HAL_GetTick(); // 记录当前时间
  254. }
  255. else
  256. {
  257. if (HAL_GetTick() - debounce_time > 30) // 去抖时间大于50ms
  258. {
  259. if (key_state == GPIO_PIN_RESET) // 按键按下
  260. {
  261. if (!sent3_key) {
  262. switch (menu.current) {
  263. case 0://跳转到菜单界面
  264. {
  265. SET_MENU_STATUS(1,1,0,1);
  266. break;
  267. }
  268. case 1://跳转到L绑定界面
  269. {
  270. if(menu.up==1)
  271. {
  272. scanMac();
  273. SET_MENU_STATUS(2,4,0,2);
  274. }
  275. else
  276. {
  277. scanMac();
  278. SET_MENU_STATUS(3,3,0,2);
  279. }
  280. break;
  281. }
  282. case 2:
  283. {
  284. if(menu.up==0)
  285. {
  286. //清空SN
  287. menu.SN1name=NULL;
  288. menu.SN1=NULL;
  289. menu.SN1F=NULL;
  290. menu.SN2name=NULL;
  291. menu.SN2=NULL;
  292. menu.SN2F=NULL;
  293. menu.SN3name=NULL;
  294. menu.SN3=NULL;
  295. menu.SN3F=NULL;
  296. menu.SN4name=NULL;
  297. menu.SN4=NULL;
  298. menu.SN4F=NULL;
  299. menu.SN1D=NULL;
  300. menu.SN2D=NULL;
  301. menu.SN3D=NULL;
  302. menu.SN4D=NULL;
  303. erase_flash(Sn1StatusAddr);
  304. HAL_Delay(10);
  305. erase_flash(Sn2StatusAddr);
  306. HAL_Delay(10);
  307. erase_flash(Sn3StatusAddr);
  308. HAL_Delay(10);
  309. erase_flash(Sn4StatusAddr);
  310. HAL_Delay(10);
  311. erase_flash(Sn1Addr);
  312. HAL_Delay(10);
  313. erase_flash(Sn2Addr);
  314. HAL_Delay(10);
  315. erase_flash(Sn3Addr);
  316. HAL_Delay(10);
  317. erase_flash(Sn4Addr);
  318. HAL_Delay(10);
  319. erase_flash(serialNum1Addr);
  320. HAL_Delay(10);
  321. erase_flash(serialNum2Addr);
  322. HAL_Delay(10);
  323. erase_flash(serialNum3Addr);
  324. HAL_Delay(10);
  325. erase_flash(serialNum4Addr);
  326. HAL_Delay(10);
  327. L1bd=false;
  328. L2bd=false;
  329. L3bd=false;
  330. L4bd=false;
  331. menu.home=0x10000;
  332. SET_MENU_STATUS(1,1,0,1);
  333. break;
  334. }
  335. else
  336. {
  337. menu.PreNext=menu.next;
  338. SET_MENU_STATUS(0xA1,0xF,0,3);
  339. //printf("%04x",menu.PreNext);
  340. break;
  341. }
  342. }
  343. case 3:
  344. {
  345. if(menu.up==3)//L1操作
  346. {
  347. sendCmd_BT(menu.SN1,menu.SN1F,3,3);
  348. HAL_Delay(100);
  349. SET_MENU_STATUS(4,1,0,3);
  350. break;
  351. }
  352. if(menu.up==2)//2操作
  353. {
  354. sendCmd_BT(menu.SN2,menu.SN2F,3,3);
  355. HAL_Delay(100);
  356. SET_MENU_STATUS(5,1,0,3);
  357. break;
  358. }
  359. if(menu.up==1)//3操作
  360. {
  361. sendCmd_BT(menu.SN3,menu.SN3F,3,3);
  362. HAL_Delay(100);
  363. SET_MENU_STATUS(6,1,0,3);
  364. break;
  365. }
  366. if(menu.up==0)//4操作
  367. {
  368. sendCmd_BT(menu.SN4,menu.SN4F,3,3);
  369. HAL_Delay(100);
  370. SET_MENU_STATUS(7,1,0,3);
  371. break;
  372. }
  373. }
  374. case 4:
  375. case 5:
  376. case 6:
  377. case 7:
  378. {
  379. menu.enter=4;
  380. break;
  381. }
  382. case 8:
  383. case 9:
  384. case 0xa:
  385. case 0xb:
  386. case 0xd:
  387. case 0xA1:
  388. {
  389. if(menu.PreNext==0)//L1 写
  390. {
  391. if(menu.next==0)
  392. {
  393. menu.SN1="AT+CONN=101000000001\r\n";
  394. menu.SN1F="+CONNECTED:0,101000000001";
  395. menu.SN1D="+DISCONN:0,101000000001";
  396. Write_Information(Sn1Addr, 0x0001);
  397. }
  398. if(menu.next==1)
  399. {
  400. menu.SN1="AT+CONN=101000000002\r\n";
  401. menu.SN1F="+CONNECTED:0,101000000002";
  402. menu.SN1D="+DISCONN:0,101000000002";
  403. Write_Information(Sn1Addr, 0x0002);
  404. }
  405. if(menu.next==2)
  406. {
  407. menu.SN1="AT+CONN=101000000003\r\n";
  408. menu.SN1F="+CONNECTED:0,101000000003";
  409. menu.SN1D="+DISCONN:0,101000000003";
  410. Write_Information(Sn1Addr, 0x0003);
  411. }
  412. if(menu.next==3)
  413. {
  414. menu.SN1="AT+CONN=101000000004\r\n";
  415. menu.SN1F="+CONNECTED:0,101000000004";
  416. menu.SN1D="+DISCONN:0,101000000004";
  417. Write_Information(Sn1Addr, 0x0004);
  418. }
  419. if(menu.next==4)
  420. {
  421. menu.SN1="AT+CONN=101000000005\r\n";
  422. menu.SN1F="+CONNECTED:0,101000000005";
  423. menu.SN1D="+DISCONN:0,101000000005";
  424. Write_Information(Sn1Addr, 0x0005);
  425. }
  426. if(menu.next==5)
  427. {
  428. menu.SN1="AT+CONN=101000000006\r\n";
  429. menu.SN1F="+CONNECTED:0,101000000006";
  430. menu.SN1D="+DISCONN:0,101000000006";
  431. Write_Information(Sn1Addr, 0x0006);
  432. }
  433. if(menu.next==6)
  434. {
  435. menu.SN1="AT+CONN=101000000007\r\n";
  436. menu.SN1F="+CONNECTED:0,101000000007";
  437. menu.SN1D="+DISCONN:0,101000000007";
  438. Write_Information(Sn1Addr, 0x0007);
  439. }
  440. if(menu.next==7)
  441. {
  442. menu.SN1="AT+CONN=101000000008\r\n";
  443. menu.SN1F="+CONNECTED:0,101000000008";
  444. menu.SN1D="+DISCONN:0,101000000008";
  445. Write_Information(Sn1Addr, 0x0008);
  446. }
  447. if(menu.next==8)
  448. {
  449. menu.SN1="AT+CONN=101000000009\r\n";
  450. menu.SN1F="+CONNECTED:0,101000000009";
  451. menu.SN1D="+DISCONN:0,101000000009";
  452. Write_Information(Sn1Addr, 0x0009);
  453. }
  454. if(menu.next==9)
  455. {
  456. menu.SN1="AT+CONN=10100000000A\r\n";
  457. menu.SN1F="+CONNECTED:0,10100000000A";
  458. menu.SN1D="+DISCONN:0,10100000000A";
  459. Write_Information(Sn1Addr, 0x000A);
  460. }
  461. if(menu.next==0xa)
  462. {
  463. menu.SN1="AT+CONN=10100000000B\r\n";
  464. menu.SN1F="+CONNECTED:0,10100000000B";
  465. menu.SN1D="+DISCONN:0,10100000000B";
  466. Write_Information(Sn1Addr, 0x000B);
  467. }
  468. if(menu.next==0xb)
  469. {
  470. menu.SN1="AT+CONN=10100000000C\r\n";
  471. menu.SN1F="+CONNECTED:0,10100000000C";
  472. menu.SN1D="+DISCONN:0,10100000000C";
  473. Write_Information(Sn1Addr, 0x000C);
  474. }
  475. if(menu.next==0xc)
  476. {
  477. menu.SN1="AT+CONN=10100000000D\r\n";
  478. menu.SN1F="+CONNECTED:0,10100000000D";
  479. menu.SN1D="+DISCONN:0,10100000000D";
  480. Write_Information(Sn1Addr, 0x000D);
  481. }
  482. if(menu.next==0xd)
  483. {
  484. menu.SN1="AT+CONN=10100000000E\r\n";
  485. menu.SN1F="+CONNECTED:0,10100000000E";
  486. menu.SN1D="+DISCONN:0,10100000000E";
  487. Write_Information(Sn1Addr, 0x000E);
  488. }
  489. if(menu.next==0xe)
  490. {
  491. menu.SN1="AT+CONN=10100000000F\r\n";
  492. menu.SN1F="+CONNECTED:0,10100000000F";
  493. menu.SN1D="+DISCONN:0,10100000000F";
  494. Write_Information(Sn1Addr, 0x000F);
  495. }
  496. if(menu.next==0xf)
  497. {
  498. menu.SN1="AT+CONN=101000000010\r\n";
  499. menu.SN1F="+CONNECTED:0,101000000010";
  500. menu.SN1D="+DISCONN:0,101000000010";
  501. Write_Information(Sn1Addr, 0x0010);
  502. }
  503. //erase_flash(Sn1StatusAddr);
  504. L1bd=true;
  505. }
  506. if(menu.PreNext==1)//L2 写
  507. {
  508. if(menu.next==0)
  509. {
  510. menu.SN2="AT+CONN=101000000001\r\n";
  511. menu.SN2F="+CONNECTED:0,101000000001";
  512. menu.SN2D="+DISCONN:0,101000000001";
  513. Write_Information(Sn2Addr, 0x0001);
  514. }
  515. if(menu.next==1)
  516. {
  517. menu.SN2="AT+CONN=101000000002\r\n";
  518. menu.SN2F="+CONNECTED:0,101000000002";
  519. menu.SN2D="+DISCONN:0,101000000002";
  520. Write_Information(Sn2Addr, 0x0002);
  521. }
  522. if(menu.next==2)
  523. {
  524. menu.SN2="AT+CONN=101000000003\r\n";
  525. menu.SN2F="+CONNECTED:0,101000000003";
  526. menu.SN2D="+DISCONN:0,101000000003";
  527. Write_Information(Sn2Addr, 0x0003);
  528. }
  529. if(menu.next==3)
  530. {
  531. menu.SN2="AT+CONN=101000000004\r\n";
  532. menu.SN2F="+CONNECTED:0,101000000004";
  533. menu.SN2D="+DISCONN:0,101000000004";
  534. Write_Information(Sn2Addr, 0x0004);
  535. }
  536. if(menu.next==4)
  537. {
  538. menu.SN2="AT+CONN=101000000005\r\n";
  539. menu.SN2F="+CONNECTED:0,101000000005";
  540. menu.SN2D="+DISCONN:0,101000000005";
  541. Write_Information(Sn2Addr, 0x0005);
  542. }
  543. if(menu.next==5)
  544. {
  545. menu.SN2="AT+CONN=101000000006\r\n";
  546. menu.SN2F="+CONNECTED:0,101000000006";
  547. menu.SN2D="+DISCONN:0,101000000006";
  548. Write_Information(Sn2Addr, 0x0006);
  549. }
  550. if(menu.next==6)
  551. {
  552. menu.SN2="AT+CONN=101000000007\r\n";
  553. menu.SN2F="+CONNECTED:0,101000000007";
  554. menu.SN2D="+DISCONN:0,101000000007";
  555. Write_Information(Sn2Addr, 0x0007);
  556. }
  557. if(menu.next==7)
  558. {
  559. menu.SN2="AT+CONN=101000000008\r\n";
  560. menu.SN2F="+CONNECTED:0,101000000008";
  561. menu.SN2D="+DISCONN:0,101000000008";
  562. Write_Information(Sn2Addr, 0x0008);
  563. }
  564. if(menu.next==8)
  565. {
  566. menu.SN2="AT+CONN=101000000009\r\n";
  567. menu.SN2F="+CONNECTED:0,101000000009";
  568. menu.SN2D="+DISCONN:0,101000000009";
  569. Write_Information(Sn2Addr, 0x0009);
  570. }
  571. if(menu.next==9)
  572. {
  573. menu.SN2="AT+CONN=10100000000A\r\n";
  574. menu.SN2F="+CONNECTED:0,10100000000A";
  575. menu.SN2D="+DISCONN:0,10100000000A";
  576. Write_Information(Sn2Addr, 0x000A);
  577. }
  578. if(menu.next==0xa)
  579. {
  580. menu.SN2="AT+CONN=10100000000B\r\n";
  581. menu.SN2F="+CONNECTED:0,10100000000B";
  582. menu.SN2D="+DISCONN:0,10100000000B";
  583. Write_Information(Sn2Addr, 0x000B);
  584. }
  585. if(menu.next==0xb)
  586. {
  587. menu.SN2="AT+CONN=10100000000C\r\n";
  588. menu.SN2F="+CONNECTED:0,10100000000C";
  589. menu.SN2D="+DISCONN:0,10100000000C";
  590. Write_Information(Sn2Addr, 0x000C);
  591. }
  592. if(menu.next==0xc)
  593. {
  594. menu.SN2="AT+CONN=10100000000D\r\n";
  595. menu.SN2F="+CONNECTED:0,10100000000D";
  596. menu.SN2D="+DISCONN:0,10100000000D";
  597. Write_Information(Sn2Addr, 0x000D);
  598. }
  599. if(menu.next==0xd)
  600. {
  601. menu.SN2="AT+CONN=10100000000E\r\n";
  602. menu.SN2F="+CONNECTED:0,10100000000E";
  603. menu.SN2D="+DISCONN:0,10100000000E";
  604. Write_Information(Sn2Addr, 0x000E);
  605. }
  606. if(menu.next==0xe)
  607. {
  608. menu.SN2="AT+CONN=10100000000F\r\n";
  609. menu.SN2F="+CONNECTED:0,10100000000F";
  610. menu.SN2D="+DISCONN:0,10100000000F";
  611. Write_Information(Sn2Addr, 0x000F);
  612. }
  613. if(menu.next==0xf)
  614. {
  615. menu.SN2="AT+CONN=101000000010\r\n";
  616. menu.SN2F="+CONNECTED:0,101000000010";
  617. menu.SN2D="+DISCONN:0,101000000010";
  618. Write_Information(Sn2Addr, 0x0010);
  619. }
  620. //erase_flash(Sn1StatusAddr);
  621. L2bd=true;
  622. }
  623. if(menu.PreNext==2)//L3 写
  624. {
  625. if(menu.next==0)
  626. {
  627. menu.SN3="AT+CONN=101000000001\r\n";
  628. menu.SN3F="+CONNECTED:0,101000000001";
  629. menu.SN3D="+DISCONN:0,101000000001";
  630. Write_Information(Sn3Addr, 0x0001);
  631. }
  632. if(menu.next==1)
  633. {
  634. menu.SN3="AT+CONN=101000000002\r\n";
  635. menu.SN3F="+CONNECTED:0,101000000002";
  636. menu.SN3D="+DISCONN:0,101000000002";
  637. Write_Information(Sn3Addr, 0x0002);
  638. }
  639. if(menu.next==2)
  640. {
  641. menu.SN3="AT+CONN=101000000003\r\n";
  642. menu.SN3F="+CONNECTED:0,101000000003";
  643. menu.SN3D="+DISCONN:0,101000000003";
  644. Write_Information(Sn3Addr, 0x0003);
  645. }
  646. if(menu.next==3)
  647. {
  648. menu.SN3="AT+CONN=101000000004\r\n";
  649. menu.SN3F="+CONNECTED:0,101000000004";
  650. menu.SN3D="+DISCONN:0,101000000004";
  651. Write_Information(Sn3Addr, 0x0004);
  652. }
  653. if(menu.next==4)
  654. {
  655. menu.SN3="AT+CONN=101000000005\r\n";
  656. menu.SN3F="+CONNECTED:0,101000000005";
  657. menu.SN3D="+DISCONN:0,101000000005";
  658. Write_Information(Sn3Addr, 0x0005);
  659. }
  660. if(menu.next==5)
  661. {
  662. menu.SN3="AT+CONN=101000000006\r\n";
  663. menu.SN3F="+CONNECTED:0,101000000006";
  664. menu.SN3D="+DISCONN:0,101000000006";
  665. Write_Information(Sn3Addr, 0x0006);
  666. }
  667. if(menu.next==6)
  668. {
  669. menu.SN3="AT+CONN=101000000007\r\n";
  670. menu.SN3F="+CONNECTED:0,101000000007";
  671. menu.SN3D="+DISCONN:0,101000000007";
  672. Write_Information(Sn3Addr, 0x0007);
  673. }
  674. if(menu.next==7)
  675. {
  676. menu.SN3="AT+CONN=101000000008\r\n";
  677. menu.SN3F="+CONNECTED:0,101000000008";
  678. menu.SN3D="+DISCONN:0,101000000008";
  679. Write_Information(Sn3Addr, 0x0008);
  680. }
  681. if(menu.next==8)
  682. {
  683. menu.SN3="AT+CONN=101000000009\r\n";
  684. menu.SN3F="+CONNECTED:0,101000000009";
  685. menu.SN3D="+DISCONN:0,101000000009";
  686. Write_Information(Sn3Addr, 0x0009);
  687. }
  688. if(menu.next==9)
  689. {
  690. menu.SN3="AT+CONN=10100000000A\r\n";
  691. menu.SN3F="+CONNECTED:0,10100000000A";
  692. menu.SN3D="+DISCONN:0,10100000000A";
  693. Write_Information(Sn3Addr, 0x000A);
  694. }
  695. if(menu.next==0xa)
  696. {
  697. menu.SN3="AT+CONN=10100000000B\r\n";
  698. menu.SN3F="+CONNECTED:0,10100000000B";
  699. menu.SN3D="+DISCONN:0,10100000000B";
  700. Write_Information(Sn3Addr, 0x000B);
  701. }
  702. if(menu.next==0xb)
  703. {
  704. menu.SN3="AT+CONN=10100000000C\r\n";
  705. menu.SN3F="+CONNECTED:0,10100000000C";
  706. menu.SN3D="+DISCONN:0,10100000000C";
  707. Write_Information(Sn3Addr, 0x000C);
  708. }
  709. if(menu.next==0xc)
  710. {
  711. menu.SN3="AT+CONN=10100000000D\r\n";
  712. menu.SN3F="+CONNECTED:0,10100000000D";
  713. menu.SN3D="+DISCONN:0,10100000000D";
  714. Write_Information(Sn3Addr, 0x000D);
  715. }
  716. if(menu.next==0xd)
  717. {
  718. menu.SN3="AT+CONN=10100000000E\r\n";
  719. menu.SN3F="+CONNECTED:0,10100000000E";
  720. menu.SN3D="+DISCONN:0,10100000000E";
  721. Write_Information(Sn3Addr, 0x000E);
  722. }
  723. if(menu.next==0xe)
  724. {
  725. menu.SN3="AT+CONN=10100000000F\r\n";
  726. menu.SN3F="+CONNECTED:0,10100000000F";
  727. menu.SN3D="+DISCONN:0,10100000000F";
  728. Write_Information(Sn3Addr, 0x000F);
  729. }
  730. if(menu.next==0xf)
  731. {
  732. menu.SN3="AT+CONN=101000000010\r\n";
  733. menu.SN3F="+CONNECTED:0,101000000010";
  734. menu.SN3D="+DISCONN:0,101000000010";
  735. Write_Information(Sn3Addr, 0x0010);
  736. }
  737. //erase_flash(Sn1StatusAddr);
  738. L3bd=true;
  739. }
  740. if(menu.PreNext==3)//L4 写
  741. {
  742. if(menu.next==0)
  743. {
  744. menu.SN4="AT+CONN=101000000001\r\n";
  745. menu.SN4F="+CONNECTED:0,101000000001";
  746. menu.SN4D="+DISCONN:0,101000000001";
  747. Write_Information(Sn4Addr, 0x0001);
  748. }
  749. if(menu.next==1)
  750. {
  751. menu.SN4="AT+CONN=101000000002\r\n";
  752. menu.SN4F="+CONNECTED:0,101000000002";
  753. menu.SN4D="+DISCONN:0,101000000002";
  754. Write_Information(Sn4Addr, 0x0002);
  755. }
  756. if(menu.next==2)
  757. {
  758. menu.SN4="AT+CONN=101000000003\r\n";
  759. menu.SN4F="+CONNECTED:0,101000000003";
  760. menu.SN4D="+DISCONN:0,101000000003";
  761. Write_Information(Sn4Addr, 0x0003);
  762. }
  763. if(menu.next==3)
  764. {
  765. menu.SN4="AT+CONN=101000000004\r\n";
  766. menu.SN4F="+CONNECTED:0,101000000004";
  767. menu.SN4D="+DISCONN:0,101000000004";
  768. Write_Information(Sn4Addr, 0x0004);
  769. }
  770. if(menu.next==4)
  771. {
  772. menu.SN4="AT+CONN=101000000005\r\n";
  773. menu.SN4F="+CONNECTED:0,101000000005";
  774. menu.SN4D="+DISCONN:0,101000000005";
  775. Write_Information(Sn4Addr, 0x0005);
  776. }
  777. if(menu.next==5)
  778. {
  779. menu.SN4="AT+CONN=101000000006\r\n";
  780. menu.SN4F="+CONNECTED:0,101000000006";
  781. menu.SN4D="+DISCONN:0,101000000006";
  782. Write_Information(Sn4Addr, 0x0006);
  783. }
  784. if(menu.next==6)
  785. {
  786. menu.SN4="AT+CONN=101000000007\r\n";
  787. menu.SN4F="+CONNECTED:0,101000000007";
  788. menu.SN4D="+DISCONN:0,101000000007";
  789. Write_Information(Sn4Addr, 0x0007);
  790. }
  791. if(menu.next==7)
  792. {
  793. menu.SN4="AT+CONN=101000000008\r\n";
  794. menu.SN4F="+CONNECTED:0,101000000008";
  795. menu.SN4D="+DISCONN:0,101000000008";
  796. Write_Information(Sn4Addr, 0x0008);
  797. }
  798. if(menu.next==8)
  799. {
  800. menu.SN4="AT+CONN=101000000009\r\n";
  801. menu.SN4F="+CONNECTED:0,101000000009";
  802. menu.SN4D="+DISCONN:0,101000000009";
  803. Write_Information(Sn4Addr, 0x0009);
  804. }
  805. if(menu.next==9)
  806. {
  807. menu.SN4="AT+CONN=10100000000A\r\n";
  808. menu.SN4F="+CONNECTED:0,10100000000A";
  809. menu.SN4D="+DISCONN:0,10100000000A";
  810. Write_Information(Sn4Addr, 0x000A);
  811. }
  812. if(menu.next==0xa)
  813. {
  814. menu.SN4="AT+CONN=10100000000B\r\n";
  815. menu.SN4F="+CONNECTED:0,10100000000B";
  816. menu.SN4D="+DISCONN:0,10100000000B";
  817. Write_Information(Sn4Addr, 0x000B);
  818. }
  819. if(menu.next==0xb)
  820. {
  821. menu.SN4="AT+CONN=10100000000C\r\n";
  822. menu.SN4F="+CONNECTED:0,10100000000C";
  823. menu.SN4D="+DISCONN:0,10100000000C";
  824. Write_Information(Sn4Addr, 0x000C);
  825. }
  826. if(menu.next==0xc)
  827. {
  828. menu.SN4="AT+CONN=10100000000D\r\n";
  829. menu.SN4F="+CONNECTED:0,10100000000D";
  830. menu.SN4D="+DISCONN:0,10100000000D";
  831. Write_Information(Sn4Addr, 0x000D);
  832. }
  833. if(menu.next==0xd)
  834. {
  835. menu.SN4="AT+CONN=10100000000E\r\n";
  836. menu.SN4F="+CONNECTED:0,10100000000E";
  837. menu.SN4D="+DISCONN:0,10100000000E";
  838. Write_Information(Sn4Addr, 0x000E);
  839. }
  840. if(menu.next==0xe)
  841. {
  842. menu.SN4="AT+CONN=10100000000F\r\n";
  843. menu.SN4F="+CONNECTED:0,10100000000F";
  844. menu.SN4D="+DISCONN:0,10100000000F";
  845. Write_Information(Sn4Addr, 0x000F);
  846. }
  847. if(menu.next==0xf)
  848. {
  849. menu.SN4="AT+CONN=101000000010\r\n";
  850. menu.SN4F="+CONNECTED:0,101000000010";
  851. menu.SN4D="+DISCONN:0,101000000010";
  852. Write_Information(Sn4Addr, 0x0010);
  853. }
  854. //erase_flash(Sn1StatusAddr);
  855. L4bd=true;
  856. }
  857. SET_MENU_STATUS(2,4,0,2);
  858. break;
  859. }
  860. }
  861. PRINT_MENU_STATUS("K3");
  862. sent3_key = true;
  863. }
  864. return 1;
  865. }
  866. else // 按键释放
  867. {
  868. sent3_key = false;
  869. return 0;
  870. }
  871. }
  872. }
  873. return 0;
  874. }
  875. uint8_t KEY_4_Scan(void)
  876. {
  877. static uint8_t key_state = 0;
  878. static uint8_t last_key_state = 0;
  879. static uint32_t debounce_time = 0;
  880. key_state = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6);
  881. if (key_state != last_key_state) // 检测按键状态变化
  882. {
  883. last_key_state = key_state;
  884. debounce_time = HAL_GetTick(); // 记录当前时间
  885. }
  886. else
  887. {
  888. if (HAL_GetTick() - debounce_time > 30) // 去抖时间大于50ms
  889. {
  890. if (key_state == GPIO_PIN_RESET) // 按键按下
  891. {
  892. if (!sent4_key) {//返回
  893. switch (menu.current) {
  894. case 0:
  895. case 1:
  896. {
  897. scanMac();
  898. SET_MENU_STATUS(0,0,0,0);
  899. break;
  900. }
  901. case 2:
  902. case 3:
  903. {
  904. scanMac();
  905. SET_MENU_STATUS(1,1,0,1);
  906. break;
  907. }
  908. case 4:
  909. case 5:
  910. case 6:
  911. case 7:
  912. {
  913. sendCmd_BT("AT+DISCONN=0\r\n","ERROR",1,1);//断开连接
  914. HAL_Delay(300);
  915. S1 = read_flash_16(Sn1StatusAddr);
  916. S2 = read_flash_16(Sn2StatusAddr);
  917. S3 = read_flash_16(Sn3StatusAddr);
  918. S4 = read_flash_16(Sn4StatusAddr);
  919. scanMac();
  920. SET_MENU_STATUS(3,3,0,2);
  921. break;
  922. }
  923. case 8:
  924. case 9:
  925. case 0xa:
  926. case 0xb:
  927. case 0xd:
  928. break;
  929. case 0xA1:
  930. {
  931. S1 = read_flash_16(Sn1StatusAddr);
  932. S2 = read_flash_16(Sn2StatusAddr);
  933. S3 = read_flash_16(Sn3StatusAddr);
  934. S4 = read_flash_16(Sn4StatusAddr);
  935. scanMac();
  936. SET_MENU_STATUS(2,3,0,2);
  937. break;
  938. }
  939. }
  940. PRINT_MENU_STATUS("K4");
  941. sent4_key = true;
  942. }
  943. return 1;
  944. }
  945. else // 按键释放
  946. {
  947. sent4_key = false;
  948. return 0;
  949. }
  950. }
  951. }
  952. return 0;
  953. }
  954. void updatekeystate(void)
  955. {
  956. KEY_1_Scan();
  957. KEY_2_Scan();
  958. KEY_3_Scan();
  959. KEY_4_Scan();
  960. }
  961. void scanMac(void)
  962. {
  963. uint16_t SN1 = read_flash_16(Sn1Addr);
  964. uint16_t SN2 = read_flash_16(Sn2Addr);
  965. uint16_t SN3 = read_flash_16(Sn3Addr);
  966. uint16_t SN4 = read_flash_16(Sn4Addr);
  967. // printf("%04x\r\n",SN1);
  968. // printf("%04x\r\n",SN2);
  969. // printf("%04x\r\n",SN3);
  970. // printf("%04x\r\n",SN4);
  971. if(SN1==0x0001)
  972. {
  973. menu.SN1name="0001";
  974. menu.SN1="AT+CONN=101000000001\r\n";
  975. menu.SN1F="+CONNECTED:0,101000000001";
  976. L1bd=true;
  977. }
  978. if(SN1==0x0002)
  979. {
  980. menu.SN1name="0002";
  981. menu.SN1="AT+CONN=101000000002\r\n";
  982. menu.SN1F="+CONNECTED:0,101000000002";
  983. L1bd=true;
  984. }
  985. if(SN1==0x0003)
  986. {
  987. menu.SN1name="0003";
  988. menu.SN1="AT+CONN=101000000003\r\n";
  989. menu.SN1F="+CONNECTED:0,101000000003";
  990. L1bd=true;
  991. }
  992. if(SN1==0x0004)
  993. {
  994. menu.SN1name="0004";
  995. menu.SN1="AT+CONN=101000000004\r\n";
  996. menu.SN1F="+CONNECTED:0,101000000004";
  997. L1bd=true;
  998. }
  999. if(SN1==0x0005)
  1000. {
  1001. menu.SN1name="0005";
  1002. menu.SN1="AT+CONN=101000000005\r\n";
  1003. menu.SN1F="+CONNECTED:0,101000000005";
  1004. L1bd=true;
  1005. }
  1006. if(SN1==0x0006)
  1007. {
  1008. menu.SN1name="0006";
  1009. menu.SN1="AT+CONN=101000000006\r\n";
  1010. menu.SN1F="+CONNECTED:0,101000000006";
  1011. L1bd=true;
  1012. }
  1013. if(SN1==0x0007)
  1014. {
  1015. menu.SN1name="0007";
  1016. menu.SN1="AT+CONN=101000000007\r\n";
  1017. menu.SN1F="+CONNECTED:0,101000000007";
  1018. L1bd=true;
  1019. }
  1020. if(SN1==0x0008)
  1021. {
  1022. menu.SN1name="0008";
  1023. menu.SN1="AT+CONN=101000000008\r\n";
  1024. menu.SN1F="+CONNECTED:0,101000000008";
  1025. L1bd=true;
  1026. }
  1027. if(SN1==0x0009)
  1028. {
  1029. menu.SN1name="0009";
  1030. menu.SN1="AT+CONN=101000000009\r\n";
  1031. menu.SN1F="+CONNECTED:0,101000000009";
  1032. L1bd=true;
  1033. }
  1034. if(SN1==0x000A)
  1035. {
  1036. menu.SN1name="000A";
  1037. menu.SN1="AT+CONN=10100000000A\r\n";
  1038. menu.SN1F="+CONNECTED:0,10100000000A";
  1039. L1bd=true;
  1040. }
  1041. if(SN1==0x000B)
  1042. {
  1043. menu.SN1name="000B";
  1044. menu.SN1="AT+CONN=10100000000B\r\n";
  1045. menu.SN1F="+CONNECTED:0,10100000000B";
  1046. L1bd=true;
  1047. }
  1048. if(SN1==0x000C)
  1049. {
  1050. menu.SN1name="000C";
  1051. menu.SN1="AT+CONN=10100000000C\r\n";
  1052. menu.SN1F="+CONNECTED:0,10100000000C";
  1053. L1bd=true;
  1054. }
  1055. if(SN1==0x000D)
  1056. {
  1057. menu.SN1name="000D";
  1058. menu.SN1="AT+CONN=10100000000D\r\n";
  1059. menu.SN1F="+CONNECTED:0,10100000000D";
  1060. L1bd=true;
  1061. }
  1062. if(SN1==0x000E)
  1063. {
  1064. menu.SN1name="000E";
  1065. menu.SN1="AT+CONN=10100000000E\r\n";
  1066. menu.SN1F="+CONNECTED:0,10100000000E";
  1067. L1bd=true;
  1068. }
  1069. if(SN1==0x000F)
  1070. {
  1071. menu.SN1name="000F";
  1072. menu.SN1="AT+CONN=10100000000F\r\n";
  1073. menu.SN1F="+CONNECTED:0,10100000000F";
  1074. L1bd=true;
  1075. }
  1076. if(SN1==0x0010)
  1077. {
  1078. menu.SN1name="0010";
  1079. menu.SN1="AT+CONN=101000000010\r\n";
  1080. menu.SN1F="+CONNECTED:0,101000000010";
  1081. L1bd=true;
  1082. }
  1083. if(SN2==0x0001)
  1084. {
  1085. menu.SN2name="0001";
  1086. menu.SN2="AT+CONN=101000000001\r\n";
  1087. menu.SN2F="+CONNECTED:0,101000000001";
  1088. L2bd=true;
  1089. }
  1090. if(SN2==0x0002)
  1091. {
  1092. menu.SN2name="0002";
  1093. menu.SN2="AT+CONN=101000000002\r\n";
  1094. menu.SN2F="+CONNECTED:0,101000000002";
  1095. L2bd=true;
  1096. }
  1097. if(SN2==0x0003)
  1098. {
  1099. menu.SN2name="0003";
  1100. menu.SN2="AT+CONN=101000000003\r\n";
  1101. menu.SN2F="+CONNECTED:0,101000000003";
  1102. L2bd=true;
  1103. }
  1104. if(SN2==0x0004)
  1105. {
  1106. menu.SN2name="0004";
  1107. menu.SN2="AT+CONN=101000000004\r\n";
  1108. menu.SN2F="+CONNECTED:0,101000000004";
  1109. L2bd=true;
  1110. }
  1111. if(SN2==0x0005)
  1112. {
  1113. menu.SN2name="0005";
  1114. menu.SN2="AT+CONN=101000000005\r\n";
  1115. menu.SN2F="+CONNECTED:0,101000000005";
  1116. L2bd=true;
  1117. }
  1118. if(SN2==0x0006)
  1119. {
  1120. menu.SN2name="0006";
  1121. menu.SN2="AT+CONN=101000000006\r\n";
  1122. menu.SN2F="+CONNECTED:0,101000000006";
  1123. L2bd=true;
  1124. }
  1125. if(SN2==0x0007)
  1126. {
  1127. menu.SN2name="0007";
  1128. menu.SN2="AT+CONN=101000000007\r\n";
  1129. menu.SN2F="+CONNECTED:0,101000000007";
  1130. L2bd=true;
  1131. }
  1132. if(SN2==0x0008)
  1133. {
  1134. menu.SN2name="0008";
  1135. menu.SN2="AT+CONN=101000000008\r\n";
  1136. menu.SN2F="+CONNECTED:0,101000000008";
  1137. L2bd=true;
  1138. }
  1139. if(SN2==0x0009)
  1140. {
  1141. menu.SN2name="0009";
  1142. menu.SN2="AT+CONN=101000000009\r\n";
  1143. menu.SN2F="+CONNECTED:0,101000000009";
  1144. L2bd=true;
  1145. }
  1146. if(SN2==0x000A)
  1147. {
  1148. menu.SN2name="000A";
  1149. menu.SN2="AT+CONN=10100000000A\r\n";
  1150. menu.SN2F="+CONNECTED:0,10100000000A";
  1151. L2bd=true;
  1152. }
  1153. if(SN2==0x000B)
  1154. {
  1155. menu.SN2name="000B";
  1156. menu.SN2="AT+CONN=10100000000B\r\n";
  1157. menu.SN2F="+CONNECTED:0,10100000000B";
  1158. L2bd=true;
  1159. }
  1160. if(SN2==0x000C)
  1161. {
  1162. menu.SN2name="000C";
  1163. menu.SN2="AT+CONN=10100000000C\r\n";
  1164. menu.SN2F="+CONNECTED:0,10100000000C";
  1165. L2bd=true;
  1166. }
  1167. if(SN2==0x000D)
  1168. {
  1169. menu.SN2name="000D";
  1170. menu.SN2="AT+CONN=10100000000D\r\n";
  1171. menu.SN2F="+CONNECTED:0,10100000000D";
  1172. L2bd=true;
  1173. }
  1174. if(SN2==0x000E)
  1175. {
  1176. menu.SN2name="000E";
  1177. menu.SN2="AT+CONN=10100000000E\r\n";
  1178. menu.SN2F="+CONNECTED:0,10100000000E";
  1179. L2bd=true;
  1180. }
  1181. if(SN2==0x000F)
  1182. {
  1183. menu.SN2name="000F";
  1184. menu.SN2="AT+CONN=10100000000F\r\n";
  1185. menu.SN2F="+CONNECTED:0,10100000000F";
  1186. L2bd=true;
  1187. }
  1188. if(SN2==0x0010)
  1189. {
  1190. menu.SN2name="0010";
  1191. menu.SN2="AT+CONN=101000000010\r\n";
  1192. menu.SN2F="+CONNECTED:0,101000000010";
  1193. L2bd=true;
  1194. }
  1195. if(SN3==0x0001)
  1196. {
  1197. menu.SN3name="0001";
  1198. menu.SN3="AT+CONN=101000000001\r\n";
  1199. menu.SN3F="+CONNECTED:0,101000000001";
  1200. L3bd=true;
  1201. }
  1202. if(SN3==0x0002)
  1203. {
  1204. menu.SN3name="0002";
  1205. menu.SN3="AT+CONN=101000000002\r\n";
  1206. menu.SN3F="+CONNECTED:0,101000000002";
  1207. L3bd=true;
  1208. }
  1209. if(SN3==0x0003)
  1210. {
  1211. menu.SN3name="0003";
  1212. menu.SN3="AT+CONN=101000000003\r\n";
  1213. menu.SN3F="+CONNECTED:0,101000000003";
  1214. L3bd=true;
  1215. }
  1216. if(SN3==0x0004)
  1217. {
  1218. menu.SN3name="0004";
  1219. menu.SN3="AT+CONN=101000000004\r\n";
  1220. menu.SN3F="+CONNECTED:0,101000000004";
  1221. L3bd=true;
  1222. }
  1223. if(SN3==0x0005)
  1224. {
  1225. menu.SN3name="0005";
  1226. menu.SN3="AT+CONN=101000000005\r\n";
  1227. menu.SN3F="+CONNECTED:0,101000000005";
  1228. L3bd=true;
  1229. }
  1230. if(SN3==0x0006)
  1231. {
  1232. menu.SN3name="0006";
  1233. menu.SN3="AT+CONN=101000000006\r\n";
  1234. menu.SN3F="+CONNECTED:0,101000000006";
  1235. L3bd=true;
  1236. }
  1237. if(SN3==0x0007)
  1238. {
  1239. menu.SN3name="0007";
  1240. menu.SN3="AT+CONN=101000000007\r\n";
  1241. menu.SN3F="+CONNECTED:0,101000000007";
  1242. L3bd=true;
  1243. }
  1244. if(SN3==0x0008)
  1245. {
  1246. menu.SN3name="0008";
  1247. menu.SN3="AT+CONN=101000000008\r\n";
  1248. menu.SN3F="+CONNECTED:0,101000000008";
  1249. L3bd=true;
  1250. }
  1251. if(SN3==0x0009)
  1252. {
  1253. menu.SN3name="0009";
  1254. menu.SN3="AT+CONN=101000000009\r\n";
  1255. menu.SN3F="+CONNECTED:0,101000000009";
  1256. L3bd=true;
  1257. }
  1258. if(SN3==0x000A)
  1259. {
  1260. menu.SN3name="000A";
  1261. menu.SN3="AT+CONN=10100000000A\r\n";
  1262. menu.SN3F="+CONNECTED:0,10100000000A";
  1263. L3bd=true;
  1264. }
  1265. if(SN3==0x000B)
  1266. {
  1267. menu.SN3name="000B";
  1268. menu.SN3="AT+CONN=10100000000B\r\n";
  1269. menu.SN3F="+CONNECTED:0,10100000000B";
  1270. L3bd=true;
  1271. }
  1272. if(SN3==0x000C)
  1273. {
  1274. menu.SN3name="000C";
  1275. menu.SN3="AT+CONN=10100000000C\r\n";
  1276. menu.SN3F="+CONNECTED:0,10100000000C";
  1277. L3bd=true;
  1278. }
  1279. if(SN3==0x000D)
  1280. {
  1281. menu.SN3name="000D";
  1282. menu.SN3="AT+CONN=10100000000D\r\n";
  1283. menu.SN3F="+CONNECTED:0,10100000000D";
  1284. L3bd=true;
  1285. }
  1286. if(SN3==0x000E)
  1287. {
  1288. menu.SN3name="000E";
  1289. menu.SN3="AT+CONN=10100000000E\r\n";
  1290. menu.SN3F="+CONNECTED:0,10100000000E";
  1291. L3bd=true;
  1292. }
  1293. if(SN3==0x000F)
  1294. {
  1295. menu.SN3name="000F";
  1296. menu.SN3="AT+CONN=10100000000F\r\n";
  1297. menu.SN3F="+CONNECTED:0,10100000000F";
  1298. L3bd=true;
  1299. }
  1300. if(SN3==0x0010)
  1301. {
  1302. menu.SN3name="0010";
  1303. menu.SN3="AT+CONN=101000000010\r\n";
  1304. menu.SN3F="+CONNECTED:0,101000000010";
  1305. L3bd=true;
  1306. }
  1307. if(SN4==0x0001)
  1308. {
  1309. menu.SN4name="0001";
  1310. menu.SN4="AT+CONN=101000000001\r\n";
  1311. menu.SN4F="+CONNECTED:0,101000000001";
  1312. L4bd=true;
  1313. }
  1314. if(SN4==0x0002)
  1315. {
  1316. menu.SN4name="0002";
  1317. menu.SN4="AT+CONN=101000000002\r\n";
  1318. menu.SN4F="+CONNECTED:0,101000000002";
  1319. L4bd=true;
  1320. }
  1321. if(SN4==0x0003)
  1322. {
  1323. menu.SN4name="0003";
  1324. menu.SN4="AT+CONN=101000000003\r\n";
  1325. menu.SN4F="+CONNECTED:0,101000000003";
  1326. L4bd=true;
  1327. }
  1328. if(SN4==0x0004)
  1329. {
  1330. menu.SN4name="0004";
  1331. menu.SN4="AT+CONN=101000000004\r\n";
  1332. menu.SN4F="+CONNECTED:0,101000000004";
  1333. L4bd=true;
  1334. }
  1335. if(SN4==0x0005)
  1336. {
  1337. menu.SN4name="0005";
  1338. menu.SN4="AT+CONN=101000000005\r\n";
  1339. menu.SN4F="+CONNECTED:0,101000000005";
  1340. L4bd=true;
  1341. }
  1342. if(SN4==0x0006)
  1343. {
  1344. menu.SN4name="0006";
  1345. menu.SN4="AT+CONN=101000000006\r\n";
  1346. menu.SN4F="+CONNECTED:0,101000000006";
  1347. L4bd=true;
  1348. }
  1349. if(SN4==0x0007)
  1350. {
  1351. menu.SN4name="0007";
  1352. menu.SN4="AT+CONN=101000000007\r\n";
  1353. menu.SN4F="+CONNECTED:0,101000000007";
  1354. L4bd=true;
  1355. }
  1356. if(SN4==0x0008)
  1357. {
  1358. menu.SN4name="0008";
  1359. menu.SN4="AT+CONN=101000000008\r\n";
  1360. menu.SN4F="+CONNECTED:0,101000000008";
  1361. L4bd=true;
  1362. }
  1363. if(SN4==0x0009)
  1364. {
  1365. menu.SN4name="0009";
  1366. menu.SN4="AT+CONN=101000000009\r\n";
  1367. menu.SN4F="+CONNECTED:0,101000000009";
  1368. L4bd=true;
  1369. }
  1370. if(SN4==0x000A)
  1371. {
  1372. menu.SN4name="000A";
  1373. menu.SN4="AT+CONN=10100000000A\r\n";
  1374. menu.SN4F="+CONNECTED:0,10100000000A";
  1375. L4bd=true;
  1376. }
  1377. if(SN4==0x000B)
  1378. {
  1379. menu.SN4name="000B";
  1380. menu.SN4="AT+CONN=10100000000B\r\n";
  1381. menu.SN4F="+CONNECTED:0,10100000000B";
  1382. L4bd=true;
  1383. }
  1384. if(SN4==0x000C)
  1385. {
  1386. menu.SN4name="000C";
  1387. menu.SN4="AT+CONN=10100000000C\r\n";
  1388. menu.SN4F="+CONNECTED:0,10100000000C";
  1389. L4bd=true;
  1390. }
  1391. if(SN4==0x000D)
  1392. {
  1393. menu.SN4name="000D";
  1394. menu.SN4="AT+CONN=10100000000D\r\n";
  1395. menu.SN4F="+CONNECTED:0,10100000000D";
  1396. L4bd=true;
  1397. }
  1398. if(SN4==0x000E)
  1399. {
  1400. menu.SN4name="000E";
  1401. menu.SN4="AT+CONN=10100000000E\r\n";
  1402. menu.SN4F="+CONNECTED:0,10100000000E";
  1403. L4bd=true;
  1404. }
  1405. if(SN4==0x000F)
  1406. {
  1407. menu.SN4name="000F";
  1408. menu.SN4="AT+CONN=10100000000F\r\n";
  1409. menu.SN4F="+CONNECTED:0,10100000000F";
  1410. L4bd=true;
  1411. }
  1412. if(SN4==0x0010)
  1413. {
  1414. menu.SN4name="0010";
  1415. menu.SN4="AT+CONN=101000000010\r\n";
  1416. menu.SN4F="+CONNECTED:0,101000000010";
  1417. L4bd=true;
  1418. }
  1419. }