95 lines
2.7 KiB
C
95 lines
2.7 KiB
C
|
#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;
|
|||
|
|