|
|
#pragma once
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 战车工作模式
|
|
|
/// </summary>
|
|
|
enum ZCWorkModeEnum
|
|
|
{
|
|
|
CheckFly = 0x11, //检飞
|
|
|
TargetSimulate = 0x22, //模靶
|
|
|
Replay = 0x33, //重演
|
|
|
MissileSimulate = 0x44, //模弹
|
|
|
Check = 0x55, //检查
|
|
|
TargetMissileSimulate = 0x66, //电靶
|
|
|
Training = 0x77, //联合训练
|
|
|
Maintenance = 0x88, //维护
|
|
|
Combat = 0xAA, //战斗
|
|
|
PlayBack = 0xEE
|
|
|
};
|
|
|
|
|
|
enum GuideModeEnum
|
|
|
{
|
|
|
Radar, //雷达引导
|
|
|
Manu //人工引导
|
|
|
};
|
|
|
|
|
|
/// <summary>
|
|
|
/// 锁定模式
|
|
|
/// </summary>
|
|
|
enum LockModeEnum
|
|
|
{
|
|
|
LockAuto, //自动
|
|
|
LockManu //手动
|
|
|
};
|
|
|
/// <summary>
|
|
|
/// 目标大小
|
|
|
/// </summary>
|
|
|
enum TargetSizeModeEnum
|
|
|
{
|
|
|
TargetSmall, //小目标
|
|
|
TargetMiddle, //中目标
|
|
|
TargetBig //大目标
|
|
|
};
|
|
|
|
|
|
/// <summary>
|
|
|
/// 目标类型
|
|
|
/// </summary>
|
|
|
enum TargetModeEnum
|
|
|
{
|
|
|
// Bright, //亮目标
|
|
|
// Dark, //暗目标
|
|
|
// All //全目标
|
|
|
air,//空中目标
|
|
|
ground, //地面目标
|
|
|
standPole //立杆靶
|
|
|
};
|
|
|
typedef struct tagS338_SynthesisInfo
|
|
|
{
|
|
|
unsigned char ViewInfo; //视场信息
|
|
|
unsigned char JXCheck; //机芯自检结果
|
|
|
unsigned char SRAMCheck; //SRAM自检结果
|
|
|
unsigned char FLASHCheck; //FLASH自检结果
|
|
|
unsigned char CoolerCheck; //制冷机自检结果
|
|
|
unsigned char DJCheck; //电机自检结果
|
|
|
/***************************
|
|
|
* 时间相关部分
|
|
|
***************************/
|
|
|
bool ParityStandardTag; //时间校正标志
|
|
|
unsigned long long LocalTime; //本地时间(系统时间)
|
|
|
unsigned long long ParityTime; //校正后时间基准
|
|
|
int DiffTimeSpan; //本地时间与作战时间差值
|
|
|
unsigned long long GPSTime; //绝对时间(GPS时间)
|
|
|
unsigned int OriDataTreatEnqueueTime;//原始数据入队列时间
|
|
|
unsigned int OriDataTreatStartTime; //原始数据处理开始时间
|
|
|
unsigned int OriDataTreatEndTime; //原始数据处理结束时间
|
|
|
unsigned int ArithTreatEnqueueTime; //算法入队列时间
|
|
|
unsigned int ArithTreatStartTime; //算法开始时间
|
|
|
unsigned int ArithTreatEndTime; //算法结束时间
|
|
|
|
|
|
/***************************
|
|
|
* 定位定向部分
|
|
|
***************************/
|
|
|
float BD_HAngle; //航向角
|
|
|
|
|
|
float BD_VAngle; //俯仰角
|
|
|
|
|
|
float BD_SAngle; //横滚角
|
|
|
|
|
|
float BD_AzEncoderVal; //码盘值
|
|
|
|
|
|
float BD_YawSpeed; //定位定向航向速度
|
|
|
|
|
|
float BD_NorthSpeed; //北向速度
|
|
|
|
|
|
unsigned short BD_GPS; //-
|
|
|
|
|
|
double BD_GPSTime; //GPS时间
|
|
|
|
|
|
double BD_Longitude; //经度
|
|
|
|
|
|
double BD_Latitude; //纬度
|
|
|
|
|
|
short BD_Height; //高度
|
|
|
|
|
|
unsigned char BD_State; //定位定向系统状态(0x08表示工作正常,0x01表示设备故障)
|
|
|
|
|
|
float MainHAngle; //主转轴基座执行值
|
|
|
|
|
|
unsigned short MainHAngleState; //主转轴基座状态(0x00为异常)
|
|
|
|
|
|
/***************************
|
|
|
* 举升状态部分
|
|
|
***************************/
|
|
|
//LiftingStateEnum LiftingState; //举升状态
|
|
|
|
|
|
unsigned char LiftingState; //举升状态
|
|
|
/***************************
|
|
|
* 倾角传感器部分
|
|
|
***************************/
|
|
|
float QJ_X; //倾角X值
|
|
|
float QJ_Y; //倾角Y值
|
|
|
|
|
|
float QJ_Z; //倾角Z值(为界面手动输入值)
|
|
|
|
|
|
/***************************
|
|
|
* 图像角度及东北偏角度部分
|
|
|
***************************/
|
|
|
float HAngle; //图像方位角
|
|
|
float VAngle; //图像俯仰角
|
|
|
|
|
|
float HAngleSpeed; //图像方位角速度
|
|
|
float VAngleSpeed; //图像俯仰角速度
|
|
|
|
|
|
|
|
|
float EastHAngle; //东北偏坐标方位角
|
|
|
float EastVAngle; //东北偏坐标俯仰角
|
|
|
|
|
|
/***************************
|
|
|
* 系统工作模式部分
|
|
|
***************************/
|
|
|
ZCWorkModeEnum SystemWorkMode; //系统工作模式
|
|
|
GuideModeEnum GuideMode; //引导模式
|
|
|
LockModeEnum TargetLockMode; //目标锁定模式
|
|
|
LockModeEnum MissileLockMode; //导弹锁定模式
|
|
|
unsigned char CFCurWorkmodeType; //伺服当前工作状态
|
|
|
TargetSizeModeEnum TargetSizeMode; //目标大小
|
|
|
//TargetModeEnum TargetMode; //目标类型
|
|
|
|
|
|
TargetModeEnum TargetMode; //目标类型
|
|
|
|
|
|
/***************************
|
|
|
* 导弹模拟部分
|
|
|
***************************/
|
|
|
|
|
|
int MissileSimulateWidth; //模拟导弹宽度
|
|
|
int MissileSimulateHeight; //模拟导弹高度
|
|
|
short MissileSimulateGray; //模拟导弹灰度值
|
|
|
|
|
|
/***************************
|
|
|
* 目标模拟部分
|
|
|
***************************/
|
|
|
|
|
|
int TargetSimulateWidth; //模拟目标宽度
|
|
|
int TargetSimulateHeight; //模拟目标高度
|
|
|
short TargetSimulateGray; //模拟目标灰度值
|
|
|
|
|
|
/***************************
|
|
|
* 雷达导弹目标指示信息
|
|
|
***************************/
|
|
|
|
|
|
bool IndicateInfoReceiveTag; //雷达指示接收状态
|
|
|
bool RadarGuideDataValid; //雷达指示数据是否有效
|
|
|
|
|
|
unsigned char ZCWorkMode; //战车工作状态
|
|
|
unsigned short TargetPNum; //指示目标批号
|
|
|
unsigned char TargetInterupt; //指示目标干扰状态,0xAA为干扰,其他为未干扰
|
|
|
|
|
|
float TargetInfoLength; //来自作战计算机的目标指示信息,目标斜距
|
|
|
float TargetInfoHAngle; //来自作战计算机的目标指示信息,目标方位角
|
|
|
float TargetInfoVAngle; //来自作战计算机的目标指示信息,目标高低角
|
|
|
|
|
|
float TargetInfoLengthSpeed; //来自作战计算机的目标指示信息,目标斜距变化率
|
|
|
float TargetInfoHAngleSpeed; //来自作战计算机的目标指示信息,目标方位角变化率
|
|
|
float TargetInfoVAngleSpeed; //来自作战计算机的目标指示信息,目标高低角变化率
|
|
|
|
|
|
unsigned char TargetChargeCompleteTag; //指示目标交接完成标志
|
|
|
unsigned char TargetMissileFallTag; //指示目标对应导弹脱落状态
|
|
|
unsigned char TargetMissileGainTag; //指示目标对应导弹的指导雷达截获状态
|
|
|
|
|
|
float TargetInfoToMissileLength; //来自作战计算机的目标指示信息,目标斜距(相对于导弹)
|
|
|
float TargetInfoToMissileHAngle; //来自作战计算机的目标指示信息,目标方位角(相对于导弹)
|
|
|
float TargetInfoToMissileVAngle; //来自作战计算机的目标指示信息,目标高低角(相对于导弹)
|
|
|
|
|
|
|
|
|
float TargetInfoToMissileLengthSpeed; //来自作战计算机的目标指示信息,目标斜距变化率(相对于导弹)
|
|
|
float TargetInfoToMissileHAngleSpeed; //来自作战计算机的目标指示信息,目标方位角变化率(相对于导弹)
|
|
|
float TargetInfoToMissileVAngleSpeed; //来自作战计算机的目标指示信息,目标高低角变化率(相对于导弹)
|
|
|
|
|
|
|
|
|
/***************************
|
|
|
* 雷达导弹目标指示转换为伺服的信息
|
|
|
***************************/
|
|
|
float TargetInfoCFLength; //目标指引信息转换为伺服坐标的距离
|
|
|
float TargetInfoCFHAngle; //目标指引信息转换为伺服坐标的方位角
|
|
|
float TargetInfoCFVAngle; //目标指引信息转换为伺服坐标的俯仰角
|
|
|
|
|
|
float TargetInfoToMissileCFLength; //导弹指引信息转换为伺服坐标的距离
|
|
|
float TargetInfoToMissileCFHAngle; //导弹指引信息转换为伺服坐标的方位角
|
|
|
float TargetInfoToMissileCFVAngle; //导弹指引信息转换为伺服坐标的俯仰角
|
|
|
|
|
|
|
|
|
/***************************
|
|
|
* 导弹脱落信息
|
|
|
***************************/
|
|
|
unsigned long long MissileFallTime; //导弹脱落时间
|
|
|
bool MissileFallTag; //导弹脱落标志位
|
|
|
unsigned char MissileAddress; //导弹地址码
|
|
|
|
|
|
/***************************
|
|
|
* 装订信息
|
|
|
***************************/
|
|
|
float StateLongitude; //来自作战计算机的战车经度
|
|
|
float StateLatitude; //来自作战计算机的战车纬度
|
|
|
float StateHeight; //来自作战计算机的战车高度
|
|
|
float StateSAngle; //来自作战计算机的战车横滚角
|
|
|
float StateVAngle; //来自作战计算机的战车俯仰角
|
|
|
float StateHAngle; //来自作战计算机的战车航向角
|
|
|
float StateMPValue; //来自作战计算机的主转轴基座方位码盘值
|
|
|
float StateToBeaconLength; //来自作战计算机的战车相对于信标的距离
|
|
|
float StateToBeaconHAngle; //来自作战计算机的战车相对于信标的方位角
|
|
|
float StateToBeaconVAngle; //来自作战计算机的战车相对于信标的高低角
|
|
|
float StateEnvironmentTemper; //来自作战计算机的环境温度
|
|
|
float StateHumidity; //来自作战计算机的空气湿度
|
|
|
float StateVisibility; //来自作战计算机的能见度
|
|
|
|
|
|
/***************************
|
|
|
* 光电目标发送部分
|
|
|
***************************/
|
|
|
bool TargetMissileSendTimerTag; //数据发送计时器启动情况
|
|
|
int TargetMissileSendDelayTime; //数据发送计时器延时时长
|
|
|
|
|
|
unsigned char DeviceState; //光电设备状态(0xAA代表故障,其他为正常)
|
|
|
|
|
|
unsigned char LocalPNum; //光电目标批号
|
|
|
unsigned char TargetIndictPNum; //光电目标对应的指示批号
|
|
|
unsigned char TargetTraceTag; //光电跟踪目标状态,0xAA为跟踪好,其他为未跟踪好
|
|
|
|
|
|
float TargetHAngle_Geo; //光电跟踪目标在平台地理坐标系下的方位角
|
|
|
float TargetHAngleSpeed_Geo; //光电跟踪目标在平台地理坐标系下的方位角变化率
|
|
|
float TargetVAngle_Geo; //光电跟踪目标在平台地理坐标系下的高低角
|
|
|
float TargetVAngleSpeed_Geo; //光电跟踪目标在平台地理坐标系下的高低角变化率
|
|
|
|
|
|
float TargetHAngle_Coor; //光电跟踪目标在平台坐标系下的方位角
|
|
|
float TargetHAngleSpeed_Coor; //光电跟踪目标在平台坐标系下的方位角变化率
|
|
|
float TargetVAngle_Coor; //光电跟踪目标在平台坐标系下的高低角
|
|
|
float TargetVAngleSpeed_Coor; //光电跟踪目标在平台坐标系下的高低角变化率
|
|
|
|
|
|
unsigned long long TargetRelativeMeasureTime; //目标数据相对测量时刻
|
|
|
unsigned long long TargetAbsoluteMeasureTime; //目标数据绝对测量时刻
|
|
|
|
|
|
unsigned char MissileTrackState; //光电跟踪导弹状态
|
|
|
|
|
|
float MissileHAngle_Geo; //光电跟踪导弹在平台地理坐标系下的方位角
|
|
|
float MissileHAngleSpeed_Geo; //光电跟踪导弹在平台地理坐标系下的方位角变化率
|
|
|
float MissileVAngle_Geo; //光电跟踪导弹在平台地理坐标系下的高低角
|
|
|
float MissileVAngleSpeed_Geo; //光电跟踪导弹在平台地理坐标系下的高低角变化率
|
|
|
|
|
|
float MissileHAngle_Coor; //光电跟踪导弹在平台坐标系下的方位角
|
|
|
float MissileHAngleSpeed_Coor; //光电跟踪导弹在平台坐标系下的方位角变化率
|
|
|
float MissileVAngle_Coor; //光电跟踪导弹在平台坐标系下的高低角
|
|
|
float MissileVAngleSpeed_Coor; //光电跟踪导弹在平台坐标系下的高低角变化率
|
|
|
|
|
|
unsigned long long MissileRelativeMeasureTime; //导弹数据相对测量时刻
|
|
|
unsigned long long MissileAbsoluteMeasureTime; //导弹数据绝对测量时刻
|
|
|
|
|
|
bool TCPCommunicationState;
|
|
|
bool UdpCommunicationState;
|
|
|
|
|
|
bool LiftingCom;
|
|
|
bool LaserCom;
|
|
|
bool ThermalCom;
|
|
|
bool ServoCom;
|
|
|
unsigned short CoolProgress;
|
|
|
unsigned short MachineTemp;
|
|
|
unsigned char GunState;//火炮击发状态
|
|
|
unsigned char DisturbState;//低小慢
|
|
|
unsigned char LineType;//联机方式
|
|
|
unsigned char AzCodeState;//方位码盘状态
|
|
|
|
|
|
float TargetDistance; //目标距离
|
|
|
|
|
|
float BD_HAngleReal; //航向角
|
|
|
|
|
|
float BD_VAngleReal; //俯仰角
|
|
|
|
|
|
float BD_SAngleReal; //横滚角
|
|
|
|
|
|
float LaserDistance; //激光测距距离
|
|
|
|
|
|
unsigned char AbsoluteEffectiveFlag;//绝对时效标志
|
|
|
|
|
|
float TargetDistanceSpeed; //目标距离变化率
|
|
|
|
|
|
unsigned char TargetDistanceState;//目标距离更新状态
|
|
|
|
|
|
unsigned char TargetSource;//目标来源
|
|
|
|
|
|
bool LaserDisUpdate;//激光测距距离是否更新
|
|
|
|
|
|
float FilterTargetHAngle_Geo;
|
|
|
float FilterTargetVAngle_Geo;
|
|
|
float FilterMissileHAngle_Geo;
|
|
|
float FilterMissileVAngle_Geo;
|
|
|
|
|
|
}S338_SynthesisInfo;
|
|
|
|
|
|
////++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
//定义PC到算法控制命令结构体
|
|
|
typedef struct tagS338GlbPCCommand //BYTES: 15*2=30
|
|
|
{
|
|
|
//指令状态
|
|
|
unsigned short ubCmd; //遥控指令
|
|
|
unsigned short ubCmdLast; //上一个遥控指令
|
|
|
|
|
|
//控制命令
|
|
|
unsigned short unEnRadarGuide; //雷达导引:01雷达导引,0人工导引。
|
|
|
unsigned short unSearchMode; //工作模式:01战斗,02模靶,03电靶,04模弹,05检飞,00无模式。
|
|
|
unsigned short unTrack; //跟踪/解锁:01目标锁定/修正攻击点,02目标解锁,00不响应。
|
|
|
unsigned short unUpdateRrObj; //更新雷达指引目标信息:01更新,00不更新。
|
|
|
unsigned short unUpdateRrMis; //更新雷达指引导弹信息:01更新,00不更新
|
|
|
unsigned char unObjPNum; //雷达指引批号:00无指引信息 01-127雷达指引批号
|
|
|
float unRadarObjAz; //雷达指引信息--目标方位角
|
|
|
float unRadarObjPt; //雷达指引信息--目标俯仰角
|
|
|
float unRadarObjAzDT; //雷达指引信息--目标方位角(大地坐标系)
|
|
|
float unRadarObjPtDT; //雷达指引信息--目标俯仰角(大地坐标系)
|
|
|
float unRadarObjDistance;//雷达指引信息--目标距离
|
|
|
float unRadarMisAz; //雷达指引信息--导弹方位角
|
|
|
float unRadarMisPt; //雷达指引信息--导弹俯仰角
|
|
|
float unRadarMisAzDT; //雷达指引信息--导弹方位角(大地坐标系)
|
|
|
float unRadarMisPtDT; //雷达指引信息--导弹仰角角(大地坐标系)
|
|
|
float unRadarMisDistance;//雷达指引信息--导弹距离
|
|
|
unsigned short unSetLockPosX; //实际锁定点X坐标
|
|
|
unsigned short unSetLockPosY; //实际锁定点Y坐标
|
|
|
unsigned short unSetLockBoxW; //锁定波门宽度
|
|
|
unsigned short unSetLockBoxH; //锁定波门高度
|
|
|
//SINT16 nManualSelectX; //手动选择目标的的锁定点X坐标
|
|
|
//SINT16 nManualSelectY; //手动选择目标的的锁定点Y坐标
|
|
|
}GLB_PCCOMMAND_S338;
|
|
|
//上位机到算法的锁定命令
|
|
|
typedef struct tagLockPoint
|
|
|
{
|
|
|
unsigned char ubTrackCmd;//目标锁定发1 导弹锁定发2 解锁发3 目标修正发4 导弹修正发5
|
|
|
unsigned short nManualSelectX;
|
|
|
unsigned short nManualSelectY;
|
|
|
}LOCKPOINT;
|
|
|
|
|
|
//上位机到算法的模拟数据
|
|
|
typedef struct tagSimulateData
|
|
|
{
|
|
|
float TargetHAngle;
|
|
|
float TargetVAngle;
|
|
|
unsigned short TargetW;
|
|
|
unsigned short TargetH;
|
|
|
|
|
|
float MissileHAngle;
|
|
|
float MissileVAngle;
|
|
|
unsigned short MissileW;
|
|
|
unsigned short MissileH;
|
|
|
}SIMULATEDATA;
|
|
|
|
|
|
//上位机到算法的gps及倾角信息
|
|
|
typedef struct tagGPSAndQjData
|
|
|
{
|
|
|
//GPS数据
|
|
|
float fLogitude;//经度
|
|
|
float fLatitude;//纬度
|
|
|
float fHigh; //高度
|
|
|
|
|
|
//定北定向数据
|
|
|
float OmegaX;
|
|
|
float OmegaY;
|
|
|
float OmegaZ;
|
|
|
|
|
|
//目标GPS数据
|
|
|
float fTargetLogitude;//经度
|
|
|
float fTargetLatitude;//纬度
|
|
|
float fTargetHigh; //高度
|
|
|
}GPSANDQJDATA;
|
|
|
|
|
|
typedef struct tagTime16S //BYTES: 1*2+6*1=8
|
|
|
{
|
|
|
unsigned short year; //年
|
|
|
unsigned char month; //月
|
|
|
unsigned char day; //日
|
|
|
unsigned char hour; //时
|
|
|
unsigned char minute; //分
|
|
|
unsigned char second; //秒
|
|
|
unsigned short milsec; //毫秒 //MSSu, 20150602:毫秒范围为0~999
|
|
|
}TAGTIME16S;
|
|
|
//上位机到算法图像采集时间及伺服信息
|
|
|
typedef struct tagServoAngle
|
|
|
{
|
|
|
TAGTIME16S tTime; //热像仪采集图像时间
|
|
|
float fOriAngle; //方位角度
|
|
|
float fOriAngleSpeed; //方位角速度
|
|
|
float fPitAngle; //俯仰角度
|
|
|
float fPitAngleSpeed; //俯仰角速度
|
|
|
float fFOVAngleRes; //视场角分辨率
|
|
|
}TAGSERVOANGLE;
|
|
|
|
|
|
|
|
|
typedef struct tagTrackTarget
|
|
|
{
|
|
|
unsigned short X;
|
|
|
unsigned short Y;
|
|
|
unsigned short Width;
|
|
|
unsigned short Height;
|
|
|
float SNR;// 新增
|
|
|
}TRACKTARGET;
|
|
|
|
|
|
//定义算法输入结构体,包括
|
|
|
typedef struct tagEORADERINPUT
|
|
|
{
|
|
|
//上位机到算法的控制命令
|
|
|
GLB_PCCOMMAND_S338 GLB_PCCommand;
|
|
|
|
|
|
//上位机软件到PC算法引导方式控制命令
|
|
|
unsigned char GuideCmd;
|
|
|
|
|
|
//上位机软件到PC算法工作方式控制命令;1为战斗模式,2为模靶模式,3为电靶模式,4为模弹模式,5为检飞模式
|
|
|
unsigned char WorkCmd;
|
|
|
|
|
|
//上位机软件到PC算法锁定命令
|
|
|
LOCKPOINT LockPoint;
|
|
|
|
|
|
//上位机软件到PC算法模拟角度或导弹命令
|
|
|
SIMULATEDATA SimulateData;
|
|
|
|
|
|
//上位机软件到PC算法的经纬度和姿态信息(预留接口)
|
|
|
GPSANDQJDATA GpsAndQjData;
|
|
|
|
|
|
//上位机到算法图像采集时间及伺服信息
|
|
|
TAGSERVOANGLE ServoAngel;
|
|
|
|
|
|
//跟踪过程中视场调整标志位
|
|
|
unsigned char missileInView;
|
|
|
|
|
|
//目标跟踪算法DLL传输的跟踪结果
|
|
|
TRACKTARGET TrackTarget;
|
|
|
|
|
|
//导弹跟踪算法DLL传输的跟踪结果
|
|
|
TRACKTARGET TrackMissile;
|
|
|
|
|
|
//导弹跟踪解锁标志位
|
|
|
unsigned char MissUnlockTag;
|
|
|
|
|
|
//目标的平台地理系角度
|
|
|
double TargetEastHAngle;
|
|
|
double TargetEastVAngle;
|
|
|
double MissileEastHAngle;
|
|
|
double MissileEastVAngle;
|
|
|
|
|
|
//主转动基座值
|
|
|
double MainHAngle;
|
|
|
|
|
|
//目标及导弹的平台地理下的方位及俯仰角速度
|
|
|
float TargetHAngleSpeed_Geo;
|
|
|
float TargetVAngleSpeed_Geo;
|
|
|
float MissileHAngleSpeed_Geo;
|
|
|
float MissileVAngleSpeed_Geo;
|
|
|
|
|
|
//导弹脱落标志位
|
|
|
unsigned char MissileFallFlag;
|
|
|
|
|
|
// 外部强制记忆跟踪标记// by wcw04046 @ 2020/06/29
|
|
|
unsigned char Force_MemTrack;
|
|
|
|
|
|
// 攻击方向/类型 00-对空 01-对地 11-对地立靶 by wcw04046 @ 2020/06/29
|
|
|
unsigned char AttactDir;
|
|
|
|
|
|
// 锁定位置(上位机会根据导引阶段调整锁定中心,算法依据调整波门防止大调转丢目标)
|
|
|
int Input_LockX;
|
|
|
int Input_LockY;
|
|
|
|
|
|
}EORADERINPUT;
|