#pragma once /// /// 战车工作模式 /// 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 //人工引导 }; /// /// 锁定模式 /// enum LockModeEnum { LockAuto, //自动 LockManu //手动 }; /// /// 目标大小 /// enum TargetSizeModeEnum { TargetSmall, //小目标 TargetMiddle, //中目标 TargetBig //大目标 }; /// /// 目标类型 /// 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;