diff --git a/Include/calc_api.h b/Include/calc_api.h new file mode 100644 index 0000000..c2ab965 --- /dev/null +++ b/Include/calc_api.h @@ -0,0 +1,89 @@ +#pragma once +#include + +#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 \ No newline at end of file diff --git a/Include/libcalcdis/relsease/calc_api.h b/Include/libcalcdis/relsease/calc_api.h new file mode 100644 index 0000000..553ad3a --- /dev/null +++ b/Include/libcalcdis/relsease/calc_api.h @@ -0,0 +1,89 @@ +#pragma once +#include + +#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 \ No newline at end of file diff --git a/Include/libcalcdis/relsease/libcalcdis.dll b/Include/libcalcdis/relsease/libcalcdis.dll new file mode 100644 index 0000000..ecbf4ba Binary files /dev/null and b/Include/libcalcdis/relsease/libcalcdis.dll differ diff --git a/Src/CH91PayloadSoftware/CH91PayloadSoftware.rc b/Src/CH91PayloadSoftware/CH91PayloadSoftware.rc index 37da237..c7ea40a 100644 Binary files a/Src/CH91PayloadSoftware/CH91PayloadSoftware.rc and b/Src/CH91PayloadSoftware/CH91PayloadSoftware.rc differ diff --git a/Src/CH91PayloadSoftware/CH91PayloadSoftwareDlg.cpp b/Src/CH91PayloadSoftware/CH91PayloadSoftwareDlg.cpp index 79843db..0e9af72 100644 --- a/Src/CH91PayloadSoftware/CH91PayloadSoftwareDlg.cpp +++ b/Src/CH91PayloadSoftware/CH91PayloadSoftwareDlg.cpp @@ -1371,9 +1371,8 @@ BOOL CCH91PayloadSoftwareDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) 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]语言文字 // 视频控制页面标题 GetPrivateProfileString("TITLE", "TITLE_REPLAY", "0", g_char_TitleReplay, 30, fileLanguageSet); diff --git a/Src/CH91PayloadSoftware/DlgWHTJDCNew.cpp b/Src/CH91PayloadSoftware/DlgWHTJDCNew.cpp index 59d01d2..146b19a 100644 --- a/Src/CH91PayloadSoftware/DlgWHTJDCNew.cpp +++ b/Src/CH91PayloadSoftware/DlgWHTJDCNew.cpp @@ -868,15 +868,7 @@ void DlgWHTJDCNew::UpdateFrame13(int &sendEnd) if(sendEnd==0) { 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; - //MessageBox(_T("地面站不支持选点跟踪功能,默认选择图像中心")); } else { @@ -885,12 +877,6 @@ void DlgWHTJDCNew::UpdateFrame13(int &sendEnd) } 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比例系数 int x,y,b; @@ -905,7 +891,7 @@ void DlgWHTJDCNew::UpdateFrame13_1() } //转化为吊舱控制指令坐标,中心为零,x范围:[-960,960],y范围:[-540,540]; int xx = x-960; - int yy = y-540; + int yy = -y+540; TJDCCmdBuffer[0]=0x02; TJDCCmdBuffer[1]=0x3A; TJDCCmdBuffer[2]=xx; @@ -913,7 +899,7 @@ void DlgWHTJDCNew::UpdateFrame13_1() TJDCCmdBuffer[4]=yy; TJDCCmdBuffer[5]=yy>>8; UpdateDataZ70_TJDC(); - SelectPointTrack = false; + //SelectPointTrack = false; } void DlgWHTJDCNew::UpdateFrame14(int &sendEnd) @@ -994,6 +980,7 @@ void DlgWHTJDCNew::UpdateFrame19(int &sendEnd) TJDCCmdBuffer[1]=0x3B; UpdateDataZ70_TJDC(); g_bBindData = true; + SelectPointTrack = false; } else { diff --git a/鐗堟湰璇存槑.txt b/鐗堟湰璇存槑.txt index d460109..8a00dde 100644 --- a/鐗堟湰璇存槑.txt +++ b/鐗堟湰璇存槑.txt @@ -12,4 +12,7 @@ 浼樺寲鎺у埗鎸囦护鍙戦侀昏緫锛堣璁㈡寚浠わ級 澧炲姞瑙嗛绠$悊璁$畻鏈烘寚浠わ紙寮鍏虫寚浠わ級鍙戦 澧炲姞13鎵鍚婅埍鍗忚銆佸ぉ杩涘悐鑸卞崗璁丠264瑁告祦瑙嗛鍗忚瑙f瀽閫夋嫨 -澧炲姞澶╄繘鍚婅埍鐐瑰嚮鈥滃崟鐐硅窡韪濇寜閽悗锛屽弻鍑诲浘鍍忓尯鍩熷彂閫佸悐鑸辫窡韪潗鏍囩偣 \ No newline at end of file +澧炲姞澶╄繘鍚婅埍鐐瑰嚮鈥滃崟鐐硅窡韪濇寜閽悗锛屽弻鍑诲浘鍍忓尯鍩熷彂閫佸悐鑸辫窡韪潗鏍囩偣 + +20240719 +淇敼鐐瑰崟璺熻釜鍔熻兘浼樺寲 \ No newline at end of file