MW22-02A/APP/Device/Device_angle/get_angle.h

524 lines
33 KiB
C

#ifndef __DEVICE_ANGLE_H_
#define __DEVICE_ANGLE_H_
#include "ptz_type_select.h"
#define PTZ_HORI_PS_TIEM 12u ///延时判断光电开关状态时间,转速为一转每分延时
#define PTZ_VERT_PS_TIEM 12u //延时判断光电开关状态时间,转速为一转每分延时
#ifdef CLK_50M
#define PTZ_HORI_ANGLE_TIME (g_ptz.hori_as5047d.time * 1.5) //(角度读取间隔时间 * 放大倍数)
#define PTZ_VERT_ANGLE_TIME (g_ptz.vert_as5047d.time * 1.5) //(角度读取间隔时间 * 放大倍数)
#else
#define PTZ_HORI_ANGLE_TIME (g_ptz.hori_as5047d.time * 1.5) //(角度读取间隔时间 * 放大倍数)
#define PTZ_VERT_ANGLE_TIME (g_ptz.vert_as5047d.time * 1.5) //(角度读取间隔时间 * 放大倍数)
#endif
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
//磁编码器角度增大,云台角度增大;磁编码器角度减小,云台角度减小
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
// #define PTZ_HORI_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
// #define PTZ_VERT_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
//#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
// #define PTZ_RIGHT_CYCLE_A 5.0 //距离最小满足角度
// #define PTZ_RIGHT_CYCLE_B 20.0 //距离最大不超过角度
// #define PTZ_RIGHT_CYCLE_C 6.5//0.5 //检测转动完一圈是否到达同一个点的距离阈值
// #define PTZ_RIGHT_ANGLE_WF 1.5 //对磁编码器角度进行滤波的阈值
//
// #define PTZ_LEFT_CYCLE_A 5.0 //距离最小满足角度
// #define PTZ_LEFT_CYCLE_B 20.0 //距离最大不超过角度
// #define PTZ_LEFT_CYCLE_C 6.5//0.5 //检测转动完一圈是否到达同一个点的距离阈值
// #define PTZ_LEFT_ANGLE_WF 1.5 //对磁编码器角度进行滤波的阈值
//
// #define PTZ_UP_CYCLE_A 5.0 //距离最小满足角度
// #define PTZ_UP_CYCLE_B 20.0 //距离最大不超过角度
// #define PTZ_UP_CYCLE_C 6.5//0.5 //检测转动完一圈是否到达同一个点的距离阈值
// #define PTZ_UP_ANGLE_WF 1.5 //对磁编码器角度进行滤波的阈值
//
// #define PTZ_DOWN_CYCLE_A 5.0 //距离最小满足角度
// #define PTZ_DOWN_CYCLE_B 20.0 //距离最大不超过角度
// #define PTZ_DOWN_CYCLE_C 6.5//0.5 //检测转动完一圈是否到达同一个点的距离阈值
// #define PTZ_DOWN_ANGLE_WF 1.5 //对磁编码器角度进行滤波的阈值
//
// #define PTZ_HORI_AS5047D_PTZ_ANGLE_WF 10.0 //排除磁编码角度异常值
// #define PTZ_VERT_AS5047D_PTZ_ANGLE_WF 10.0//排除磁编码角度异常值
//
// #define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
// #define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
//
// #define PTZ_VERT_AS5047D_ANGLE_WF_A 30.0//云台垂直磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_A 30.0//云台水平磁编码总角度滤波
//
// #define PTZ_HORI_AS5047D_ANGLE_WF_B 1400.0//云台水平磁编码总角度滤波
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
//#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
//磁编码器角度增大,云台角度增大;磁编码器角度减小,云台角度减小
// //#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
// #define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//
// //磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
// #define PTZ_HORI_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
// //#define PTZ_VERT_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
//#define PTZ_HORI_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_ASY 2//角度变化异步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
//#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
//步进电机
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_12V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
// #define PTZ_RIGHT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_LEFT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_UP_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_DOWN_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
// #define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
//
// #define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
//步进电机
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_24V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
// #define PTZ_RIGHT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_LEFT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_UP_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_DOWN_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
// #define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
//
// #define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
// #define PTZ_RIGHT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_LEFT_CYCLE_C (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_UP_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_DOWN_CYCLE_C (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
//
// #define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
// #define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
//
// #define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_motor_speed_actual / PTZ_VERT_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
// #define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_motor_speed_actual / PTZ_HORI_MOTOR_RATIO * 6 / 1000.0 * PTZ_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
//中型步进电机
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
//磁编码器角度增大,云台角度减小;磁编码器角度减小,云台角度增大
#define PTZ_HORI_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
#define PTZ_VERT_ANGLE_AS5047D_ANGLE_SYN 1//角度变化同步
//#define PTZ_HORI_GET_ANGLE_MANY 1//多次获取角度算平均值
//#define PTZ_VERT_GET_ANGLE_MANY 1//多次获取角度算平均值
#define PTZ_HORI_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_VERT_GET_ANGLE_SINGLE 1//单次获取角度
#define PTZ_SW3_LEFT_RISE_UPDATE 1 //打开水平挡片左转上升沿更新水平角度数据
//#define PTZ_SW1_DOWN_FALL_UPDATE 1 //垂直以SW1下俯下降沿更新垂直角度数据
#define PTZ_SW1_UP_RISE_UPDATE 1 //垂直以SW1上仰上升沿更新垂直角度数据
#define PTZ_RIGHT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_LEFT_CYCLE_C (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_UP_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_DOWN_CYCLE_C (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0 //检测转动完一圈是否到达同一个点的距离阈值
#define PTZ_HORI_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_ANGLE_READ_NUM 4 //角度连续读取次数
#define PTZ_VERT_AS5047D_ANGLE_WF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0)//36.0//云台垂直磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0)//36.0//云台水平磁编码总角度滤波
#define PTZ_HORI_AS5047D_ANGLE_WF_B (g_ptz.hori_as5047d.as5047d_ptz_angle_max - (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0))//云台水平磁编码总角度滤波
#define PTZ_HORI_ANGLE_DIFF_A (g_ptz.hori_speed_actual * PTZ_HORI_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_HORI_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_HORI_ANGLE_DIFF_B (360.0 - PTZ_HORI_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_A (g_ptz.vert_speed_actual * PTZ_VERT_BIG_GEAR_RATIO * 6.0 / 1000.0 * PTZ_VERT_ANGLE_TIME + 5.0) //上次采集角度和此次采集角度之间允许的差值
#define PTZ_VERT_ANGLE_DIFF_B (360.0 - PTZ_VERT_ANGLE_DIFF_A) //上次采集角度和此次采集角度之间允许的差值
#define HORI_MS_SW3_ERROR 25//采用磁开关,实时计算磁开关范围时用的阈值
#endif
void ptz_send_sw_angle_state(char dev);
void init_angle_module();
void ptz_send_angle(char dev,char angle_choice);
#endif