MW22-02A/APP/Service/service_statusmonitor.h

258 lines
6.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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