123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- #include "key_proc.h"
- #include "key.h"
- #include "FreeRTOS.h"
- #include "task.h"
- #include "led_task.h"
- #include "lcd_task.h"
- #include "All_define.h"
- #include "MB_RTU_deal_task.h"
- #include <SIM_EEPROM.h>
- #include "modbus.h"
- #include "key_operate.h"
- #include "system.h"
- #include "led.h"
- #include "protocol.h"
- extern uint8_t AirCondition_Sheiled_Set(void);
- extern uint8_t FloorHeating_Sheiled_Set(void);
- extern uint8_t AirFresh_Sheiled_Set(void);
- extern void mcu_join_zigbee(void);
- u16 SaveData[32] = {0};
- typedef enum
- {
- USER_BUTTON_1 = 0,
- USER_BUTTON_2 = 1,
- USER_BUTTON_3 = 2,
- USER_BUTTON_4 = 3,
- USER_BUTTON_5 = 4,
- USER_BUTTON_6 = 5,
- USER_BUTTON_7 = 6,
- USER_BUTTON_8 = 7,
- USER_BUTTON_MAX
- } user_button_t;
- static flex_button_t user_button[USER_BUTTON_MAX] = {0};
- static uint8_t common_btn_read(void *arg)
- {
- flex_button_t *btn = (flex_button_t *)arg;
- return Get_key_value(btn->id);
- }
- void LCD_key_handle(Key_Operate_t key, Zigbee_cmd zigbee_cmd_control)
- {
- printf("dis_page_param.face_plate_param.Panel_Shield %d\r\n", dis_page_param.face_plate_param.Panel_Shield);
- printf("key %d\r\n", key);
- u8 Data_need_write = 0;
- if (AirCondition_Sheiled_Set())
- {
- if (key == Key_Air_Conditioning_Mode)
- return;
- }
- if (FloorHeating_Sheiled_Set())
- {
- if (key == Key_Floor_Heating_Mode)
- return;
- }
- if (AirFresh_Sheiled_Set())
- {
- if (key == Key_Fresh_Air)
- return;
- }
- printf("dis_page_num.display_page %d\r\n", dis_page_num.display_page);
- switch (dis_page_num.display_page)
- {
- case dis_switch_interface:
- break;
- case dis_device_open:
- break;
- case dis_air_Conditioning:
- {
- printf("dis_page_num.Dis_air_Conditionin %d\r\n", dis_page_num.Dis_air_Conditioning);
- switch (dis_page_num.Dis_air_Conditioning)
- {
- case dis_air_Conditioning_close:
- Key_Handle_air_conditioning_close(&Data_need_write, key);
- break;
- case dis_air_Conditioning_open:
- Key_Handle_air_conditioning_open(&Data_need_write, key);
- break;
- case dis_air_Conditioning_sleep:
- Key_Handle_air_conditioning_sleep(&Data_need_write, key);
- break;
- default:
- break;
- }
- }
- break;
- case dis_floor_heating:
- {
- switch (dis_page_num.Dis_floor_heating)
- {
- case dis_floor_heating_close:
- Key_Handle_floor_heating_close(&Data_need_write, key);
- break;
- case dis_floor_heating_open:
- Key_Handle_floor_heating_open(&Data_need_write, key);
- break;
- case dis_floor_heating_sleep:
- Key_Handle_floor_heating_sleep(&Data_need_write, key);
- break;
- default:
- break;
- }
- }
- break;
- case dis_fresh_air:
- {
- switch (dis_page_num.Dis_fresh_air)
- {
- case dis_fresh_air_close:
- Key_Handle_fresh_air_close(&Data_need_write, key);
- break;
- case dis_fresh_air_open:
- Key_Handle_fresh_air_open(&Data_need_write, key);
- break;
- case dis_fresh_air_sleep:
- Key_Handle_fresh_air_sleep(&Data_need_write, key);
- break;
- default:
- break;
- }
- }
- break;
- case dis_new_air_Conditioning:
- {
- }
- break;
- case dis_message_read:
- {
- /*switch(dis_page_num.Dis_message_read)
- {
- case dis_real_time_temp:
- Key_Handle_real_time_temp(&Data_need_write,key);
- break;
- case dis_real_time_humidity:
- Key_Handle_real_time_humidity(&Data_need_write,key);
- break;
- case dis_slave_addr:
- Key_Handle_slave_addr(&Data_need_write,key);
- break;
- default:
- break;
- } */
- }
- break;
- case dis_advanced_set:
- {
- /*switch(dis_page_num.Dis_advanced_set)
- {
- case dis_compensates_temp_set:
- Key_Handle_compensates_temp_set(&Data_need_write,key);
- break;
- case dis_slave_addr_set:
- Key_Handle_slave_addr_set(&Data_need_write,key);
- break;
- case dis_led_brightness_set:
- Key_Handle_led_brightness_set(&Data_need_write,key);
- break;
- case dis_sleep_time_set:
- Key_Handle_sleep_time_set(&Data_need_write,key);
- break;
- case dis_LowTempProtect_set:
- Key_Handle_LowTempProtect_set(&Data_need_write,key);
- break;
- case dis_HeatingProtect_set:
- Key_Handle_HeatingProtect_set(&Data_need_write,key);
- break;
- case dis_lcd_brightness_set:
- Key_Handle_lcd_brightness_set(&Data_need_write,key);
- break;
- case dis_speed_relay_set:
- Key_Handle_speed_relay_set(&Data_need_write,key);
- break;
- default:
- break;
- } */
- }
- break;
- default:
- break;
- }
- if (zigbee_cmd.Is_zigbee_cmd == 0)
- all_data_update();
- if (Data_need_write >= 1)
- {
- xTaskNotify((TaskHandle_t)LEDTask_Handler,
- (uint32_t)Need_Write,
- (eNotifyAction)eSetBits);
- }
- }
- int i = 0;
- static void common_btn_evt_cb(void *arg)
- {
- #if 1
- Key_Operate_t key_value = Key_None;
- static u8 key1_flag = 0, key2_flag = 0, key3_flag = 0, key4_flag = 0, key5_flag = 0, key6_flag = 0, key7_flag = 0, key8_flag = 0;
- flex_button_t *btn = (flex_button_t *)arg;
- switch (btn->id)
- {
- case USER_BUTTON_1:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_8]) == FLEX_BTN_PRESS_NONE)
- {
- key1_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_8]) == FLEX_BTN_PRESS_NONE && key1_flag == 1)
- {
- key1_flag = 0;
- key_value = Key_Subtract;
- }
- break;
- case USER_BUTTON_2:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_7]) == FLEX_BTN_PRESS_NONE)
- {
- key2_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_7]) == FLEX_BTN_PRESS_NONE && key2_flag == 1)
- {
- key2_flag = 0;
- if (fuji_or_shuiji == 0)
- key_value = Key_Air_Conditioning_Mode;
- printf("Key_Air_Conditioning_Mode\r\n");
- }
- break;
- case USER_BUTTON_3:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_6]) == FLEX_BTN_PRESS_NONE)
- {
- key3_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_6]) == FLEX_BTN_PRESS_NONE && key3_flag == 1)
- {
- key3_flag = 0;
- key_value = Key_Floor_Heating_Mode;
- }
- break;
- case USER_BUTTON_4:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_5]) == FLEX_BTN_PRESS_NONE)
- {
- key4_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_5]) == FLEX_BTN_PRESS_NONE && key4_flag == 1)
- {
- key4_flag = 0;
- key_value = Key_switch;
- }
- break;
- case USER_BUTTON_5:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_4]) == FLEX_BTN_PRESS_NONE)
- {
- key5_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_4]) == FLEX_BTN_PRESS_NONE && key5_flag == 1)
- {
- key5_flag = 0;
- key_value = Key_Wind_Speed;
- }
- break;
- case USER_BUTTON_6:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_3]) == FLEX_BTN_PRESS_NONE)
- {
- key6_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_3]) == FLEX_BTN_PRESS_NONE && key6_flag == 1)
- {
- key6_flag = 0;
- key_value = Key_Mode_Switch;
- }
- break;
- case USER_BUTTON_7:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_2]) == FLEX_BTN_PRESS_NONE)
- {
- key7_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_2]) == FLEX_BTN_PRESS_NONE && key7_flag == 1)
- {
- key7_flag = 0;
- key_value = Key_Fresh_Air;
- }
- break;
- case USER_BUTTON_8:
- if (btn->event == FLEX_BTN_PRESS_SHORT_START && flex_button_event_read(&user_button[USER_BUTTON_1]) == FLEX_BTN_PRESS_NONE)
- {
- key8_flag = 1;
- }
- if (btn->event == FLEX_BTN_PRESS_SHORT_UP && flex_button_event_read(&user_button[USER_BUTTON_1]) == FLEX_BTN_PRESS_NONE && key8_flag == 1)
- {
- key8_flag = 0;
- key_value = Key_Add;
- }
- break;
- default:
- break;
- }
- if (btn->id == USER_BUTTON_4 && btn->event == FLEX_BTN_PRESS_LONG_START)
- {
- key_value = Key_Switch_OnOff;
- printf("Key_Switch_OnOff\r\n");
- }
- if (flex_button_event_read(&user_button[USER_BUTTON_7]) == FLEX_BTN_PRESS_LONG_START && flex_button_event_read(&user_button[USER_BUTTON_2]) == FLEX_BTN_PRESS_LONG_START)
- {
- fuji_or_shuiji = !fuji_or_shuiji;
- printf("fuji_or_shuiji %d\r\n",fuji_or_shuiji);
- // key_value = Key_Advanced_setting;
- }
- if (btn->id == USER_BUTTON_5 && btn->event == FLEX_BTN_PRESS_LONG_HOLD_10000)
- {
- // product_info_update();
- mcu_join_zigbee();
- Is_blink = 1;
- Zigbee_led_blink();
- // printf("into peiwang\r\n");
- }
- zigbee_cmd.Is_zigbee_cmd = 0;
- LCD_key_handle(key_value, zigbee_cmd);
- #endif
- }
- void user_button_init(void)
- {
- int i;
- KEY_Init();
- for (i = 0; i < USER_BUTTON_MAX; i++)
- {
- user_button[i].id = i;
- user_button[i].usr_button_read = common_btn_read;
- user_button[i].cb = common_btn_evt_cb;
- user_button[i].pressed_logic_level = 0;
- user_button[i].short_press_start_tick = FLEX_MS_TO_SCAN_CNT(30);
- user_button[i].long_press_start_tick = FLEX_MS_TO_SCAN_CNT(2000);
- user_button[i].long_hold_start_tick = FLEX_MS_TO_SCAN_CNT(5000);
- user_button[i].long_hold_start_tick_10000 = FLEX_MS_TO_SCAN_CNT(10000);
- if (i == 1 || i == 6)
- {
- user_button[i].long_press_start_tick = FLEX_MS_TO_SCAN_CNT(3000);
- }
- flex_button_register(&user_button[i]);
- }
- }
|