#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