void delay_ms(uint32_t ms); void delay_us(uint32_t us); void PowerDownFunction(void); void GPIO_Init(void); void PWM_Init(void); void Timer0_Init(void); void Timer1_Init(void); void SYS_Init(void); void UART0_Init(void); void UART1_Init(void); void SC0_Init(); void SC1_Init(); void ADC_Init(void); void com_home_network_process(void); void com_display_process(void); void com_roomcon_process(void); void roomcon_parsing(void); void display_parsing(void); void tx_home_network_data(void); void RJ_Com_Err_Check(void); uint16_t CRC16(uint8_t *puchMsg, uint16_t usDataLen); /* My_bunbaeggi.c 정의 (My_Homenet.c 공용) */ void com_bunbaegi_process(void); void bunbaegi_parsing(void); void InCom_process(void); void BLDC1_Duty_Change(uint32_t BLDC1_duty); // 0 ~ 10000 void BLDC2_Duty_Change(uint32_t BLDC2_duty); // 0 ~ 10000 void init_process(void); void ADC_Sensing(void); void EEP_Save_process(void); void Heater_process(void); void Reservation_process(void); void Filter_process(void); uint8_t Filter_Reset_Process(void); void Exception_mode_process(void); uint16_t Aeverage_calculator(uint16_t val, uint16_t * array_val); void Reserve_Time_Update(uint8_t rtime); void Power_off_process(uint8_t set); void Step_process(void); uint8_t Step_motor_init(void); void Fan_Error_Check(void); void Fan_Speed_process(void); // 100ms void Bldc_check(void); void PWM_out_process(void); void Step_M1_Stop(); void Step_M2_Stop(); void Step_M3_Stop(); void Step_M4_Stop(); void Step_M5_Stop(); void Step_M6_Stop(); void Fan_Speed_Setting(uint8_t r_mode, uint8_t f_speed); void Pre_Mode_Control(void); void UV_process(void); uint8_t Air_Quality_process(void); void Filter_RPM_Check(void); void Filter_Rpm_Auto_Cal_Process(void); extern volatile uint8_t Rx_display_complete, Rx_homenet_complete, Rx_roomcon_complete, Rx_debug_complete; extern volatile uint8_t Tx_display_flag, Tx_homenet_flag, Tx_roomcon_flag, Tx_debug_flag; extern uint8_t Tx_homenet_buffer[60],Tx_display_buffer[25],Tx_roomcon232_buffer[25],Tx_debug_buffer[60]; extern uint8_t Rx_homenet_buffer[60],Rx_display_buffer[25],Rx_roomcon232_buffer[25],Rx_debug_buffer[20]; extern uint8_t Uart_Rx0,Uart_Rx1,Uart_Rx2, Uart_Rx3 ; extern uint8_t Rx_homenet_TimeOut, Rx_roomcon_TimeOut, Rx_debug_TimeOut; extern uint8_t Test_Fan1_Speed, Test_Fan2_Speed; extern uint8_t Test_Fan1_Ven_1_dan, Test_Fan1_Ven_2_dan, Test_Fan1_Ven_3_dan, Test_Fan1_Ven_4_dan, \ Test_Fan1_Air_1_dan, Test_Fan1_Air_2_dan, Test_Fan1_Air_3_dan, Test_Fan1_Air_4_dan,\ Test_Fan1_Bypass_1_dan, Test_Fan1_Bypass_2_dan, Test_Fan1_Bypass_3_dan, Test_Fan1_Bypass_4_dan; extern uint8_t Test_Fan2_Ven_1_dan, Test_Fan2_Ven_2_dan, Test_Fan2_Ven_3_dan, Test_Fan2_Ven_4_dan,\ Test_Fan2_Air_1_dan, Test_Fan2_Air_2_dan, Test_Fan2_Air_3_dan , Test_Fan2_Air_4_dan,\ Test_Fan2_Bypass_1_dan, Test_Fan2_Bypass_2_dan, Test_Fan2_Bypass_3_dan, Test_Fan2_Bypass_4_dan; extern volatile uint16_t Filter_timer_clean; extern volatile uint16_t Filter_timer_change; extern volatile uint16_t Soja_timer_change; extern volatile uint8_t Run_Mode, Auto_Mode, Fan_Mode; extern uint8_t Power_On; extern uint16_t SEN66_pm1p0[7], SEN66_pm2p5[7], SEN66_pm4p0[7], SEN66_pm10p0[7]; extern int16_t SEN66_humidity_value[7]; extern int16_t SEN66_temperature_value[7]; extern int16_t SEN66_VOC_value[7]; extern int16_t SEN66_NOx_value[7]; extern uint16_t SEN66_CO2_value[7]; extern uint8_t Diffuser_VSP_Mode; extern uint8_t Diffuser_Power[7]; extern uint8_t Diffuser_Run_Mode[7]; extern uint8_t Diffuser_Fan_Speed[7]; extern uint8_t Diffuser_Dmp_Ang_SA[7],Memory_Diffuser_Dmp_Ang_SA[7]; //Damper Angle extern uint8_t Diffuser_Dmp_Ang_RA[7],Memory_Diffuser_Dmp_Ang_RA[7]; //Damper Angle extern uint8_t Diffuser_Air_quality[7],Memory_Diffuser_Air_quality[7]; extern uint8_t Diffuser_Damper_Manual[7]; /* 대시보드 수동 댐퍼 오버라이드(각실 1~4) */ extern uint8_t Diffuser_Led_Manual[7]; /* 대시보드 수동 LED 오버라이드(각실 1~4) */ extern uint16_t Reserve_Remain_Sec; /* (꺼짐)예약 잔여초 (0=예약없음) */ extern volatile uint8_t Vsp_Mode[5]; extern volatile uint8_t Pre_Vsp_Mode; extern uint16_t Test_RPM_Vent_Reference[5]; extern uint16_t Test_RPM_Vent_Delta[5]; extern uint16_t Test_RPM_Air_Reference[5]; extern uint16_t Test_RPM_Air_Delta[5]; extern uint16_t RPM_Vent_Reference[5]; extern uint16_t RPM_Vent_Delta[5]; extern uint16_t RPM_Air_Reference[5]; extern uint16_t RPM_Air_Delta[5]; #define ST_LED PA10 #define TEMP1_ADC PA0 #define TEMP2_ADC PA1 #define VOLUM1_ADC PA2 #define VOLUM2_ADC PA3 #define CURRENT_VOL PA4 #define P_SW PA11 #define BLDC_PW PB7 #define UV_PW PA5 #define P_UV PF2 #define HOOD_485_TX PB1 #define HOOD_485_RX PB0 #define HOOD_485_DIR PB2 #define HOMENET_485_TX PB5 #define HOMENET_485_RX PB4 #define HOMENET_485_DIR PB6 #define ROOMCON_TX PA8 #define ROOMCON_RX PA9 #define BUNBAGI_485_TX2 PC0 #define BUNBAGI_485_RX2 PC1 #define BUNBAGI_485_DIR PC7 #define BLDC_SA_PWM PB11 #define BLDC_SA_FG_IN PE5 #define BLDC_EA_PWM PA12 #define BLDC_EA_FG_IN PA13 #define REG_STEP_M1_A PB12 #define REG_STEP_M1_B PB13 #define REG_STEP_M1_NA PB14 #define REG_STEP_M1_NB PB8 #define REG_STEP_M2_A PB15 #define REG_STEP_M2_B PC14 #define REG_STEP_M2_NA PC15 #define REG_STEP_M2_NB PC6 #define REG_STEP_M3_A PA6 #define REG_STEP_M3_B PA14 #define REG_STEP_M3_NA PA15 #define REG_STEP_M3_NB PC8 #define REG_STEP_M4_A PC9 #define REG_STEP_M4_B PC10 #define REG_STEP_M4_NA PC11 #define REG_STEP_M4_NB PB9 #define REG_STEP_M5_A PB10 #define REG_STEP_M5_B PC2 #define REG_STEP_M5_NA PC3 #define REG_STEP_M5_NB PD15 #define REG_STEP_M6_A PD14 #define REG_STEP_M6_B PD7 #define REG_STEP_M6_NA PD6 #define REG_STEP_M6_NB PB3 #define DAMPER_EA 1 #define DAMPER_OA 2 #define DAMPER_BYPASS 3 #define DAMPER_SA 4 #define DAMPER_RA 5 // 3???í¼ #define DAMPER_AIR 6 //--------------------------------------------------------------- #define ERROR_FILTER_CLEAN 0x01 #define ERROR_FILTER_CHANGE 0x02 #define ERROR_SOJA_CHANGE 0x04 #define ERROR_TEMP_SENSOR 0x08 #define ERROR_SA_FAN 0x80 #define ERROR_EA_FAN 0x20 #define ERROR_PROTECT 0x10 //2020.9.2 #define ERROR_SOMETIME 0x40 //2020.9.10 #define RX_DATA_MODE_NORMAL 0 #define RX_DATA_MODE_EVENT 0x01 #define RX_DATA_MODE_RESTART1 0x02 #define RX_DATA_MODE_RESTART2 0x12 #define RX_DATA_MODE_VSP 0x03 #define RX_DATA_MODE_EXIT 0x04 #define RX_DATA_FILTER_INFO 0x05 //(룸콘 -> 환기장치) #define RX_DATA_SENSOR_INFO 0x06 //(환기장치 -> 룸콘) #define RX_DATA_CONTROLL 0x07 //(환기장치 -> 룸콘) #define RX_DATA_HOOD_INFO 0x0A //(main -> room) // // add 2022.1.25 #define RX_DATA_CONTROLL_INFO 0x80 //(룸콘 -> 환기장치) #define RX_DATA_RPM_INFO 0x81 //(환기장치 -> 룸콘) // 2021.5.31 #define RX_DATA_ERROR_CLEAR 0x22 //2021.5.31 //----------------------------------------------------------------- #define SPEC_VERSION1_INFO 0x01 #define SPEC_VERSION2_INFO 0x00 #define SPEC_DEVICE_TYPE_INFO 0x04//0x10 // C1 = 0x01, C2 = 0x02, E = 0x03, EBSN = 0x04, EBN = 0x05, EF = 0x06, A = 0x07, EF2=0x08, EGI=0x09, C4=0x10 #define SPEC_CMH_INFO 0x03 // 50=1, 70=2, 100=3, 120=4, 150=5, 200=6, 250=7 // 1 : 일반 히터O - 환기/자동 // 2 : 바이패스 히터O - 환기/자동/바이패스 // 3 : 공청 히터O - 환기/자동/공청/바이패스 // 4 : 일반 히터X - 환기/자동 // 5 : 바이패스 히터X - 환기/자동/바이패스 // 6 : 공청 히터X - 환기/자동/공청/바이패스 // 0x10 | 대림사양 // 0x20 | UV 사용 #define SPEC_MODE_INFO 0x16 // 연동없음 = 0, 삼성SDS=1, 씨브이넷=2, 아이콘트롤=3, 코맥스=4, 코콤=5, 현대통신=6, | 세익=0x10, 신동테크=0x20, 한국하니웰=0x30, 한성시스코=0x40 #define SPEC_HOMENET_INFO 0x00 // #define SPEC_HOOD_INFO 0x01 // ////////////////////////////////////////////////////////////// #if(((SPEC_MODE_INFO&0x0F) ==0x03)||((SPEC_MODE_INFO&0x0F) ==0x06)) // airclean mode O #define MODE_VENTILATION 0 #define MODE_AUTO 1 #define MODE_AIRCLEAN 2 #define MODE_BYPASS 3 #define MODE_FAN_TEST 4 #else // airclean mode X #define MODE_VENTILATION 0 #define MODE_AUTO 1 #define MODE_BYPASS 2 #define MODE_AIRCLEAN 3 // not used #define MODE_FAN_TEST 4 #endif //--------------------------------------------------------------- #define MAIN_FW_VERSION 0x01 //--------------------------------------------------------------------- #define EEP_ADDR_START 0x01 #define EEP_ADDR_MODBUS_ID 0x05 #define EEP_FAN1_VEN_1_DAN 10 #define EEP_FAN1_VEN_2_DAN 11 #define EEP_FAN1_VEN_3_DAN 12 #define EEP_FAN1_VEN_4_DAN 13 #define EEP_FAN1_AIR_1_DAN 14 #define EEP_FAN1_AIR_2_DAN 15 #define EEP_FAN1_AIR_3_DAN 16 #define EEP_FAN1_AIR_4_DAN 17 #define EEP_FAN1_BYPASS_1_DAN 18 #define EEP_FAN1_BYPASS_2_DAN 19 #define EEP_FAN1_BYPASS_3_DAN 20 #define EEP_FAN1_BYPASS_4_DAN 21 #define EEP_FAN2_VEN_1_DAN 22 #define EEP_FAN2_VEN_2_DAN 23 #define EEP_FAN2_VEN_3_DAN 24 #define EEP_FAN2_VEN_4_DAN 25 #define EEP_FAN2_AIR_1_DAN 26 #define EEP_FAN2_AIR_2_DAN 27 #define EEP_FAN2_AIR_3_DAN 28 #define EEP_FAN2_AIR_4_DAN 29 #define EEP_FAN2_BYPASS_1_DAN 30 #define EEP_FAN2_BYPASS_2_DAN 31 #define EEP_FAN2_BYPASS_3_DAN 32 #define EEP_FAN2_BYPASS_4_DAN 33 #define EEP_FILTER_CLEAN_HOUR_H 34 #define EEP_FILTER_CLEAN_HOUR_L 35 #define EEP_FILTER_CHANGE_HOUR_H 36 #define EEP_FILTER_CHANGE_HOUR_L 37 #define EEP_SOJA_CHANGE_HOUR_H 38 #define EEP_SOJA_CHANGE_HOUR_L 39 #define EEP_BLACKOUT_POWER_ON 40 #define EEP_BLACKOUT_RUN_MODE 41 #define EEP_BLACKOUT_FAN_MODE 42 /* 260520 히스테리시스 프리셋(임계+데드밴드) 영속화 영역 43~127 - 구 m_*_Level (45~68) 영역 폐기·재사용. 1프레임=4B, 페이지 127엔트리 한계 내(약 123) */ #define EEP_HYST_PRESET 43 /* 1B : Hyst_Preset 0~2 (유효성 마커 겸용) */ #define EEP_HYST_DB_BASE 44 /* 12B u8 : Co2_Db[3],Pm25_Db[3],Pm10_Db[3],Voc_Db[3] */ #define EEP_THR_CO2_BASE 56 /* 24B u16: Co2_Thr[3][4] */ #define EEP_THR_VOC_BASE 80 /* 24B u16: Voc_Thr[3][4] */ #define EEP_THR_PM25_BASE 104 /* 12B u8 : Pm25_Thr[3][4] */ #define EEP_THR_PM10_BASE 116 /* 12B u8 : Pm10_Thr[3][4] (116~127) */ #define EEP_SIZE 128 //--------------------------------------------------- #define COMMAND_REQUEST_FILTER_INFO 0x05 #define COMMAND_REQUEST_SENSOR_INFO 0x06 #define COMMAND_CONTROLL 0x07 // mode / speed / reservaion #define TYPE_POWER 0x40 #define TYPE_MODE 0x01 #define TYPE_FAN_SPEED 0x02 #define TYPE_RESERVATION 0x04 #define TYPE_FILTER_INFO 0x10 #define TYPE_SENSOR_INFO 0x20 #define TYPE_HOOD_STATE 0x40 // add 2022.1.25 #define TYPE_SEND_FLAG 0x80 extern volatile uint8_t Roomcon_connect_mode; extern volatile uint32_t Set_Reserve_timer_sec; extern volatile uint8_t Set_Run_Mode, Set_Fan_Mode; extern uint32_t urpm1, urpm2; extern uint8_t EEP_Save_Flag; extern uint8_t Sometime_Mode; extern uint8_t BlackOut_Power_On; extern uint8_t BlackOut_Run_Mode; extern uint8_t BlackOut_Fan_Mode; extern uint8_t Command_request_type; /* PC대시보드 제어 → 룸컨(RJ2) 상태 푸시 래치. bunbaegi 의 Command_request_type=0 클리어와 무관하게 * 유지되어 룸컨 누락 방지. TYPE_POWER(0x40)=TYPE_HOOD_STATE 충돌 때문에 모드/풍량 비트만 사용. */ extern volatile uint8_t Homenet_RJ_Request; uint16_t Diffuser_Damper_process(uint8_t mode);//100ms uint8_t Air_Quality_damper_process(void); uint8_t Air_Quality_color_process(void); extern volatile uint16_t CO2_Histeresys; extern volatile uint8_t Err_Code; extern uint8_t Target_Fan1_Speed, Target_Fan2_Speed; extern volatile uint32_t Reserve_timer_sec; extern uint8_t s_FAN1_VEN_1_DAN; extern uint8_t s_FAN1_VEN_2_DAN; extern uint8_t s_FAN1_VEN_3_DAN; extern uint8_t s_FAN1_VEN_4_DAN; extern uint8_t s_FAN1_AIR_1_DAN; extern uint8_t s_FAN1_AIR_2_DAN; extern uint8_t s_FAN1_AIR_3_DAN; extern uint8_t s_FAN1_AIR_4_DAN; extern uint8_t s_FAN1_BYPASS_1_DAN; extern uint8_t s_FAN1_BYPASS_2_DAN; extern uint8_t s_FAN1_BYPASS_3_DAN; extern uint8_t s_FAN1_BYPASS_4_DAN; extern uint8_t s_FAN2_VEN_1_DAN; extern uint8_t s_FAN2_VEN_2_DAN; extern uint8_t s_FAN2_VEN_3_DAN; extern uint8_t s_FAN2_VEN_4_DAN; extern uint8_t s_FAN2_AIR_1_DAN; extern uint8_t s_FAN2_AIR_2_DAN; extern uint8_t s_FAN2_AIR_3_DAN; extern uint8_t s_FAN2_AIR_4_DAN; extern uint8_t s_FAN2_BYPASS_1_DAN; extern uint8_t s_FAN2_BYPASS_2_DAN; extern uint8_t s_FAN2_BYPASS_3_DAN; extern uint8_t s_FAN2_BYPASS_4_DAN; extern signed int In_Temperature; extern signed int Out_Temperature; extern uint8_t Heater_OnOff, UV_OnOff; extern uint16_t com_roomcon_delay; extern uint8_t Filter_Reset_Flag; extern uint8_t RJ_Vsp_Mode; extern volatile uint32_t Reserve_timer_sec; extern volatile uint8_t Reserve_hour, Pre_Reserve_hour; extern uint16_t m_CO2_Level_1; extern uint16_t m_CO2_Level_2; extern uint16_t m_CO2_Level_3,m_CO2_Level_4; extern uint16_t m_VOC_Level_1; extern uint16_t m_VOC_Level_2; extern uint16_t m_VOC_Level_3,m_VOC_Level_4; extern uint16_t m_PM2_5_Level_1; extern uint16_t m_PM2_5_Level_2; extern uint16_t m_PM2_5_Level_3,m_PM2_5_Level_4; extern uint32_t Damper_Status_Display; extern uint8_t Force_Damper_Mode; extern uint8_t Force_Damper_run; extern uint8_t Focus_Mode; extern uint16_t Focus_Mode_RunTime; extern uint8_t ROOM_air_volume[7]; /* 260520 사양 자동 동작로직 (집중/분산) - My_system.c */ extern uint16_t Co2_Thr[3][4]; extern uint16_t Pm25_Thr[3][4]; extern uint16_t Pm10_Thr[3][4]; extern uint16_t Voc_Thr[3][4]; extern uint16_t Co2_Db[3]; extern uint16_t Pm25_Db[3]; extern uint16_t Pm10_Db[3]; extern uint16_t Voc_Db[3]; extern uint8_t Hyst_Preset; /* 0 ECO / 1 NORMAL / 2 TURBO */ extern uint8_t Room_Level[7]; /* 실별 오염단계 0~4 */ extern uint8_t Load_Score; /* 부하 총점 0~16 */ extern uint8_t Auto_P_max; extern uint8_t Auto_dP; extern uint8_t Auto_Concentrate; /* 0 분산 / 1 집중 */ uint8_t Hood_process(void); void Hood_RS485_process(void); extern uint16_t Hood_Warming_up_Timer; extern uint8_t Tx_Yeundong_Delay; extern uint8_t Yuendong_Enable; extern uint8_t Yeungong_Status; extern uint8_t Hood_Power_On; extern uint8_t Hood_Fan_Mode; extern uint8_t Hood_Control; extern uint8_t Ext_Run_Mode, Pre_Ext_Run_Mode, Ext_Select_Room, Pre_Ext_Select_Room; extern uint8_t Hood_Status; extern uint8_t Hood_Yeundong_flag; extern uint16_t Ext_Run_Mode_Off_Delay; extern uint8_t Memory_Hood_Status; extern uint8_t My_Memory_Run_Mode, My_Memory_Fan_Mode; extern uint8_t Hood_YeunDong_Enable; extern uint16_t Hood_Conn_Timeout; /* 후드 485 통신연결 생존 카운터(ms) */ extern uint8_t HREV_Hood_Control; /* HOMENET(ErvDashboard) 바이너리 프로토콜 - My_Uart.c */ void Homenet_Rx_Byte(uint8_t b); void Homenet_Process(void); void Homenet_Send_Status(void); void Homenet_Build_Status(uint8_t *p); extern uint8_t Homenet_Reset_State; extern uint8_t Total_Air_Volume, Pre_Total_Air_Volume; extern uint8_t Light_Bright[6];