258 lines
6.7 KiB
C
258 lines
6.7 KiB
C
#ifndef __PTZ_FAULT_DETECT_H_
|
||
#define __PTZ_FAULT_DETECT_H_
|
||
#include "Usart.h"
|
||
#include "ptz_default_value.h"
|
||
#include "ptz_type_select.h"
|
||
|
||
#define ROTATE_FAULT_MAX_NUM 10//8 //判断转动故障连续最大次数
|
||
|
||
//判断无法转动的模拟电压等级阈值电压
|
||
#define PTZ_HORI_VOLTAGE_LEVEL 1000.0
|
||
#define PTZ_VERT_VOLTAGE_LEVEL 1000.0
|
||
//判断无法转动速度的阈值速度
|
||
#define PTZ_HORI_DETECT_SPEED (PTZ_HORI_MIN_SPEED / 3.0)
|
||
#define PTZ_VERT_DETECT_SPEED (PTZ_VERT_MIN_SPEED / 3.0)
|
||
|
||
//故障标志
|
||
#define FAULT 1 //故障
|
||
#define NO_FAULT 0 //没有故障
|
||
|
||
/*故障指令代号*/
|
||
#define HORI_ROT 0X21
|
||
#define HORI_HALL 0X22
|
||
#define HORI_PDE 0X23
|
||
|
||
#define VERT_ROT 0X24
|
||
#define VERT_HALL 0X25
|
||
#define VERT_PDE 0X26
|
||
|
||
#define WORK_TEMP 0X27//温度故障
|
||
#define WORK_VOLT 0X28//电压故障
|
||
#define CAMERA_POWER 0X29//电源状态
|
||
|
||
#define ALL_FAULT_STATE 0X20//所有都故障
|
||
|
||
#define WORK_ELECTRIC_CURRENT 0x2A//工作电流
|
||
#define VERT_PHOTOELECT_SWITCH 0x2F//垂直光电开关
|
||
|
||
|
||
//上传云台转动方向
|
||
#define PTZ_UP 1//上
|
||
#define PTZ_DOWN 2//下
|
||
#define PTZ_LEFT 3//左
|
||
#define PTZ_RIGHT 4//右
|
||
|
||
|
||
/******************************云台工作状态判断*****************************/
|
||
#define SELF_CHECKING 1//云台自检中
|
||
#define AREA_SCANING 2//区域扫描中
|
||
#define AREA_PAUSING 3//区域扫描暂停中
|
||
#define AREA_RECOING 4//区域扫描恢复中
|
||
#define AREA_CLOSING 5//区域扫描关闭中
|
||
#define PP_SCANING 6//预置位扫描中
|
||
#define PP_PAUSING 7//预置位扫描暂停中
|
||
#define PP_RECOING 8//预置位扫描恢复中
|
||
#define PP_CLOSING 9//预置位扫描关闭中
|
||
#define HORI_VREF_SAMP 10//正在进行水平电压采集
|
||
#define VERT_VREF_SAMP 11//正在进行垂直电压采集
|
||
#define HOVE_VREF_SAMP 12//水平电压采集和垂直电压同时采集
|
||
#define HORI_PD_ERROR 13//水平位置更新出错
|
||
#define VERT_PD_ERROR 14//垂直位置更新出错
|
||
#define HOVE_PD_ERROR 15//水平垂直位置更新都出错
|
||
#define MOTOR_COLD_CANNOT_ROT 16//电机低温无法转动,加热中
|
||
|
||
|
||
#define MOTOR_HORI_COLD_CANNOT_ROT 0xfa//云台水平电机无法转动,转动故障
|
||
#define MOTOR_VERT_COLD_CANNOT_ROT 0xfb//云台垂直电机无法转动,转动故障
|
||
#define MOTOR_HORI_CANNOT_ROT 0xfc//云台水平电机无法转动,转动故障
|
||
#define MOTOR_VERT_CANNOT_ROT 0xfd//云台垂直电机无法转动,转动故障
|
||
#define MOTOR_HOVE_CANNOT_ROT 0xfe//云台所有电机无法转动,转动故障
|
||
#define OTHER_MODE 0 //其他模式
|
||
|
||
//直齿轻型云台
|
||
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
|
||
//霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30//30
|
||
#endif
|
||
//L6235D蜗轮蜗杆中型云台
|
||
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
|
||
//霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30//30
|
||
#endif
|
||
|
||
//L6235D涡轮蜗杆重型云台
|
||
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
|
||
//霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30//30
|
||
#endif
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 14.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
|
||
//霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30//30
|
||
#endif
|
||
|
||
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 18.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
|
||
//霍尔故障阈值
|
||
#define PTZ_HALL_DETECT 30//30
|
||
#endif
|
||
|
||
|
||
//步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_12V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 14.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
#endif
|
||
|
||
|
||
//步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_DRV8711_AS5047D_24V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
#endif
|
||
|
||
//步进电机
|
||
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
#endif
|
||
|
||
//中型步进电机
|
||
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
|
||
//工作温度阈值
|
||
#define PTZ_TEMP_DETECT_MAX 65.0 //70.0
|
||
#define PTZ_TEMP_DETECT_MIN -25.0//70.0
|
||
|
||
//工作电压阈值
|
||
#define PTZ_VOLT_DETECT_MAX 30.0//30.0
|
||
#define PTZ_VOLT_DETECT_MIN 9.0//30.0
|
||
|
||
//工作电流阈值
|
||
#define PTZ_CURRENT_DETECT 6.0//5.0
|
||
#endif
|
||
|
||
|
||
|
||
///需要判断能否执行的指令
|
||
typedef struct _PtzCmdType_
|
||
{//当参数为1时表示该指令能够执行,0表示不能够被执行
|
||
char manual_control;//手动控制,包括上下左右等方向控制,和角度控制
|
||
|
||
char manual_stop;//手动停止指令
|
||
|
||
char preset_bit_set;//预置位设置
|
||
char preset_bit_del;//预置位删除
|
||
char preset_bit_call;//预置位调用
|
||
|
||
char preset_bit_scan_start;//预置位扫描启动
|
||
char preset_bit_scan_pause;//预置位扫描暂停
|
||
char preset_bit_scan_recovery;//预置位扫描恢复
|
||
char preset_bit_scan_close;//预置位扫描关闭
|
||
|
||
char area_set;//区域数据设置
|
||
char area_scan_start;//区域扫描启动
|
||
char area_scan_pause;//区域扫描暂停
|
||
char area_scan_recovery;//区域扫描恢复
|
||
char area_scan_close;//区域扫描关闭
|
||
|
||
char set_zero;//设置0位
|
||
|
||
}PtzCmdType;
|
||
|
||
|
||
//云台工作模式判断
|
||
typedef struct _PtzWorkMode_
|
||
{
|
||
char mode;
|
||
char data_a;
|
||
char data_b;
|
||
}PtzWorkMode;
|
||
|
||
|
||
|
||
|
||
PtzWorkMode ptz_work_mode_judge();
|
||
PtzCmdType ptz_cmd_execute_judge();
|
||
void ptz_send_work_mode(char dev);
|
||
void init_status_monitor_module();
|
||
void ptz_send_fault_state(char dev, unsigned char FaultState);
|
||
#endif |