|
|
|
|
#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
|
|
|
|
|
/*---------------------<2D><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>㾭γ<E3BEAD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>------------------------*/
|
|
|
|
|
typedef struct calcData
|
|
|
|
|
{
|
|
|
|
|
float LaserDistance; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0)
|
|
|
|
|
float PodPitchAngle; //<2F><><EFBFBD>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA> <20><><EFBFBD><EFBFBD>Ϊ0<CEAA><30> -115~+90<39><30>)
|
|
|
|
|
float PodDirectionAngle; //<2F><><EFBFBD>շ<EFBFBD>λ<EFBFBD><CEBB>(-180~+180<38><30>)
|
|
|
|
|
float PodRollAngle; //<2F><><EFBFBD>չ<EFBFBD>ת<EFBFBD><D7AA>
|
|
|
|
|
float FlyPitchAngle; //<2F>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(-90~+90<39><30>)
|
|
|
|
|
float FlyHeadingAngle; //<2F>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0~360<36><30>)
|
|
|
|
|
float FlyRollAngle; //<2F>ɻ<EFBFBD><C9BB><EFBFBD>ת<EFBFBD><D7AA>(-90~+90<39><30>)
|
|
|
|
|
double FlyCurrentLongitude; //<2F>ɻ<EFBFBD><C9BB><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
double FlyCurrentLatitude; //<2F>ɻ<EFBFBD><C9BB><EFBFBD>ǰγ<C7B0><CEB3>
|
|
|
|
|
float FlyCurrentHeight; //<2F>ɻ<EFBFBD><C9BB><EFBFBD>ǰ<EFBFBD>߶<EFBFBD>
|
|
|
|
|
bool isUseRoll; //<2F>Ƿ<EFBFBD>ʹ<EFBFBD>ù<EFBFBD>ת Ĭ<>ϲ<EFBFBD>ʹ<EFBFBD><CAB9>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
}CALC_DES_DATA, FLY_DATA;
|
|
|
|
|
|
|
|
|
|
/*------------------------Ŀ<><C4BF><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>--------------------------*/
|
|
|
|
|
|
|
|
|
|
typedef struct locationData
|
|
|
|
|
{
|
|
|
|
|
double DisLongitude; //Ŀ<><C4BF><EFBFBD>㾭<EFBFBD><E3BEAD>
|
|
|
|
|
double Dislatitude; //Ŀ<><C4BF><EFBFBD><EFBFBD>γ<EFBFBD><CEB3>
|
|
|
|
|
float DisHeight; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
/*locationData& operator=(const locationData& other)
|
|
|
|
|
{
|
|
|
|
|
this->DisHeight = other.DisHeight;
|
|
|
|
|
this->Dislatitude = other.Dislatitude;
|
|
|
|
|
this->DisLongitude = other.DisLongitude;
|
|
|
|
|
|
|
|
|
|
return *this;
|
|
|
|
|
}*/
|
|
|
|
|
}DES_LOCATION;
|
|
|
|
|
|
|
|
|
|
/*----------------<2D><><EFBFBD>ݿ<EFBFBD>Ͷ<EFBFBD><CDB6>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫת<D2AA><D7AA><EFBFBD>ĽǶ<C4BD>-------------------*/
|
|
|
|
|
typedef struct podNeedAngle
|
|
|
|
|
{
|
|
|
|
|
float directionAngle; //<2F><><EFBFBD>շ<EFBFBD>λ<EFBFBD><CEBB>(-180~+180<38><30>)
|
|
|
|
|
float PitchAngle; //<2F>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(-90~+90<39><30>)
|
|
|
|
|
}POD_NEED_ANGLE;
|
|
|
|
|
|
|
|
|
|
/**********************************************
|
|
|
|
|
* @func calcDisLocation
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
* @param CALC_DES_DATA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>㾭γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return DES_LOCATION Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
**********************************************/
|
|
|
|
|
CALC_API DES_LOCATION __stdcall calcDisLocation(CALC_DES_DATA calcData);
|
|
|
|
|
|
|
|
|
|
/**********************************************
|
|
|
|
|
* @func calcDisLocation
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param CALC_DES_DATA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>㾭γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return DES_LOCATION Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
**********************************************/
|
|
|
|
|
CALC_API DES_LOCATION __stdcall calcDisLocation2(CALC_DES_DATA calcData);
|
|
|
|
|
|
|
|
|
|
/**********************************************
|
|
|
|
|
* @func calcPodNeedAngle
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>븩<EFBFBD><EFBFBD>Ӧ<EFBFBD>仯<EFBFBD>ĽǶ<EFBFBD>
|
|
|
|
|
* @param CALC_DES_DATA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>㾭γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return POD_NEED_ANGLE Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
**********************************************/
|
|
|
|
|
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle(CALC_DES_DATA calcData, DES_LOCATION desLocation);
|
|
|
|
|
|
|
|
|
|
/**********************************************
|
|
|
|
|
* @func calcPodNeedAngle2
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>븩<EFBFBD><EFBFBD>Ӧ<EFBFBD>仯<EFBFBD>ĽǶȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param CALC_DES_DATA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>㾭γ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return POD_NEED_ANGLE Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
**********************************************/
|
|
|
|
|
CALC_API POD_NEED_ANGLE __stdcall calcPodNeedAngle2(CALC_DES_DATA calcData, DES_LOCATION desLocation);
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|