Files
CodeRepository/Common/CommDef.h

939 lines
37 KiB
C
Raw Normal View History

#ifndef _CommDef_H_
#define _CommDef_H_
#ifndef _byte_def_
#define _byte_def_
typedef unsigned char BYTE, Byte, byte;
#endif
#include <thread>
#include <chrono>
#include <QMetaType>
#include <QString>
using namespace std;
typedef unsigned short UINT16;
//通信模块
enum Mudule_Type
{
Module_VL = 0, //可见光
Module_IR, //红外
Module_Arm_Trackpad, //跟踪板
Module_Servo_Control, //伺服
Module_Laser, //激光
Module_Dev_System, //设备系统
Module_Integrated_Control, //综控
Module_Integrated_Control_2, //综控2
Module_Control_Box, //操控盒
Module_VL_OTA, //可见光--OTA
Module_IR_OTA, //红外--OTA
Module_Arm_Trackpad_OTA, //跟踪板--OTA
Module_Servo_Control_OTA, //伺服--OTA
Module_Laser_OTA, //激光--OTA
Module_Dev_System_OTA, //设备系统--OTA
Module_Integrated_Control_OTA, //综控--OTA
Module_Integrated_Control_2_OTA, //综控2--OTA
Module_Integrated_Control_2_Record, //按键盒拍照录像单独一条协议
Module_Control_Box_OTA, //操控盒--OTA
Module_Test
};
// ******************************枚举类型******************************
// 红外控制命令枚举
// 主要命令包括:白热、黑热、亮度+、亮度-、对比度+、对比度-、调焦+、调焦-、
// 调焦停、变倍+、变倍-、变倍停、自动聚焦...
enum IRControlCommand
{
IRLensInit = 0, //红外镜头初始化
IRZoomInc, //变倍+
IRZoomDec, //变倍-
IRZoomStop, //变倍停止
IRFocusModeSet, //调焦模式设置
IRFocusInc, //变焦+
IRFocusDec, //变焦-
IRFocusStop, //聚焦停止
IRShutterMode, //快门模式设置
IRSharpnessON, //清晰度增强开
IRSharpnessOFF, //清晰度增强关
IRSharpnessInc, //清晰度增加
IRSharpnessDec, //清晰度减少
IRSharpnessSet, //清晰度设置
IRLumaInc, //亮度+
IRLumaDec, //亮度-
IRContrastInc, //对比度+
IRContrastDec, //对比度-
IRKeyMenu, //菜单按键
IRKeyExpertMenu, //专家菜单按键
IRKeyInc, //参数加按键
IRKeyDec, //参数减按键
IRKeyPopUp, //弹起按键
IRShutterCompensation, //快门补偿
IRSceneCompensation, //场景补偿
IRPolaritySW, //极性切换
IRDeadPixelCorrection, //坏点校正
IRDeadPixelSave, //坏点保存
IRDeadPixelClear, //坏点清除
IRPseudocolorMode, //伪彩模式
IRHighCorrection, //高温图像校正
IRTimeCheck, //定时校正
IRNoUse, //无含义
};
/*********************可见光模块***************/
enum VLControlCommand
{
VLGetState = 0, //
VLReboot,
VLReset,
VLSyncNtp,
VLGetVersion,
VLLensCtrl,
VLLensSettings,
VLLensInit, //红外镜头初始化
VLZoomSet, //变倍设置
VLZoomInc, //变倍+
VLZoomDec, //变倍-
VLZoomStop, //变倍停止
VLZoomDON, //数字变倍开
VLZoomDOFF, //数字变倍关
VLZoomDSet, //数字变倍设置
VLFocusModeset, //调焦模式设置
VLFocusModeget, //调焦模式获取
VLFocusInc, //变焦+
VLFocusDec, //变焦-
VLFocusSet, //聚焦设置
VLFocusStop, //聚焦停止
VLFocusAFSensitivity, //自动聚焦灵敏度
VLWbMode, //白平衡模式
VLExposureMode, //曝光模式
VLShutterMode, //快门模式设置
VLShutterReset, //快门速度默认
VLShutterInc, //快门速度增加
VLShutterDec, //快门速度减少
VLShutterSet, //快门速度设置
VLShutterSlowMode, //慢快门模式设置
VLBacklightON, //背光补偿打开
VLBacklightOFF, //背光补偿打关
VLBacklightMove, //背光补偿区域移动
VLApertureReset, //光圈大小复位
VLApertureInc, //光圈+
VLApertureDec, //光圈-
VLApertureSet, //光圈大小设置
VLSharpnessReset, //清晰度复位
VLSharpnessON, //清晰度增强开
VLSharpnessOFF, //清晰度增强关
VLSharpnessInc, //清晰度增加
VLSharpnessDec, //清晰度减少
VLSharpnessSet, //清晰度设置
VLFoggyON, //透雾打开
VLFoggyOFF, //透雾关闭
VLWdrON, //宽动态开
VLWdrOFF, //宽动态关
VLHormirrorON, //水平镜像开
VLHormirrorOFF, //水平镜像关
VLVermirrorON, //垂直镜像开
VLVermirrorOFF, //垂直镜像关
VLIcrFilterMode, //ICR滤光片模式
VLIcrAutomode, //自动ICR模式
VLIcrAutoSen, //自动ICR灵敏度
VLLumaSet, //亮度设置
VLContrastSet, //对比度设置
VLHueSet, //色调设置
VLSatuatureSet, //饱和度设置
VLNoUse,
};
// ******************************枚举类型******************************
// 跟踪板控制命令枚举
enum ARMTrackCommand
{
TrackGetState = 0, //获取运行状态
TrackReboot, //重启
TrackReset, //重置,恢复出厂设置
TrackGetVersion, //获取版本
TrackSetTrackingWHSub, //
TrackSetTrackingWHAdd,
TrackSetTrackingWSub,
TrackSetTrackingWAdd,
TrackSetTrackingHSub,
TrackSetTrackingHAdd,
TrackSetTrackingPTZUp,
TrackSetTrackingPTZDown,
TrackSetTrackingPTZLeft,
TrackSetTrackingPTZRight,
TrackTrackingSet,
TrackGetTracking,
TrackArithParamTypeAridllSysParaCtrl, //系统开关及参数
TrackArithParamTypeAridllSysParaCtrlResever, //备用开关及参数
TrackArithParamTypeAridllDstParaCtrl, //小目标检测开关及参数
TrackArithParamTypeAridllAreaParaCtrl, //面目标检测开关及参数
TrackArithParamTypeAridllMoveParaCtrl, //运动目标检测开关及参数
TrackArithParamTypeAridllAiParaCtrl, //AI识别开关及参数
TrackArithParamTypeAridllTgtDistanceParaCtrl, //作用距离开关及参数
TrackArithParamTypeAridllTrackParaCtrl, //跟踪算法开关及参数
TrackArithParamTypeAridllPipeParaCtrl, //周扫管道开关及参数
TrackArithParamTypeAridllShieldAngelParaCtrl, //周扫屏蔽角设置
TrackAIAlgorithmParameters,
TrackTrackingAlgorithmParameters,
TrackTrackingSetValue,
TrackAutoTrackingSwitch, //自动跟踪开关
TrackTrackingLock, //锁定跟踪
TrackTrackingUNLock, //解除跟踪
TrackGateSizeStep, //波门大小步进
TrackGatePosStep, //波门位置步进
TrackMediaRecordCtrl, //媒体录制控制
TrackVideoSwitch, //视频源切换
TrackParamsSet, //跟踪参数设置
TrackTDSwitch, //目标检测开关
TrackCMStableON, //电子稳像开
TrackCMStableOFF, //电子稳像关
TrackSurfaceParamSet, //面目标检测开关
TrackHandshake, //握手交互
TrackOverlayTargetInfo, //叠加目标信息
TrackOSDOSTCTRL, //OSD控制
TrackRadarFOLLOW, //雷达引导
};
//激光模块命令类型
enum LaserCommand
{
//激光测距机相关
LaserLaserCheck = 0, //激光上电自检
LaserLaserCtrl, //激光测距控制
LaserLaserMainpara, //激光主要参数接口
};
// 伺服转台控制命令枚举
// 主要命令包括:手动、归零、方位扇扫、俯仰扇扫、定位...
enum ServoCommand
{
ServoShutDown = 0, //关闭模式
ServoManual, //手动模式
ServoPosition, //定位模式
ServoTrack, //跟踪模式
ServoHorizonScan, //方位扇扫
ServoVerticalScan, //俯仰扇扫
ServoScanCircle, //周扫模式
ServoCirclestop, //周扫停止模式
ServoStore, //收藏模式
ServoZero, //归零模式
ServoLock, //锁定当前模式
ServoAplombdown, //垂直下视模式
ServoManualtrack, //手动跟踪模式
ServoMotorzero, //磁链零位模式
ServoTorquemode, //转矩模式
ServoSelfcheck, //自检模式
ServoFrequency, //扫频模式
ServoSintest, //正弦测试模式
ServoGyromanual, //手动校漂
ServoGyroauto, //自动校漂
ServoTargetlock, //地理引导
ServoTargetposition, //目标定位
ServoSettingzero, //机械零位设定
ServoSettingzeroSave, //机械零位设定保存
ServoGyroinstll, //陀螺安装修正模式
ServoTracememory, //记忆跟踪
ServoTracecaptrue, //捕获
ServoTracelostrecaptrue, //丢失重捕
ServoServoselect, //伺服调试选择模式
ServoLinearcomp, //线性运动补偿准备
};
// 综控命令枚举
enum IntegratedCommand
{
IntegratedEquipmentCtrl = 0, //电源控制
IntegratedEquipmentState, //获取电源状态
IntegratedPicture, //拍照
IntegratedRecord, //录像
IntegratedGuide, //地理引导
IntegratedTarLocate, //目标定位
};
// 设备系统命令枚举
enum DevSystemCommand
{
DevGetState = 0, //获取运行状态
DevReboot, //重启
DevReset, //重置
DevSyncNtp, //ntp校时
DevGetVersion, //获取版本
DevGetResource, //获取资源信息
};
// OTA升级系统命令枚举
enum OTACommand
{
OTAStart = 0, //开始升级
OTAPause, //暂停升级
OTAStop, //停止升级
OTAInfo, //升级信息
OTAStreams, //升级文件
OTAGetVersion, //获取版本
};
/************************************************
**
************************************************/
typedef struct tagIR_PARAM
{
float fZoomStep; //变倍步长
float fSharpness; //清晰度
QString strShutterMode; //快门模式
QString strColorMode; //伪彩模式
QString strFocusMode; //调焦模式
bool bIsEnableCheck; //定时校正
long long lCheckTimes; //校正间隔
}IR_PARAM;
/************************************************
**
************************************************/
typedef struct tagVL_PARAM
{
QString strIp; //NTP--IP
int nPort; //NTP-端口
float fVLZoom; //变倍比
float fVLZoomDigital; //数字变倍比
float fVLFocus; //聚焦值
float fShutterSpeed; //快门速度
float fAperture; //光圈值
float fSharpness; //清晰度
float fICRAuto; //ICR灵敏度
int nBright; //亮度
int nContrast; //对比度
int nTone; //色调
int nSatuature; //饱和度
QString strFocusMode; //调焦模式
QString strShutterMode; //快门模式
QString strSlowMode; //慢快门模式
QString strAFSens; //自动聚焦灵敏度
QString strExposureMode; //曝光模式
QString strFogOn; //透雾等级
QString strIcrMode; //ICR滤光片
QString strIcrAutoMode; //自动ICR模式
QString strWbMode; //白平衡
QString strMove; //背光补偿移动
}VL_PARAM;
/************************************************
**AI算法设置参数
************************************************/
typedef struct tagAI_PARAM
{
QString strURLIR;
QString strURLVL;
ushort shNNIE_ID;
ushort shMerge;
ushort shConfidence;
ushort shNNIEImageWidth;
ushort shNNIEImageHeight;
ushort shVLModelID;
ushort shIRModelID;
QString strOperatMode;
ushort shDX;
ushort shDY;
bool bNNIESW;
bool bDrawArea;
bool bNNIEResultShow;
QString strAIDetType;
tagAI_PARAM()
{
shNNIE_ID = 0;
shMerge = 3;
shConfidence = 1;
shNNIEImageWidth = 640;
shNNIEImageHeight = 512;
shVLModelID = 0;
shIRModelID = 100;
strOperatMode = "optmode_none";
shDX = 0;
shDY = 0;
bNNIESW = false;
bDrawArea = false;
bNNIEResultShow = false;
strAIDetType = "people";
}
}AI_PARAM;
/************************************************
**
************************************************/
typedef struct tagSERVO_PARAM
{
float fHSpeed;//方位角速度
float fVSpeed;//俯仰角速度
float fRSpeed;//横滚角速度
float fHAngle;//方位角度
float fVAngle;//俯仰角度
float fRAngle;//横滚角度
float fLockHAngle;//方位偏移角
float fLockVAngle;//俯仰偏移角
int nVideoSource;//跟踪模式的视频源 0可见光1红外
float fImageErrorX;//脱靶量X轴方向
float fImageErrorY;//脱靶量Y轴方向
float fSpatialResX;//方位空间分辨率
float fSpatialResY;//俯仰空间分辨率
float fHScanSpeed; //方位扇扫速度
float fHCentralAngle; //方位扇扫中心角
float fHScanangle; //方位扇扫角度
float fVScanSpeed; //俯仰扇扫速度
float fVCentralAngle; //俯仰扇扫中心角
float fVScanangle; //俯仰扇扫角度
float fCalibrateangleH;//方位跟踪角度修正值
float fCalibrateangleV;//俯仰跟踪角度修正值
float fScancirclespeed; //方位周扫速度
float fVerticalIniangle; //周扫俯仰起始角
float fVerticalEndangle; //周扫俯仰终止角
float fCircles; //周扫单层周扫圈数
float fIqAmpH;// 方位电流幅值
float fIqFreH;// 方位电流频率
float fIqAmpV;//俯仰电流幅值
float fIqFreV;//俯仰电流频率
float fDutyH; //方位占空比值
float fDutyV;//俯仰占空比值
float fIqH; //方位电流给定值
float fIqV;//俯仰电流给定值
float fAngleAmpH;//方位角度幅值
float fAngleFreH;//方位角度频率
float fAngleAmpV;//俯仰角度幅值
float fAngleFreV;//俯仰角度频率
int nAxischoose; //轴系选择
int nAddorMinus; //加或者减
float fCalibrationvalue;//校漂值
float fTargetGPSlon;//目标经度
float fTargetGPSlat;//目标纬度
float fTargetGPSH; //目标高度
int nGyroinAxischoose;//轴系选择
float fGyroinAdjustangle;//安装修正角度值
int nStartorstop;//跟踪启停控制
int nImageSource; //捕获视频源
float fCaptrueErrorX;//捕获X方向脱靶量
float fCaptrueErrorY;//捕获Y方向脱靶量
float fSpatialX;//捕获方位空间分辨率
float fSpatialY;//捕获俯仰空间分辨率
int nDebugMode; //调试模式选择
}SERVO_PARAM;
/************************************************
**
************************************************/
typedef struct tagINTEGRATED_PARAM
{
QString strPowerType; //电源分类
bool bPowerAction;//电源动作
int nRecordMsg; //录像状态
}INTEGRATED_PARAM;
/************************************************
**
************************************************/
typedef struct tagLASER_PARAM
{
bool bIsCheck;
QString strMode;//测距模式
int nCloseLimit;//近距离选通
int nFarLimit;//远距离选通
QString powerMode;//功耗模式
QString vbiasMode;//偏压模式
float fVbias;//偏压值
int nCurrent;//工作电流
float fMwvtv;//主波阈值
float fBwvtv;//回波阈值
int nMaxdischargetime;//最大放电时间
int nGaindelay; //增益调整
int nMeasureTimes;//测距次数
}LASER_PARAM;
/************************************************
**
************************************************/
typedef struct tagDEV_SYSTEM_PARAM
{
QString strIP;//IP地址
int nPort;//端口号
}DEV_SYSTEM_PARAM;
/************************************************
**OTA升级
************************************************/
typedef struct tagOTA_PARAM
{
QString strOTAMoudle; //OTA升级板子模块
QString strFileName; //升级文件名
QString strMD5; //升级文件MD5校验
QString strToken; //请求令牌字段
long lFileDataLength; //升级文件长度
//ota_stream
int nBlockID; //数据块ID
int nBlockSize; //数据块大小
QString strBase64; //base64编码
}OTA_PARAM;
typedef enum
{
ArithParamTypeAridllSysParaCtrl = 1, //系统开关及参数
ArithParamTypeAridllSysParaCtrlResever = 2, //备用开关及参数
ArithParamTypeAridllDstParaCtrl = 3, //小目标检测开关及参数
ArithParamTypeAridllAreaParaCtrl = 4, //面目标检测开关及参数
ArithParamTypeAridllMoveParaCtrl = 5, //运动目标检测开关及参数
ArithParamTypeAridllAiParaCtrl = 6, //AI识别开关及参数
ArithParamTypeAridllTgtDistanceParaCtrl = 7, //作用距离开关及参数
ArithParamTypeAridllTrackParaCtrl = 8, //跟踪算法开关及参数
ArithParamTypeAridllPipeParaCtrl = 9, //周扫管道开关及参数
ArithParamTypeAridllShieldAngelParaCtrl = 10, //周扫屏蔽角设置
}ArithParamType;
Q_DECLARE_METATYPE(ArithParamType);
//外部设置【系统主控制参数】结构体
typedef struct tagDLL_SYS_PARA_CTRL
{
//检测算法开关集合
unsigned char bEnableSmallObjDetct; //小目标检测开关, 1-开0-关 ====0
unsigned char bEnableDimObjDetect; //弱小目标检测开关, 1-开0-关
unsigned char bEnableAreaObjDetect; //面目标检测开关, 1-开0-关
unsigned char bEnableMoveObjDetect; //动目标检测开关, 1-开0-关
unsigned char bEnableAiObjDetect; //AI目标识别开关 1-开0-关
//跟踪算法开关集合
unsigned char bEnableKCFTrack; //KCF跟踪算法开关 1-开0-关 ====5
unsigned char bEnableXXCFTrack; //兼容后续CF算法 1-开0-关
unsigned char bEnableLKTrack; //LK跟踪算法开关 1-开0-关
unsigned char bEnabelCendTrack; //Cend跟踪算法开关 1-开0-关
unsigned char bEnableNccTrack; //NCC跟踪算法开关 1-开0-关
unsigned char bEnableTstTrack; //Tst跟踪算法开关 1-开0-关 ===10
unsigned char bEnableAccuracyTrack; //精搜索算法开关, 1-开0-关
unsigned char bEnableSingleScaleTrack; //单尺度开关, 1-开0-关
unsigned char bEnableAntiJamming; //抗干扰开关, 1-开0-关
//其他参数
int nSystemPlat; //系统平台0-固定1-运动 ====14
int nMergeDistance; //检测目标合并距离 ====15
int nAimCntsInView; //视场内对准判断帧数
int nAimCntsOutView; //视场外对准判断帧数
int nOutputMode; //检测目标输出方式筛选
int nWorkMode; //工作模式0-作战1-真实训练2-模型训练3-维护模式
int nSceneMode; //场景模式0-对空1-对地2-对海 ===20
}DLL_SYS_PARA_CTRL;
//【备用开关及参数】结构体
typedef struct tagDLL_SYS_PARA_CTRL_RESEVER
{
int nResever;
}DLL_SYS_PARA_CTRL_RESEVER;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//外部设置【小目标算法控制参数】结构体
typedef struct tagDLL_DST_PARA_CTRL
{
bool bEnableBgStdMin; //去虚警开关-背景标准差下限条件
bool bEnableBgStdMax; //去虚警开关-背景标准差上限条件
bool bEnableWHRatio; //去虚警开关-目标宽高比条件
bool bEnableOccupyRatio; //去虚警开关-目标占空比条件
int nGrayType; //亮/暗/全目标灰度类型
int nMergeDist; //合并距离阈值
int nObjSizeMax; //目标最大像素要求
int nObjSizeMin; //目标最小像素要求
float fGdk; //一般目标信噪比gdk限制
float fGdk_Dim; //弱小目标信噪比gdk限制
int nObjCntsMax; //最大小目标检测个数
int nDimObjCntsMax; //最大弱目标检测个数
float fBgStdMin; //最小背景标准差阈值
float fBgStdMax; //最大背景标准差阈值
float fWHRatioMin; //最小宽高比
float fWHRatioMax; //最大宽高比
float fOccupyThresh; //占空比阈值
}DLL_DST_PARA_CTRL;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//外部设置【面目标算法控制参数】结构体
typedef struct tagDLL_AREA_PARA_CTRL
{
bool bEnableBgStd; //去虚警开关-背景标准差条件
bool bEnableObjSize; //去虚警开关-目标大小条件
bool bEnableWHRatio; //去虚警开关-目标宽高比条件
bool bEnableOccupyRatio; //去虚警开关-目标占空比条件
bool bEnableGrayMin; //去虚警开关-最小灰度条件
int nGrayType; //亮/暗/全目标灰度类型
int nMergeDist; //合并距离阈值
int nObjSizeMax; //目标最大像素要求
int nObjSizeMin; //目标最小像素要求
float fGdk; //一般目标信噪比gdk限制
float fGdk_Dim;
int nObjCntsMax; //单帧最大目标检测个数
int nGradMin; //最小梯度阈值
int nSegBrightMinGray; //最小亮目标分割灰度阈值
int nSegDarkMinGray; //最小暗目标分割灰度阈值
int nTarWMax; //最大目标宽度
int nTarHMax; //最大目标高度
float fWHRatioMin; //最小宽高比
float fWHRatioMax; //最大宽高比
float fOccupyThresh; //占空比阈值
float fBgGrayDiffCoef; //背景灰度差系数
int nObjStdMin; //最小目标方差
int nObjBgGrayDiff; //最小目标背景灰度差
int nThreashLevel; //分割阈值档位
int nChooseType; //目标筛选方式
int nSaliencyMin; //显著性阈值
int nDownSmpScale; //降采样倍数
float fEntropyRateMin; //熵值比最小值
float fBackEntropy; //背景熵值
}DLL_AREA_PARA_CTRL;
//外部设置【动目标算法控制参数】结构体
typedef struct tagDLL_MOVE_PARA_CTRL
{
unsigned short nObjSizeMin;
float fGdk;
}DLL_MOVE_PARA_CTRL;
//外部设置【AI跟踪参数】结构体
typedef struct tagDLL_AI_PARA_CTRL
{
unsigned short nLockThresh;
}DLL_AI_PARA_CTRL;
//外部设置【跟踪算法控制参数】结构体
typedef struct tagDLL_TRACK_PARA_CTRL
{
int nLockThresh; //可锁定判断阈值
int nSmall2Area; //小面切换大小阈值
float fKcfThresh; //KCF阈值
float fNccThresh; //NCC阈值
float fTst_Gdk; //小目标跟踪gdk
int nRecapCnts; //记忆重补帧数
int nRecapArith; //重补算法类别
int nRecapAreaW; //重补区域宽度
int nRecapAreaH; //重补区域高度
int nTrakPipeR; //正常跟踪时管道半径
int nRecapPipeR; //丢失重补时管道半径
int nRecapBlks; //丢失重捕分块的个数
float fRecapKcfThresh; //判断重捕成功KCF阈值
float fRecapNccThresh; //判断重捕成功NCC阈值
float fRecapApceThresh; //判断重捕成功APCE阈值
int nTrackArith; //跟踪算法类别(CF or AI)
int nUpdateStep; //更新帧数间隔
int nDelayGetAITCnts; //延迟帧间隔
}DLL_TRACK_PARA_CTRL;
//外部设置【周扫管道控制参数】结构体
typedef struct tagDLL_PIPE_PARA_CTRL
{
bool bEnableObjSize; //尺寸限制开关
bool bEnableEntropy; //信息熵开关
bool bEnableSizeAssLoose; //尺寸关联松开关
bool bEnableSizeAssStrict; //尺寸关联严开关
bool bEnableAngleAss; //角度关联开关
bool bEnableAreaGdk; //面目标GDK判断开关
bool bEnableMoveInfo; //运动去虚警开关
bool bEnableAlarmDivision; //防止上报批号分裂开关
bool bEnablePtPredict; //自动抬层-俯仰速度预测开关
bool bEnablePtAccPredict; //自动抬层-俯仰加速度预测开关
bool bEnableAutoRegulate; //自动抬层-动态调整开关
int nObjSpeedType; //目标速度类型0-无限制1-静止2-低速3-高速
int nPreScanNum; //预扫描圈数
int nFasePipeDelNum; //虚警管道删除帧数
int nMoveThresh; //静止目标判断阈值
int nObjSizeMinSmall; //小目标个数最小值
int nAwsFrmScan; //周扫管道确认帧数
int nDeleteCntsScan; //周扫管道延迟删除帧数
int nAwsFrmStare; //凝视管道确认帧数
int nDeleteCntsStare; //凝视管道延迟删除帧数
int nFAPipeSearchRadius; //虚警管道搜索半径
int nPipeSearchRadius; //管道搜索半径
int nObjSizeMinArea; //面目标个数最小值
float fSpeedDiffThresh; //自动抬层速度判断阈值
float fExistProb; //探测率
float fTgEntropy; //目标信息熵阈值
float fBgEntropyMin; //背景信息熵最小阈值
float fSizeAssWeight; //尺寸关联权重
float fBgEntropyMax; //尺寸关联信息熵最大权值
}DLL_PIPE_PARA_CTRL;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//外部设置【周扫屏蔽角控制参数】结构体
typedef struct tagDLL_SHIELD_ANG_PARA_CTRL
{
bool bEnableAzShield; //方位屏蔽开关
bool bEnablePtVaild; //俯仰有效开关
float fAzShield_0_Min; //屏蔽方位角[0]的左值和右值
float fAzShield_0_Max;
float fAzShield_1_Min; //屏蔽方位角[1]的左值和右值
float fAzShield_1_Max;
float fAzShield_2_Min; //屏蔽方位角[2]的左值和右值
float fAzShield_2_Max;
float fAzShield_3_Min; //屏蔽方位角[3]的左值和右值
float fAzShield_3_Max;
float fAzShield_4_Min; //屏蔽方位角[4]的左值和右值
float fAzShield_4_Max;
float fAzShield_5_Min; //屏蔽方位角[5]的左值和右值
float fAzShield_5_Max;
float fAzShield_6_Min; //屏蔽方位角[6]的左值和右值
float fAzShield_6_Max;
float fAzShield_7_Min; //屏蔽方位角[7]的左值和右值
float fAzShield_7_Max;
float fAzShield_8_Min; //屏蔽方位角[8]的左值和右值
float fAzShield_8_Max;
float fAzShield_9_Min; //屏蔽方位角[9]的左值和右值
float fAzShield_9_Max;
float fPtValid_Min; //俯仰有效角度最小值
float fPtValid_Max; //俯仰有效角度最大值
}DLL_SHIELD_ANG_PARA_CTRL;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//【作用距离开关及参数】结构体
typedef struct tagDLL_TGT_DISTANCE_PARA_CTRL
{
int nResever;
}DLL_TGT_DISTANCE_PARA_CTRL;
typedef struct
{
DLL_SYS_PARA_CTRL stTrackSysParaCtrl;
DLL_DST_PARA_CTRL stTrackDstParaCtrl;
DLL_AREA_PARA_CTRL stTrackAreaParaCtrl;
DLL_MOVE_PARA_CTRL stTrackMoveParaCtrl;
DLL_AI_PARA_CTRL stTrackAIParaCtrl;
DLL_TRACK_PARA_CTRL stTrackArithParaCtrl;
DLL_PIPE_PARA_CTRL stTrackPipeParaCtrl;
DLL_SHIELD_ANG_PARA_CTRL stTrackAngelParaCtrl;
DLL_TGT_DISTANCE_PARA_CTRL stTrackTgtDistanceParaCtrl;
}COMMAND_PARAM;
Q_DECLARE_METATYPE(COMMAND_PARAM);
//算法回传结构体汇总
typedef struct tagTRACK_AIRTH_STATE
{
DLL_SYS_PARA_CTRL stSysPara; //系统主控制参数
DLL_SYS_PARA_CTRL_RESEVER stSysParaResever; //备用开关及参数
DLL_DST_PARA_CTRL stDstPara; //小目标算法控制参数
DLL_AREA_PARA_CTRL stAreaPara; //面目标算法控制参数
DLL_MOVE_PARA_CTRL stMovePara; //运动目标算法控制参数
DLL_AI_PARA_CTRL stAIPara; //AI目标算法控制参数
DLL_TGT_DISTANCE_PARA_CTRL stTgtDistance; //作用距离开关及参数
DLL_TRACK_PARA_CTRL stTrackPara; //跟踪算法控制参数
DLL_PIPE_PARA_CTRL stPipePara; //周扫管道控制参数
DLL_SHIELD_ANG_PARA_CTRL stShieldPara; //周扫屏蔽角控制参数
}TRACK_AIRTH_STATE;
typedef struct tagSYSTEM_STATES
{
TRACK_AIRTH_STATE stArithParam; //算法上返的参数
}SYSTEM_STATES;
/************************************************
**
************************************************/
typedef struct tagTRACK_PARAM
{
//初版协议
int nVLWidth;
int nVLHeight;
int nIRWidth;
int nIRHeight;
QString strScaleSwitch; //尺度开关
QString strTrackAlgorithm; //跟踪算法
bool bAutomaticTrack; //自动跟踪
bool bMovingTarget; //动目标检测
bool bSmallTarget; //小目标检测
bool bAITarget; //AI算法检测
bool bFaceObject; //面目标检测
bool bSearchSwitch; //精搜开关
DLL_SYS_PARA_CTRL stTrackSys;
DLL_DST_PARA_CTRL stTrackDst;
DLL_AREA_PARA_CTRL stTrackArea;
DLL_MOVE_PARA_CTRL stTrackMove;
DLL_AI_PARA_CTRL stTrackAI;
DLL_TRACK_PARA_CTRL stTrack;
DLL_PIPE_PARA_CTRL stTrackPipe;
DLL_SHIELD_ANG_PARA_CTRL stTrackAngel;
DLL_TGT_DISTANCE_PARA_CTRL stTrackTgtDistance;
//20221109更新后协议
QString strVideoType;
int nframeID;
int nPosX;
int nPosY;
int nPomenW;
int nPomenH;
//波门大小步进
QString strModifyGateW;
QString strModifyGateH;
int nGateStep;
//波门位置步进
QString strLocalX;
QString strLocalY;
int nLocalStep;
//媒体录制控制
QString strRecordCtrl;
QString strChlMode;
int nChID;
//跟踪参数设置
QString strSingleScale;
bool bTrackAccuracy;
int nScene;
int nWorkMode;
int nForceTrack;
int nArithEnable;
//目标检测开关
bool bDetectSmall;
bool bDetectArea;
bool bDetectMove;
bool bDetectAi;
//视频源
QString strVideo;
//握手交互
QString strProductID;
//面目标参数设置
bool bIsValid; //是否有效
QString strAreaThreshold; //面目标检测阈值
QString strTargetType; //目标类型
QString strTargetFliter; //目标筛选
int nMinPixel; // 最小像素
int nSigThreshold; //显著性阈值
int nGdkThreshold; // GDK阈值
int nEntropyRatio; //熵值比
int nBackEntropy; //背景熵值
//叠加目标信息
QString strCtrl; //操作方式
QString strType; //目标类型
int nTargetID; //目标批号
float fLong; //目标经度
float fLat; //目标纬度
AI_PARAM aiParam;
bool bAutoTrackSW; //自动跟踪开关
bool bOsdLocal; //本地信息
bool bOsdRemote; //远端信息
bool bOsdGPS; //GPS
bool bOsdIR; //红外十字光标
bool bOsdVL; //可见光十字光标
bool bOsdServo; //伺服信息
bool bOsdLens; //镜头信息
bool bOsdLaser; //激光信息
bool bOsdState; //状态信息
QString strOSDCtrl; //OSD信息标识
//雷达引导
QString strTarType; //目标类型
QString strTarChoose; //目标选择
int nDistance; //距离
int nSpeed; //速度
float fAmith; //方位
float fPitch; //俯仰
tagTRACK_PARAM()
{
strVideoType = "";
nframeID = 0;
nPosX = 100;
nPosY = 200;
nPomenW = 41;
nPomenH = 40;
strModifyGateW = "";
strModifyGateH = "";
nGateStep = 0;
strLocalX = "";
strLocalY = "";
nLocalStep = 0;
strRecordCtrl = "";
strChlMode = "";
nChID = 0;
strSingleScale = "";
bTrackAccuracy = false;
nScene = 0;
nWorkMode = 0;
nForceTrack = 0;
nArithEnable = 0;
bDetectSmall = false;
bDetectArea = false;
bDetectMove = false;
bDetectAi = false;
strVideo = "";
strProductID = "";
bIsValid = false;
strAreaThreshold= "";
strTargetType = "";
strTargetFliter = "";
nMinPixel = 0;
nSigThreshold = 0;
nGdkThreshold = 0;
nEntropyRatio = 0;
nBackEntropy = 0;
strCtrl = "";
strType = "";
nTargetID = 0;
fLong = 0;
fLat = 0;
//雷达引导
strTarType = "";
strTarChoose = "";
nDistance = 0;
nSpeed = 0;
fAmith = 0;
fPitch = 0;
}
}TRACK_PARAM;
typedef struct tagTRACK_GATE
{
int nWidth;
int nHeight;
}TRACK_GATE;
#endif // _CommDef_H