151 lines
4.8 KiB
C
151 lines
4.8 KiB
C
|
||
#include "config.h"
|
||
#include "fram.h"
|
||
#include "utils.h"
|
||
#include "modbuss.h"
|
||
#include "stdint.h"
|
||
#include "esp_log.h"
|
||
// #include "flow.h"
|
||
// #include "depth.h"
|
||
// config_data_t * config_para = (config_data_t*)&gWordVar[256];
|
||
// extern real_t * real;
|
||
|
||
static const char *TAG = "config";
|
||
|
||
extern cal_4_20ma_t *cal_4_20ma;
|
||
extern flow_config_t *flow_config;
|
||
extern depth_config_t *depth_config;
|
||
|
||
extern float ac_current_coef[3];
|
||
// 三标一号机
|
||
const cal_4_20ma_t default_cal_4_20ma = {0, {{12740, 63845}, {12760, 63953}}};
|
||
const flow_config_t default_flow_cfg = {0, 1, {0, 0}, {{0, 10000}, {0, 10000}}, {6944, 6944}}; // 4~20MA 输入6m/H 100.00L/min
|
||
// const flow_config_t default_flow_cfg = {0,1,{60,60},{{0,20000},{0,20000}},{6944,6944}}; //脉冲输入 12m/H
|
||
// const depth_config_t default_depth_cfg = {0, 2,0, 1000, 32, -100, 12000, 100, -100, 1000,500, 500, 100, 150, 150}; // 方向脉冲编码器 10线2倍频
|
||
const depth_config_t default_depth_cfg = {
|
||
.magic = 0,
|
||
.input_type = 0,
|
||
.port = 1,
|
||
.N = 1000,
|
||
.M = 640,
|
||
.min_depth = -100,
|
||
.max_depth = 12000,
|
||
.sample_depth = 100,
|
||
.depth_offset = -100,
|
||
.min_valid_depth = 1000,
|
||
.inc_pile_depth = 5000,
|
||
.current_on_threshold = 500,
|
||
.current_off_threshold = 100,
|
||
.move_on_duratino = 150,
|
||
.move_off_duration = 150,
|
||
.move_current_channel = 2,
|
||
}; // 方向脉冲编码器 10线2倍频
|
||
|
||
// const depth_config_t default_depth_cfg = {0,3,0,3800,-200,16000,100,-200}; //200线开漏型正交
|
||
// const depth_config_t default_depth_cfg = {0,1,0,76000,-200,16000,100,-200};
|
||
|
||
#define MAGIC 30627
|
||
#define EE_CAL_4_20MA_ADDR 16
|
||
#define EE_FLOW_CFG_ADDR (EE_CAL_4_20MA_ADDR + sizeof(default_cal_4_20ma))
|
||
#define EE_DEPTH_CFG_ADDR (EE_FLOW_CFG_ADDR + sizeof(default_flow_cfg))
|
||
|
||
extern uint16_t last_pile_id = 0;
|
||
|
||
extern void init_comm(void);
|
||
|
||
// void sys_init(void)
|
||
// {
|
||
// // HAL_Delay(100);
|
||
// // GetCompileDateTime(&gWordVar[0]);
|
||
// // flash_load();
|
||
// // modbus_addr = config_para->modbus_addr;
|
||
// // sliding_window_filter_init(&sliding_window_a,real->data_long,200);
|
||
// // HAL_TIM_Base_Start(&htim6);//ms<6D><73>ʱ<EFBFBD><CAB1>
|
||
// // HAL_TIM_Base_Start_IT(&htim17);//us<75><73>ʱ<EFBFBD><CAB1>
|
||
// //// HAL_TIM_Encoder_Start_IT(&htim1,TIM_CHANNEL_ALL);//enc
|
||
// // HAL_TIM_Encoder_Start(&htim3,TIM_CHANNEL_ALL);//enc
|
||
// // HAL_TIM_IC_Start_IT(&htim1,TIM_CHANNEL_1);//ll
|
||
// // HAL_TIM_IC_Start_IT(&htim1,TIM_CHANNEL_2);//ll
|
||
// // HAL_TIM_IC_Start_IT(&htim15,TIM_CHANNEL_1);//ll
|
||
// // HAL_TIM_IC_Start_IT(&htim15,TIM_CHANNEL_2);//ll
|
||
// // HAL_UART_Receive_IT(&huart1,&temp_rx_data,1);
|
||
// // init_comm();
|
||
// // if(config_para->traffic_mode == MA_4_20)
|
||
// // {
|
||
// // ADS1220_Init();
|
||
// // }
|
||
// // HAL_GPIO_WritePin(GPS_PWR_EN_GPIO_Port, GPS_PWR_EN_Pin, GPIO_PIN_SET);
|
||
// // HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin,0);
|
||
// // HAL_Delay(500);
|
||
// }
|
||
void config_load(void)
|
||
{
|
||
uint16_t temp[2];
|
||
fram_read(0, &temp, sizeof(temp));
|
||
{
|
||
if (temp[0] == MAGIC)
|
||
{
|
||
last_pile_id = temp[1];
|
||
}
|
||
}
|
||
fram_read(EE_CAL_4_20MA_ADDR, cal_4_20ma, sizeof(default_cal_4_20ma));
|
||
if (cal_4_20ma->magic != MAGIC)
|
||
{
|
||
ESP_LOGI(TAG, "fram_read cal_4_20ma failed, use default value");
|
||
memcpy(cal_4_20ma, &default_cal_4_20ma, sizeof(default_cal_4_20ma));
|
||
}
|
||
fram_read(EE_FLOW_CFG_ADDR, flow_config, sizeof(default_flow_cfg));
|
||
if (flow_config->magic != MAGIC)
|
||
{
|
||
ESP_LOGW(TAG, "fram_read flow_config failed, use default value");
|
||
memcpy(flow_config, &default_flow_cfg, sizeof(default_flow_cfg));
|
||
}
|
||
|
||
fram_read(EE_DEPTH_CFG_ADDR, depth_config, sizeof(default_depth_cfg));
|
||
if (depth_config->magic != MAGIC)
|
||
{
|
||
ESP_LOGW(TAG, "fram_read depth_config failed, use default value");
|
||
memcpy(depth_config, &default_depth_cfg, sizeof(default_depth_cfg));
|
||
}
|
||
fram_read(EE_DEPTH_CFG_ADDR, depth_config, sizeof(default_depth_cfg));
|
||
if (depth_config->magic != MAGIC)
|
||
{
|
||
ESP_LOGW(TAG, "fram_read depth_config failed, use default value");
|
||
memcpy(depth_config, &default_depth_cfg, sizeof(default_depth_cfg));
|
||
}
|
||
}
|
||
|
||
void restore_default(void)
|
||
{
|
||
memcpy(cal_4_20ma, &default_cal_4_20ma, sizeof(default_cal_4_20ma));
|
||
memcpy(flow_config, &default_flow_cfg, sizeof(default_flow_cfg));
|
||
memcpy(depth_config, &default_depth_cfg, sizeof(default_depth_cfg));
|
||
fram_write(EE_CAL_4_20MA_ADDR, cal_4_20ma, sizeof(default_cal_4_20ma));
|
||
fram_write(EE_FLOW_CFG_ADDR, flow_config, sizeof(default_flow_cfg));
|
||
fram_write(EE_DEPTH_CFG_ADDR, depth_config, sizeof(default_depth_cfg));
|
||
}
|
||
|
||
void save_cal_4_20ma(void)
|
||
{
|
||
cal_4_20ma->magic = MAGIC;
|
||
cal_4_20ma->magic = fram_write(EE_CAL_4_20MA_ADDR, cal_4_20ma, sizeof(default_cal_4_20ma));
|
||
}
|
||
|
||
void save_flow_cfg(void)
|
||
{
|
||
flow_config->magic = MAGIC;
|
||
flow_config->magic = fram_write(EE_FLOW_CFG_ADDR, flow_config, sizeof(default_flow_cfg));
|
||
}
|
||
|
||
void save_depth_cfg(void)
|
||
{
|
||
depth_config->magic = MAGIC;
|
||
depth_config->magic = fram_write(EE_DEPTH_CFG_ADDR, depth_config, sizeof(default_depth_cfg));
|
||
}
|
||
|
||
void save_pile_id(void)
|
||
{
|
||
uint16_t temp[2] = {MAGIC, last_pile_id};
|
||
fram_write(0, &temp, sizeof(temp));
|
||
}
|