refactor(vd960Loop): 算法回退到 DLD154V4B,四通道适配
- 用 DLD154V4B vd1_task/per_channel 替换 vds_task 复杂算法
- 移除 FUNCTION_B/二次判断/快速变化/多重确认等增强特性
- 保留平坦性离开算法 (CN200910309382),每通道独立状态
- 灵敏度表改为 DLD154V4B 4级: {216,108,36,10} / {108,72,18,9}
- 清理废弃类型: FltHistoryManager, Loop_ACS_Info, StageRangeConfig 等
- 首次添加 vd960DBN 完整源码
This commit is contained in:
187
vd960Loop/utilities/at32f421_freertos_demo/inc/storage.h
Normal file
187
vd960Loop/utilities/at32f421_freertos_demo/inc/storage.h
Normal file
@@ -0,0 +1,187 @@
|
||||
/*
|
||||
* storage.h
|
||||
*
|
||||
* Created on: Aug 27, 2024
|
||||
* Author: Thinkpad
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_STORAGE_H_
|
||||
#define INCLUDE_STORAGE_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "cmcng.h"
|
||||
|
||||
#define Addr_Dev_Flag_Offset 0x00
|
||||
|
||||
#define Addr_Sens_Amount_Offset 0x0E
|
||||
#define Addr_Smart_Mode_Offset 0x0F
|
||||
#define Addr_Loop_Cng_Offset 0x10
|
||||
|
||||
#define Addr_Loop_PlanB_Cng_Offset 0x30
|
||||
#define Addr_Flag_Sample_In 0x30
|
||||
#define Addr_Sample_Max_Amplitude 0x31
|
||||
#define Addr_Flag_Balance_Ori_In 0x33
|
||||
#define Addr_Balance_Ori_In_Max_Cnt 0x34
|
||||
#define Addr_Flag_Release_Ori_PlanB 0x36
|
||||
#define Addr_Release_Ori_PlanB_TimeOut 0x37
|
||||
#define Addr_Release_Ori_PlanB_Weight 0x38
|
||||
#define Addr_Release_Ori_Amplitude 0x39
|
||||
#define Addr_Flag_Release_Rate 0x3B
|
||||
#define Addr_Release_Rate_First 0x3C
|
||||
#define Addr_Release_Rate_Second 0x3D
|
||||
#define Addr_Release_Rate_Weight 0x3E
|
||||
#define Addr_Release_Rate_Mode 0x3F
|
||||
|
||||
#define Addr_Loop_Sens_List_Offset 0x40
|
||||
|
||||
#define Addr_Sens_Array_In 0x40
|
||||
#define Addr_Sens_Array_Out 0x50
|
||||
|
||||
|
||||
#define MAX_LOOP_SENS_AMOUNT 8 // 4 // 5
|
||||
extern const uint16_t SensTable[MAX_LOOP_SENS_AMOUNT];
|
||||
extern const uint16_t SensTable_1[MAX_LOOP_SENS_AMOUNT];
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct _Loop_Sample_CNG_
|
||||
{
|
||||
uint8_t flag;
|
||||
uint16_t max_amplitude; // 最大幅值
|
||||
}Loop_Sample_Cng;
|
||||
|
||||
typedef struct _Loop_Balance_Ori_CNG_
|
||||
{
|
||||
uint8_t flag;
|
||||
uint16_t max_cnt ; // 最大补偿次数
|
||||
}Loop_Balance_Ori_Cng; // 漂移补偿
|
||||
|
||||
typedef struct _Loop_Release_Ori_PlanB_
|
||||
{
|
||||
uint8_t flag_weight;
|
||||
uint16_t max_amplitude; //最大幅值
|
||||
uint8_t timeout; // 单位:分钟
|
||||
}Loop_Release_Ori_PlanB;
|
||||
|
||||
typedef struct _Loop_Release_Change_Rate_
|
||||
{
|
||||
uint8_t flag_weight;
|
||||
uint8_t rate_first;
|
||||
uint8_t rate_second;
|
||||
uint8_t mode;
|
||||
}Loop_Release_Change_Rate;
|
||||
|
||||
|
||||
typedef struct _Loop_Balance_PlanB_
|
||||
{
|
||||
Loop_Sample_Cng sample_cng;
|
||||
Loop_Balance_Ori_Cng balance_ori_cng;
|
||||
Loop_Release_Ori_PlanB release_ori_planB;
|
||||
Loop_Release_Change_Rate release_change_rate;
|
||||
}Loop_Balance_PlanB;
|
||||
|
||||
extern Loop_Balance_PlanB g_loop_balance_planB;
|
||||
|
||||
|
||||
#define SENS_Default_Amount 4
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Freq_High = 0,
|
||||
Freq_Middle_High,
|
||||
Freq_Middle_Low,
|
||||
Freq_Low
|
||||
} Freq_Level;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
Smart_Mode_Disable = 0,
|
||||
Smart_Mode_Enable
|
||||
} Freq_Smart_Mode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LNum_1 = 0,
|
||||
LNum_2,
|
||||
LNum_3,
|
||||
LNum_4
|
||||
} Loop_Num;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t sensitvity; // 高四位表示灵敏度的数量,低四位表示当前灵敏度的序号(从0开始)
|
||||
uint8_t delay_time;
|
||||
uint8_t output_mode;
|
||||
uint8_t direction_mode; // 方向判别模式,0 触发模式, 非0 表示方向判别模式
|
||||
uint8_t loopFreq_Level; // 高低频 0 High, 1 Middle High; 2 Middle Low, 3 Low
|
||||
uint8_t loopSafe_Timeout; // 线圈安全模式, 0表示关闭,非0表示开启,以10秒为单位
|
||||
uint8_t exist_mode; // 0 永久存在,非0,表示有限存在的时间,单位为10秒
|
||||
uint8_t rfu;
|
||||
}Loop_Cng_Unit;
|
||||
// extern Loop_Cng_Unit g_loop_cng_unit[LOOP_CAPTURE_MAX];
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t smart_mode; // 0 disable
|
||||
Loop_Cng_Unit loop_cng[LOOP_CAPTURE_MAX];
|
||||
}Loop_Cng_Info;
|
||||
extern Loop_Cng_Info g_loop_cng_info;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t sens_in;
|
||||
uint16_t sens_out;
|
||||
}Loop_Single_Sens;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t total;
|
||||
Loop_Single_Sens sens[MAX_LOOP_SENS_AMOUNT];
|
||||
}Loop_Sens_List;
|
||||
extern Loop_Sens_List g_loop_sens_list;
|
||||
|
||||
|
||||
|
||||
typedef struct _DBN_BLE_STATE_
|
||||
{
|
||||
uint8_t flag; // if need to report
|
||||
uint8_t enable; // if enable
|
||||
uint8_t send_flag;
|
||||
uint8_t obj_amount;
|
||||
uint8_t cmd;
|
||||
uint8_t sens_type;
|
||||
uint8_t dat_len ;
|
||||
uint8_t dat_offset;
|
||||
uint8_t pkg_amount;
|
||||
uint8_t pkg_seq;
|
||||
uint16_t interval;
|
||||
uint32_t counter;
|
||||
uint8_t timeout_min; // minute
|
||||
uint32_t timeout_counter;
|
||||
} DBN_BLE_State;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
#define HOLD_TIME 5*1200
|
||||
#define LC_HOLD_TIME 4*1200 // 4 minute
|
||||
#define IN_DELAY 10
|
||||
#define OUT_DELAY 39
|
||||
#define PLUSE_DELAY 10
|
||||
|
||||
void set_flp_level(uint8_t loop_num, uint8_t freq_level);
|
||||
|
||||
void set_factory_param(void);
|
||||
void storage_dev(void);
|
||||
void para_store_init(void);
|
||||
void test_factory(void);
|
||||
|
||||
|
||||
#endif /* INCLUDE_STORAGE_H_ */
|
||||
Reference in New Issue
Block a user