MW22-02A/APP/Device/Device_rotate/rotate_step.h

109 lines
3.1 KiB
C

#ifndef __PTZ_ROATE_CONTROL_H_
#define __PTZ_ROATE_CONTROL_H_
#include "ptz_header_file.h"
#include "ptz_type_select.h"
#include "tmc2160.h"
//步进电机
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 0
///云台水平左转
#define PTZ_HORI_DIR_LEFT 1
///云台处于停止状态
#define PTZ_HORI_DIR_STOP 2
///云台垂直向上
#define PTZ_VERT_DIR_UP 0
///云台垂直向下
#define PTZ_VERT_DIR_DOWN 1
///云台处于停止状态
#define PTZ_VERT_DIR_STOP 2
///距离最近刹车点以最小转速运行的距离
#define PTZ_HORI_BREAK_SPEED_ANGLE ptz_hori_break_angle()
#define PTZ_VERT_BREAK_SPEED_ANGLE ptz_vert_break_angle()
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.005
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.005
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.05
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.05
#endif
//中型步进电机
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 1//0
///云台水平左转
#define PTZ_HORI_DIR_LEFT 3//0//1
///云台处于停止状态
#define PTZ_HORI_DIR_STOP 2
///云台垂直向上
#define PTZ_VERT_DIR_UP 1//0
///云台垂直向下
#define PTZ_VERT_DIR_DOWN 3//0//1
///云台处于停止状态
#define PTZ_VERT_DIR_STOP 2
///距离最近刹车点以最小转速运行的距离
#define PTZ_HORI_BREAK_SPEED_ANGLE ptz_hori_break_angle()
#define PTZ_VERT_BREAK_SPEED_ANGLE ptz_vert_break_angle()
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.005
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.005
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.05
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.05
#endif
#ifdef PTZ_STEP_MOTOR
float ptz_vert_break_angle();
float ptz_hori_break_angle();
float ptz_hori_step_v_to_f(float v, unsigned short int microstep_alue);
float ptz_hori_step_f_to_v(float f, unsigned short int microstep_alue);
float ptz_vert_step_v_to_f(float v, unsigned short int microstep_alue);
float ptz_vert_step_f_to_v(float f, unsigned short int microstep_alue);
#ifdef TMC2160
TMC2160Control ptz_hori_choice_microstep(float ptz_v);
TMC2160Control ptz_vert_choice_microstep(float ptz_v);
#endif
void ptz_sem_post_stop_mutex();
void ptz_hori_start(char direction, float speed);
void ptz_hori_stop(unsigned short int time);
void ptz_vert_start(char direction, float speed);
void ptz_vert_stop(unsigned short int time);
void init_rotate_monitor_module(void);
#endif
#endif