1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024 |
- #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);
- }
- }
|