0
0
Files
build/sensor/include/sensor_tx2.h

163 lines
7.0 KiB
C
Raw Normal View History

#ifndef _SENSOR_TX2_H_
#define _SENSOR_TX2_H_
#include <stdint.h>
#define VISION_Info_Length 164+6 //164字节数据+5字节头+1字节校验
typedef union
{
uint16_t ext;
struct
{
uint8_t VISION_state1_data7 : 3; //输出单帧图像中点的检测数量,范围[0~5]。
uint8_t VISION_state1_data6 : 3; //预留
uint8_t VISION_state1_data5 : 2; //00第一个簇是目标;
//01第一个簇识别错误;
//10第一个簇识别错误;
//11第一个簇是恒星
uint8_t VISION_state1_data4 : 2; //00第二个簇是目标;
//01第二个簇识别错误;
//10第二个簇识别错误;
//11第二个簇是恒星
uint8_t VISION_state1_data3 : 2; //00第三个簇是目标;
//01第三个簇识别错误;
//10第三个簇识别错误;
//11第三个簇是恒星
uint8_t VISION_state1_data2 : 2; //00第四个簇是目标;
//01第四个簇识别错误;
//10第四个簇识别错误;
//11第四个簇是恒星
uint8_t VISION_state1_data1 : 2; //00第五个簇是目标;
//01第五个簇识别错误;
//10第五个簇识别错误;
//11第五个簇是恒星
};
} Star_Removal_Brightness_Rec_State;
typedef union
{
uint8_t ext;
struct
{
uint8_t Flag0 : 4; //远距标志
uint8_t Flag1 : 4; //近距标志
};
}TX2_Image_Flag;
typedef struct __attribute__((__packed__))
{
uint8_t recog_Valid; //识别结果,0b00数据无效; 0b11数据有效
float recog_Alpha ; //计算俯仰角α1
float recog_Beta ; //计算俯仰角α1
}RecResult;
typedef struct __attribute__((__packed__))
{
uint16_t FRAME_HEAD; //帧头 0xEB90
uint8_t Type_Code; //类型码 0xF0
uint16_t Code_Length; //帧长度
uint16_t FRAME_RESERVE1; //预留-1 0x8AA1
uint8_t star_Q_flag;
uint8_t Image_flag;
uint8_t Telemetry_Counter; //遥测帧计数器
Star_Removal_Brightness_Rec_State SRBRS_State_data; //远距恒星剔除和亮度识别算法检测情况
float TARGET_Horizontal; //图像中目标点的横向坐标
float TARGET_Vertical ; //图像中目标点的横向坐标
float TARGET_Brightness ; //图像中目标点的亮度信息
uint8_t Target_Capture_Flag; //目标稳定捕获标志0b01已稳定捕获进入跟踪阶段0b00未稳定捕获
uint8_t Image_Number; //目标识别阶段已识别到目标的图像数量
float frame_noise_ratio ; //图像的信噪比
float frame_contrast; //图像对比度
uint8_t Area_Number_far; //远距相机检测到的区域数量
uint8_t Area_Number_close; //近距相机检测到的区域数量
uint8_t far_Core_Size_far; //远距相机存储开运算核的尺寸
uint8_t far_Core_Size_close; //近距相机存储开运算核的尺寸
uint8_t Area_Brightness_far; //远距相机图像平均亮度
uint8_t Area_Brightness_close; //近距相机图像平均亮度
uint8_t Target_Edge_Integrity_Flag_far; //远距相机完整性标志;0b00完整0b11不完整
uint8_t Target_Edge_Integrity_Flag_close; //近距相机完整性标志;0b00完整0b11不完整
uint8_t Missed_Number; //跟踪目标脱靶次数
uint8_t line_of_sight_flag_far; //远距相机视线距可靠标志位;0b00不可靠;0b11可靠
uint8_t line_of_sight_flag_close; //近距相机视线距可靠标志位;0b00不可靠;0b11可靠
float Line_Distance_far; //远距相机视线距离
float Line_Distance_close; //近距相机视线距离
uint32_t Image_time_sec; //照片时间戳整秒
uint16_t Image_time_ms; //照片时间戳毫秒
RecResult Left_Sail_far; //远距相机左帆板
RecResult Right_Sail_far; //远距相机右帆板
RecResult Self_plat_far; //远距相机本体
RecResult Left_Sail_close; //近距相机左帆板
RecResult Right_Sail_close; //近距相机右帆板
RecResult Self_plat_close; //近距相机本体
uint8_t Corrosion_size_far_cmd; //远距相机腐蚀核尺寸指令执行结果
uint8_t Corrosion_size_far; //远距相机腐蚀核尺寸
uint8_t Corrosion_size_close_cmd; //近距相机腐蚀核尺寸指令执行结果
uint8_t Corrosion_size_close; //近距相机腐蚀核尺寸
uint8_t removal_match_radius_cmd; //恒星剔除匹配半径指令执行结果
uint8_t removal_match_radius; //恒星剔除匹配半径
uint8_t Capture_flag_cmd; //捕获标志位指令执行结果
uint8_t Capture_flag; //捕获标志位
uint8_t Target_Stable_Threshold_cmd; //目标稳定捕获判定阈值指令执行结果
uint8_t Target_Stable_Threshold; //目标稳定捕获判定阈值
uint8_t alg_Threshold_far_cmd; //远距相机算法阈值分割系数指令执行结果
float alg_Threshold_far; //远距相机算法阈值分割系数
uint8_t target_track_cmd; //追踪目标信息遥控指令接收结果
uint8_t target_track_fan_flag; //追踪目标信息帆板单双侧标志
float target_track_fan_coef; //追踪目标信息帆板比例系数
float target_track_target_length; //追踪目标信息目标整体长度
float target_track_target_width; //追踪目标信息目标帆板宽度
uint8_t far_alg_change_cmd; //远距相机远近距算法切换阈值指令
uint8_t far_alg_change_Threshold; //远距相机远近距算法切换阈值
uint8_t far_camera_Threshold_cmd; //远距相机依据像素大小判断目标阈值指令
uint8_t far_camera_Threshold; //远距相机依据像素大小判断目标阈值
uint8_t moon_exist_cmd; //月亮存在标志指令
uint8_t moon_exist; //月亮存在标志
uint8_t close_alg_change_cmd; //近距相机远近距算法切换阈值指令
uint8_t close_alg_change_Threshold; //近距相机远近距算法切换阈值
uint8_t close_camera_Threshold_cmd; //近距相机依据像素大小判断目标阈值指令
uint8_t close_camera_Threshold; //近距相机依据像素大小判断目标阈值
uint32_t Identification_time_sec; //识别结果时间整秒
uint16_t Identification_time_ms; //识别结果时间毫秒
TX2_Image_Flag image_exist_flag; //图像无目标标志
TX2_Image_Flag far_close_alg_change_flag; //远近距算法切换标志
TX2_Image_Flag target_edge_flag; //目标边缘标志
// uint8_t image_exist_flag;
// uint8_t far_close_alg_change_flag; //远近距算法切换标志
// uint8_t target_edge_flag; //目标边缘标志
float frame_noise_ratio_close ; //近距图像的信噪比
float frame_contrast_close; //近距图像对比度
uint8_t checksum;
}VISION_TLM_STRUCT; //视觉遥测数据包
uint8_t generate_tx2_frame(uint8_t *frame, double LOS_Remote[9], double R_Plane[2], double TarRVECI[6], double ChaRVECI[6], double ChaMtxVVLH2Body[3][3], double ChaMtxECI2VVLH[3][3], int TargetFLAG);
#endif