RadarApp结构体定义
消息结构体定义及说明
- 数据类型
- 一、帧类型定义
- 1.1 控制帧
- 1.1.1 控制帧帧头定义
- 1.1.2 控制帧类型(ucDataType)
- 1.2 数据帧类型
- 1.2.1 数据帧帧头定义
- 1.2.2 Debug数据帧类型(ucDataType)
- 二 、命令消息定义
- 2.1 设备健康上报(HealthRpt_type)
- 2.2 航迹上报(trackRpt_type)
- 2.3 设备图像上报(imageRpt_type)
- 2.3.1 图片类型( PictureType)
- 2.3.2 图像类型(ImageType)
- 2.4 设备开关机和重启消息(_PowerCmd)
- 2.5 场景设置命令(_ScenePara)
- 2.6 设备参数设置命令(_DevicePara)
- 2.7 设备参数查询和响应
- 2.7.1 设备参数查询响应内容(CST_req_cont_type )
- 2.7.1.1 CST_req1_type
- 2.7.1.2 CST_req2_type
- 2.7.1.3 CST_req3_type
- 2.7.1.4 CST_req4_type
- 2.7.1.5 CST_req5_type
- 2.7.1.6 CST_req6_type
- 2.8 设备工作模式命令(Workmode_type)
- 2.9 设备校正命令(Calimode_type)
- 2.10 校正类型(CaliMode_Value)
- 三、参数定义
- 3.1 系统参数(sPara)
- 3.1.1 sParaU_type
- 3.1.2 sParaI_type
- 3.1.3 sParaD_type
- 3.2、算法参数
- 3.2.1 基本算法参数(AlgoPara_type)
- 3.2.2 高级算法参数(algo_adv_type)
- 3.2.3 波形参数(wave_adv_type)
- 3.4 硬件参数
数据类型
typedef float f32;
typedef int s32;
typedef short s16;
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;
一、帧类型定义
帧类型分为控制帧和数据帧
typedef enum
{FT_COMD = 0x01, //APP命令FT_ARPT = 0x12, //自动上报点迹FT_DEBU = 0x13, //调试信号上传FT_STRG = 0x11, //发送字符串FT_BEAT = 0x30, //心跳
}FrameType;
1.1 控制帧
1.1.1 控制帧帧头定义
typedef struct _MESSAGE_HEADER_CTRL_
{u16 usSOF; //帧起始 u8 ucSeqId; //包序列u8 ucFormat; //业务数据帧数据存储格式如float,doubleu8 ucFrameType;//帧类型u8 ucDataType; //数据类型u16 usSrcId; //设备源IDu16 usDstId; //目标IDu16 ulReserved; //保留位u32 ulDataLen; //数据长度
}Header_t1;
1.1.2 控制帧类型(ucDataType)
typedef enum
{DT1_HEALTH_STATUS_REPORT = 2,//设备健康状态上报DT1_TRACK_REPORT = 8,//航迹数据上报DT1_TPONT_REPORT = 10,//点迹数据上报DT1_IMAGE_UPLOAD = 12,//雷达图像数据上传DT1_POWERON_RESET = 33,//设备开关机和重启DT1_POWERON_RESET_RSP = 34,//设备电源状态响应DT1_SCENE_SET = 35,//应用场景设置命令DT1_SCENE_SET_RSP = 36,//应用场景设置命令响应DT1_DevPara_SET = 37,//设备参数设置DT1_DevPara_SET_RSP = 38,//设备参数设置响应DT1_DevPara_REQ = 39,//设备参数查询DT1_DevPara_REQ_RSP = 40,//设备参数查询响应DT1_DEV_WMODE_CMD = 41,//设备工作模式命令DT1_DEV_WMODE_CMD_RSP = 42,//设备工作模式命令响应DT1_CALIBRATION_CMD = 43,//设备校正命令DT1_CALIBRATION_CMD_RSP = 44,//设备校正命令响应DT1_RADAR_CONFIG = 45,//雷达参数配置命令DT1_RADAR_CONFIG_RSP = 46,//雷达参数配置命令响应DT1_ALGO_ADV_TYPE = 47,//高级算法参数DT1_WAVE_ADV_TYPE = 49,//高级波形参数DT1_HWCMPN_TYPE = 51,//高级硬件设置DT1_FILTERCOEF_TYPE = 53,//滤波器系数DT1_THRESH_TYPE = 55,//门限系数DT1_SPARA = 57,DT1_SHIFTDETECT = 61,//位移计下发参数DT1_STRING = 80,
}AppCmd_DataType;
1.2 数据帧类型
1.2.1 数据帧帧头定义
由消息帧头部分(前20字节)和业务帧头部分(后44字节)组成
typedef struct _MESSAGE_HEADER_DPRC_
{u16 usSOF; //帧起始u8 ucSeqId; //包序列u8 ucFormat;//业务数据帧数据存储格式如float,doubleu8 ucFrameType;//帧类型u8 ucDataType;//数据类型u16 usSrcId; //设备源IDu16 usDstId; //目标IDu16 ulnRows; //数据行数u32 ulDataLen; //数据长度u32 pdata;
}Header_t3;
typedef struct _sHead
{Header_t3 Msghead;//消息帧头u16 BeamCurr;//天线当前波束指向u16 AntSpeed;//天线扫描速度u32 PID;//脉冲序号u16 CPN;//脉冲数目u16 N;//u8 Nchns;//通道个数u8 Chtype;//通道类型u16 ChInfo; //通道信息u8 Wtype; //波形类别u8 Reserved2; // u16 PRT;//重复周期u16 Tau;//脉冲宽度u16 B;//工作带宽u16 Wpos;//u16 Reserved3;u16 Fs; //采样频率u16 F0;//中频频率u16 RxdB;//信噪比u16 CellSize;//单元尺寸u16 LenSOR;//有用单元起始u16 LenROI;//有用单元长度u32 Timing;//定时信息
}_sHead;
1.2.2 Debug数据帧类型(ucDataType)
typedef enum
{DT2_NULL_DEFINE = 0,//数据无定义DT2_EMIT_BB_SIGNAL = 1,//基带信号DT2_EMIT_IF_SIGNAL = 2,//发射中频信号DT2_RCV_AFT_ADC = 3,//接收信号采集输出(ADC之后)DT2_BB_SIG_AFT_DDC = 4,//抽取前的接收基带信号(DDC后未抽取)DT2_BB_SIG_AFT_DDC_DS = 5,//抽取后的接收基带信号(DDC后滤波+抽取)对应原始回波DT2_SIG_AFT_CHN_CALI = 6,//校正后的通道信号DT2_SIG_AFT_DBF = 7,//通道合成后信号(DBF)DT2_SIG_AFT_PC = 8,//脉压后信号(FFT后)对应目标回波DT2_SIG_AFT_MTI = 9,//杂波滤除后信号(MTI后)对应判别回波DT2_IMG_AFT_MTD = 10,//距离-多普勒信号(MTTD后)对应回波分析DT2_BG_ECHO = 11,//无目标回波信号(BG回波)对应场景回波DT2_CFAR_THR = 12,//CFAR门限DT2_JUDGE_RESULT = 13,//判决结果DT2_COMPOSITE_SIG_1 = 20,//组合信号1DT2_COMPOSITE_SIG_2 = 21,//组合信号2DT2_SHIFTDETECTSEND = 32,//位移计DT2_BUTT,
}Debug_DataType;
二 、命令消息定义
2.1 设备健康上报(HealthRpt_type)
typedef struct
{u32 DevID; //设备号u32 Time1; //时间u32 Time2;//时间u16 Health; //整机异常码,设备工作状态情况0:表示OK;其它表示问题故障码u8 PwrStatus;//电源状态0x00正常,否则异常u8 RFStatus;//射频状态0x00正常,否则异常u8 SPStatus;//信处状态0x00正常,否则异常u8 ServoStatus;//天线状态0x00正常,否则异常
}HealthRpt_type;
2.2 航迹上报(trackRpt_type)
typedef struct //航迹序列
{f32 Distan; //距离f32 Azimut; //角度f32 Height; //高度f32 VelocX; //水平速度f32 VelocY; //垂直速度f32 Strent; //强度
}tPara_type;
typedef struct
{u32 trackID;//航迹IDu16 tartype;//目标类型u16 tvalue; //根据具体定义tPara_type point;
}track_type;
typedef struct
{u32 timeIndex;//时间标签u32 tinfo; //点迹信息 u32 tNum; //点迹数目 tPara_type point[MAX_Pontnum];
}tpontRpt_type;
typedef struct
{ u32 RadarID;//雷达IDu32 timeIndex;//航迹时间标签u32 tinfo; //航迹信息u32 tNum; //航迹数目track_type track[MAX_Pontnum];
}trackRpt_type;
2.3 设备图像上报(imageRpt_type)
typedef struct
{u16 sizeRow; //图片行数u16 sizeCol; //图片列数f32 ImData[MAX_IMAGESIZE];//图片数据
}image_type;typedef struct
{u32 Timeindex;//图片时间标签u16 PictureType;//图片类型u16 ImageType;//图像类型image_type ImageData;
}imageRpt_type;
2.3.1 图片类型( PictureType)
0x00:非图片格式
0x10:jpg图片,32位
0x11:jpg图片,24位
0x20:png图片,32位
0x21:png图片,24位
2.3.2 图像类型(ImageType)
10:摄像头图像
20:雷达距离回波
21:雷达距离多普勒图像
22:雷达杂波抑制后回波
23:雷达检测门限
2.4 设备开关机和重启消息(_PowerCmd)
typedef struct
{u8 PwrONOFF; //整机开关u8 TXPWRONFF;//射频开关u8 SPPWRONOFF;//信处开关
}_PowerCmd;
PwrONOFF; //整机开关
0:不操作;
1:开机,
2:关机;
3:关机重启
4:不断电复位(热复位)
TXPWRONFF;//射频开关
0:不操作;
1:开机;
2:关机;
3:关机重启
4:热复位
SPPWRONOFF;//信处开关
0:不操作;
1:开机;
2:关机;
3:关机重启
4:热复位
2.5 场景设置命令(_ScenePara)
typedef struct
{f32 BoudaryLeft; //左边界f32 BoudaryRight; //右边界f32 BoudaryNear; //近边界f32 BoudaryFar; //远边界
}ROIAREA;
typedef struct
{u32 MasterPos; //主雷达位置u32 SlavePos; //从雷达位置u16 Valid; //区域生效ROIAREA UsrROIArea; //感兴趣区域u32 CleanTime; //清空时间u32 DeadZone; //死区
}_ScenePara;
2.6 设备参数设置命令(_DevicePara)
typedef struct
{u32 CommuSel; //通讯方式 0=UDP,1=TCP,3=RS485u32 IPadress1; //IP地址1u32 IPadress2; //IP地址2u32 Port; //端口u32 COM; //串口u32 Baudrate; //波特率u32 Realtime1; //校时1u32 Realtime2; //校时2u32 Realtime3; //校时3u16 Alarm; //报警 报警是否生效,1报警,0不报警u16 AlarmPolar; //u32 AlarmTime; //报警时间u32 HealthRptIntvl; //健康上报间隔u16 HealthRptEnable;//健康上报打开u16 ImagesRptEnable;//图像上报打开
}_DevicePara;
2.7 设备参数查询和响应
下面为设备参数查询命令,根据ReqContext的不同,下位机上传不同的内容
typedef struct
{MsgHeader_ctrl_type header;u32 DevID; //设备号u32 ReqContext;//查询内容,值为1,2,3,4,5,6MsgTailer tailer;
}msg_DevPara_Req;
下面为设备参数查询响应(msg_DevPara_Req_Rsp)
typedef struct
{MsgHeader_ctrl_type header;u8 Result;CST_req_cont_type content;MsgTailer tailer;
}msg_DevPara_Req_Rsp;
2.7.1 设备参数查询响应内容(CST_req_cont_type )
typedef union
{ CST_req1_type req1_cont;CST_req2_type req2_cont;CST_req3_type req3_cont;CST_req4_type req4_cont;CST_req5_type req5_cont;CST_req6_type req6_cont;
}CST_req_cont_type;
2.7.1.1 CST_req1_type
typedef struct
{u32 Soft_Ver; //软件版本u32 VersionTime; //软件时间标签(年 月 日)u32 HdWr_Ver; //硬件版本、批次u32 IPaddr; //IP地址u32 MacAddr; //MAC地址或者IMEI号
}CST_req1_type;
2.7.1.2 CST_req2_type
typedef struct
{f32 Dev_PosX; //设备位置Xf32 Dev_PosY; //设备位置Yf32 Dev_PosZ; //设备高度Zf32 North_Angle; //正北角度u16 Work_Mode; //工作模式f32 Dist_Range; //距离覆盖范围f32 Angle_Range; //角度覆盖范围
}CST_req2_type;
2.7.1.3 CST_req3_type
typedef struct
{u8 Health; //整机健康码u8 PowStatus; //电源状态, 每位对应一个模块u8 RFStatus; //射频状态u8 SPStatus; //信处状态
}CST_req3_type;
2.7.1.4 CST_req4_type
typedef struct
{f32 servoPos; //伺服位置f32 antennavel; //天线转速u8 servoSta; //伺服状态
}CST_req4_type;
2.7.1.5 CST_req5_type
typedef struct
{u32 Time1; //当前设备时间,年月日,时分秒u32 Time2; //当前定时序号u8 timeSrc; //授时来源
}CST_req5_type;
2.7.1.6 CST_req6_type
typedef struct
{ err_type staterr;detectPara_type detectPara;filterPara_type filterPara;
}CST_req6_type;typedef struct
{u8 dynamic_exceed; //超过了动态范围u8 sPara_rational; //sPara 是否合理 0 合理 1 不合理u8 echo_too_small; //回波太少u8 echo_too_great; //回波太大u8 thres_zero; //门限错误u8 tar_num_too_great; //目标个数太大u8 false_detect_high; //错检高u8 segment_err; //分段错误u8 timing_err; //定时错误
}err_type;typedef struct
{s16 mfilt1; //MTI滤波器1s16 mfilt2; //MTI滤波器2s16 sfilt1; //STI滤波器1s16 sfilt2; //STI滤波器2u16 Mref; //参考单元个数1u16 Nref; //参考单元个数2f32 is_cfar_beltai; f32 os_cfar_Q;u32 tblLen;
}detectPara_type;typedef struct
{ u16 bufState; //buffer状态u16 bufnRows; //buffer行数u16 bufnCols; //buffer列数
// app_fir_f32 SFMAs[MAX_FILTER_NUM];
// app_fir_f32 SFMBs[MAX_FILTER_NUM];
// app_iir_f32 SIMAs[MAX_FILTER_NUM];
// app_iir_f32 SIMBs[MAX_FILTER_NUM];
// app_iir_f32 SISAs[MAX_FILTER_NUM];
// app_iir_f32 SISBs[MAX_FILTER_NUM];
}filterPara_type; //滤波器参数
2.8 设备工作模式命令(Workmode_type)
typedef struct
{u16 mode;u8 wode[16]; //对应四个wode参数
}Workmode_type;
设备工作模式(mode)
typedef enum
{SILENCE = 0, //静默关闭模式MONO_RADAR = 1, //单雷达工作模式MASTER_SLAVE = 2, //双雷达正常工作模式CALIBRATION = 3, //校正模式TESTMODE = 4, //测试模式DATA_ACQ = 5, //数据采集CUSTOM_BOUDRAY = 6, //边界自定义ANT_PATTERN_TEST = 7, //方向图测试SLEFPOST = 8, //自检模式RADAR_WITH_CAMERA = 16, //雷光模式SHIFT_DETECT = 32, //位移检测RENEW_IN_FACTORY = 0xff,//出厂恢复
}WorkMode_Value;
2.9 设备校正命令(Calimode_type)
typedef struct
{f32 AngleBase; //雷达角度基准AngleBase,默认0;f32 AngleRatio; //雷达角度尺度AngleRatio,默认1;f32 RangeBase; //雷达距离基准RangeBase,默认0;f32 RangeRatio; //雷达距离尺度RangeRatio,默认1f32 ChnCoef[2]; //校正参数
}cPara_type;typedef struct
{u16 mode;cPara_type cPara;
}Calimode_type;
2.10 校正类型(CaliMode_Value)
CaliMode_Value对应Calimode_type内的mode
typedef enum
{TARCALI_MANUAL = 1, //雷达目标手动校正TARCALI_AUTO = 2, //雷达目标自动校正CHNCALI_MANUAL = 3, //雷达通道手动校正CHNCALI_AUTO = 4, //雷达通道自动校正CAMERABASELINE_CALI = 5, //摄像头基线手动校准CAMERA_MULTIPLYING_CALI = 6, //摄像头倍率手动校准TAR_POSITION_ACK = 7, //校正目标位置确认QUIT = 8, //退出校正模式
}CaliMode_Value;
三、参数定义
参数分为算法参数和系统参数
3.1 系统参数(sPara)
系统参数分为sParaU_type、sParaI_type和sParaD_type
3.1.1 sParaU_type
typedef struct
{u16 dRate; //数据率u16 Wtype; //波形类别u16 PRFSEL; //重复周期u16 AGC; //增益控制u16 Antbeam; //天线角度u16 Resolu; //距离精度选择u16 CluttThr; //杂波阈值u16 Detector; //检测器选择u16 Pfak; //虚警率u16 TrackSet; //航迹处理u16 ThrNum; //门限因子个数
}sParaU_type;
3.1.2 sParaI_type
typedef struct
{f32 Fc; //射频工作频率 f32 B; //信号带宽f32 Bmw; //波束宽度f32 Pt; //发射功率f32 Gt; //天线增益f32 Nsens; //天线个数f32 Fs; //采样频率f32 F0; //中频频率f32 SNR; //信噪比f32 SOR; //距离起始f32 EOR; //距离结束f32 SOA; //角度起始f32 EOA; //角度结束f32 SOV; //速度起始f32 EOV; //速度结束u32 chNum; //天线个数u32 CPN; //脉冲积累个数u32 VFFTLEN; //速度谱点数f32 Aspd; //天线转速u32 De; //数据抽取率u8 STC; //时间灵敏度
}sParaI_type;
3.1.3 sParaD_type
typedef struct
{f32 PID; //当前脉冲起始IDf32 BID; //波位IDf32 lamda; //波长f32 Ts; //采样时间f32 PRT; //脉冲重复时间f32 Tm; //脉冲扫频时间f32 Nupd; //更新点数u32 roiLen; //距离点数f32 cellSize; //单元大小f32 aFactor; //角度因子f32 vFactor; //速度因子f32 Dphi0; //相位f32 coef_cali[2]; //校正系数f32 TH2; //门限u16 maxTgNum; //最大目标个数u8 flagTargetS; //
}sParaD_type;
3.2、算法参数
3.2.1 基本算法参数(AlgoPara_type)
typedef struct
{u32 dRate; //数据率u32 Wtype; //波形选择u32 PRFSEL; //重频选择u32 AGC; //AGC与硬件相关的一个参数u32 Antbeam; //天线角度u32 Resolu; //距离精度u32 CluttThr; //地杂波阈值u32 Detector; //检测器选择u32 Pfak; //检测器灵敏度u32 TrackSet; //航迹处理u32 ThrNum; //门限因子个数
// uext_type2 uext;
}AlgoPara_type;
3.2.2 高级算法参数(algo_adv_type)
typedef struct
{u16 segNum; //分段个数f32 cutpoint[MAX_SegNum];u16 SensT[MAX_SegNum];u16 SensM[MAX_SegNum];
}_SegPara;typedef struct
{u16 method; //u16 CPN; //脉冲积累个数u16 FFTlength; //FFT长度_SegPara segPara;u16 VgaLvl; //Vga水平u16 BG[3]; //灵敏度f32 detargs[2];u16 MaxN_Tgt; //最大检测目标数u16 feature; //特征f32 SthCoef[4];u16 mti_filter[2]; //包含两个MTI滤波器类型u16 mti_detector; //MTI检测器类型u16 mti_thr; //MTI门限u16 sti_filter[2]; //包含两个STI滤波器类型u16 sti_detector; //STI检测器类型u16 sti_thr; //STI门限
}algo_adv_type;
3.2.3 波形参数(wave_adv_type)
typedef struct
{u16 Wtype; //波形选择u16 PRT; //脉冲重复时间u16 Tm; //重频时间u16 LenSOT; //信号起始u16 LenEOT; //信号结束u16 LenSOC; //单元起始u16 LenEOC; //单元结束u16 LenSOD; //数据起始u16 LenEOD; //数据结束u16 De; //抽取/采样率
}wave_adv_type;
3.4 硬件参数
typedef struct
{u16 boardPrc_sel;u16 frontEnd_sel;u16 VgaLvl;u32 REG1;u32 REG2;u32 REG3;u32 REG4;u32 REG5;u32 REG6;
}HWCmpn_type;
RadarApp结构体定义相关推荐
- Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针
Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...
- c++结构体定义和使用_[day day go]结构体amp;给结构定义方法
结构体 //定义 type treeNode struct {value intleft, right *treeNode }//工厂函数创建 func createNode(value int) * ...
- C#中结构体定义并转换字节数组
ref: https://www.cnblogs.com/dafanjoy/p/7818126.html C#中结构体定义并转换字节数组 最近的项目在做socket通信报文解析的时候,用到了结构体与字 ...
- 结构体定义小的放前面_编程C语言进阶篇——自定义数据类型:结构体
一.结构体 定义方法: 结构名 变量名 特点: 两个同类型的结构变量可以相互赋值,但是结构变量之间不能使用"<","=="等运算符,如果使用则需要对运算符 ...
- C/C++中struct结构体定义变量的3种方法及初始化
本博客整理自http://blog.csdn.net/zunfo/article/details/51494631 1.struct结构体定义 1.1.先定义结构体,然后再定义结构体变量 struct ...
- C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例
C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...
- C++ 线性表的结构体定义(顺序表和链式表)
线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...
- Linux下查找结构体定义的位置
1.首先我们要进入目录: 比如:cd /usr/include 2.查找在当前目录下的结构体: 指令:grep "struct sockaddr_in {" * -nir 形式:g ...
- C语言结构体学生基本资料,用结构体定义10个学生基本信息
用结构体定义10个学生基本信息,用到结构体.子函数.文件等的相关知识. /* ************************************************* 2.1.用结构体定义1 ...
最新文章
- WinSock嗅探虚拟主机拿站取webshell
- spock测试_将Spock 1.3测试迁移到Spock 2.0
- 美团骑手检测出虚假定位_在虚假信息活动中检测协调
- 手机上调试html,在手机上打印调试信息 – debug.js
- bash脚本基础知识
- invalid constant type: 18
- 揭秘月薪最容易过万的工作,男默女泪!
- ubuntu如何安装rpm
- 坚果云 不在计算机显示图标,在Ubuntu18.04系统顶栏不显示坚果云图标的解决办法...
- 图片一键添加水印工具V1.0-免费版
- 阿里云王坚“骗”马云10个亿,被骂四年都忍了,最后还回4500亿
- 浪潮之巅 第五章 奔腾的芯 Intel(1)时势造英雄
- 什么是「逼格」?怎么才能提高「逼格」?
- 软件项目需求管理培训
- php红包算法拼手气加普通红包
- 要么承受自律的苦,要么承担自责的悔。
- 【科研】审稿意见汇总
- 中软国际php面试题,中软国际面试题及答案
- Auto.js学习笔记10:实例化自定义对象,在子线程使用JSON.stringify()方法导致报错(已解决)
- npm包 semver模块【语义化版本号】