H2S stm32F407ZET stm32F407ZGT
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
H2S/Code/base/Src/config.c

138 lines
2.9 KiB

2 years ago
#include "config.h"
#define CONFIG_DEMO
#define DEVICE_ID 1001
#define VERSION_MAX 1
#define VERSION_MIN 12
struct config config;
struct config_uart cfg_uart =
{
.baudrate = 9600,
.databits = 8,
.parity =0,
.stopbits = 1
};
struct config_protocol cfg_protocol =
{
.type = 0, /*0 rtu , 1 hex, 2 ascii*/
.pre_command = "0103000000044408",
// .pre_command = "",
.pre_timeout = 150,
.command = "0103000000044409",
// .command = "00030000000445D8",
.timeout = 0,
.parser = 0, /* 0:float 1:int 2 :ascii */
.endian = 0, /* 0: little 1: big */
.validation = 0, /*校验方法 0 :crc16, 1: sum 2:sign*/
.sign = "0D0A" /*尾部标记*/
};
struct config_output cfg_output =
{
.begin_byte = 0,
.length = 0,
.end_byte = 0,
.place = 0,
.number = 0 ,
.coeff = 1, /* int 系数 */
.retension = 3 /* 保留位数*/
};
struct config_uart cfg_menu =
{
.baudrate = 9600,
.databits = 8,
.parity =0,
.stopbits = 1
};
struct config_uart cfg_modbus =
{
.baudrate = 9600,
.databits = 8,
.parity =0,
.stopbits = 1
};
int Config_Init(void)
{
config.device_id = DEVICE_ID;
config.version_max = VERSION_MAX;
config.version_min = VERSION_MIN;
config.samp_interval_s = 1;
config.uart = cfg_uart;
config.protocol = cfg_protocol;
config.output = cfg_output;
config.menu= cfg_menu;
config.modbus= cfg_modbus;
return 0;
}
// int Config_Read(void)
// {
// }
// int Config_Write(void)
// {
// }
int config_reset(void)
{
// #ifdef CONFIG_DEMO
config.device_id = DEVICE_ID;
config.version_max = VERSION_MAX;
config.version_min = VERSION_MIN;
config.samp_interval_s = 1;
config.uart = cfg_uart;
config.protocol = cfg_protocol;
config.output = cfg_output;
config.menu= cfg_menu;
config.modbus= cfg_modbus;
// #endif
return 0;
}
int config_check(void)
{
/* 对从 eeprom 读出的配置进行校验,判断是否需要resetconfig, 重写eeprom */
// if(!IS_USART_PARITY(config.uart.parity)) return -8;
// if(!IS_USART_STOPBITS(config.uart.stopbits)) return -8;
// if(!IS_USART_PARITY(config.menu.parity)) return -8;
// if(!IS_USART_STOPBITS(config.menu.stopbits)) return -8;
// if(!IS_USART_PARITY(config.modbus.parity)) return -8;
// if(!IS_USART_STOPBITS(config.modbus.stopbits)) return -8;
if ( config.uart.baudrate%2400 != 0) return -6;
if ( config.menu.baudrate%2400 != 0) return -6;
if ( config.modbus.baudrate%2400 != 0) return -6;
return 0;
}
int config_get_cfg(void)
{
// struct time_clock_time time;
// time_clock_get_time(&time);
// i2c_read_memory(&i2c_buf,0xa0,0x00,1,(uint8_t*)&config,sizeof(config));
// while(i2c_get_state(&i2c_buf)!=0){
// if(time_clock_get_time_offset_ms(&time)>1000){
// return -1;
// }
// }
// if(config_check()==0){
// return 0;
// }
// config_reset();
return 0;
}