From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001 From: SWK <sungwk82@diteam.co.kr> Date: 목, 22 12월 2022 12:31:43 +0900 Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합) --- ReviewHistory/include/akCore/akDE.h | 123 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/include/akCore/akDE.h b/ReviewHistory/include/akCore/akDE.h new file mode 100644 index 0000000..445c9e6 --- /dev/null +++ b/ReviewHistory/include/akCore/akDE.h @@ -0,0 +1,123 @@ +#pragma once + + +#include "akCoreLinker.h" + +#define _USE_MATH_DEFINES + +#include <math.h> +#include <windows.h> + + +namespace akCore +{ + class AKCORE_DLLSPEC CakDE { + public: + CakDE(void); + ~CakDE(void); + // TODO: 여기에 메서드를 추가합니다. + + public: + /** + * 함수명 : getMovingPostion + * 현제의 좌표로부터 속도와 시간만큼 움직였을때의 좌표 도출 + * Parameters: + * double* posX //X좌표(결과값 반환) + * double* posY //Y좌표(결과값 반환) + * double* posZ //Z좌표(결과값 반환) + * double heading //Heading(0~360) + * double pitch //Pitch(0~360) + * double velocity //속도(m/s + * unsigned int Framerate //프레임(Hz) + * Returns: + * 정상적인 계산 완료시 True 반환 + */ + bool getMovingPostion(double* posX,double* posY,double* posZ,double heading,double pitch, double velocity, unsigned int Framerate); + bool getNextPostion(double* posX,double* posY,double* posZ,double heading,double pitch, double velocity, double Dt); + + /** + * 함수명 : getRotatePostion + * 현제 좌표로부터 Heading,Pitch방향으로 정해진 값만큼 움직였을때 좌표 도출 + * Parameters: + * double* posX //X좌표(결과값 반환) + * double* posY //Y좌표(결과값 반환) + * double* posZ //Z좌표(결과값 반환) + * double heading //Heading(0~360) + * double pitch //Pitch(0~360) + * double radius //거리 + * Returns: + * 정상적인 계산 완료시 True 반환 + */ + bool getRotatePostion(double* posX, double* posY, double* posZ, double heading, double pitch, double radius); + + /** + * 함수명 : getAngle3d + * 두 좌표가 이루는 각을 환산 + * Parameters: + * double x1 // 첫번째 좌표 + * double y1 // 첫번째 좌표 + * double z1 // 첫번째 좌표 + * double x2 // 두번째 좌표 + * double y2 // 두번째 좌표 + * double z2 // 두번째 좌표 + * double heading //Heading(결과값 반환) + * double pitch //Pitch(결과값 반환) + * Returns: + */ + void getAngle3d(double x1, double y1, double z1, double x2, double y2, double z2, double* heading, double* pitch); + + /** + * 함수명 : AngleClosing + * 두 각의 간격 크기 + * Parameters: + * double center // 중심 각 + * double angle // 회전 각 + * int option // 0은 무조건 가까운쪽 각 + * Returns: + * 중심각과 회전각의 간격 반환 + */ + double GetAngleClosing(double center, double angle, int option = 0); + + /** + * 함수명 : GetAngle360 + * 각을 0~360도 환산 + * Parameters: + * double angle // 입력 각 + * Returns: + * 0~360도로 환산된 각 + */ + inline double GetAngle360(double angle); + + /** + * 함수명 : GetAngle180 + * 각을 -180~180도 환산 + * Parameters: + * double angle // 입력 각 + * Returns: + * -180~180도로 환산된 각 + */ + static inline double GetAngle180(double angle); + + + + static void getRoate2d(double angle, double orgx,double orgy, double* x, double* y); + + double distance3d(double x1, double y1, double z1, double x2, double y2, double z2); + + void rotateposition3d(double x1,double y1, double z1, double* x2, double* y2, double* z2, double h, double p); + + void axisrotate( double* nx, double* ny, double* nz, + double cx, double cy, double cz, + double tx, double ty, double tz, + double heading, double pitch, double roll ); + + bool missilesim(double msx, double msy, double msz, double msh, double msp, double msah, double msap, double tgx, double tgy, double tgz, double velocty, double acceleration, int FrameRate); + + inline static double getHeading(double x , double y); + + inline double RadianToDegree(double radian); + inline double DegreeToRadian(double degree); + inline bool GetCheckAngleRange(double p1, double stAngle, double endAngle); + private: + }; +} \ No newline at end of file -- Gitblit v1.9.3