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

248 lines
7.1 KiB
C

#ifndef __DEVICE_ROTATE_BLDC_L6235D_H_
#define __DEVICE_ROTATE_BLDC_L6235D_H_
#include "ptz_type_select.h"
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
//电机控制方式为L6235D
#define PTZ_MOTOR_CONTROL_L6235D 1
///云台水平右转
#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_MIN_SPEED_ANGLE 10.0
#define PTZ_VERT_MIN_SPEED_ANGLE 6.0
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.1
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.1
#endif
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
/***********************标准云台*********************/
//电机控制方式为L6235D
#define PTZ_MOTOR_CONTROL_L6235D 1
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 0//1//0
///云台水平左转
#define PTZ_HORI_DIR_LEFT 1//0//1
///云台处于停止状态
#define PTZ_HORI_DIR_STOP 2
///云台垂直向上
#define PTZ_VERT_DIR_UP 0//01
///云台垂直向下
#define PTZ_VERT_DIR_DOWN 1//0
///云台处于停止状态
#define PTZ_VERT_DIR_STOP 2
///距离最近刹车点以最小转速运行的距离
#define PTZ_HORI_MIN_SPEED_ANGLE 3.0
#define PTZ_VERT_MIN_SPEED_ANGLE 3.0
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.1
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.1
/***********************激光云台定制*********************/
// //电机控制方式为L6235D
// #define PTZ_MOTOR_CONTROL_L6235D 1
// ///云台水平右转
// #define PTZ_HORI_DIR_RIGHT 0
// ///云台水平左转
// #define PTZ_HORI_DIR_LEFT 1
// ///云台处于停止状态
// #define PTZ_HORI_DIR_STOP 2
//
// ///云台垂直向上
// #define PTZ_VERT_DIR_UP 1
// ///云台垂直向下
// #define PTZ_VERT_DIR_DOWN 0
// ///云台处于停止状态
// #define PTZ_VERT_DIR_STOP 2
//
// ///距离最近刹车点以最小转速运行的距离
// #define PTZ_HORI_MIN_SPEED_ANGLE 3.0
// #define PTZ_VERT_MIN_SPEED_ANGLE 3.0
//
// ///刹车最近距离
// #define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
// ///刹车最远距离
// #define PTZ_HORI_STOP_FAR_DISTANCE 10.0
//
// ///刹车最近距离
// #define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
// ///刹车最远距离
// #define PTZ_VERT_STOP_FAR_DISTANCE 10.0
//
// ///云台定位精度,也可用于判断是不是同一个位置
// #define PTZ_HORI_ANGLE_ACCURACY 0.1
// ///云台定位精度,也可用于判断是不是同一个位置
// #define PTZ_VERT_ANGLE_ACCURACY 0.1
#endif
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
///电机控制方式为L6235D
#define PTZ_MOTOR_CONTROL_L6235D 1
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 1
///云台水平左转
#define PTZ_HORI_DIR_LEFT 0
///云台处于停止状态
#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_MIN_SPEED_ANGLE 7.0//5.0
#define PTZ_VERT_MIN_SPEED_ANGLE 3.0//3.0
///刹车最近距离
#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.01
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.01
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
//电机控制方式为L6235D
#define PTZ_MOTOR_CONTROL_L6235D 1
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 1
///云台水平左转
#define PTZ_HORI_DIR_LEFT 0
///云台处于停止状态
#define PTZ_HORI_DIR_STOP 2
///云台垂直向上
#define PTZ_VERT_DIR_UP 1
///云台垂直向下
#define PTZ_VERT_DIR_DOWN 0
///云台处于停止状态
#define PTZ_VERT_DIR_STOP 2
///距离最近刹车点以最小转速运行的距离
#define PTZ_HORI_MIN_SPEED_ANGLE 5.0
#define PTZ_VERT_MIN_SPEED_ANGLE 5.0
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.1
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.1
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
//电机控制方式为L6235D
#define PTZ_MOTOR_CONTROL_L6235D 1
///云台水平右转
#define PTZ_HORI_DIR_RIGHT 0//1
///云台水平左转
#define PTZ_HORI_DIR_LEFT 1//0
///云台处于停止状态
#define PTZ_HORI_DIR_STOP 2
///云台垂直向上
#define PTZ_VERT_DIR_UP 0//1
///云台垂直向下
#define PTZ_VERT_DIR_DOWN 1//0
///云台处于停止状态
#define PTZ_VERT_DIR_STOP 2
///距离最近刹车点以最小转速运行的距离
#define PTZ_HORI_MIN_SPEED_ANGLE 5.0
#define PTZ_VERT_MIN_SPEED_ANGLE 5.0
///刹车最近距离
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
///刹车最近距离
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
///刹车最远距离
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_HORI_ANGLE_ACCURACY 0.1
///云台定位精度,也可用于判断是不是同一个位置
#define PTZ_VERT_ANGLE_ACCURACY 0.1
#endif
#ifdef PTZ_BLDC_MOTOR
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