#include "lcd_task.h" #include "HT16C22.h" #include "SHT2x.h" #include "pwm.h" #include "key.h" #include "led.h" #include "All_define.h" #include "MB_RTU_deal_task.h" #include "mcu_api.h" #include "protocol.h" #include "mcu_api.h" #include "system.h" float Temp = 25; float Humi = 60; Dis_page_num dis_page_num; Dis_page_param dis_page_param; void display_device_open(void) { Animation(); ht16c22_clear(); } void display_air_Conditioning_close(void) { ZE_ON; DU_OFF; } void display_air_Conditioning_open(void) { u16 temp1 = 0; ZE_ON; if (dis_page_param.face_plate_param.Air_condition_mode == 0) { ZR_OFF; CS_OFF; ZL_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 1) { ZL_OFF; CS_OFF; ZR_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 2) { ZL_OFF; CS_ON; ZR_OFF; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 3) { ZL_OFF; CS_OFF; ZR_OFF; FS_ON; } if (dis_page_param.face_plate_param.Air_wind_speed == 0x0001) { LW_ON; MW_OFF; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0002) { LW_ON; MW_ON; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0003) { LW_ON; MW_ON; HW_ON; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0100) { LW_ON; MW_ON; HW_ON; AUTO_ON; } // FS_ON; // if(dis_page_param.face_plate_param.Air_condition_mode == 2) //{ // temp1 = 230; //} // else //{ temp1 = (u16)(dis_page_param.face_plate_param.Air_set_temp * 10); //} Display_temp(temp1, 0); DU_ON; } void display_air_Conditioning_sleep(void) { if (dis_page_param.face_plate_param.Air_condition_mode == 0) { ZR_OFF; CS_OFF; ZL_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 1) { ZL_OFF; CS_OFF; ZR_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 2) { ZL_OFF; CS_ON; ZR_OFF; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 3) { ZL_OFF; CS_OFF; ZR_OFF; FS_ON; } if (dis_page_param.face_plate_param.Air_wind_speed == 0x0001) { LW_ON; MW_OFF; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0002) { LW_ON; MW_ON; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0003) { LW_ON; MW_ON; HW_ON; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0100) { LW_ON; MW_ON; HW_ON; AUTO_ON; } // FS_ON; int16_t temp1 = (int16_t)(dis_page_param.face_plate_param.Real_time_Temp); Display_temp(temp1, 1); static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } if (delay_flag) { DU_ON; } else if (!delay_flag) { // DU_OFF; } } void display_floor_heating_close(void) { ZS_ON; } void display_floor_heating_open(void) { ZS_ON; u16 temp1 = (u16)(dis_page_param.face_plate_param.Floor_heating_set_temp * 10); Display_temp(temp1, 0); DU_ON; } void display_floor_heating_sleep(void) { ZS_ON; int16_t temp1 = (int16_t)(dis_page_param.face_plate_param.Real_time_Temp); Display_temp(temp1, 1); static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } if (delay_flag) { DU_ON; } else if (!delay_flag) { // DU_OFF; } } void display_fresh_air_close(void) { ZY_ON; } void display_fresh_air_open(void) { ZY_ON; if (dis_page_param.face_plate_param.Fresh_air_speed == 1) { LW_ON; MW_OFF; HW_OFF; // AUTO_OFF; } else if (dis_page_param.face_plate_param.Fresh_air_speed == 2) { LW_ON; MW_ON; HW_OFF; // AUTO_OFF; } else if (dis_page_param.face_plate_param.Fresh_air_speed == 3) { LW_ON; MW_ON; HW_ON; // AUTO_OFF; } if (fuji_or_shuiji == 1) { if (dis_page_param.face_plate_param.Fresh_condition_mode == 0) { ZR_OFF; CS_OFF; ZL_ON; FS_OFF; } if (dis_page_param.face_plate_param.Fresh_condition_mode == 1) { ZL_OFF; CS_OFF; ZR_ON; FS_OFF; } Display_temp((u16)(dis_page_param.face_plate_param.Fresh_set_temp * 10), 0); DU_ON; } // FS_ON; Dis_letter(1, 7); Dis_letter(2, 7); Dis_letter(3, 7); Dis_letter(4, 7); } void display_fresh_air_sleep(void) { ZY_ON; if (dis_page_param.face_plate_param.Fresh_air_speed == 1) { LW_ON; MW_OFF; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Fresh_air_speed == 2) { LW_ON; MW_ON; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Fresh_air_speed == 3) { LW_ON; MW_ON; HW_ON; AUTO_OFF; } // FS_ON; int16_t temp1 = (int16_t)(dis_page_param.face_plate_param.Real_time_Temp); Display_temp(temp1, 1); static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } if (delay_flag) { DU_ON; } else if (!delay_flag) { // DU_OFF; } } void display_real_time_temp(void) { if (dis_page_param.face_plate_param.Air_condition_switch == 1) { printf("dis_page_param.face_plate_param.Air_condition_switch == 1"); ZE_ON; if (dis_page_param.face_plate_param.Air_condition_mode == 0) { ZR_OFF; CS_OFF; ZL_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 1) { ZL_OFF; CS_OFF; ZR_ON; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 2) { ZL_OFF; CS_ON; ZR_OFF; FS_OFF; } else if (dis_page_param.face_plate_param.Air_condition_mode == 3) { ZL_OFF; CS_OFF; ZR_OFF; FS_ON; } if (dis_page_param.face_plate_param.Air_wind_speed == 0x0001) { LW_ON; MW_OFF; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0002) { LW_ON; MW_ON; HW_OFF; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0003) { LW_ON; MW_ON; HW_ON; AUTO_OFF; } else if (dis_page_param.face_plate_param.Air_wind_speed == 0x0100) { LW_ON; MW_ON; HW_ON; AUTO_ON; } } int16_t temp1 = (int16_t)(dis_page_param.face_plate_param.Real_time_Temp); Display_temp(temp1, 1); static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } if (delay_flag) { DU_ON; } else if (!delay_flag) { DU_OFF; } } void display_real_time_humidity(void) { Dis_hum(dis_page_param.face_plate_param.Real_time_Humi); static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } if (delay_flag) { RH_ON; } else if (!delay_flag) { RH_OFF; } } void display_slave_addr(void) { u8 EI, EE; EE = (u8)(dis_page_param.face_plate_param.Device_Slave_addr & 0x0f); EI = (u8)((dis_page_param.face_plate_param.Device_Slave_addr & 0xf0) >> 4); Dis_letter(1, 0); Dis_letter(2, 7); EI > 9 ? Dis_letter(3, EI - 10) : Display_num(3, EI); EE > 9 ? Dis_letter(4, EE - 10) : Display_num(4, EE); } void display_compensates_temp_set(void) { static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } u8 II = 0; u8 IE = 0; if (dis_page_param.face_plate_param.Compensates_temp == 0) { if (dis_page_param.advanced_param.compensates_temp_character == 1) { II = 7; } else if (dis_page_param.advanced_param.compensates_temp_character == 0) { II = 0; } IE = 0; } else { if (dis_page_param.advanced_param.compensates_temp_character == 1) { II = 7; IE = abs(dis_page_param.face_plate_param.Compensates_temp); } else if (dis_page_param.advanced_param.compensates_temp_character == 0) { II = 0; IE = dis_page_param.face_plate_param.Compensates_temp; } } if (dis_page_param.advanced_param.compensates_temp_wei == 0) { if (delay_flag) { if (II == 0) Display_num(1, II); if (II == 7) Dis_letter(1, II); Display_num(2, IE); Display_num(3, 0); Dis_letter(4, 2); DH_ON; DU_ON; } if (!delay_flag) { Dis_letter(1, 8); Display_num(2, IE); Display_num(3, 0); Dis_letter(4, 2); DH_ON; DU_ON; } } if (dis_page_param.advanced_param.compensates_temp_wei == 1) { if (delay_flag) { if (II == 0) Display_num(1, II); if (II == 7) Dis_letter(1, II); Display_num(2, IE); Display_num(3, 0); Dis_letter(4, 2); DH_ON; DU_ON; } if (!delay_flag) { if (II == 0) Display_num(1, II); if (II == 7) Dis_letter(1, II); Dis_letter(2, 8); Display_num(3, 0); Dis_letter(4, 2); DH_ON; DU_ON; } } } void display_slave_addr_set(void) { static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } Dis_letter(1, 0); Dis_letter(2, 7); u8 EE = dis_page_param.face_plate_param.Device_Slave_addr & 0x0f; u8 EI = (dis_page_param.face_plate_param.Device_Slave_addr & 0xf0) >> 4; if (dis_page_param.advanced_param.slave_addr_wei == 1) { if (delay_flag) { EI > 9 ? Dis_letter(3, EI - 10) : Display_num(3, EI); EE > 9 ? Dis_letter(4, EE - 10) : Display_num(4, EE); } if (!delay_flag) { Dis_letter(3, 8); EE > 9 ? Dis_letter(4, EE - 10) : Display_num(4, EE); } } else if (dis_page_param.advanced_param.slave_addr_wei == 0) { if (delay_flag) { EI > 9 ? Dis_letter(3, EI - 10) : Display_num(3, EI); EE > 9 ? Dis_letter(4, EE - 10) : Display_num(4, EE); }; if (!delay_flag) { EI > 9 ? Dis_letter(3, EI - 10) : Display_num(3, EI); Dis_letter(4, 8); } } } void display_led_brightness_set(void) { static u16 delay_time = 0; static u8 delay_flag = 0; if (delay_time++ >= 50) { delay_flag = ~delay_flag; delay_time = 0; } u8 SI = 0, SE = 0; SE = (dis_page_param.face_plate_param.Led_Brightness & 0x0F00) >> 8; SI = dis_page_param.face_plate_param.Led_Brightness & 0x000f; Dis_letter(1, 1); Dis_letter(2, 7); if (dis_page_param.advanced_param.led_brightness_wei == 0) { if (delay_flag) { Display_num(3, SE); Display_num(4, SI); } if (!delay_flag) { Dis_letter(3, 8); Display_num(4, SI); } } else if (dis_page_param.advanced_param.led_brightness_wei == 1) { if (delay_flag) { Display_num(3, SE); Display_num(4, SI); } if (!delay_flag) { Display_num(3, SE); Dis_letter(4, 8); } } } void display_sleep_time_set(void) { u8 FOUR = dis_page_param.face_plate_param.Sleep_time_addr; Dis_letter(1, 6); Dis_letter(2, 7); Dis_letter(3, 8); FOUR > 5 ? Dis_letter(4, 5) : Display_num(4, FOUR); } void display_dis_LowTempProtect_set(void) { u8 FOUR = dis_page_param.face_plate_param.Ltemp_Protection_valve; Dis_letter(1, 2); Dis_letter(2, 7); Dis_letter(3, 8); FOUR > 5 ? Dis_letter(4, 5) : Display_num(4, FOUR); } void display_HeatingProtect_set(void) { u8 FOUR = dis_page_param.face_plate_param.Floor_Heating_Protecton_value; Dis_letter(1, 3); Dis_letter(2, 7); Dis_letter(3, 8); FOUR > 5 ? Dis_letter(4, 5) : Display_num(4, FOUR); } void display_lcd_brightness_set(void) { u8 FOUR = dis_page_param.face_plate_param.Env_Light; Dis_letter(1, 4); Dis_letter(2, 7); Dis_letter(3, 8); FOUR > 7 ? Dis_letter(4, 5) : Display_num(4, FOUR); } void display_speed_relay_set(void) { u8 FOUR = dis_page_param.face_plate_param.Speed_Relay; Dis_letter(1, 5); Dis_letter(2, 7); Dis_letter(3, 8); Display_num(4, FOUR); } uint8_t Need_clear_lcd(Dis_page_num *last_dis_page_num) { if (memcmp(last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)) != 0) { if (dis_page_num.display_page == dis_air_Conditioning && dis_page_num.Dis_air_Conditioning == dis_air_Conditioning_open && last_dis_page_num->Dis_air_Conditioning == dis_air_Conditioning_close) { last_dis_page_num->display_page = dis_device_open; } else if (dis_page_num.display_page == dis_floor_heating && dis_page_num.Dis_floor_heating == dis_floor_heating_open && last_dis_page_num->Dis_floor_heating == dis_floor_heating_close) { last_dis_page_num->display_page = dis_device_open; } else if (dis_page_num.display_page == dis_fresh_air && dis_page_num.Dis_fresh_air == dis_fresh_air_open && last_dis_page_num->Dis_fresh_air == dis_fresh_air_close) { last_dis_page_num->display_page = dis_device_open; } else if (last_dis_page_num->display_page == dis_air_Conditioning && dis_page_num.display_page == dis_air_Conditioning) { if (dis_page_num.Dis_air_Conditioning == dis_air_Conditioning_close) { last_dis_page_num->display_page = dis_switch_interface; } else { memcpy(last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)); } } else if (last_dis_page_num->display_page == dis_floor_heating && dis_page_num.display_page == dis_floor_heating) { if (dis_page_num.Dis_floor_heating == dis_floor_heating_close) { last_dis_page_num->display_page = dis_switch_interface; } else { memcpy(last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)); } } else { last_dis_page_num->display_page = dis_switch_interface; } return 0; } return 1; } #define Get_temp_humi_TASK_PRIO 30 #define Get_temp_humi_STK_SIZE 256 TaskHandle_t Get_temp_humi_Handler; #define TEMP_ADJ_RELAY_ON (-4.5) #define TEMP_ADJ_RELAY_OF (-2.5) #define TEMP_ADJ_CHANGE_RATE (0.03) float temp_adjust_param = (-2.0); #define Test_Real_Temp_Enable 0 int16_t Test_Real_Temp = 1; void Get_temp_humi_task(void) { int Time_count = 0; int temp_adj_timer_start_tick = 0; SHT2x_Init(); for (;;) { Time_count++; uint8_t relay_actived = gpio_output_bit_get(GPIOC, GPIO_PIN_2) + gpio_output_bit_get(GPIOA, GPIO_PIN_1) + gpio_output_bit_get(GPIOC, GPIO_PIN_3) + gpio_output_bit_get(GPIOC, GPIO_PIN_0) + gpio_output_bit_get(GPIOC, GPIO_PIN_1); float temp_adjust_target = (relay_actived > 0) ? (TEMP_ADJ_RELAY_ON) : (TEMP_ADJ_RELAY_OF); if (Time_count - temp_adj_timer_start_tick > 50) { temp_adj_timer_start_tick = Time_count; if (temp_adjust_param >= temp_adjust_target) { temp_adjust_param = (temp_adjust_param - temp_adjust_target > TEMP_ADJ_CHANGE_RATE) ? (temp_adjust_param - TEMP_ADJ_CHANGE_RATE) : temp_adjust_target; } else { temp_adjust_param = (temp_adjust_target - temp_adjust_param > TEMP_ADJ_CHANGE_RATE) ? (temp_adjust_param + TEMP_ADJ_CHANGE_RATE) : temp_adjust_target; } } int8_t temperature_offset; temperature_offset = (int8_t)dis_page_param.face_plate_param.Compensates_temp; temperature_offset = (temperature_offset > 9) ? (9) : ((temperature_offset < -9) ? (-9) : (temperature_offset)); #if Test_Real_Temp_Enable float temp = Test_Real_Temp; #else float temp = SHT2x_GetTempPoll(); #endif Temp = (temp + temperature_offset + temp_adjust_param) * 0.1 + Temp * 0.9; dis_page_param.face_plate_param.Real_time_Temp = (int16_t)(Temp * 10); // printf("Temp %d",dis_page_param.face_plate_param.Real_time_Temp); mcu_dp_value_update(DPID_TEMP_CURRENT, dis_page_param.face_plate_param.Real_time_Temp / 10); Humi = (u8)SHT2x_GetHumiPoll(); dis_page_param.face_plate_param.Real_time_Humi = (u8)Humi; vTaskDelay(200); } } void lcd_task(void *pvParameters) { taskENTER_CRITICAL(); xTaskCreate((TaskFunction_t)Get_temp_humi_task, (const char *)"Get_temp_humi_task", (uint16_t)Get_temp_humi_STK_SIZE, (void *)NULL, (UBaseType_t)Get_temp_humi_TASK_PRIO, (TaskHandle_t *)&Get_temp_humi_Handler); taskEXIT_CRITICAL(); u8 lcd_value = (u8)(dis_page_param.face_plate_param.Env_Light & 0x0f); Set_LCD_lum(lcd_value); ht16c22_init(); memset(&dis_page_num, 0, sizeof(Dis_page_num)); dis_page_num.display_page = dis_air_Conditioning; Dis_page_num last_dis_page_num; memcpy(&last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)); if (dis_page_param.face_plate_param.Air_condition_switch == 1) { dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open; } if (dis_page_param.face_plate_param.Floor_heating_switch == 1) { dis_page_num.Dis_floor_heating = dis_floor_heating_open; } if (dis_page_param.face_plate_param.Fresh_air_switch == 1) { dis_page_num.Dis_fresh_air = dis_fresh_air_open; } switch (dis_page_param.face_plate_param.Panel_Shield) { case 1: { dis_page_num.display_page = dis_fresh_air; } break; case 2: case 3: { dis_page_num.display_page = dis_floor_heating; } break; case 4: case 5: case 6: case 7: { dis_page_num.display_page = dis_air_Conditioning; } break; default: break; } int lcd_flag = 0; // 1�յ�2��ů3�·� TickType_t tstart = xTaskGetTickCount(); while (1) { if (Need_clear_lcd(&last_dis_page_num)) { } if (zigbee_cmd.Is_zigbee_cmd == 1 && zigbee_cmd.Is_From_485 == 0) { if (zigbee_cmd.Is_clear_lcd == 1) { display_device_open(); zigbee_cmd.Is_clear_lcd = 0; } switch (zigbee_cmd.work_state_cur) { case 0: if (lcd_flag != 1) { lcd_flag = 1; ht16c22_clear(); dis_page_param.sleep_times = 0; // zigbee_cmd.Is_Wakeup=1; } if (zigbee_cmd.work_state_info.air_condition.switch_onoff == 1) { dis_page_num.display_page = dis_air_Conditioning; dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open; // dis_page_param.face_plate_param.Air_condition_switch = 0x01; last_dis_page_num.display_page = dis_air_Conditioning; last_dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_open; dis_page_param.face_plate_param.Air_condition_mode = zigbee_cmd.work_state_info.air_condition.mode; dis_page_param.face_plate_param.Air_wind_speed = zigbee_cmd.work_state_info.air_condition.level; dis_page_param.face_plate_param.Air_set_temp = zigbee_cmd.work_state_info.air_condition.temp_set; } else { // dis_page_param.face_plate_param.Air_condition_switch = 0x00; dis_page_num.display_page = dis_air_Conditioning; dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_close; } break; case 1: if (lcd_flag != 2) { lcd_flag = 2; ht16c22_clear(); dis_page_param.sleep_times = 0; // zigbee_cmd.Is_Wakeup=1; } if (zigbee_cmd.work_state_info.floor_condition.switch_onoff == 1) { dis_page_num.display_page = dis_floor_heating; dis_page_num.Dis_floor_heating = dis_floor_heating_open; // dis_page_param.face_plate_param.Floor_heating_switch = 1; last_dis_page_num.display_page = dis_floor_heating; last_dis_page_num.Dis_floor_heating = dis_floor_heating_open; dis_page_param.face_plate_param.Floor_heating_set_temp = zigbee_cmd.work_state_info.floor_condition.temp_set; } else { dis_page_num.display_page = dis_floor_heating; dis_page_num.Dis_floor_heating = dis_floor_heating_close; } break; case 2: if (lcd_flag != 3) { lcd_flag = 3; ht16c22_clear(); dis_page_param.sleep_times = 0; // zigbee_cmd.Is_Wakeup=1; } if (zigbee_cmd.work_state_info.fresh_air_condition.switch_onoff == 1) { dis_page_num.display_page = dis_fresh_air; dis_page_num.Dis_fresh_air = dis_fresh_air_open; // dis_page_param.face_plate_param.Fresh_air_switch = 1; last_dis_page_num.display_page = dis_fresh_air; last_dis_page_num.Dis_fresh_air = dis_fresh_air_open; dis_page_param.face_plate_param.Fresh_air_speed = zigbee_cmd.work_state_info.fresh_air_condition.level; } else { dis_page_num.display_page = dis_fresh_air; dis_page_num.Dis_fresh_air = dis_fresh_air_close; } break; default: break; } } switch (last_dis_page_num.display_page) { case dis_switch_interface: ht16c22_clear(); memcpy(&last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)); break; case dis_device_open: display_device_open(); memcpy(&last_dis_page_num, &dis_page_num, sizeof(Dis_page_num)); break; case dis_air_Conditioning: { dis_page_param.Message_sleep_times = 0; dis_page_param.Last_device_page_num = dis_air_Conditioning; switch (last_dis_page_num.Dis_air_Conditioning) { case dis_air_Conditioning_close: display_air_Conditioning_close(); break; case dis_air_Conditioning_open: if (dis_page_param.sleep_times++ >= 3001) { // zigbee_cmd.Is_Out_sleep=0; dis_page_param.sleep_times = 0; dis_page_num.Dis_air_Conditioning = dis_air_Conditioning_sleep; } display_air_Conditioning_open(); break; case dis_air_Conditioning_sleep: display_air_Conditioning_sleep(); break; default: break; } } break; case dis_floor_heating: { dis_page_param.Message_sleep_times = 0; dis_page_param.Last_device_page_num = dis_floor_heating; switch (last_dis_page_num.Dis_floor_heating) { case dis_floor_heating_close: display_floor_heating_close(); break; case dis_floor_heating_open: if (dis_page_param.sleep_times++ >= 3001) { // zigbee_cmd.Is_Out_sleep=0; dis_page_param.sleep_times = 0; dis_page_num.Dis_floor_heating = dis_floor_heating_sleep; } display_floor_heating_open(); break; case dis_floor_heating_sleep: display_floor_heating_sleep(); break; default: break; } } break; case dis_fresh_air: { dis_page_param.Message_sleep_times = 0; dis_page_param.Last_device_page_num = dis_floor_heating; switch (last_dis_page_num.Dis_fresh_air) { case dis_fresh_air_close: display_fresh_air_close(); break; case dis_fresh_air_open: if (dis_page_param.sleep_times++ >= 3001) { // zigbee_cmd.Is_Out_sleep=0; dis_page_param.sleep_times = 0; dis_page_num.Dis_fresh_air = dis_fresh_air_sleep; } display_fresh_air_open(); break; case dis_fresh_air_sleep: display_fresh_air_sleep(); break; default: break; } } break; case dis_message_read: { if (dis_page_param.Message_sleep_times++ >= 1001) { dis_page_param.Message_sleep_times = 0; dis_page_num.display_page = (display_page_t)dis_page_param.Last_device_page_num; } switch (last_dis_page_num.Dis_message_read) { case dis_real_time_temp: display_real_time_temp(); break; case dis_real_time_humidity: display_real_time_humidity(); break; case dis_slave_addr: display_slave_addr(); break; default: break; } } break; case dis_advanced_set: { if (dis_page_param.advanced_setting_time++ >= 510) { dis_page_param.advanced_setting_time = 0; dis_page_num.display_page = (display_page_t)dis_page_param.Last_device_page_num; } switch (last_dis_page_num.Dis_advanced_set) { case dis_compensates_temp_set: display_compensates_temp_set(); break; case dis_slave_addr_set: display_slave_addr_set(); break; case dis_led_brightness_set: display_led_brightness_set(); break; case dis_sleep_time_set: display_sleep_time_set(); break; case dis_LowTempProtect_set: display_dis_LowTempProtect_set(); break; case dis_HeatingProtect_set: display_HeatingProtect_set(); break; case dis_lcd_brightness_set: display_lcd_brightness_set(); break; case dis_speed_relay_set: display_speed_relay_set(); break; default: break; } } break; default: break; } vTaskDelayUntil(&tstart, 10); } }