Key_operate.c 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367
  1. #include "key_operate.h"
  2. #include "All_define.h"
  3. #include "lcd_task.h"
  4. #include "MB_RTU_deal_task.h"
  5. uint16_t fuji_or_shuiji = 0;
  6. extern void Control_Save(uint8_t *Data_need_write);
  7. extern uint8_t AirCondition_Sheiled_Set(void);
  8. extern uint8_t FloorHeating_Sheiled_Set(void);
  9. extern uint8_t AirFresh_Sheiled_Set(void);
  10. static uint8_t LCD_Lock_operate(Key_Operate_t Key_Operate)
  11. {
  12. if (dis_page_param.face_plate_param.Full_Half_Lock == 0)
  13. {
  14. if (dis_page_param.face_plate_param.Lock_screen == 0)
  15. {
  16. return 0;
  17. }
  18. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  19. {
  20. if (Key_Operate == Key_Switch_OnOff || Key_Operate == Key_switch || Key_Operate == Key_Lock)
  21. {
  22. return 0;
  23. }
  24. else
  25. {
  26. return 1;
  27. }
  28. }
  29. }
  30. else if (dis_page_param.face_plate_param.Full_Half_Lock == 1)
  31. {
  32. if (dis_page_param.face_plate_param.Lock_screen == 0)
  33. {
  34. return 0;
  35. }
  36. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  37. {
  38. if (Key_Operate == Key_Lock)
  39. {
  40. return 0;
  41. }
  42. else
  43. {
  44. return 1;
  45. }
  46. }
  47. }
  48. return 1;
  49. }
  50. void Key_Handle_air_conditioning_close(u8 *Data_need_write, Key_Operate_t Key_Operate)
  51. {
  52. if (LCD_Lock_operate(Key_Operate))
  53. {
  54. return;
  55. }
  56. printf("Key_Operate %d\r\n", Key_Operate);
  57. dis_page_param.sleep_times = 0;
  58. switch (Key_Operate)
  59. {
  60. case Key_Advanced_setting:
  61. dis_page_num.display_page = dis_advanced_set;
  62. dis_page_param.Last_device_page_num = dis_air_Conditioning;
  63. break;
  64. case Key_Floor_Heating_Mode:
  65. dis_page_num.display_page = dis_floor_heating;
  66. break;
  67. case Key_Fresh_Air:
  68. dis_page_num.display_page = dis_fresh_air;
  69. break;
  70. case Key_Switch_OnOff:
  71. if (AirCondition_Sheiled_Set())
  72. {
  73. return;
  74. }
  75. dis_page_num.display_page = dis_air_Conditioning;
  76. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  77. dis_page_param.face_plate_param.Air_condition_switch = 0x01;
  78. Control_Save(Data_need_write);
  79. Air_Open_data_Send();
  80. break;
  81. case Key_Lock:
  82. if (dis_page_param.face_plate_param.Lock_screen == 0)
  83. {
  84. dis_page_param.face_plate_param.Lock_screen = 1;
  85. }
  86. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  87. {
  88. dis_page_param.face_plate_param.Lock_screen = 0;
  89. }
  90. *Data_need_write += 1;
  91. break;
  92. default:
  93. break;
  94. }
  95. }
  96. void Key_Handle_air_conditioning_open(u8 *Data_need_write, Key_Operate_t Key_Operate)
  97. {
  98. if (LCD_Lock_operate(Key_Operate))
  99. {
  100. return;
  101. }
  102. dis_page_param.sleep_times = 0;
  103. switch (Key_Operate)
  104. {
  105. case Key_Advanced_setting:
  106. dis_page_num.display_page = dis_advanced_set;
  107. dis_page_param.Last_device_page_num = dis_air_Conditioning;
  108. break;
  109. case Key_Subtract:
  110. if (AirCondition_Sheiled_Set())
  111. {
  112. return;
  113. }
  114. if (dis_page_param.face_plate_param.Air_set_temp > Air_set_temp_Down_limit)
  115. {
  116. if (dis_page_param.face_plate_param.Air_condition_mode != 2)
  117. {
  118. dis_page_param.face_plate_param.Air_set_temp--;
  119. Control_Save(Data_need_write);
  120. Air_set_temp_data_Send();
  121. }
  122. }
  123. break;
  124. case Key_Add:
  125. if (AirCondition_Sheiled_Set())
  126. {
  127. return;
  128. }
  129. if (dis_page_param.face_plate_param.Air_set_temp < Air_set_temp_up_limit)
  130. {
  131. if (dis_page_param.face_plate_param.Air_condition_mode != 2)
  132. {
  133. dis_page_param.face_plate_param.Air_set_temp++;
  134. Control_Save(Data_need_write);
  135. Air_set_temp_data_Send();
  136. }
  137. }
  138. break;
  139. case Key_Mode_Switch:
  140. if (dis_page_param.face_plate_param.Air_condition_mode < 3)
  141. {
  142. dis_page_param.face_plate_param.Air_condition_mode++;
  143. }
  144. else
  145. {
  146. dis_page_param.face_plate_param.Air_condition_mode = 0;
  147. }
  148. /*if(dis_page_param.face_plate_param.Air_condition_mode == 2 && dis_page_param.face_plate_param.Air_wind_speed == 0x0100)
  149. {
  150. dis_page_param.face_plate_param.Air_wind_speed = 0x0001;
  151. }*/
  152. Control_Save(Data_need_write);
  153. Air_Mode_data_Send();
  154. break;
  155. case Key_Wind_Speed:
  156. if (dis_page_param.face_plate_param.Air_wind_speed != 0)
  157. {
  158. if (dis_page_param.face_plate_param.Air_wind_speed < 0x0003)
  159. {
  160. dis_page_param.face_plate_param.Air_wind_speed++;
  161. }
  162. else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0003)
  163. {
  164. if (dis_page_param.face_plate_param.Air_condition_mode == 2)
  165. {
  166. dis_page_param.face_plate_param.Air_wind_speed = 0x0001;
  167. }
  168. else
  169. {
  170. dis_page_param.face_plate_param.Air_wind_speed = 0x0100;
  171. }
  172. }
  173. else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0100)
  174. {
  175. dis_page_param.face_plate_param.Air_wind_speed = 0x0001;
  176. }
  177. Control_Save(Data_need_write);
  178. Air_speed_data_Send();
  179. }
  180. break;
  181. case Key_switch:
  182. dis_page_num.display_page = dis_message_read;
  183. dis_page_param.Last_device_page_num = dis_air_Conditioning;
  184. break;
  185. case Key_Floor_Heating_Mode:
  186. if (FloorHeating_Sheiled_Set())
  187. {
  188. return;
  189. }
  190. dis_page_num.display_page = dis_floor_heating;
  191. break;
  192. case Key_Fresh_Air:
  193. if (AirFresh_Sheiled_Set())
  194. {
  195. return;
  196. }
  197. dis_page_num.display_page = dis_fresh_air;
  198. break;
  199. case Key_Switch_OnOff:
  200. if (AirCondition_Sheiled_Set())
  201. {
  202. return;
  203. }
  204. dis_page_num.display_page = dis_air_Conditioning;
  205. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  206. dis_page_param.face_plate_param.Air_condition_switch = 0x00;
  207. Control_Save(Data_need_write);
  208. Air_Close_data_Send();
  209. break;
  210. case Key_Lock:
  211. if (dis_page_param.face_plate_param.Lock_screen == 0)
  212. {
  213. dis_page_param.face_plate_param.Lock_screen = 1;
  214. }
  215. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  216. {
  217. dis_page_param.face_plate_param.Lock_screen = 0;
  218. }
  219. *Data_need_write += 1;
  220. break;
  221. default:
  222. break;
  223. }
  224. }
  225. void Key_Handle_air_conditioning_sleep(u8 *Data_need_write, Key_Operate_t Key_Operate)
  226. {
  227. if (LCD_Lock_operate(Key_Operate))
  228. {
  229. return;
  230. }
  231. switch (Key_Operate)
  232. {
  233. case Key_Advanced_setting:
  234. dis_page_num.display_page = dis_advanced_set;
  235. dis_page_param.Last_device_page_num = dis_air_Conditioning;
  236. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  237. {
  238. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  239. }
  240. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  241. {
  242. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  243. }
  244. break;
  245. case Key_Subtract:
  246. case Key_Air_Conditioning_Mode:
  247. case Key_Add:
  248. case Key_Mode_Switch:
  249. case Key_Wind_Speed:
  250. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  251. {
  252. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  253. }
  254. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  255. {
  256. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  257. }
  258. break;
  259. case Key_switch:
  260. dis_page_num.display_page = dis_message_read;
  261. dis_page_param.Last_device_page_num = dis_air_Conditioning;
  262. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  263. {
  264. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  265. }
  266. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  267. {
  268. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  269. }
  270. break;
  271. case Key_Floor_Heating_Mode:
  272. if (FloorHeating_Sheiled_Set())
  273. {
  274. return;
  275. }
  276. dis_page_num.display_page = dis_floor_heating;
  277. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  278. {
  279. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  280. }
  281. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  282. {
  283. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  284. }
  285. break;
  286. case Key_Fresh_Air:
  287. if (AirFresh_Sheiled_Set())
  288. {
  289. return;
  290. }
  291. dis_page_num.display_page = dis_fresh_air;
  292. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  293. {
  294. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  295. }
  296. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  297. {
  298. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  299. }
  300. break;
  301. case Key_Switch_OnOff:
  302. if (AirCondition_Sheiled_Set())
  303. {
  304. return;
  305. }
  306. dis_page_num.display_page = dis_air_Conditioning;
  307. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  308. {
  309. dis_page_param.face_plate_param.Air_condition_switch |= 0x01;
  310. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  311. }
  312. else if (dis_page_param.face_plate_param.Air_condition_switch != 0)
  313. {
  314. dis_page_param.face_plate_param.Air_condition_switch &= 0xf0;
  315. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  316. }
  317. Control_Save(Data_need_write);
  318. Air_Open_data_Send();
  319. break;
  320. case Key_Lock:
  321. if (dis_page_param.face_plate_param.Lock_screen == 0)
  322. {
  323. dis_page_param.face_plate_param.Lock_screen = 1;
  324. }
  325. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  326. {
  327. dis_page_param.face_plate_param.Lock_screen = 0;
  328. }
  329. if (dis_page_param.face_plate_param.Air_condition_switch == 0)
  330. {
  331. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close;
  332. }
  333. else if (dis_page_param.face_plate_param.Air_condition_switch == 1)
  334. {
  335. dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open;
  336. }
  337. *Data_need_write += 1;
  338. break;
  339. default:
  340. break;
  341. }
  342. }
  343. void Key_Handle_floor_heating_close(u8 *Data_need_write, Key_Operate_t Key_Operate)
  344. {
  345. if (LCD_Lock_operate(Key_Operate))
  346. {
  347. return;
  348. }
  349. dis_page_param.sleep_times = 0;
  350. switch (Key_Operate)
  351. {
  352. case Key_Advanced_setting:
  353. dis_page_num.display_page = dis_advanced_set;
  354. dis_page_param.Last_device_page_num = dis_floor_heating;
  355. break;
  356. case Key_Air_Conditioning_Mode:
  357. dis_page_num.display_page = dis_air_Conditioning;
  358. break;
  359. case Key_Fresh_Air:
  360. dis_page_num.display_page = dis_fresh_air;
  361. break;
  362. case Key_Switch_OnOff:
  363. if (FloorHeating_Sheiled_Set())
  364. {
  365. return;
  366. }
  367. dis_page_num.display_page = dis_floor_heating;
  368. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  369. dis_page_param.face_plate_param.Floor_heating_switch = 1;
  370. Control_Save(Data_need_write);
  371. Floor_heating_Open_data_Send();
  372. break;
  373. case Key_Lock:
  374. if (dis_page_param.face_plate_param.Lock_screen == 0)
  375. {
  376. dis_page_param.face_plate_param.Lock_screen = 1;
  377. }
  378. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  379. {
  380. dis_page_param.face_plate_param.Lock_screen = 0;
  381. }
  382. *Data_need_write += 1;
  383. break;
  384. default:
  385. break;
  386. }
  387. }
  388. void Key_Handle_floor_heating_open(u8 *Data_need_write, Key_Operate_t Key_Operate)
  389. {
  390. if (LCD_Lock_operate(Key_Operate))
  391. {
  392. return;
  393. }
  394. dis_page_param.sleep_times = 0;
  395. switch (Key_Operate)
  396. {
  397. case Key_Advanced_setting:
  398. dis_page_num.display_page = dis_advanced_set;
  399. dis_page_param.Last_device_page_num = dis_floor_heating;
  400. break;
  401. case Key_Subtract:
  402. if (dis_page_param.face_plate_param.Floor_heating_set_temp > Air_set_temp_Down_limit)
  403. {
  404. dis_page_param.face_plate_param.Floor_heating_set_temp--;
  405. Control_Save(Data_need_write);
  406. Floor_heating_set_temp_data_Send();
  407. }
  408. break;
  409. case Key_Add:
  410. if (dis_page_param.face_plate_param.Floor_heating_set_temp < Air_set_temp_up_limit)
  411. {
  412. dis_page_param.face_plate_param.Floor_heating_set_temp++;
  413. Control_Save(Data_need_write);
  414. Floor_heating_set_temp_data_Send();
  415. }
  416. break;
  417. case Key_Air_Conditioning_Mode:
  418. if (AirCondition_Sheiled_Set())
  419. {
  420. return;
  421. }
  422. dis_page_num.display_page = dis_air_Conditioning;
  423. break;
  424. case Key_Fresh_Air:
  425. if (AirFresh_Sheiled_Set())
  426. {
  427. return;
  428. }
  429. dis_page_num.display_page = dis_fresh_air;
  430. break;
  431. case Key_switch:
  432. dis_page_num.display_page = dis_message_read;
  433. dis_page_param.Last_device_page_num = dis_floor_heating;
  434. break;
  435. case Key_Switch_OnOff:
  436. if (FloorHeating_Sheiled_Set())
  437. {
  438. return;
  439. }
  440. dis_page_num.display_page = dis_floor_heating;
  441. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  442. dis_page_param.face_plate_param.Floor_heating_switch = 0;
  443. Control_Save(Data_need_write);
  444. Floor_heating_Open_data_Send();
  445. break;
  446. case Key_Lock:
  447. if (dis_page_param.face_plate_param.Lock_screen == 0)
  448. {
  449. dis_page_param.face_plate_param.Lock_screen = 1;
  450. }
  451. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  452. {
  453. dis_page_param.face_plate_param.Lock_screen = 0;
  454. }
  455. *Data_need_write += 1;
  456. break;
  457. default:
  458. break;
  459. }
  460. }
  461. void Key_Handle_floor_heating_sleep(u8 *Data_need_write, Key_Operate_t Key_Operate)
  462. {
  463. if (LCD_Lock_operate(Key_Operate))
  464. {
  465. return;
  466. }
  467. switch (Key_Operate)
  468. {
  469. case Key_Advanced_setting:
  470. dis_page_num.display_page = dis_advanced_set;
  471. dis_page_param.Last_device_page_num = dis_floor_heating;
  472. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  473. {
  474. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  475. }
  476. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  477. {
  478. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  479. }
  480. break;
  481. case Key_Subtract:
  482. case Key_Floor_Heating_Mode:
  483. case Key_Add:
  484. case Key_Mode_Switch:
  485. case Key_Wind_Speed:
  486. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  487. {
  488. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  489. }
  490. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  491. {
  492. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  493. }
  494. break;
  495. case Key_switch:
  496. dis_page_num.display_page = dis_message_read;
  497. dis_page_param.Last_device_page_num = dis_floor_heating;
  498. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  499. {
  500. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  501. }
  502. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  503. {
  504. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  505. }
  506. break;
  507. case Key_Air_Conditioning_Mode:
  508. dis_page_num.display_page = dis_air_Conditioning;
  509. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  510. {
  511. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  512. }
  513. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  514. {
  515. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  516. }
  517. break;
  518. case Key_Fresh_Air:
  519. dis_page_num.display_page = dis_fresh_air;
  520. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  521. {
  522. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  523. }
  524. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  525. {
  526. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  527. }
  528. break;
  529. case Key_Switch_OnOff:
  530. if (FloorHeating_Sheiled_Set())
  531. {
  532. return;
  533. }
  534. dis_page_num.display_page = dis_floor_heating;
  535. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  536. {
  537. dis_page_param.face_plate_param.Floor_heating_switch = 1;
  538. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  539. Floor_heating_Open_data_Send();
  540. }
  541. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  542. {
  543. dis_page_param.face_plate_param.Floor_heating_switch = 0;
  544. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  545. Floor_heating_Open_data_Send();
  546. }
  547. Control_Save(Data_need_write);
  548. break;
  549. case Key_Lock:
  550. if (dis_page_param.face_plate_param.Lock_screen == 0)
  551. {
  552. dis_page_param.face_plate_param.Lock_screen = 1;
  553. }
  554. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  555. {
  556. dis_page_param.face_plate_param.Lock_screen = 0;
  557. }
  558. if (dis_page_param.face_plate_param.Floor_heating_switch == 0)
  559. {
  560. dis_page_num.Dis_floor_heating = dis_floor_heating_close;
  561. }
  562. else if (dis_page_param.face_plate_param.Floor_heating_switch == 1)
  563. {
  564. dis_page_num.Dis_floor_heating = dis_floor_heating_open;
  565. }
  566. *Data_need_write += 1;
  567. break;
  568. default:
  569. break;
  570. }
  571. }
  572. void Key_Handle_fresh_air_close(u8 *Data_need_write, Key_Operate_t Key_Operate)
  573. {
  574. if (LCD_Lock_operate(Key_Operate))
  575. {
  576. return;
  577. }
  578. dis_page_param.sleep_times = 0;
  579. printf("uint16_t Key_Operate %d\r\n", Key_Operate);
  580. switch (Key_Operate)
  581. {
  582. case Key_Advanced_setting:
  583. dis_page_num.display_page = dis_advanced_set;
  584. dis_page_param.Last_device_page_num = dis_fresh_air;
  585. break;
  586. case Key_Air_Conditioning_Mode:
  587. dis_page_num.display_page = dis_air_Conditioning;
  588. break;
  589. case Key_Floor_Heating_Mode:
  590. dis_page_num.display_page = dis_floor_heating;
  591. break;
  592. case Key_Switch_OnOff:
  593. if (AirFresh_Sheiled_Set())
  594. {
  595. return;
  596. }
  597. dis_page_num.display_page = dis_fresh_air;
  598. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  599. dis_page_param.face_plate_param.Fresh_air_switch = 1;
  600. Control_Save(Data_need_write);
  601. Fresh_air_Open_data_Send();
  602. break;
  603. case Key_Lock:
  604. if (dis_page_param.face_plate_param.Lock_screen == 0)
  605. /*{
  606. dis_page_param.face_plate_param.Lock_screen = 1;
  607. }
  608. else if(dis_page_param.face_plate_param.Lock_screen == 1)
  609. {
  610. dis_page_param.face_plate_param.Lock_screen = 0;
  611. }
  612. *Data_need_write += 1;*/
  613. break;
  614. default:
  615. break;
  616. }
  617. }
  618. void Key_Handle_fresh_air_open(u8 *Data_need_write, Key_Operate_t Key_Operate)
  619. {
  620. if (LCD_Lock_operate(Key_Operate))
  621. {
  622. return;
  623. }
  624. dis_page_param.sleep_times = 0;
  625. switch (Key_Operate)
  626. {
  627. case Key_Advanced_setting:
  628. // dis_page_num.display_page = dis_advanced_set;
  629. // dis_page_param.Last_device_page_num = dis_fresh_air;
  630. break;
  631. case Key_Wind_Speed:
  632. if (AirFresh_Sheiled_Set())
  633. {
  634. return;
  635. }
  636. if (dis_page_param.face_plate_param.Fresh_air_speed != 0)
  637. {
  638. if (dis_page_param.face_plate_param.Fresh_air_speed < 3)
  639. {
  640. dis_page_param.face_plate_param.Fresh_air_speed++;
  641. (*Data_need_write)++;
  642. }
  643. else
  644. {
  645. dis_page_param.face_plate_param.Fresh_air_speed = 1;
  646. (*Data_need_write)++;
  647. }
  648. Control_Save(Data_need_write);
  649. Fresh_air_speed_data_Send();
  650. }
  651. break;
  652. case Key_switch:
  653. // dis_page_num.display_page = dis_message_read;
  654. // dis_page_param.Last_device_page_num = dis_floor_heating;
  655. break;
  656. case Key_Air_Conditioning_Mode:
  657. dis_page_num.display_page = dis_air_Conditioning;
  658. break;
  659. case Key_Floor_Heating_Mode:
  660. dis_page_num.display_page = dis_floor_heating;
  661. break;
  662. case Key_Switch_OnOff:
  663. if (AirFresh_Sheiled_Set())
  664. {
  665. return;
  666. }
  667. dis_page_num.display_page = dis_fresh_air;
  668. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  669. dis_page_param.face_plate_param.Fresh_air_switch = 0;
  670. Control_Save(Data_need_write);
  671. Fresh_air_Open_data_Send();
  672. break;
  673. case Key_Lock:
  674. /*if(dis_page_param.face_plate_param.Lock_screen == 0)
  675. {
  676. dis_page_param.face_plate_param.Lock_screen = 1;
  677. }
  678. else if(dis_page_param.face_plate_param.Lock_screen == 1)
  679. {
  680. dis_page_param.face_plate_param.Lock_screen = 0;
  681. }
  682. *Data_need_write += 1; */
  683. break;
  684. case Key_Subtract:
  685. if (fuji_or_shuiji == 0)
  686. return;
  687. if (dis_page_param.face_plate_param.Fresh_set_temp > Air_set_temp_Down_limit)
  688. {
  689. dis_page_param.face_plate_param.Fresh_set_temp--;
  690. Control_Save(Data_need_write);
  691. Air_set_temp_data_Send();
  692. }
  693. break;
  694. case Key_Add:
  695. if (fuji_or_shuiji == 0)
  696. return;
  697. if (dis_page_param.face_plate_param.Fresh_set_temp < Air_set_temp_up_limit)
  698. {
  699. dis_page_param.face_plate_param.Fresh_set_temp++;
  700. Control_Save(Data_need_write);
  701. Air_set_temp_data_Send();
  702. }
  703. break;
  704. case Key_Mode_Switch:
  705. if (fuji_or_shuiji == 0)
  706. return;
  707. dis_page_param.face_plate_param.Fresh_condition_mode=!dis_page_param.face_plate_param.Fresh_condition_mode;
  708. Control_Save(Data_need_write);
  709. Air_Mode_data_Send();
  710. break;
  711. default:
  712. break;
  713. }
  714. }
  715. void Key_Handle_fresh_air_sleep(u8 *Data_need_write, Key_Operate_t Key_Operate)
  716. {
  717. if (LCD_Lock_operate(Key_Operate))
  718. {
  719. return;
  720. }
  721. switch (Key_Operate)
  722. {
  723. case Key_Advanced_setting:
  724. dis_page_num.display_page = dis_advanced_set;
  725. dis_page_param.Last_device_page_num = dis_fresh_air;
  726. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  727. {
  728. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  729. }
  730. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  731. {
  732. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  733. }
  734. break;
  735. case Key_Subtract:
  736. case Key_Fresh_Air:
  737. case Key_Add:
  738. case Key_Mode_Switch:
  739. case Key_Wind_Speed:
  740. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  741. {
  742. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  743. }
  744. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  745. {
  746. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  747. }
  748. break;
  749. case Key_switch:
  750. dis_page_num.display_page = dis_message_read;
  751. dis_page_param.Last_device_page_num = dis_fresh_air;
  752. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  753. {
  754. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  755. }
  756. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  757. {
  758. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  759. }
  760. break;
  761. case Key_Air_Conditioning_Mode:
  762. dis_page_num.display_page = dis_air_Conditioning;
  763. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  764. {
  765. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  766. }
  767. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  768. {
  769. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  770. }
  771. break;
  772. case Key_Floor_Heating_Mode:
  773. dis_page_num.display_page = dis_floor_heating;
  774. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  775. {
  776. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  777. }
  778. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  779. {
  780. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  781. }
  782. break;
  783. case Key_Switch_OnOff:
  784. if (AirFresh_Sheiled_Set())
  785. {
  786. return;
  787. }
  788. dis_page_num.display_page = dis_fresh_air;
  789. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  790. {
  791. dis_page_param.face_plate_param.Fresh_air_switch = 1;
  792. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  793. Fresh_air_Open_data_Send();
  794. }
  795. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  796. {
  797. dis_page_param.face_plate_param.Fresh_air_switch = 0;
  798. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  799. Fresh_air_Open_data_Send();
  800. }
  801. Control_Save(Data_need_write);
  802. break;
  803. case Key_Lock:
  804. if (dis_page_param.face_plate_param.Lock_screen == 0)
  805. {
  806. dis_page_param.face_plate_param.Lock_screen = 1;
  807. }
  808. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  809. {
  810. dis_page_param.face_plate_param.Lock_screen = 0;
  811. }
  812. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  813. {
  814. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  815. }
  816. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  817. {
  818. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  819. }
  820. *Data_need_write += 1;
  821. break;
  822. default:
  823. break;
  824. }
  825. }
  826. void Key_Handle_real_time_temp(u8 *Data_need_write, Key_Operate_t Key_Operate)
  827. {
  828. if (LCD_Lock_operate(Key_Operate))
  829. {
  830. return;
  831. }
  832. dis_page_param.Message_sleep_times = 0;
  833. switch (Key_Operate)
  834. {
  835. case Key_Air_Conditioning_Mode:
  836. dis_page_num.display_page = dis_air_Conditioning;
  837. break;
  838. case Key_Floor_Heating_Mode:
  839. dis_page_num.display_page = dis_floor_heating;
  840. break;
  841. case Key_Fresh_Air:
  842. dis_page_num.display_page = dis_fresh_air;
  843. break;
  844. case Key_Advanced_setting:
  845. dis_page_num.display_page = dis_advanced_set;
  846. break;
  847. case Key_switch:
  848. dis_page_num.Dis_message_read = dis_real_time_humidity;
  849. break;
  850. case Key_Lock:
  851. if (dis_page_param.face_plate_param.Lock_screen == 0)
  852. {
  853. dis_page_param.face_plate_param.Lock_screen = 1;
  854. }
  855. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  856. {
  857. dis_page_param.face_plate_param.Lock_screen = 0;
  858. }
  859. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  860. {
  861. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  862. }
  863. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  864. {
  865. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  866. }
  867. *Data_need_write += 1;
  868. default:
  869. break;
  870. }
  871. }
  872. void Key_Handle_real_time_humidity(u8 *Data_need_write, Key_Operate_t Key_Operate)
  873. {
  874. if (LCD_Lock_operate(Key_Operate))
  875. {
  876. return;
  877. }
  878. dis_page_param.Message_sleep_times = 0;
  879. switch (Key_Operate)
  880. {
  881. case Key_Air_Conditioning_Mode:
  882. dis_page_num.display_page = dis_air_Conditioning;
  883. break;
  884. case Key_Floor_Heating_Mode:
  885. dis_page_num.display_page = dis_floor_heating;
  886. break;
  887. case Key_Fresh_Air:
  888. dis_page_num.display_page = dis_fresh_air;
  889. break;
  890. case Key_Advanced_setting:
  891. dis_page_num.display_page = dis_advanced_set;
  892. break;
  893. case Key_switch:
  894. dis_page_num.Dis_message_read = dis_slave_addr;
  895. break;
  896. case Key_Lock:
  897. if (dis_page_param.face_plate_param.Lock_screen == 0)
  898. {
  899. dis_page_param.face_plate_param.Lock_screen = 1;
  900. }
  901. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  902. {
  903. dis_page_param.face_plate_param.Lock_screen = 0;
  904. }
  905. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  906. {
  907. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  908. }
  909. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  910. {
  911. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  912. }
  913. *Data_need_write += 1;
  914. default:
  915. break;
  916. }
  917. }
  918. void Key_Handle_slave_addr(u8 *Data_need_write, Key_Operate_t Key_Operate)
  919. {
  920. if (LCD_Lock_operate(Key_Operate))
  921. {
  922. return;
  923. }
  924. dis_page_param.Message_sleep_times = 0;
  925. switch (Key_Operate)
  926. {
  927. case Key_Air_Conditioning_Mode:
  928. dis_page_num.display_page = dis_air_Conditioning;
  929. break;
  930. case Key_Floor_Heating_Mode:
  931. dis_page_num.display_page = dis_floor_heating;
  932. break;
  933. case Key_Fresh_Air:
  934. dis_page_num.display_page = dis_fresh_air;
  935. break;
  936. case Key_Advanced_setting:
  937. dis_page_num.display_page = dis_advanced_set;
  938. break;
  939. case Key_switch:
  940. dis_page_num.Dis_message_read = dis_real_time_temp;
  941. break;
  942. case Key_Lock:
  943. if (dis_page_param.face_plate_param.Lock_screen == 0)
  944. {
  945. dis_page_param.face_plate_param.Lock_screen = 1;
  946. }
  947. else if (dis_page_param.face_plate_param.Lock_screen == 1)
  948. {
  949. dis_page_param.face_plate_param.Lock_screen = 0;
  950. }
  951. if (dis_page_param.face_plate_param.Fresh_air_switch == 0)
  952. {
  953. dis_page_num.Dis_fresh_air = dis_fresh_air_close;
  954. }
  955. else if (dis_page_param.face_plate_param.Fresh_air_switch == 1)
  956. {
  957. dis_page_num.Dis_fresh_air = dis_fresh_air_open;
  958. }
  959. *Data_need_write += 1;
  960. default:
  961. break;
  962. }
  963. }
  964. void Key_Handle_compensates_temp_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  965. {
  966. if (LCD_Lock_operate(Key_Operate))
  967. {
  968. return;
  969. }
  970. dis_page_param.advanced_setting_time = 0;
  971. switch (Key_Operate)
  972. {
  973. case Key_Subtract:
  974. {
  975. if (dis_page_param.advanced_param.compensates_temp_wei == 0)
  976. {
  977. dis_page_param.advanced_param.compensates_temp_wei = 1;
  978. }
  979. else
  980. {
  981. dis_page_param.advanced_param.compensates_temp_wei = 0;
  982. }
  983. }
  984. break;
  985. case Key_Add:
  986. {
  987. if (dis_page_param.advanced_param.compensates_temp_wei == 0)
  988. {
  989. if (dis_page_param.face_plate_param.Compensates_temp == 0)
  990. {
  991. if (dis_page_param.advanced_param.compensates_temp_character == 0)
  992. {
  993. dis_page_param.advanced_param.compensates_temp_character = 1;
  994. }
  995. else if (dis_page_param.advanced_param.compensates_temp_character == 1)
  996. {
  997. dis_page_param.advanced_param.compensates_temp_character = 0;
  998. }
  999. }
  1000. else if (dis_page_param.face_plate_param.Compensates_temp < 0)
  1001. {
  1002. dis_page_param.advanced_param.compensates_temp_character = 0;
  1003. dis_page_param.face_plate_param.Compensates_temp = -dis_page_param.face_plate_param.Compensates_temp;
  1004. (*Data_need_write)++;
  1005. }
  1006. else if (dis_page_param.face_plate_param.Compensates_temp > 0)
  1007. {
  1008. dis_page_param.advanced_param.compensates_temp_character = 1;
  1009. dis_page_param.face_plate_param.Compensates_temp = -dis_page_param.face_plate_param.Compensates_temp;
  1010. (*Data_need_write)++;
  1011. }
  1012. }
  1013. if (dis_page_param.advanced_param.compensates_temp_wei == 1)
  1014. {
  1015. if (dis_page_param.face_plate_param.Compensates_temp == 0)
  1016. {
  1017. if (dis_page_param.advanced_param.compensates_temp_character == 0)
  1018. {
  1019. dis_page_param.face_plate_param.Compensates_temp = 1;
  1020. }
  1021. else if (dis_page_param.advanced_param.compensates_temp_character == 1)
  1022. {
  1023. dis_page_param.face_plate_param.Compensates_temp = -1;
  1024. }
  1025. }
  1026. else if (dis_page_param.face_plate_param.Compensates_temp < 0)
  1027. {
  1028. if (dis_page_param.face_plate_param.Compensates_temp >= -9)
  1029. {
  1030. dis_page_param.face_plate_param.Compensates_temp--;
  1031. }
  1032. else
  1033. {
  1034. dis_page_param.face_plate_param.Compensates_temp = 0;
  1035. }
  1036. (*Data_need_write)++;
  1037. }
  1038. else if (dis_page_param.face_plate_param.Compensates_temp > 0)
  1039. {
  1040. if (dis_page_param.face_plate_param.Compensates_temp <= 0x09)
  1041. {
  1042. dis_page_param.face_plate_param.Compensates_temp++;
  1043. }
  1044. else
  1045. {
  1046. dis_page_param.face_plate_param.Compensates_temp = 0;
  1047. }
  1048. (*Data_need_write)++;
  1049. }
  1050. }
  1051. }
  1052. break;
  1053. case Key_Mode_Switch:
  1054. dis_page_num.Dis_advanced_set = dis_slave_addr_set;
  1055. break;
  1056. case Key_Wind_Speed:
  1057. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1058. break;
  1059. default:
  1060. break;
  1061. }
  1062. }
  1063. void Key_Handle_slave_addr_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1064. {
  1065. if (LCD_Lock_operate(Key_Operate))
  1066. {
  1067. return;
  1068. }
  1069. dis_page_param.advanced_setting_time = 0;
  1070. switch (Key_Operate)
  1071. {
  1072. case Key_Subtract:
  1073. {
  1074. if (dis_page_param.advanced_param.slave_addr_wei == 0)
  1075. {
  1076. dis_page_param.advanced_param.slave_addr_wei = 1;
  1077. }
  1078. else
  1079. {
  1080. dis_page_param.advanced_param.slave_addr_wei = 0;
  1081. }
  1082. }
  1083. break;
  1084. case Key_Add:
  1085. {
  1086. if (dis_page_param.advanced_param.slave_addr_wei == 0)
  1087. {
  1088. if ((dis_page_param.face_plate_param.Device_Slave_addr & 0xf) < 0x0f)
  1089. {
  1090. dis_page_param.face_plate_param.Device_Slave_addr += 1;
  1091. (*Data_need_write)++;
  1092. }
  1093. else if ((dis_page_param.face_plate_param.Device_Slave_addr & 0xf) >= 0x0f)
  1094. {
  1095. dis_page_param.face_plate_param.Device_Slave_addr &= 0xf0;
  1096. (*Data_need_write)++;
  1097. }
  1098. }
  1099. else if (dis_page_param.advanced_param.slave_addr_wei == 1)
  1100. {
  1101. if ((dis_page_param.face_plate_param.Device_Slave_addr & 0xf0) < 0xf0)
  1102. {
  1103. dis_page_param.face_plate_param.Device_Slave_addr += 0x10;
  1104. (*Data_need_write)++;
  1105. }
  1106. else if ((dis_page_param.face_plate_param.Device_Slave_addr & 0xf0) >= 0xf0)
  1107. {
  1108. dis_page_param.face_plate_param.Device_Slave_addr &= 0x0f;
  1109. (*Data_need_write)++;
  1110. }
  1111. }
  1112. }
  1113. break;
  1114. case Key_Mode_Switch:
  1115. dis_page_num.Dis_advanced_set = dis_led_brightness_set;
  1116. break;
  1117. case Key_Wind_Speed:
  1118. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1119. break;
  1120. default:
  1121. break;
  1122. }
  1123. }
  1124. void Key_Handle_led_brightness_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1125. {
  1126. if (LCD_Lock_operate(Key_Operate))
  1127. {
  1128. return;
  1129. }
  1130. dis_page_param.advanced_setting_time = 0;
  1131. switch (Key_Operate)
  1132. {
  1133. case Key_Subtract:
  1134. {
  1135. if (dis_page_param.advanced_param.led_brightness_wei == 0)
  1136. {
  1137. dis_page_param.advanced_param.led_brightness_wei = 1;
  1138. }
  1139. else
  1140. {
  1141. dis_page_param.advanced_param.led_brightness_wei = 0;
  1142. }
  1143. }
  1144. break;
  1145. case Key_Add:
  1146. {
  1147. if (dis_page_param.advanced_param.led_brightness_wei == 0)
  1148. {
  1149. uint16_t Low_value = dis_page_param.face_plate_param.Led_Brightness & 0x0f00;
  1150. if (Low_value == 0x0100)
  1151. {
  1152. dis_page_param.face_plate_param.Led_Brightness &= 0x00FF;
  1153. (*Data_need_write)++;
  1154. }
  1155. else if (Low_value == 0x0000)
  1156. {
  1157. dis_page_param.face_plate_param.Led_Brightness |= 0x0100;
  1158. (*Data_need_write)++;
  1159. }
  1160. }
  1161. else if (dis_page_param.advanced_param.led_brightness_wei == 1)
  1162. {
  1163. uint16_t Hight_value = dis_page_param.face_plate_param.Led_Brightness & 0x000f;
  1164. if (Hight_value < 0x06)
  1165. {
  1166. dis_page_param.face_plate_param.Led_Brightness += 1;
  1167. (*Data_need_write)++;
  1168. }
  1169. else if (Hight_value >= 0x06)
  1170. {
  1171. dis_page_param.face_plate_param.Led_Brightness &= 0x0F00;
  1172. dis_page_param.face_plate_param.Led_Brightness |= 0x0001;
  1173. (*Data_need_write)++;
  1174. }
  1175. }
  1176. }
  1177. break;
  1178. case Key_Mode_Switch:
  1179. dis_page_num.Dis_advanced_set = dis_sleep_time_set;
  1180. break;
  1181. case Key_Wind_Speed:
  1182. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1183. break;
  1184. default:
  1185. break;
  1186. }
  1187. }
  1188. void Key_Handle_sleep_time_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1189. {
  1190. if (LCD_Lock_operate(Key_Operate))
  1191. {
  1192. return;
  1193. }
  1194. dis_page_param.advanced_setting_time = 0;
  1195. switch (Key_Operate)
  1196. {
  1197. case Key_Add:
  1198. {
  1199. if (dis_page_param.face_plate_param.Sleep_time_addr < 5)
  1200. {
  1201. dis_page_param.face_plate_param.Sleep_time_addr += 1;
  1202. (*Data_need_write)++;
  1203. }
  1204. else if (dis_page_param.face_plate_param.Sleep_time_addr == 5)
  1205. {
  1206. dis_page_param.face_plate_param.Sleep_time_addr = 0x0f;
  1207. (*Data_need_write)++;
  1208. }
  1209. else if (dis_page_param.face_plate_param.Sleep_time_addr == 0x0f)
  1210. {
  1211. dis_page_param.face_plate_param.Sleep_time_addr = 0;
  1212. (*Data_need_write)++;
  1213. }
  1214. }
  1215. break;
  1216. case Key_Mode_Switch:
  1217. dis_page_num.Dis_advanced_set = dis_LowTempProtect_set;
  1218. break;
  1219. case Key_Wind_Speed:
  1220. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1221. break;
  1222. default:
  1223. break;
  1224. }
  1225. }
  1226. void Key_Handle_LowTempProtect_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1227. {
  1228. if (LCD_Lock_operate(Key_Operate))
  1229. {
  1230. return;
  1231. }
  1232. dis_page_param.advanced_setting_time = 0;
  1233. switch (Key_Operate)
  1234. {
  1235. case Key_Add:
  1236. {
  1237. if (dis_page_param.face_plate_param.Ltemp_Protection_valve < 5)
  1238. {
  1239. dis_page_param.face_plate_param.Ltemp_Protection_valve += 1;
  1240. (*Data_need_write)++;
  1241. }
  1242. else if (dis_page_param.face_plate_param.Ltemp_Protection_valve == 5)
  1243. {
  1244. dis_page_param.face_plate_param.Ltemp_Protection_valve = 0x0f;
  1245. (*Data_need_write)++;
  1246. }
  1247. else if (dis_page_param.face_plate_param.Ltemp_Protection_valve == 0x0f)
  1248. {
  1249. dis_page_param.face_plate_param.Ltemp_Protection_valve = 0;
  1250. (*Data_need_write)++;
  1251. }
  1252. }
  1253. break;
  1254. case Key_Mode_Switch:
  1255. dis_page_num.Dis_advanced_set = dis_HeatingProtect_set;
  1256. break;
  1257. case Key_Wind_Speed:
  1258. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1259. break;
  1260. default:
  1261. break;
  1262. }
  1263. }
  1264. void Key_Handle_HeatingProtect_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1265. {
  1266. if (LCD_Lock_operate(Key_Operate))
  1267. {
  1268. return;
  1269. }
  1270. dis_page_param.advanced_setting_time = 0;
  1271. switch (Key_Operate)
  1272. {
  1273. case Key_Add:
  1274. {
  1275. if (dis_page_param.face_plate_param.Floor_Heating_Protecton_value < 5)
  1276. {
  1277. dis_page_param.face_plate_param.Floor_Heating_Protecton_value += 1;
  1278. (*Data_need_write)++;
  1279. }
  1280. else if (dis_page_param.face_plate_param.Floor_Heating_Protecton_value >= 5)
  1281. {
  1282. dis_page_param.face_plate_param.Floor_Heating_Protecton_value = 0x01;
  1283. (*Data_need_write)++;
  1284. }
  1285. }
  1286. break;
  1287. case Key_Mode_Switch:
  1288. dis_page_num.Dis_advanced_set = dis_lcd_brightness_set;
  1289. break;
  1290. case Key_Wind_Speed:
  1291. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1292. break;
  1293. default:
  1294. break;
  1295. }
  1296. }
  1297. void Key_Handle_lcd_brightness_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1298. {
  1299. if (LCD_Lock_operate(Key_Operate))
  1300. {
  1301. return;
  1302. }
  1303. dis_page_param.advanced_setting_time = 0;
  1304. switch (Key_Operate)
  1305. {
  1306. case Key_Add:
  1307. {
  1308. if (dis_page_param.face_plate_param.Env_Light < 7)
  1309. {
  1310. dis_page_param.face_plate_param.Env_Light += 1;
  1311. (*Data_need_write)++;
  1312. }
  1313. else if (dis_page_param.face_plate_param.Env_Light >= 7)
  1314. {
  1315. dis_page_param.face_plate_param.Env_Light = 0x01;
  1316. (*Data_need_write)++;
  1317. }
  1318. }
  1319. break;
  1320. case Key_Mode_Switch:
  1321. dis_page_num.Dis_advanced_set = dis_speed_relay_set;
  1322. break;
  1323. case Key_Wind_Speed:
  1324. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1325. break;
  1326. default:
  1327. break;
  1328. }
  1329. }
  1330. void Key_Handle_speed_relay_set(u8 *Data_need_write, Key_Operate_t Key_Operate)
  1331. {
  1332. if (LCD_Lock_operate(Key_Operate))
  1333. {
  1334. return;
  1335. }
  1336. dis_page_param.advanced_setting_time = 0;
  1337. switch (Key_Operate)
  1338. {
  1339. case Key_Add:
  1340. {
  1341. if (dis_page_param.face_plate_param.Speed_Relay == 0)
  1342. {
  1343. dis_page_param.face_plate_param.Speed_Relay = 1;
  1344. (*Data_need_write)++;
  1345. }
  1346. else if (dis_page_param.face_plate_param.Speed_Relay == 1)
  1347. {
  1348. dis_page_param.face_plate_param.Speed_Relay = 0;
  1349. (*Data_need_write)++;
  1350. }
  1351. }
  1352. break;
  1353. case Key_Mode_Switch:
  1354. dis_page_num.Dis_advanced_set = dis_compensates_temp_set;
  1355. break;
  1356. case Key_Wind_Speed:
  1357. dis_page_num.display_page = dis_page_param.Last_device_page_num;
  1358. break;
  1359. default:
  1360. break;
  1361. }
  1362. }