You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.4 KiB
C

#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