factor.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: factor.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-05-20
  7. 功能说明: 通道参数处理。
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _FACTOR_H
  12. #define _FACTOR_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. #include "equ.h"
  16. /*------------------------------- 宏定义 --------------------------------------
  17. */
  18. #define ACFACTOR_FILE_VERSION 0X01010103 //文件版本
  19. #define MAX_FACTOR 1.5 // 通道系数最大值
  20. #define MIN_FACTOR 0.5 // 通道系数最小值
  21. #define DEFAULT_FACTOR 1.0 // 通道系数默认值
  22. #define MAX_PHASE 10.0 // 角度系数最大值
  23. #define MIN_PHASE -10.0 // 角度系数最小值
  24. #define DEFAULT_PHASE 0.0 // 角度系数默认值
  25. /*------------------------------ 类型结构 -------------------------------------
  26. */
  27. struct ac_slot_factor
  28. {
  29. float factor_e_c[EQU_SLOT_AC_CHN]; // 幅值系数
  30. float factor_p_c[EQU_SLOT_AC_CHN];
  31. // 角度系统
  32. #ifdef PROTECT_AC_ADJUST
  33. float factor_p_e_c[EQU_SLOT_AC_CHN]; // 保护幅值系数
  34. #endif
  35. float pq_factor[EQU_SLOT_AC_CHN][2];// PQ系数
  36. float temp; // 校准温度
  37. };
  38. //系数文件头,16bytes
  39. struct acfactor_file_head
  40. {
  41. u32 signature; //文件签名
  42. u32 version; //文件版本
  43. u32 reserved0; //保留0
  44. u32 reserved1; //保留1
  45. };
  46. struct acfactor_file_head_data
  47. {
  48. // 文件头
  49. struct acfactor_file_head cfh;
  50. u8 auth_id[AUTH_ID_LEN];//比对flash的唯一ID号,以保证校准文件与板卡的对应
  51. u16 base_v; // 最后一次校准的基准电压
  52. u16 base_i; // 最后一次校准的基准电流
  53. u16 addr; //起始地址
  54. u16 num; //存储总量
  55. };
  56. /*------------------------------ 函数声明 -------------------------------------
  57. */
  58. extern u32 g_factor_version;
  59. extern const float g_e_k_ECVT[EQU_SCALE_NUM];
  60. int factor_init(void);
  61. int factor_exit(void);
  62. int factor_read(u32 index,struct ac_slot_factor *asf);
  63. int factor_write(u32 index,struct ac_slot_factor *asf);
  64. int factor_write_all(u16 base_v,u16 base_i);
  65. int factor_write_board(u32 board,struct ac_slot_factor *asf);
  66. int factor_get_default(struct ac_slot_factor *asf);
  67. int factor_restore_default(void);
  68. int factor_e_c_get(u32 slot,u32 index,float *f);
  69. int factor_e_c_set(u32 slot,u32 index,float f);
  70. int factor_p_c_get(u32 slot,u32 index,float *f);
  71. int factor_p_c_set(u32 slot,u32 index,float f);
  72. #ifdef PROTECT_AC_ADJUST
  73. int factor_p_e_c_get(u32 slot,u32 index,float *f);
  74. int factor_p_e_c_set(u32 slot,u32 index,float f);
  75. #endif
  76. int factor_pq_get(u32 slot,u32 index,float *f);
  77. int factor_pq_set(u32 slot,u32 index,float *f);
  78. float factor_e_k(u32 index);
  79. float factor_p_k(u32 index);
  80. float factor_e_ps(u32 index);
  81. int factor_temp_get(int slot,float *temp);
  82. int factor_temp_set(int slot,float temp);
  83. int factor_printf(void);
  84. #endif//
  85. //========================== 本文件结束 =============================