chore: HERV 통합 저장소 초기 커밋
- 펌웨어(program), C# 대시보드(TestProgram), 시뮬레이터(Simulator), 프로토콜/문서(Protocol, doc) 전체를 단일 저장소로 통합 - program 폴더의 별도 git 저장소를 제거하고 통합 저장소에 흡수 - 빌드 산출물(program/build, bin/obj, *.o/.elf/.bin/.hex 등) .gitignore 처리 - 사내 Synology NAS Git 원격 연결 예정 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,781 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include "Nano100Series.h"
|
||||
#include "adc.h"
|
||||
#include "gpio.h"
|
||||
#include "pwm.h"
|
||||
#include "timer.h"
|
||||
#include "uart.h"
|
||||
#include "sys.h"
|
||||
#include "clk.h"
|
||||
|
||||
#include "My_define.h"
|
||||
|
||||
|
||||
|
||||
extern uint8_t Tx_roomcon232_buffer[25];
|
||||
extern uint8_t Rx_roomcon232_buffer[25];
|
||||
|
||||
extern volatile uint8_t Err_Code;
|
||||
extern uint8_t Target_Fan1_Speed, Target_Fan2_Speed;
|
||||
|
||||
extern volatile uint32_t Reserve_timer_sec;
|
||||
|
||||
|
||||
|
||||
extern signed int In_Temperature;
|
||||
extern signed int Out_Temperature;
|
||||
|
||||
//-------------------- SC 0 -----------------------------------
|
||||
//-------------------- roomcon ------------------------------
|
||||
|
||||
uint8_t Rx_roomcon_TimeOut = 0;
|
||||
uint8_t Rx_roomcon_Pos = 0;
|
||||
void rx_roomcon_check(uint8_t data)
|
||||
{
|
||||
uint8_t cksum = 0, i = 0;
|
||||
|
||||
if(Rx_roomcon_TimeOut == 0)Rx_roomcon_Pos = 0;
|
||||
switch(Rx_roomcon_Pos)
|
||||
{
|
||||
case 0:
|
||||
if(data != 0xAA)break;
|
||||
Rx_roomcon232_buffer[Rx_roomcon_Pos++] = data;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
Rx_roomcon232_buffer[Rx_roomcon_Pos++] = data;
|
||||
break;
|
||||
case 13:
|
||||
for(i=0; i<13; i++)cksum ^= Rx_roomcon232_buffer[i];
|
||||
|
||||
if(cksum == data)
|
||||
{
|
||||
Rx_roomcon232_buffer[Rx_roomcon_Pos++] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
Rx_roomcon_Pos = 0;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if(data == 0xEE)
|
||||
{
|
||||
com_roomcon_delay = 50;
|
||||
Rx_roomcon_complete = 1;
|
||||
}
|
||||
Rx_roomcon_Pos = 0;
|
||||
break;
|
||||
default:
|
||||
Rx_roomcon_Pos = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
volatile uint8_t Roomcon_connect_mode = 0;
|
||||
uint8_t roomcon_com_count = 0;
|
||||
|
||||
void com_roomcon_process(void)
|
||||
{
|
||||
if(Rx_roomcon_complete == 1)
|
||||
{
|
||||
if(com_roomcon_delay)return;
|
||||
Rx_roomcon_complete = 0;
|
||||
roomcon_parsing();
|
||||
|
||||
Roomcon_connect_mode = 1;
|
||||
roomcon_com_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t Com_Err_Flag = 0;
|
||||
void RJ_Com_Err_Check(void)
|
||||
{
|
||||
if(Roomcon_connect_mode == 0)
|
||||
{
|
||||
//Reservation_process();
|
||||
//Exception_mode_process();
|
||||
|
||||
roomcon_com_count = 0;
|
||||
Com_Err_Flag = 0;
|
||||
RJ_Vsp_Mode = 0;
|
||||
}
|
||||
else // exist roomcon
|
||||
{
|
||||
if(roomcon_com_count++ >= 10)
|
||||
{
|
||||
roomcon_com_count = 10;
|
||||
Roomcon_connect_mode = 0;
|
||||
Com_Err_Flag = 1;
|
||||
|
||||
RJ_Vsp_Mode = 0;
|
||||
// Power_off_process(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
volatile uint32_t Set_Reserve_timer_sec = 0;
|
||||
volatile uint8_t Set_Run_Mode = 0, Set_Fan_Mode = 0;
|
||||
|
||||
|
||||
uint8_t Rommcon_Version = 0;
|
||||
uint8_t Vsp_Select = 0;
|
||||
uint8_t Heater_OnOff = 0, UV_OnOff = 0;
|
||||
uint8_t Filter_Reset_Flag = 0;
|
||||
uint8_t EEP_Save_Flag = 0;
|
||||
|
||||
uint8_t Command_request_type = 0;
|
||||
uint8_t Roomcon_Filter_Error = 0; // 2021.5.31
|
||||
|
||||
|
||||
#define COMMAND_REQUEST_FILTER_INFO 0x05
|
||||
#define COMMAND_REQUEST_SENSOR_INFO 0x06
|
||||
#define COMMAND_CONTROLL 0x07 // mode / speed / reservaion
|
||||
|
||||
#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_SEND_FLAG 0x80
|
||||
|
||||
|
||||
uint8_t Kijer_Enable = 0, Heater_Enable = 0, UV_Enable = 0;
|
||||
|
||||
void Txbuff_init(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0;
|
||||
Tx_roomcon232_buffer[2] = Run_Mode;
|
||||
if(Run_Mode == MODE_AUTO)Fan_Mode = Set_Fan_Mode;///////////////// DEMO
|
||||
Tx_roomcon232_buffer[3] = Fan_Mode;
|
||||
Tx_roomcon232_buffer[4] = Auto_Mode;
|
||||
|
||||
Tx_roomcon232_buffer[5] = (Heater_Enable|(UV_Enable<<4)|Kijer_Enable);
|
||||
Tx_roomcon232_buffer[6] = 0;
|
||||
Tx_roomcon232_buffer[7] = Err_Code & (ERROR_EA_FAN|ERROR_SA_FAN|ERROR_TEMP_SENSOR|ERROR_FILTER_CLEAN|ERROR_FILTER_CHANGE|ERROR_SOJA_CHANGE|ERROR_PROTECT|ERROR_SOMETIME);
|
||||
Tx_roomcon232_buffer[7] |= Roomcon_Filter_Error; // 2021.5.31
|
||||
|
||||
|
||||
if(Out_Temperature < 0)Tx_roomcon232_buffer[8] = 0x01;
|
||||
else Tx_roomcon232_buffer[8] = 0x00;
|
||||
|
||||
if(Out_Temperature == 100) Tx_roomcon232_buffer[9] = 0xFF;
|
||||
else Tx_roomcon232_buffer[9] = (uint8_t)(Out_Temperature+20);
|
||||
|
||||
if(In_Temperature == 100)Tx_roomcon232_buffer[10] = 0xFF;
|
||||
else Tx_roomcon232_buffer[10] = (uint8_t)(In_Temperature+20);
|
||||
|
||||
Tx_roomcon232_buffer[11] = 0; //reserve hour
|
||||
Tx_roomcon232_buffer[12] = 0; //reserve min
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Spec_info_reply(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = RX_DATA_CONTROLL_INFO;
|
||||
Tx_roomcon232_buffer[2] = SPEC_VERSION1_INFO;
|
||||
Tx_roomcon232_buffer[3] = SPEC_VERSION2_INFO;
|
||||
Tx_roomcon232_buffer[4] = SPEC_DEVICE_TYPE_INFO;
|
||||
|
||||
Tx_roomcon232_buffer[5] = SPEC_CMH_INFO;
|
||||
Tx_roomcon232_buffer[6] = SPEC_MODE_INFO;
|
||||
Tx_roomcon232_buffer[7] = SPEC_HOMENET_INFO;
|
||||
|
||||
Tx_roomcon232_buffer[8] = SPEC_HOOD_INFO ; // add 2022.1.25
|
||||
Tx_roomcon232_buffer[9] = 0; // add 2022.1.25
|
||||
Tx_roomcon232_buffer[10] = 0;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0;
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
}
|
||||
|
||||
|
||||
void Rpm_info_reply(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = RX_DATA_RPM_INFO;
|
||||
Tx_roomcon232_buffer[2] = 0x41;
|
||||
Tx_roomcon232_buffer[3] = (uint8_t)((uint16_t)urpm1>>8);
|
||||
Tx_roomcon232_buffer[4] = (uint8_t)((uint16_t)urpm1);
|
||||
Tx_roomcon232_buffer[5] = 0;
|
||||
|
||||
Tx_roomcon232_buffer[6] = 0x42;
|
||||
Tx_roomcon232_buffer[7] = (uint8_t)((uint16_t)urpm2>>8);
|
||||
Tx_roomcon232_buffer[8] = (uint8_t)((uint16_t)urpm2);
|
||||
|
||||
Tx_roomcon232_buffer[9] = 0;
|
||||
Tx_roomcon232_buffer[10] = 0;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0;
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
|
||||
}
|
||||
|
||||
void Filter_info_reply(void)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = RX_DATA_FILTER_INFO;
|
||||
Tx_roomcon232_buffer[2] = 0x01;
|
||||
Tx_roomcon232_buffer[3] = (uint8_t)((Filter_timer_clean>>8)&0x00FF);
|
||||
Tx_roomcon232_buffer[4] = (uint8_t)(Filter_timer_clean&0x00FF);
|
||||
Tx_roomcon232_buffer[5] = 0;
|
||||
Tx_roomcon232_buffer[6] = 0x02;
|
||||
Tx_roomcon232_buffer[7] = (uint8_t)((Filter_timer_change>>8)&0x00FF);
|
||||
Tx_roomcon232_buffer[8] = (uint8_t)(Filter_timer_change&0x00FF);
|
||||
Tx_roomcon232_buffer[9] = 0;
|
||||
Tx_roomcon232_buffer[10] = 0x03;
|
||||
Tx_roomcon232_buffer[11] = (uint8_t)((Soja_timer_change>>8)&0x00FF);
|
||||
Tx_roomcon232_buffer[12] = (uint8_t)(Soja_timer_change&0x00FF);
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
}
|
||||
|
||||
uint8_t Hood_Yeundong_flag = 0;
|
||||
void Hood_info_command(void)// add 2022.1.25
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = RX_DATA_HOOD_INFO;
|
||||
|
||||
if(Hood_Yeundong_flag == 1)//on
|
||||
{
|
||||
Tx_roomcon232_buffer[2] = MODE_VENTILATION;
|
||||
Tx_roomcon232_buffer[3] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
Tx_roomcon232_buffer[2] = Set_Run_Mode;
|
||||
Tx_roomcon232_buffer[3] = Set_Fan_Mode;
|
||||
}
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[4] = Auto_Mode;
|
||||
|
||||
Tx_roomcon232_buffer[5] = 0;
|
||||
|
||||
|
||||
if((Hood_Yeundong_flag == 1) && (Hood_YeunDong_Enable == 1))//2023.02.14 Hood Enable Add
|
||||
{
|
||||
Tx_roomcon232_buffer[6] = 0x81; //ON
|
||||
}
|
||||
else
|
||||
{
|
||||
Tx_roomcon232_buffer[6] = 0x80; //OFF
|
||||
}
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[7] = 0;
|
||||
Tx_roomcon232_buffer[8] = 0;
|
||||
Tx_roomcon232_buffer[9] = 0;
|
||||
Tx_roomcon232_buffer[10] = 0;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0;
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
}
|
||||
|
||||
|
||||
uint8_t RJ_Vsp_Mode = 0;
|
||||
void roomcon_parsing(void)
|
||||
{
|
||||
uint8_t i = 0;
|
||||
|
||||
RJ_Vsp_Mode = Rx_roomcon232_buffer[1];
|
||||
switch(Rx_roomcon232_buffer[1])
|
||||
{
|
||||
case RX_DATA_MODE_NORMAL:
|
||||
|
||||
Err_Code &= ~(ERROR_FILTER_CLEAN|ERROR_FILTER_CHANGE|ERROR_SOJA_CHANGE|ERROR_PROTECT|ERROR_SOMETIME);
|
||||
Err_Code |= Rx_roomcon232_buffer[7]&(ERROR_FILTER_CLEAN|ERROR_FILTER_CHANGE|ERROR_SOJA_CHANGE|ERROR_PROTECT|ERROR_SOMETIME);
|
||||
|
||||
if((Command_request_type & (TYPE_MODE|TYPE_FAN_SPEED|TYPE_RESERVATION)) || Homenet_RJ_Request )
|
||||
{
|
||||
Command_request_type |= Homenet_RJ_Request; /* PC대시보드 푸시 래치 병합(bunbaegi 클리어 무관) */
|
||||
if((Hood_Yeundong_flag == 1)&&(Tx_Yeundong_Delay == 0))
|
||||
{
|
||||
Hood_Warming_up_Timer = 0;/////////////////
|
||||
Hood_Yeundong_flag = 0;
|
||||
Command_request_type |= (TYPE_HOOD_STATE);
|
||||
}
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = COMMAND_CONTROLL;
|
||||
|
||||
Tx_roomcon232_buffer[2] = Set_Run_Mode;
|
||||
Tx_roomcon232_buffer[3] = Set_Fan_Mode;
|
||||
Tx_roomcon232_buffer[4] = Auto_Mode;
|
||||
|
||||
Tx_roomcon232_buffer[5] = (Heater_Enable|(UV_Enable<<4)|Kijer_Enable);
|
||||
Tx_roomcon232_buffer[6] = 0;
|
||||
Tx_roomcon232_buffer[7] = 0;
|
||||
Tx_roomcon232_buffer[8] = 0;
|
||||
Tx_roomcon232_buffer[9] = 0;
|
||||
if(Command_request_type & TYPE_RESERVATION)
|
||||
{
|
||||
Tx_roomcon232_buffer[10] = 1;
|
||||
Tx_roomcon232_buffer[11] = (uint8_t)(Set_Reserve_timer_sec/3600); //// extern setting timer
|
||||
Tx_roomcon232_buffer[12] = (uint8_t)(Set_Reserve_timer_sec%3600/60); ////extern setting timer
|
||||
}
|
||||
else
|
||||
{
|
||||
Tx_roomcon232_buffer[10] = 0;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0;
|
||||
}
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
|
||||
Command_request_type |= TYPE_SEND_FLAG;
|
||||
|
||||
}
|
||||
else if(Command_request_type & (TYPE_HOOD_STATE))// add 2022.1.25
|
||||
{
|
||||
Hood_info_command();
|
||||
}
|
||||
else
|
||||
{
|
||||
Set_Reserve_timer_sec = (uint32_t)Rx_roomcon232_buffer[11]*3600 + (uint32_t)Rx_roomcon232_buffer[12]*60 ;
|
||||
Txbuff_init();
|
||||
}
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
|
||||
break;
|
||||
|
||||
case RX_DATA_MODE_EVENT:
|
||||
|
||||
Run_Mode = Rx_roomcon232_buffer[2];
|
||||
if(Run_Mode != MODE_AUTO)
|
||||
{
|
||||
Fan_Mode = Rx_roomcon232_buffer[3];
|
||||
}
|
||||
|
||||
if(Fan_Mode != 0)Err_Code &= ~(ERROR_EA_FAN|ERROR_SA_FAN);
|
||||
|
||||
if(Command_request_type & TYPE_SEND_FLAG)
|
||||
{
|
||||
Command_request_type = 0;
|
||||
Command_request_type &= ~TYPE_SEND_FLAG;
|
||||
Homenet_RJ_Request = 0; /* PC대시보드 푸시 래치 소비 완료 */
|
||||
Run_Mode = Rx_roomcon232_buffer[2];
|
||||
if(Run_Mode != MODE_AUTO)
|
||||
{
|
||||
Fan_Mode = Rx_roomcon232_buffer[3];//DEMO
|
||||
}
|
||||
//if(Run_Mode != MODE_AUTO)Fan_Mode = Rx_roomcon232_buffer[3];//DEMO
|
||||
//else Fan_Mode = Set_Fan_Mode;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Set_Run_Mode = Run_Mode = Rx_roomcon232_buffer[2];
|
||||
Set_Fan_Mode = Fan_Mode = Rx_roomcon232_buffer[3];
|
||||
|
||||
if((Fan_Mode == 0)&&(Run_Mode == MODE_VENTILATION)&&(RJ_Vsp_Mode != RX_DATA_MODE_VSP))
|
||||
{
|
||||
if((Memory_Hood_Status != Hood_Status)&&(Hood_YeunDong_Enable == 1))
|
||||
{
|
||||
if(Memory_Hood_Status == 0)
|
||||
{
|
||||
Hood_Power_On = 0;
|
||||
Hood_Fan_Mode = 0;
|
||||
Hood_Control = 0x80;
|
||||
}
|
||||
else
|
||||
{
|
||||
Hood_Power_On = 1;
|
||||
Hood_Fan_Mode = Memory_Hood_Status;
|
||||
Hood_Control = 0x80;
|
||||
}
|
||||
|
||||
Hood_Status = Memory_Hood_Status;
|
||||
}
|
||||
|
||||
Set_Run_Mode = My_Memory_Run_Mode = 0;
|
||||
Set_Fan_Mode = My_Memory_Fan_Mode = 0;
|
||||
Command_request_type |= (TYPE_MODE|TYPE_FAN_SPEED);
|
||||
|
||||
Force_Damper_Mode = 0;
|
||||
Ext_Run_Mode = 0;
|
||||
Ext_Run_Mode_Off_Delay = 0;
|
||||
Pre_Ext_Run_Mode = Ext_Run_Mode ;
|
||||
Pre_Ext_Select_Room = Ext_Select_Room;
|
||||
|
||||
HREV_Hood_Control = 0;
|
||||
}
|
||||
|
||||
if(Hood_Yeundong_flag == 1)
|
||||
{
|
||||
Hood_Yeundong_flag = 0;
|
||||
Command_request_type |= (TYPE_HOOD_STATE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Auto_Mode = Rx_roomcon232_buffer[4];
|
||||
Heater_OnOff = Rx_roomcon232_buffer[5]&0x01;
|
||||
UV_OnOff = Rx_roomcon232_buffer[5]&0x10;
|
||||
|
||||
Filter_Reset_Flag |= Rx_roomcon232_buffer[7]&0x01;
|
||||
|
||||
if(Rx_roomcon232_buffer[10] == 1)
|
||||
{
|
||||
Set_Reserve_timer_sec = (uint32_t)Rx_roomcon232_buffer[11]*3600 + (uint32_t)Rx_roomcon232_buffer[12]*60 ;
|
||||
}
|
||||
|
||||
if(Run_Mode == MODE_VENTILATION)
|
||||
{
|
||||
for(i=1; i<7; i++)Diffuser_Run_Mode[i] = 1; ////// difuser run mode;
|
||||
}
|
||||
else if(Run_Mode == MODE_AUTO)
|
||||
{
|
||||
for(i=1; i<7; i++)Diffuser_Run_Mode[i] = 2; ////// difuser run mode;
|
||||
}
|
||||
else if(Run_Mode == MODE_BYPASS)
|
||||
{
|
||||
for(i=1; i<7; i++)Diffuser_Run_Mode[i] = 4; ////// difuser run mode;
|
||||
}
|
||||
else if(Run_Mode == MODE_AIRCLEAN)
|
||||
{
|
||||
for(i=1; i<7; i++)Diffuser_Run_Mode[i] = 8; ////// difuser run mode;
|
||||
}
|
||||
|
||||
for(i=1; i<7; i++)Diffuser_Fan_Speed[i] = Fan_Mode; ////// difuser fan mode;
|
||||
|
||||
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0x01;
|
||||
Tx_roomcon232_buffer[2] = Run_Mode;
|
||||
//if(Run_Mode == MODE_AUTO)Fan_Mode = Set_Fan_Mode;///////////////// DEMO
|
||||
Tx_roomcon232_buffer[3] = Fan_Mode;
|
||||
|
||||
Tx_roomcon232_buffer[5] = (Heater_Enable|(UV_Enable<<4)|Kijer_Enable);
|
||||
Tx_roomcon232_buffer[6] = 0;
|
||||
Tx_roomcon232_buffer[7] = Err_Code & (ERROR_EA_FAN|ERROR_SA_FAN|ERROR_TEMP_SENSOR|ERROR_FILTER_CLEAN|ERROR_FILTER_CHANGE|ERROR_SOJA_CHANGE|ERROR_PROTECT|ERROR_SOMETIME);
|
||||
Tx_roomcon232_buffer[7] |= Roomcon_Filter_Error; // 2021.5.31
|
||||
|
||||
if(Out_Temperature < 0)Tx_roomcon232_buffer[8] = 0x01;
|
||||
else Tx_roomcon232_buffer[8] = 0x00;
|
||||
|
||||
if(Out_Temperature == 100) Tx_roomcon232_buffer[9] = 0xFF;
|
||||
else Tx_roomcon232_buffer[9] = (uint8_t)(Out_Temperature+20);
|
||||
|
||||
if(In_Temperature == 100)Tx_roomcon232_buffer[10] = 0xFF;
|
||||
else Tx_roomcon232_buffer[10] = (uint8_t)(In_Temperature+20);
|
||||
|
||||
Tx_roomcon232_buffer[11] = 0; //reserve hour
|
||||
Tx_roomcon232_buffer[12] = 0; //reserve min
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case RX_DATA_MODE_RESTART1:
|
||||
Run_Mode = 0;
|
||||
Fan_Mode = 0;
|
||||
Reserve_hour = 0;
|
||||
Reserve_timer_sec = 0;
|
||||
//Reserve_Time_Update(Reserve_hour);
|
||||
Err_Code = 0;
|
||||
|
||||
Rommcon_Version = Rx_roomcon232_buffer[2];
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0x02;
|
||||
Tx_roomcon232_buffer[2] = 0;
|
||||
Tx_roomcon232_buffer[3] = 0;
|
||||
Tx_roomcon232_buffer[4] = 0x10;
|
||||
|
||||
Tx_roomcon232_buffer[5] = s_FAN1_VEN_1_DAN;
|
||||
Tx_roomcon232_buffer[6] = s_FAN2_VEN_1_DAN;
|
||||
|
||||
Tx_roomcon232_buffer[7] = s_FAN1_VEN_2_DAN;
|
||||
Tx_roomcon232_buffer[8] = s_FAN2_VEN_2_DAN;
|
||||
|
||||
Tx_roomcon232_buffer[9] = s_FAN1_VEN_3_DAN;
|
||||
Tx_roomcon232_buffer[10] = s_FAN2_VEN_3_DAN;
|
||||
|
||||
Tx_roomcon232_buffer[11] = s_FAN1_VEN_4_DAN;
|
||||
Tx_roomcon232_buffer[12] = s_FAN2_VEN_4_DAN;
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_MODE_RESTART2:
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0x12;
|
||||
Tx_roomcon232_buffer[2] = 0;
|
||||
Tx_roomcon232_buffer[3] = 0;
|
||||
Tx_roomcon232_buffer[4] = 0x10;
|
||||
|
||||
Tx_roomcon232_buffer[5] = s_FAN1_BYPASS_1_DAN;
|
||||
Tx_roomcon232_buffer[6] = s_FAN2_BYPASS_1_DAN;
|
||||
|
||||
Tx_roomcon232_buffer[7] = s_FAN1_AIR_1_DAN;
|
||||
Tx_roomcon232_buffer[8] = s_FAN1_AIR_2_DAN;
|
||||
Tx_roomcon232_buffer[9] = s_FAN1_AIR_3_DAN;
|
||||
Tx_roomcon232_buffer[10] = s_FAN1_AIR_4_DAN;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0; //
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_MODE_VSP: // in test mode
|
||||
|
||||
Vsp_Select = Rx_roomcon232_buffer[3];
|
||||
|
||||
switch(Vsp_Select)
|
||||
{
|
||||
case 1: //
|
||||
Test_Fan1_Ven_1_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Ven_1_dan = Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 2: //
|
||||
Test_Fan1_Ven_2_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Ven_2_dan = Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 3: //
|
||||
Test_Fan1_Ven_3_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Ven_3_dan = Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 4: //
|
||||
Test_Fan1_Ven_4_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Ven_4_dan = Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 5: //
|
||||
Test_Fan1_Bypass_1_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Bypass_1_dan = Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 6: //
|
||||
Test_Fan1_Air_1_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Air_1_dan = 0;//Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 7: //
|
||||
Test_Fan1_Air_2_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Air_2_dan = 0;//Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
case 8: //
|
||||
Test_Fan1_Air_3_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Air_3_dan = 0;//Rx_roomcon232_buffer[5];
|
||||
case 9: //
|
||||
Test_Fan1_Air_4_dan = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Air_4_dan = 0;//Rx_roomcon232_buffer[5];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Test_Fan1_Speed = Rx_roomcon232_buffer[4];
|
||||
Test_Fan2_Speed = Rx_roomcon232_buffer[5];
|
||||
if((Vsp_Select == 6)||(Vsp_Select == 7)||(Vsp_Select == 8)||(Vsp_Select == 9))Test_Fan2_Speed = 0;
|
||||
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0x03;
|
||||
Tx_roomcon232_buffer[2] = 0;
|
||||
Tx_roomcon232_buffer[3] = Rx_roomcon232_buffer[3];
|
||||
Tx_roomcon232_buffer[4] = Rx_roomcon232_buffer[4];
|
||||
Tx_roomcon232_buffer[5] = Rx_roomcon232_buffer[5];
|
||||
|
||||
Tx_roomcon232_buffer[6] = 0;
|
||||
Tx_roomcon232_buffer[7] = 0;
|
||||
Tx_roomcon232_buffer[8] = 0;
|
||||
|
||||
Tx_roomcon232_buffer[9] = (uint8_t)((urpm1>>8)&0x00FF); //2021.5.31
|
||||
Tx_roomcon232_buffer[10] = (uint8_t)(urpm1&0x00FF);
|
||||
Tx_roomcon232_buffer[11] = (uint8_t)((urpm2>>8)&0x00FF);
|
||||
Tx_roomcon232_buffer[12] = (uint8_t)(urpm2&0x00FF);
|
||||
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_MODE_EXIT: // out test mode
|
||||
Run_Mode = Rx_roomcon232_buffer[2];
|
||||
|
||||
EEP_Save_Flag = 1;
|
||||
Tx_roomcon232_buffer[0] = 0xAA;
|
||||
Tx_roomcon232_buffer[1] = 0x04;
|
||||
Tx_roomcon232_buffer[2] = 0;
|
||||
Tx_roomcon232_buffer[3] = 0;
|
||||
Tx_roomcon232_buffer[4] = 0;
|
||||
Tx_roomcon232_buffer[5] = 0;
|
||||
Tx_roomcon232_buffer[6] = 0;
|
||||
Tx_roomcon232_buffer[7] = 0;
|
||||
Tx_roomcon232_buffer[8] = 0;
|
||||
Tx_roomcon232_buffer[9] = 0;
|
||||
Tx_roomcon232_buffer[10] = 0;
|
||||
Tx_roomcon232_buffer[11] = 0;
|
||||
Tx_roomcon232_buffer[12] = 0;
|
||||
|
||||
Tx_roomcon232_buffer[13] = 0;
|
||||
for(i=0; i<13; i++)Tx_roomcon232_buffer[13] ^= Tx_roomcon232_buffer[i];
|
||||
Tx_roomcon232_buffer[14] = 0xEE;
|
||||
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
|
||||
break;
|
||||
case RX_DATA_SENSOR_INFO: //
|
||||
Command_request_type &= ~(TYPE_SENSOR_INFO);
|
||||
Txbuff_init();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_FILTER_INFO: //룸콘
|
||||
Command_request_type &= ~(TYPE_FILTER_INFO);
|
||||
Filter_info_reply();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_CONTROLL: //
|
||||
if(Command_request_type & TYPE_SEND_FLAG)
|
||||
{
|
||||
Command_request_type &= ~TYPE_SEND_FLAG;
|
||||
Run_Mode = Rx_roomcon232_buffer[2];
|
||||
if(Run_Mode != MODE_AUTO)
|
||||
{
|
||||
Fan_Mode = Rx_roomcon232_buffer[3];///////////////// DEMO
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Set_Run_Mode = Run_Mode = Rx_roomcon232_buffer[2];
|
||||
if(Run_Mode != MODE_AUTO)
|
||||
{
|
||||
Set_Fan_Mode = Fan_Mode = Rx_roomcon232_buffer[3];
|
||||
}
|
||||
}
|
||||
//Auto_Mode = Rx_roomcon232_buffer[4];
|
||||
Heater_OnOff = Rx_roomcon232_buffer[5]&0x01;
|
||||
UV_OnOff = Rx_roomcon232_buffer[5]&0x10;
|
||||
|
||||
Filter_Reset_Flag |= Rx_roomcon232_buffer[7];
|
||||
|
||||
Reserve_timer_sec = (uint32_t)Rx_roomcon232_buffer[11]*3600 + (uint32_t)Rx_roomcon232_buffer[12]*60 ;
|
||||
|
||||
|
||||
if(Set_Run_Mode == Run_Mode)Command_request_type &= ~TYPE_MODE;
|
||||
if(Set_Fan_Mode == Fan_Mode)Command_request_type &= ~TYPE_FAN_SPEED;
|
||||
|
||||
if(Reserve_timer_sec == 0){if(Set_Reserve_timer_sec == 0)Command_request_type &= ~TYPE_RESERVATION;}
|
||||
else
|
||||
{
|
||||
if(Set_Reserve_timer_sec != 0)
|
||||
{
|
||||
if(((Reserve_timer_sec-1)/3600 + 1) == ((Set_Reserve_timer_sec-1)/3600 + 1))Command_request_type &= ~TYPE_RESERVATION;
|
||||
}
|
||||
}
|
||||
Txbuff_init();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
|
||||
case RX_DATA_CONTROLL_INFO: // 룸콘
|
||||
Spec_info_reply();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
case RX_DATA_RPM_INFO: //2021.5.31
|
||||
|
||||
if(Rx_roomcon232_buffer[2] == 1)Roomcon_Filter_Error |= ERROR_FILTER_CLEAN;
|
||||
else Roomcon_Filter_Error &= ~ERROR_FILTER_CLEAN;
|
||||
|
||||
if(Rx_roomcon232_buffer[3] == 1)Roomcon_Filter_Error |= ERROR_FILTER_CHANGE;
|
||||
else Roomcon_Filter_Error &= ~ERROR_FILTER_CHANGE;
|
||||
|
||||
if(Rx_roomcon232_buffer[4] == 1)Roomcon_Filter_Error |= ERROR_SOJA_CHANGE;
|
||||
else Roomcon_Filter_Error &= ~ERROR_SOJA_CHANGE;
|
||||
|
||||
Rpm_info_reply();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
case RX_DATA_ERROR_CLEAR: //2021.5.31
|
||||
|
||||
if(Rx_roomcon232_buffer[1] == 0x22)
|
||||
{
|
||||
Err_Code &= ~(ERROR_SA_FAN|ERROR_EA_FAN);
|
||||
}
|
||||
Txbuff_init();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
case RX_DATA_HOOD_INFO: // add 2022.1.25
|
||||
Command_request_type &= ~(TYPE_HOOD_STATE);
|
||||
Txbuff_init();
|
||||
SCUART_Write(SC0,Tx_roomcon232_buffer,15);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SC0_IRQHandler(void)
|
||||
{
|
||||
uint8_t data;
|
||||
|
||||
data = SCUART_READ(SC0);
|
||||
|
||||
rx_roomcon_check(data);
|
||||
Rx_roomcon_TimeOut = 50;
|
||||
|
||||
return;
|
||||
}
|
||||
Reference in New Issue
Block a user