newPtz/drivers/statusmonitor.h

95 lines
2.7 KiB
C
Raw Normal View History

2025-10-11 03:42:41 +00:00
#ifndef _STATUSMONITOR_H_
#define _STATUSMONITOR_H_
#include "gd32f4xx.h"
#include "drv_adc.h"
#include "mb85rc64.h"
typedef struct _PtzAs5047D_
{
///as5047d云台基准位置初始角度值
float as5047d_ptz_init_angle;
///as5047d角度相对于云台角度最大值
float as5047d_ptz_angle_max;
///磁编码器角度换算成云台角度对应的一次函数斜率K
float as5047d_ptz_angle_K;
///as5047d相对于云台的角度的滤波角度当前值
float as5047d_ptz_angle_wf_actual;
///as5047d相对于云台的角度的滤波角度上一次的值
float as5047d_ptz_angle_wf_last;
///as5047d相对于云台的角度当前实际值
float as5047d_ptz_angle_actual;
///as5047d相对于云台的角度上一次值
float as5047d_ptz_angle_last;
///云台转动范围对应的磁编码应当转动的总角度:
///as5047d_ptz_angle_max = as5047d_cycle_num * 360 + as5047d_remain_angle
///as5047d除开转动的整圈数外多出的不满足整圈的度数
float as5047d_remain_angle;
///as5047d转动的整圈数的数值
int as5047d_cycle_num;
///as5047d转动的整圈数计数转动一圈加减1
int as5047d_cycle_count;
int as5047d_cycle_count_last;
//int as5047d_cycle_count_last_last;
///as5047d采集到的实时角度值
float as5047d_angle_actual;
///as5047d的转向
char as5047d_dir;
///as5047d的数据读错次数
//unsigned int as5047d_read_error_count;
///as5047d采集到的上一次实时角度值
float as5047d_angle_last;
///as5047d采集到的实时角度值与上一次实时角度值的差值
float as5047d_angle_difference;
///as5047d的状态,0处于自检初始化1 数据能够正常使用, 0xff故障
char as5047d_state;
///as5047d的数据是否全部清除,0 不需要清除, 1清除数据
char as5047d_data_reset;
///磁编码器测转速
///as5047d磁编码器转速
float as5047d_speed_actual;
///测试as5047d磁编码器转速起始角度a
float as5047d_speed_angle_a;
///测试as5047d磁编码器转速结束角度b
float as5047d_speed_angle_b;
///测试as5047d磁编码器转速起始角度a、结束角度b之间的差值
float as5047d_speed_angle_c;
///测试as5047d磁编码器转速起始角度a、结束角度b之间的上一次差值
float as5047d_speed_angle_c_last;
unsigned int time_now;
unsigned int time_end;
unsigned int time;
}PtzAs5047D;
typedef struct _PowerOffData_
{
PtzAs5047D hori_as5047d;
PtzAs5047D vert_as5047d;
float hori_angle;
float vert_angle;
float power_down_offset_anle;
unsigned short int num;//编号,数字越大,表示存储的数据越新,主要用于判断最后一次保存的数据
float crc;
}PowerOffData;