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.
138 lines
2.9 KiB
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;
|
||
|
|
||
|
}
|