/****************************************************************************** 版权所有: 文件名称: factor.h 文件版本: 01.01 创建作者: sunxi 创建日期: 2013-05-20 功能说明: 通道参数处理。 其它说明: 修改记录: */ #ifndef _FACTOR_H #define _FACTOR_H /*------------------------------- 头文件 -------------------------------------- */ #include "equ.h" /*------------------------------- 宏定义 -------------------------------------- */ #define ACFACTOR_FILE_VERSION 0X01010103 //文件版本 #define MAX_FACTOR 1.5 // 通道系数最大值 #define MIN_FACTOR 0.5 // 通道系数最小值 #define DEFAULT_FACTOR 1.0 // 通道系数默认值 #define MAX_PHASE 10.0 // 角度系数最大值 #define MIN_PHASE -10.0 // 角度系数最小值 #define DEFAULT_PHASE 0.0 // 角度系数默认值 /*------------------------------ 类型结构 ------------------------------------- */ struct ac_slot_factor { float factor_e_c[EQU_SLOT_AC_CHN]; // 幅值系数 float factor_p_c[EQU_SLOT_AC_CHN]; // 角度系统 #ifdef PROTECT_AC_ADJUST float factor_p_e_c[EQU_SLOT_AC_CHN]; // 保护幅值系数 #endif float pq_factor[EQU_SLOT_AC_CHN][2];// PQ系数 float temp; // 校准温度 }; //系数文件头,16bytes struct acfactor_file_head { u32 signature; //文件签名 u32 version; //文件版本 u32 reserved0; //保留0 u32 reserved1; //保留1 }; struct acfactor_file_head_data { // 文件头 struct acfactor_file_head cfh; u8 auth_id[AUTH_ID_LEN];//比对flash的唯一ID号,以保证校准文件与板卡的对应 u16 base_v; // 最后一次校准的基准电压 u16 base_i; // 最后一次校准的基准电流 u16 addr; //起始地址 u16 num; //存储总量 }; /*------------------------------ 函数声明 ------------------------------------- */ extern u32 g_factor_version; extern const float g_e_k_ECVT[EQU_SCALE_NUM]; int factor_init(void); int factor_exit(void); int factor_read(u32 index,struct ac_slot_factor *asf); int factor_write(u32 index,struct ac_slot_factor *asf); int factor_write_all(u16 base_v,u16 base_i); int factor_write_board(u32 board,struct ac_slot_factor *asf); int factor_get_default(struct ac_slot_factor *asf); int factor_restore_default(void); int factor_e_c_get(u32 slot,u32 index,float *f); int factor_e_c_set(u32 slot,u32 index,float f); int factor_p_c_get(u32 slot,u32 index,float *f); int factor_p_c_set(u32 slot,u32 index,float f); #ifdef PROTECT_AC_ADJUST int factor_p_e_c_get(u32 slot,u32 index,float *f); int factor_p_e_c_set(u32 slot,u32 index,float f); #endif int factor_pq_get(u32 slot,u32 index,float *f); int factor_pq_set(u32 slot,u32 index,float *f); float factor_e_k(u32 index); float factor_p_k(u32 index); float factor_e_ps(u32 index); int factor_temp_get(int slot,float *temp); int factor_temp_set(int slot,float temp); int factor_printf(void); #endif// //========================== 本文件结束 =============================