修改点单跟踪功能优化
NewDCCtrl
CaoYuHui 12 months ago
parent 1ac46198bf
commit 88e5e560f4

@ -0,0 +1,89 @@
#pragma once
#include <tuple>
#define CALC_EXPORT 0
#if CALC_EXPORT
#define CALC_API __declspec(dllexport)
#else
#define CALC_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*---------------------计算目标点经纬度需求数据------------------------*/
typedef struct calcData
{
float LaserDistance; //激光测距距离(无激光测距值为0)
float PodPitchAngle; //吊舱俯仰角(向上为正 归中为0° -115~+90°)
float PodDirectionAngle; //吊舱方位角(-180~+180°)
float PodRollAngle; //吊舱滚转角
float FlyPitchAngle; //飞机俯仰角(-90~+90°)
float FlyHeadingAngle; //飞机航向角(0~360°)
float FlyRollAngle; //飞机滚转角(-90~+90°)
double FlyCurrentLongitude; //飞机当前经度
double FlyCurrentLatitude; //飞机当前纬度
float FlyCurrentHeight; //飞机当前高度
bool isUseRoll; //是否使用滚转 默认不使用(三轴光电吊舱)
}CALC_DES_DATA, FLY_DATA;
/*------------------------目标点位置信息数据--------------------------*/
typedef struct locationData
{
double DisLongitude; //目标点经度
double Dislatitude; //目标点纬度
float DisHeight; //目标点高度
/*locationData& operator=(const locationData& other)
{
this->DisHeight = other.DisHeight;
this->Dislatitude = other.Dislatitude;
this->DisLongitude = other.DisLongitude;
return *this;
}*/
}DES_LOCATION;
/*----------------根据空投点目标吊舱需要转动的角度-------------------*/
typedef struct podNeedAngle
{
float directionAngle; //吊舱方位角(-180~+180°)
float PitchAngle; //飞机俯仰角(-90~+90°)
}POD_NEED_ANGLE;
/**********************************************
* @func calcDisLocation
* @brief
* @param CALC_DES_DATA
* @return DES_LOCATION
**********************************************/
CALC_API DES_LOCATION __stdcall calcDisLocation(CALC_DES_DATA calcData);
/**********************************************
* @func calcDisLocation
* @brief
* @param CALC_DES_DATA
* @return DES_LOCATION
**********************************************/
CALC_API DES_LOCATION __stdcall calcDisLocation2(CALC_DES_DATA calcData);
/**********************************************
* @func calcPodNeedAngle
* @brief
* @param CALC_DES_DATA
* @return POD_NEED_ANGLE
**********************************************/
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle(CALC_DES_DATA calcData, DES_LOCATION desLocation);
/**********************************************
* @func calcPodNeedAngle2
* @brief
* @param CALC_DES_DATA
* @return POD_NEED_ANGLE
**********************************************/
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle2(CALC_DES_DATA calcData, DES_LOCATION desLocation);
#ifdef __cplusplus
}
#endif

@ -0,0 +1,89 @@
#pragma once
#include <tuple>
#define CALC_EXPORT 1
#ifdef CALC_EXPORT
#define CALC_API __declspec(dllexport)
#else
#define CALC_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*---------------------计算目标点经纬度需求数据------------------------*/
typedef struct calcData
{
float LaserDistance; //激光测距距离(无激光测距值为0)
float PodPitchAngle; //吊舱俯仰角(向上为正 归中为0° -115~+90°)
float PodDirectionAngle; //吊舱方位角(-180~+180°)
float PodRollAngle; //吊舱滚转角
float FlyPitchAngle; //飞机俯仰角(-90~+90°)
float FlyHeadingAngle; //飞机航向角(0~360°)
float FlyRollAngle; //飞机滚转角(-90~+90°)
double FlyCurrentLongitude; //飞机当前经度
double FlyCurrentLatitude; //飞机当前纬度
float FlyCurrentHeight; //飞机当前高度
bool isUseRoll; //是否使用滚转 默认不使用(三轴光电吊舱)
}CALC_DES_DATA, FLY_DATA;
/*------------------------目标点位置信息数据--------------------------*/
typedef struct locationData
{
double DisLongitude; //目标点经度
double Dislatitude; //目标点纬度
float DisHeight; //目标点高度
/*locationData& operator=(const locationData& other)
{
this->DisHeight = other.DisHeight;
this->Dislatitude = other.Dislatitude;
this->DisLongitude = other.DisLongitude;
return *this;
}*/
}DES_LOCATION;
/*----------------根据空投点目标吊舱需要转动的角度-------------------*/
typedef struct podNeedAngle
{
float directionAngle; //吊舱方位角(-180~+180°)
float PitchAngle; //飞机俯仰角(-90~+90°)
}POD_NEED_ANGLE;
/**********************************************
* @func calcDisLocation
* @brief
* @param CALC_DES_DATA
* @return DES_LOCATION
**********************************************/
CALC_API DES_LOCATION __stdcall calcDisLocation(CALC_DES_DATA calcData);
/**********************************************
* @func calcDisLocation
* @brief
* @param CALC_DES_DATA
* @return DES_LOCATION
**********************************************/
CALC_API DES_LOCATION __stdcall calcDisLocation2(CALC_DES_DATA calcData);
/**********************************************
* @func calcPodNeedAngle
* @brief
* @param CALC_DES_DATA
* @return POD_NEED_ANGLE
**********************************************/
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle(CALC_DES_DATA calcData, DES_LOCATION desLocation);
/**********************************************
* @func calcPodNeedAngle2
* @brief
* @param CALC_DES_DATA
* @return POD_NEED_ANGLE
**********************************************/
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle2(CALC_DES_DATA calcData, DES_LOCATION desLocation);
#ifdef __cplusplus
}
#endif

@ -1371,9 +1371,8 @@ BOOL CCH91PayloadSoftwareDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
void CCH91PayloadSoftwareDlg::DlgLanguageSet() void CCH91PayloadSoftwareDlg::DlgLanguageSet()
{ {
// 通过配置文件导入语言类型 // 通过配置文件导入语言类型
CString str_fileLanguageName = "config_Chinese.ini"; //CString fileLanguageSet = GetSoftwareCurrentDirectory()+ "\\ini\\" + str_fileLanguageName;
CString fileLanguageSet = GetSoftwareCurrentDirectory()+ "\\ini\\" + str_fileLanguageName; CString fileLanguageSet = GetSoftwareCurrentDirectory() + _T( "\\config_Chinese.ini" );
// 通过配置文件导入[TITLE]语言文字 // 通过配置文件导入[TITLE]语言文字
// 视频控制页面标题 // 视频控制页面标题
GetPrivateProfileString("TITLE", "TITLE_REPLAY", "0", g_char_TitleReplay, 30, fileLanguageSet); GetPrivateProfileString("TITLE", "TITLE_REPLAY", "0", g_char_TitleReplay, 30, fileLanguageSet);

@ -868,15 +868,7 @@ void DlgWHTJDCNew::UpdateFrame13(int &sendEnd)
if(sendEnd==0) if(sendEnd==0)
{ {
SelectPointTrack = true; SelectPointTrack = true;
//TJDCCmdBuffer[0]=0x02;
//TJDCCmdBuffer[1]=0x3A;
//TJDCCmdBuffer[2]=0x00;
//TJDCCmdBuffer[3]=0x00;
//TJDCCmdBuffer[4]=0x00;
//TJDCCmdBuffer[5]=0x00;
//UpdateDataZ70_TJDC();
g_bBindData = true; g_bBindData = true;
//MessageBox(_T("地面站不支持选点跟踪功能,默认选择图像中心"));
} }
else else
{ {
@ -885,12 +877,6 @@ void DlgWHTJDCNew::UpdateFrame13(int &sendEnd)
} }
void DlgWHTJDCNew::UpdateFrame13_1() void DlgWHTJDCNew::UpdateFrame13_1()
{ {
//x1 m_wndShowEO_Position_Max_x
//y1 m_wndShowEO_Position_Max_y
//x2 g_TrackOffset.x
//y2 g_TrackOffset.y
//double k1 = (float)1920/1080;
//获取实际图像区域坐标 //获取实际图像区域坐标
//x,y实际图像区域坐标b实际图像区域和软件图像区域x方向偏移量k比例系数 //x,y实际图像区域坐标b实际图像区域和软件图像区域x方向偏移量k比例系数
int x,y,b; int x,y,b;
@ -905,7 +891,7 @@ void DlgWHTJDCNew::UpdateFrame13_1()
} }
//转化为吊舱控制指令坐标中心为零x范围[-960,960],y范围[-540,540]; //转化为吊舱控制指令坐标中心为零x范围[-960,960],y范围[-540,540];
int xx = x-960; int xx = x-960;
int yy = y-540; int yy = -y+540;
TJDCCmdBuffer[0]=0x02; TJDCCmdBuffer[0]=0x02;
TJDCCmdBuffer[1]=0x3A; TJDCCmdBuffer[1]=0x3A;
TJDCCmdBuffer[2]=xx; TJDCCmdBuffer[2]=xx;
@ -913,7 +899,7 @@ void DlgWHTJDCNew::UpdateFrame13_1()
TJDCCmdBuffer[4]=yy; TJDCCmdBuffer[4]=yy;
TJDCCmdBuffer[5]=yy>>8; TJDCCmdBuffer[5]=yy>>8;
UpdateDataZ70_TJDC(); UpdateDataZ70_TJDC();
SelectPointTrack = false; //SelectPointTrack = false;
} }
void DlgWHTJDCNew::UpdateFrame14(int &sendEnd) void DlgWHTJDCNew::UpdateFrame14(int &sendEnd)
@ -994,6 +980,7 @@ void DlgWHTJDCNew::UpdateFrame19(int &sendEnd)
TJDCCmdBuffer[1]=0x3B; TJDCCmdBuffer[1]=0x3B;
UpdateDataZ70_TJDC(); UpdateDataZ70_TJDC();
g_bBindData = true; g_bBindData = true;
SelectPointTrack = false;
} }
else else
{ {

@ -13,3 +13,6 @@
增加视频管理计算机指令(开关指令)发送 增加视频管理计算机指令(开关指令)发送
增加13所吊舱协议、天进吊舱协议、H264裸流视频协议解析选择 增加13所吊舱协议、天进吊舱协议、H264裸流视频协议解析选择
增加天进吊舱点击“单点跟踪”按钮后,双击图像区域发送吊舱跟踪坐标点 增加天进吊舱点击“单点跟踪”按钮后,双击图像区域发送吊舱跟踪坐标点
20240719
修改点单跟踪功能优化
Loading…
Cancel
Save