params.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. #ifndef _PARAMS_H_
  2. #define _PARAMS_H_
  3. #include <stdint.h>
  4. typedef enum
  5. {
  6. ParamNum_APType = 0, /* 机型 */
  7. ParamNum_RadioLinkLostTimeS = 1, /* 电台失连时间 */
  8. ParamNum_LowVoltAction1 = 2, /* 1 级低电压动作 */
  9. ParamNum_LowVoltValue1 = 3, /* 1 级低电压阈值 */
  10. ParamNum_APCircleRadiusM = 4, /* 环绕半径 */
  11. ParamNum_APRthAltM = 5, /* 返航高度 */
  12. ParamNum_APTakeoffAltM = 6, /* 起飞高度 */
  13. ParamNum_MagDeclinationDeg = 7, /* 磁偏角 */
  14. ParamNum_LidarObavoidAction = 8, /* 雷达灵敏度 */
  15. ParamNum_ImuFilterLever = 9, /* imu 滤波参数 */
  16. ParamNum_ImuAssembleDirection = 10, /* imu 安装方向 */
  17. ParamNum_APIdleSpeed = 11, /* 怠速等级 */
  18. ParamNum_Gps1PosCalibX = 12, /* Gps 1 安装 X 补偿 */
  19. ParamNum_Gps1PosCalibY = 13, /* Gps 1 安装 Y 补偿 */
  20. ParamNum_Gps1PosCalibZ = 14, /* Gps 1 安装 Z 补偿 */
  21. ParamNum_Port4Multiplexing = 15, /* 串口 4 功能复用 */
  22. ParamNum_DgpsAssembleDirection = 16, /* 双查分天线安装方向 */
  23. ParamNum_APMaxTilteAngleDeg = 17, /* 旋翼最大目标倾斜角度 */
  24. ParamNum_APMaxHorizonalSpeedGpsModeDms = 18, /* gps 推杆最大目标水平速度 */
  25. ParamNum_APMaxClimbSpeedGpsModeDms = 19, /* gps 推杆最大目标爬升速度 */
  26. ParamNum_APMaxDeclineSpeedGpsModeDms = 20, /* gps 推杆最大目标下降速度 */
  27. ParamNum_APHoverThrottle = 21, /* 旋翼悬停油门 */
  28. ParamNum_AltRestrictionA = 22, /* 一级高度限制 */
  29. ParamNum_AltRestrictionB = 23, /* 二级高度限制 */
  30. ParamNum_APMaxYawRate = 24, /* 旋翼最大锁尾角速度 */
  31. ParamNum_VoltCalibKp0 = 25, /* 电压校准比例系数0, 通道0(飞控供电通道) */
  32. ParamNum_VoltCalibKp1 = 26, /* 电压校准比例系数1 */
  33. ParamNum_VoltCalibKp2 = 27, /* 电压校准比例系数2 */
  34. ParamNum_VoltCalibOffset0 = 28, /* 电压校准偏移系数0, 通道0(飞控供电通道) */
  35. ParamNum_VoltCalibOffset1 = 29, /* 电压校准偏移系数1 */
  36. ParamNum_VoltCalibOffset2 = 30, /* 电压校准偏移系数2 */
  37. ParamNum_FollowDistM = 31, /* 跟随距离 */
  38. ParamNum_APMaxClimbSpeedAutoModeDms =
  39. 32, /* 自动模式最大目标爬升速度 dm/s */
  40. ParamNum_APMaxDeclineSpeedAutoModeDms =
  41. 33, /* 自动模式最大目标下降速度 dm/s */
  42. ParamNum_APMinLandingRateAutoModeDms = 34, /* 自动模式最小降落速度 dm/s */
  43. ParamNum_MaxHorizonalDistanceM = 35, /* 最远水平距离 */
  44. ParamNum_CameraSignalType = 36, /* 拍照信号类型 0-低电平 1-高电平 2-pwm */
  45. ParamNum_CameraSignalInterval = 37, /* 拍照信号持续时间 ms */
  46. ParamNum_CameraSignalPwmOn = 38, /* 拍照 pwm 高电平时间 */
  47. ParamNum_CameraSignalPwmOff = 39, /* 不拍照 PWM 高电平时间 */
  48. ParamNum_RollAngleKp = 40, /* 横滚姿态感度系数 */
  49. ParamNum_RollGyroKp = 41, /* 横滚基础感度系数 */
  50. ParamNum_RollGyroKd = 42, /* 横滚增稳系数 */
  51. ParamNum_PitchAngleKp = 43, /* 俯仰姿态感度系数 */
  52. ParamNum_PitchGyroKp = 44, /* 俯仰基础感度系数 */
  53. ParamNum_PitchGyroKd = 45, /* 俯仰增稳系数 */
  54. ParamNum_YawAngleKp = 46, /* 航向姿态感度系数 */
  55. ParamNum_YawGyroKp = 47, /* 航向基础感度系数 */
  56. ParamNum_YawGyroKd = 48, /* 航向增稳系数 */
  57. ParamNum_AltholdDistKp = 49, /* 定高位置系数 */
  58. ParamNum_AltholdSpeedKp = 50, /* 定高速度系数 */
  59. ParamNum_AltholdAccKp = 51, /* 定高加速度系数 */
  60. ParamNum_AltholdAccKi = 52, /* 定高积分补偿系数 */
  61. ParamNum_LoiterDistKp = 53, /* 水平位置系数 */
  62. ParamNum_LoiterSpeedKp = 54, /* 水平速度系数 */
  63. ParamNum_LoiterAccKp = 55, /* 水平加速度系数 */
  64. ParamNum_LoiterAccKi = 56, /* 水平积分补偿系数 */
  65. ParamNum_APRthSpeedDms = 57, /* 返航速度 dm/s */
  66. ParamNum_GyroBrakeRatio = 58, /* 陀螺刹车系数 */
  67. ParamNum_LowVoltAction2 = 59, /* 2 级低电压动作 */
  68. ParamNum_LowVoltValue2 = 60, /* 2 级低电压阈值 */
  69. ParamNum_RcFailLoiterTimeS = 61, /* 遥控器失控悬停等待时间 */
  70. ParamNum_Gps2PosCalibX = 62, /* Gps 2 安装 X 补偿 */
  71. ParamNum_Gps2PosCalibY = 63, /* Gps 2 安装 Y 补偿 */
  72. ParamNum_Gps2PosCalibZ = 64, /* Gps 2 安装 Z 补偿 */
  73. ParamNum_VehicleFollowRightDistDM = 65, /* 车载跟随右向距离 */
  74. ParamNum_VehicleFollowForwardDistDM = 66, /* 车载跟随前向距离 */
  75. ParamNum_VehicleFollowIncYawAngleDeg = 67, /* 车载跟随机头夹角 */
  76. ParamNum_VehicleFollowUpDistDM = 68, /* 车载跟随天向距离 */
  77. ParamNum_BaseDgpsYawDeclination = 69, /* 基站双天线航向偏角 0.1deg */
  78. ParamNum_ImitatingFlightSensibility = 70, /* 仿地飞行灵敏度 */
  79. ParamNum_ObstacleHoldDistCm = 71, /* 避障距离 cm */
  80. ParamNum_SbusOAfCofig = 72, /* SBUS OUT 接口复用功能设置 */
  81. ParamNum_LinklostAction = 73, /* 通讯失联保护动作 */
  82. ParamNum_MaxHorJet = 74, /* 最大加速度变化率 */
  83. ParamNum_R0 = 75,
  84. ParamNum_R1 = 76,
  85. ParamNum_BmsLowCapcityPercentage = 77, /* 智能电池低电量百分比 */
  86. ParamNUm_TPAFCONF = 78, /* TP 口复用为开伞 */
  87. ParamNum_ServoFailsafe = 79, /* 主动断桨保护 */
  88. ParamNum_BmsLowCapcityPercentage2 = 80, /* 智能电池低电量 2级 */
  89. ParamNum_MaxNum
  90. } ParamsEnumType;
  91. void params_set_value(uint16_t param_num, int16_t param_value);
  92. int16_t params_get_value(uint16_t param_num);
  93. /*------------- duplicating -----------------------*/
  94. struct FEI_CAN_DATA
  95. {
  96. unsigned char jixing; // 机型
  97. char lowvolt_flag; // 0不开启,1为信号灯提示,2为信号灯提示并返航
  98. short lowvolt_value; // 低电压电压值
  99. char lowvolt_flag2;
  100. short lowvolt_value2; // 二级降落保护电压
  101. short lostlink_time; // 失联时间s
  102. int circle_radius; // 盘旋半径,单位cm
  103. int takeoff_alt_cm; // 起飞高度,单位cm
  104. int rth_alt_cm; // 返航高度,单位cm
  105. float mag_offset; // 磁偏角,单位度
  106. char enable_infrared; // 红外使能
  107. short idle_speed; //怠速油门 1-1100 2-1150 3-1200 4-1250 5-1300
  108. uint8_t port4_af_function; // 串口 4 复用功能
  109. uint16_t rc_fail_loiter_time; // 遥控器失控悬停等待时间
  110. };
  111. extern struct FEI_CAN_DATA conf_par;
  112. struct VER_DATA
  113. {
  114. char ap_name[10]; // 飞控名称
  115. int serial_id; // 序列号
  116. int hardware_id; // 硬件号
  117. int firmware_id; // 固件号
  118. };
  119. extern struct VER_DATA ver_par;
  120. struct data_pid
  121. {
  122. short _pid_flag; // 0xa00a
  123. short _Roll_Angle_P;
  124. short _Roll_Gyro_P;
  125. char _Roll_Gyro_I;
  126. char _Roll_Gyro_D;
  127. unsigned char _Roll_Gyro_Imax;
  128. short _Pitch_Angle_P;
  129. short _Pitch_Gyro_P;
  130. char _Pitch_Gyro_I;
  131. char _Pitch_Gyro_D;
  132. unsigned char _Pitch_Gyro_Imax;
  133. short _Yaw_Angle_P;
  134. short _Yaw_Gyro_P;
  135. char _Yaw_Gyro_I;
  136. char _Yaw_Gyro_D;
  137. unsigned char _Yaw_Gyro_Imax;
  138. short _AltHold_Dist_P;
  139. short _AltHold_Speed_P;
  140. short _AltHold_Acc_P;
  141. char _AltHold_Acc_I;
  142. unsigned char _AltHold_Acc_Imax;
  143. short _Loiter_Dist_P;
  144. short _Loiter_Speed_P;
  145. short _Loiter_Acc_P;
  146. char _Loiter_Acc_I;
  147. unsigned char _Loiter_Brake_Gyro;
  148. short _rc_cal_offset[4];
  149. short _rc_cal_factor_up[4];
  150. short _rc_cal_factor_down[4];
  151. };
  152. extern struct data_pid pidinf;
  153. struct data_ver //固件版本号
  154. {
  155. short _ver_flag;
  156. //飞控名称
  157. char _ap_name[10];
  158. //序列号
  159. int _serial_id;
  160. uint8_t _sysid;
  161. uint8_t _reserverd;
  162. uint16_t _hw_ver;
  163. };
  164. extern struct data_ver verinf;
  165. struct data_conf //机型参数设置数据
  166. {
  167. short _conf_flag;
  168. unsigned char _jixing; // 飞机类型
  169. uint16_t _lostlink_time; // 电台中断保护时间 单位s
  170. unsigned char _lowvolt_flag; // 低电压保护,0不开启 1提示灯 2返航
  171. uint16_t _lowvolt_value; // 低电压保护阈值
  172. uint16_t _circle_radius; // 盘旋半径,单位m
  173. uint16_t _rth_alt; // 返航高度,单位m
  174. uint16_t _takeoff_alt; // 自动起飞高度,单位m
  175. signed char _mag_offset; // 磁偏角
  176. char _enable_infrared; // 是否开启红外
  177. char _idle_speed_level; // 怠速级别
  178. uint8_t _port4_af_function; // 串口 4 复用功能配置
  179. uint8_t _lowvolt_flag2; // 二级电压保护动作
  180. uint16_t _lowvolt_value2; // 二级降落保护电压
  181. uint16_t _rc_fail_loiter_time; // 遥控器失控后悬停等待时间
  182. uint8_t _imitate_sensibility; // 仿地灵敏度
  183. };
  184. extern struct data_conf confinf;
  185. struct data_cam //拍照参数设置数据
  186. {
  187. short _cam_flag;
  188. unsigned char _signal_type; // 信号类型 0-低电平 1-高电平 2-pwm
  189. unsigned short _signal_interval; // 信号持续时间
  190. unsigned short _signal_pwm_takephoto_on; // 拍照 pwm 占空比
  191. unsigned short _signal_pwm_takephoto_off; // 不拍照 pwm 占空比
  192. };
  193. extern struct data_cam caminf;
  194. struct data_par //设置参数信息
  195. {
  196. short _par_flag;
  197. uint8_t _par_maxangle; // 最大角度 deg
  198. uint8_t _par_maxhspeed; // gps 推杆最大目标水平速度 dm/s
  199. uint8_t _par_maxupspeed; // gps 推杆最大目标爬升速度 dm/s
  200. uint8_t _par_maxdownspeed; // gps 推杆最大目标下降速度 dm/s
  201. uint16_t _par_hover_throttle; // 悬停油门值
  202. uint16_t _par_alt_fs_rth; // 一级高度限制 m
  203. uint16_t _par_alt_fs_land; // 二级高度限制 m
  204. uint8_t _par_maxyawrate; // 自动模式最大航向目标速率 deg/s
  205. signed char _par_volt_offset[3]; // 0.1v
  206. uint8_t _fllow_dist; // 跟随距离 m
  207. uint8_t _par_max_climb_rate_automode; // 自动模式最大目标爬升速度 dm/s
  208. uint8_t _par_max_approach_rate_automode; // 自动模式最大目标下降速度 dm/s
  209. uint8_t _par_min_landing_rate_automode; // 自动模式最小目标降落速度 dm/s
  210. uint8_t _par_max_rth_horizontal_speed; // 自动模式巡航最大目标水平速度 dm/s
  211. uint16_t _par_volt_kp[3]; // 电压校准比例系数 * 1000
  212. signed char _par_volt_offset_b[3];
  213. uint16_t _max_horizonal_distance; // 最远水平距离, 单位米
  214. short _vehicle_forward_dist_dm;
  215. short _vehicle_right_dist_dm;
  216. short _vehicle_yaw_included_angle;
  217. short _vehicle_up_dist;
  218. short _vehicle_base_dgps_yaw_dec; // 车载基站差分偏角
  219. uint16_t _obstacle_dist_cm; /* 避障距离 */
  220. uint8_t _sbuso_af_config; /* sbus.o 功能复用 */
  221. uint8_t _linklost_action; /* 通讯失联动作 0-非任务中返航 1-全返航 */
  222. uint8_t _max_hor_jet; /* 最大加速度变化率 4~50m/s^3 */
  223. uint8_t _bms_low_capacity_percentage; /* 智能电池低电量保护百分比 */
  224. uint8_t _bms_low_capacity_percentage2; /* 智能电池低电量保护百分比 2 */
  225. uint8_t _motor_failsafe_action; /* 主动式断桨保护 0-不启用 1-启用并返航 2-启用并迫降 */
  226. uint8_t _tp_afconfig; /* TP 口功能复用 0-拍照 1-降落伞 */
  227. };
  228. extern struct data_par parinf;
  229. #endif