| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #include "gd32e230x_conf.h"
- #include "main.h"
- #include "SysTick.h"
- #include "Relay.h"
- #include "Key.h"
- #include "Led.h"
- #include "Timer.h"
- #include "Electricity.h"
- #include "Temprature.h"
- #include "Beep.h"
- #include "Fan.h"
- #include "Exti.h"
- #include "At24xx.h"
- #include "Fwdgt.h"
- #include "Mb.h"
- #define VERSION "V1.0.0.0"
- #define UNIQU_1 0x1FFFF7AC
- #define UNIQU_2 0x1FFFF7B0
- #define UNIQU_3 0x1FFFF7B4
- sts_data_t sts_data;
- sts_data_t *get_sts(void)
- {
- return &sts_data;
- }
- int main()
- {
- InitSysTick();
- InitKey();
- InitLED();
- InitTimer();
- InitRelay();
-
- fans_init();
- beep_init();
- temp_init();
- at24xx_init();
- electricity_init();
- sts_exti_init();
-
-
- uint8_t md_addr = ReadKeyValue();
- eMBInit(MB_RTU,md_addr,0,115200,MB_PAR_NONE);
- eMBEnable();
- strcpy(sts_data.m_data.info.date,__DATE__);
- strcat(sts_data.m_data.info.date," ");
- strcat(sts_data.m_data.info.date,__TIME__);
- strcpy(sts_data.m_data.info.ver,VERSION);
- sts_data.m_data.dev |= (STS_TYPE << 8);
-
- sts_data.m_data.info.uniq_ID_64_95 = *(uint32_t*)(UNIQU_3);
- sts_data.m_data.info.uniq_ID_32_63 = *(uint32_t*)(UNIQU_2);
- sts_data.m_data.info.uniq_ID_00_31 = *(uint32_t*)(UNIQU_1);
- // Fwdgt_Init();
-
- sts_data.read_input_level(INPUT_CHANNEL_1);
- sts_data.read_input_level(INPUT_CHANNEL_2);
- sts_data.read_switch_level();
- sts_data.m_data.input_status.input_status[INPUT_CHANNEL_1] = 1; //test
- sts_data.m_data.input_status.input_status[INPUT_CHANNEL_2] = 1; //test
- sts_data.read_eeprom();
- if(sts_data.switch_status == INPUT_CHANNEL_1 &&
- sts_data.m_data.input_status.input_status[INPUT_CHANNEL_1])
- {
- sts_data.choise_input(INPUT_CHANNEL_1);
- }else
- {
- sts_data.choise_input(INPUT_CHANNEL_2);
- }
- if(sts_data.m_data.out_status)
- {
- sts_data.open_output();
- }else
- {
- sts_data.close_output();
- }
- uint8_t channel = CH448_CHANNEL_1;
- uint8_t write_errp_count = 0;
- while(1){
- // Fwdgt_reload();
- eMBPoll();
- sts_data.read_temp();
- // read consumer
- if(sts_data.flag_1000ms)
- {
- sts_data.flag_1000ms = 0;
- sts_data.led_flash();
- write_errp_count++;
- if(sts_data.beep_flag)
- {
- sts_data.beep();
- }else
- {
- sts_data.clear_beep();
- }
- }
- if(write_errp_count >= 10)
- {
- write_errp_count = 0;
- sts_data.write_at24(IIC_CONSUMER_START,&sts_data.iic_consumer,sizeof(sts_data.iic_consumer));
- }
- if(sts_data.flag_100ms)
- {
- sts_data.flag_100ms = 0;
- sts_data.read_ele(channel);
- sts_data.check_wanning(channel);
- channel ++;
- }
-
- if(channel == CH448_CHANNEL_NONE)
- {
- //check input and is or not swtict input
- if((sts_data.m_data.input_status.input_status[INPUT_CHANNEL_1]) &&
- (sts_data.m_data.input_status.input_status[INPUT_CHANNEL_2]))
- {
- sts_data.beep_flag = 0;
- if(sts_data.m_data.md_choise.choise_ch == INPUT_CHANNEL_1)
- {
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_1]))
- {
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_2]))
- {
- if(sts_data.m_data.out_status == OUT_OPEN) sts_data.close_output();
- }else
- {
- sts_data.choise_input(INPUT_CHANNEL_2);
- }
- }
- }else if(sts_data.m_data.md_choise.choise_ch == INPUT_CHANNEL_2)
- {
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_2]))
- {
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_1]))
- {
- if(sts_data.m_data.out_status == OUT_OPEN) sts_data.close_output();
- }else
- {
- sts_data.choise_input(INPUT_CHANNEL_1);
- }
- }
- }else
- {
- ;
- }
- }else if((sts_data.m_data.input_status.input_status[INPUT_CHANNEL_1]) )
- {
- sts_data.beep_flag = 1;
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_1]))
- {
- if(sts_data.m_data.out_status == OUT_OPEN) sts_data.close_output();
- }
- }else if((sts_data.m_data.input_status.input_status[INPUT_CHANNEL_2]) ){
- sts_data.beep_flag = 1;
- if(STS_INPUT_HAS_WANNING(sts_data.m_data.input_wanning.waning[INPUT_CHANNEL_2]))
- {
- if(sts_data.m_data.out_status == OUT_OPEN) sts_data.close_output();
- }
- }else
- {
- sts_data.beep_flag = 1;
- }
- channel = CH448_CHANNEL_1;
- }
- if(sts_data.m_data.temprature_flag == TEMP_ONLINE)
- {
- if(sts_data.m_data.temprature_th.fans_max_temp != 0 && sts_data.m_data.temprature_th.fans_min_temp != 0)
- {
- if(sts_data.m_data.temprature_th.fans_max_temp > sts_data.m_data.temprature_th.fans_min_temp)
- {
- if((int16_t)(sts_data.m_data.temprature) >= sts_data.m_data.temprature_th.fans_max_temp)
- {
- if(sts_data.m_data.fans_status != FANS_ON)
- {
- sts_data.fans(FANS_ON);
- }
- }else if((int16_t)(sts_data.m_data.temprature) <= sts_data.m_data.temprature_th.fans_min_temp)
- {
- if(sts_data.m_data.fans_status != FANS_OFF)
- {
- sts_data.fans(FANS_OFF);
- }
- }
- }
- }
- }
- }
- return 0;
- }
|