|
|
|
|
#pragma once
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "GlobalMember.h" // ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>
|
|
|
|
|
#include "MUDP.h"
|
|
|
|
|
#include "FrameFKU_Camera.h"
|
|
|
|
|
|
|
|
|
|
#define SAFE_DELETE(p) { if(p) { delete (p); (p) = nullptr; } }
|
|
|
|
|
#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p) = nullptr; } }
|
|
|
|
|
|
|
|
|
|
extern CFrameFK_U_CAMERA g_FrameCamera;
|
|
|
|
|
extern CMUDP g_MUDPCamera;
|
|
|
|
|
extern BOOL g_IsSending;
|
|
|
|
|
|
|
|
|
|
// <20><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>ռ<EFBFBD>
|
|
|
|
|
extern long GetFreeVolumeLen(char *p = "C");
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ŀ¼
|
|
|
|
|
extern CString GetSoftwareCurrentDirectory();
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern bool SearchDirectory(const CString &strDir);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD>ֵ
|
|
|
|
|
extern unsigned int getFrameLen(BYTE B0, BYTE B1, BYTE B2, BYTE B3);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡͼ<C8A1><CDBC>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
extern void CALLBACK GetEOImgCenterOffset(CPoint offset, int flag);
|
|
|
|
|
|
|
|
|
|
// <20>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬ת<E2A3AC><D7AA>Ϊ<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void CALLBACK GetEOIRImgRightButtonDown(int type);
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD>
|
|
|
|
|
extern void CALLBACK GetDistRatioAndAngleThroughImg(double distRatio, double angle);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ͼģ<CDBC><C4A3><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void CALLBACK GetLeadLonLat(double Lon, double Lat, double Alt);
|
|
|
|
|
|
|
|
|
|
// <20>ط<EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void ReplayInputData(const void* buffer, int length);
|
|
|
|
|
|
|
|
|
|
// UDP ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8>
|
|
|
|
|
extern void CALLBACK UDPRevTgtInfo(const void* buffer, int length, UINT32 data);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺߳<DFB3><CCBA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void ProcessData();
|
|
|
|
|
// λ<><CEBB><EFBFBD><EFBFBD>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransLocationSocketStruct(struSocketProtocal &dst, const struQB_FJ & src);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransFJStruct( struTranslateProtocal_FJ &dst, const struProtocal_FJ &src);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void PushToFrameDataDeque(const struQB_FJ &TgtLocStru);
|
|
|
|
|
|
|
|
|
|
// ת<>鱨<EFBFBD><E9B1A8>EO<45><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransToEOQBFJ(struQB_FJ &dst, const struTranslateProtocal_FJ &src);
|
|
|
|
|
|
|
|
|
|
// ת<>鱨<EFBFBD><E9B1A8>IR<49><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransToIRQBFJ(struQB_FJ &dst, const struTranslateProtocal_FJ &src);
|
|
|
|
|
// CH96<39><36>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
extern void GetFH96DataFromNet();
|
|
|
|
|
extern void SocketReceiveFH96Data(const void* buffer, int length);
|
|
|
|
|
extern void ProcessCH96Data();
|
|
|
|
|
// <20><>ȡCH96<39><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransCH96FJData(Data96TXD &dst, Protocal96TXD &src);
|
|
|
|
|
// CH96<39><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תFHͳ<48><EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransCH96FJDatatoQBData(struQB_FJ &QB_FJ, Data96TXD &CH96FJ);
|
|
|
|
|
// CH96<39><36><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CH96_h264DecodeResultCallbackFun(unsigned char* data,int width,int height);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ڷɻ<DAB7>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>̬
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3>غɵ<D8BA><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>̬<EFBFBD><CCAC>()
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// 1. uavPos<6F><73><EFBFBD>ɻ<EFBFBD>λ<EFBFBD>ã<EFBFBD>double uavPos[GPS<50><53><EFBFBD>ȣ<EFBFBD>GPSγ<53>ȣ<EFBFBD>GPS<50>߶<EFBFBD>]
|
|
|
|
|
// 2. tgtPos<6F><73>Ŀ<EFBFBD><C4BF>λ<EFBFBD>ã<EFBFBD>double tgtPos[GPS<50><53><EFBFBD>ȣ<EFBFBD>GPSγ<53>ȣ<EFBFBD>GPS<50>߶<EFBFBD>]
|
|
|
|
|
// 3. uavAttitude: <20>ɻ<EFBFBD><C9BB><EFBFBD>̬<EFBFBD><CCAC>double uavAttitude[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ƫ<EFBFBD><C6AB>]
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 1. loadPitch <20>غɸߵͽǣ<CDBD><C7A3><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
// 2. loadAzimuth <20>غɷ<D8BA>λ<EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true,<2C><><EFBFBD><EFBFBD>false<73><65>
|
|
|
|
|
extern bool CalLoadAttitudeForLoadGuide(double &loadPitch, double &loadAzimuth, const double *uavPos, const double *tgtPos, const double *uavAttitude);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ɻ<EFBFBD><C9BB>ľ<EFBFBD>γ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD>̬
|
|
|
|
|
extern bool GetUAVLocAndPose(double &UAVLon, double &UAVLat,double &UAVAlt,
|
|
|
|
|
double &UAVRoll, double &UAVYaw,double &UAVPitch,
|
|
|
|
|
const struTranslateProtocal_FJ &src);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ת<>鱨<EFBFBD><E9B1A8>EO<45><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransToEOQBFJ(struQB_FJ &dst, const struTranslateProtocal_FJ &src);
|
|
|
|
|
|
|
|
|
|
// ת<>鱨<EFBFBD><E9B1A8>IR<49><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void TransToIRQBFJ(struQB_FJ &dst, const struTranslateProtocal_FJ &src);
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
extern double getYaw(double XA, double YA);
|
|
|
|
|
extern bool CalAnyPtCoordinateWithoutErrorCompensate(double &Lon, double &Lat, double &H, const struQB_FJ *frame, int pt_x, int pt_y);
|
|
|
|
|
extern void CalLonLatOffset(double &LonOffset, double &LatOffset, const struQB_FJ *frame);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ㾭γ<E3BEAD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frame <20><><EFBFBD>븴<EFBFBD><EBB8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. Lon ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ㾭<C4B5><E3BEAD>
|
|
|
|
|
// 2. Lat ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>γ<EFBFBD><CEB3>
|
|
|
|
|
// 3. H ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>߶<EFBFBD>
|
|
|
|
|
// 4. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
// ˵<><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><F3A3ACB5><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ƽ̹
|
|
|
|
|
extern bool CalImgCenterCoordinate(double &Lon, double &Lat, double &H, const struQB_FJ *frame);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㾭γ<E3BEAD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frame <20><><EFBFBD>븴<EFBFBD><EBB8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. pt_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 3. pt_y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. Lon <20><><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. Lat γ<><CEB3>
|
|
|
|
|
// 3. H <20>߶<EFBFBD>
|
|
|
|
|
// 4. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
// ˵<><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ƽ̹,<2C><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>
|
|
|
|
|
extern bool CalAnyPtCoordinate(double &Lon, double &Lat, double &H, const struQB_FJ *frame, int pt_x, int pt_y);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3>ͷ<EFBFBD><CDB7>鱨<EFBFBD><E9B1A8><EFBFBD><EFBFBD>
|
|
|
|
|
extern void ReleaseQBData(QBStru *pQBData);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>¡ͼ<C2A1><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
extern void CloneImgStru(const ImgStru *src, ImgStru *dst);
|
|
|
|
|
extern void CloneQBData(const QBStru *src, QBStru *dst);
|
|
|
|
|
|
|
|
|
|
extern BYTE Buffer[512000];
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡԭʼ<D4AD><CABC>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
|
|
|
|
extern void GetH264VideoDataFromNet();
|
|
|
|
|
extern void SocketReceiveH264VideoData(const void* buffer, int length);
|
|
|
|
|
extern void ProcessH264VideoData();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|