Files
CodeRepository/Common/CommDef.h
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

939 lines
37 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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