增加原始数据解析,补充日志记录,去除重定义

main
11566hyc 6 months ago
parent 53c90a7230
commit d4f34483e5

@ -7,7 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True)
set(BUILD_ARITH_STUDIO TRUE) # set(BUILD_ARITH_STUDIO TRUE) #
set(BUILD_AI_ONNX_DETECT TRUE) # ONNXAI set(BUILD_AI_ONNX_DETECT FALSE) # ONNXAI
set(BUILD_AI_CUDA_DETECT FALSE) # CUDAAI set(BUILD_AI_CUDA_DETECT FALSE) # CUDAAI
set(BUILD_AI_TRACK FALSE) # AI set(BUILD_AI_TRACK FALSE) # AI
@ -61,8 +61,8 @@ ENABLE_TESTING()
# opencv + TensorRT # opencv + TensorRT
IF(WIN32) IF(WIN32)
set(OpenCV_DIR "D:/Opencv_v/4.8.1/build/install/x64/vc17/lib") set(OpenCV_DIR "D:/opencv/build/x64/vc15/lib")
set(TRT_DIR "D:/TensorRT/TensorRT7") #set(TRT_DIR "D:/TensorRT/TensorRT7")
ELSE(WIN32) ELSE(WIN32)
set(OpenCV_DIR "/home/wcw/opencv-3.4.16/install/share/OpenCV") set(OpenCV_DIR "/home/wcw/opencv-3.4.16/install/share/OpenCV")
ENDIF(WIN32) ENDIF(WIN32)
@ -145,7 +145,7 @@ add_subdirectory(${ArithDIR})
IF(BUILD_ARITH_STUDIO) IF(BUILD_ARITH_STUDIO)
# ########################## Qt ############################## # ########################## Qt ##############################
IF(WIN32) IF(WIN32)
set(CMAKE_PREFIX_PATH "D:/Qt/5.15.2/msvc2019_64") set(CMAKE_PREFIX_PATH "D:/project/Qt/Qt/5.15.2/msvc2015_64")
ELSE(WIN32) ELSE(WIN32)
set(CMAKE_PREFIX_PATH "/home/wang/Qt/5.15.2/gcc_64") set(CMAKE_PREFIX_PATH "/home/wang/Qt/5.15.2/gcc_64")
ENDIF(WIN32) ENDIF(WIN32)
@ -192,7 +192,7 @@ IF(BUILD_ARITH_STUDIO)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/Bin) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/Bin)
# #
set_target_properties(QGuideArith PROPERTIES WIN32_EXECUTABLE TRUE) set_target_properties(QGuideArith PROPERTIES WIN32_EXECUTABLE FALSE)
# #
target_link_libraries(QGuideArith PRIVATE target_link_libraries(QGuideArith PRIVATE

@ -16,7 +16,7 @@
#include "Arith_ThreadPool.h" // 引入线程池头文件 #include "Arith_ThreadPool.h" // 引入线程池头文件
// 定义检测器最大检测个数 // 定义检测器最大检测个数
#define DT_TARGET_MAX_NUM 100 //#define DT_TARGET_MAX_NUM 100
typedef struct typedef struct

@ -68,7 +68,7 @@
#define GLB_UNLOCK_FOVOUT 5 //出视场解锁 #define GLB_UNLOCK_FOVOUT 5 //出视场解锁
#define DT_TARGET_MAX_NUM 100 // 定义检测器最大检测个数 //#define DT_TARGET_MAX_NUM 100 // 定义检测器最大检测个数
// 目标类型标记 // 目标类型标记
#define TargetClass_Plane 98 #define TargetClass_Plane 98

@ -140,32 +140,32 @@ void XLogger::setLevelByFileState()
char resPath[256] = { 0 }; char resPath[256] = { 0 };
std::string path = GetDynamicLibraryPath(); std::string path = GetDynamicLibraryPath();
fileState = true; fileState = true;
if (ACCESS(path.append("/LogT").c_str(), 0) == 0) if (ACCESS((path + "/LogT").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::trace); setLevel(spdlog::level::trace);
return; return;
} }
if (ACCESS(path.append("/LogD").c_str(), 0) == 0) if (ACCESS((path + "/LogD").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::debug); setLevel(spdlog::level::debug);
return; return;
} }
if (ACCESS(path.append("/LogI").c_str(), 0) == 0) if (ACCESS((path + "/LogI").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::info); setLevel(spdlog::level::info);
return; return;
} }
if (ACCESS(path.append("/LogW").c_str(), 0) == 0) if (ACCESS((path + "/LogW").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::warn); setLevel(spdlog::level::warn);
return; return;
} }
if (ACCESS(path.append("/LogE").c_str(), 0) == 0) if (ACCESS((path + "/LogE").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::err); setLevel(spdlog::level::err);
return; return;
} }
if (ACCESS(path.append("/LogC").c_str(), 0) == 0) if (ACCESS((path + "/LogC").c_str(), 0) == 0)
{ {
setLevel(spdlog::level::critical); setLevel(spdlog::level::critical);
return; return;

@ -76,8 +76,9 @@ void ARIDLL_EOArithInitWithMode(ArithHandle hArith, int nWidth, int nHeight, GD_
int ARIDLL_RunController(ArithHandle hArithSrc, GD_VIDEO_FRAME_S img, ARIDLL_INPUTPARA stInputPara, ARIDLL_OUTPUT* pstOutput) int ARIDLL_RunController(ArithHandle hArithSrc, GD_VIDEO_FRAME_S img, ARIDLL_INPUTPARA stInputPara, ARIDLL_OUTPUT* pstOutput)
{ {
//算法输入信息整理【调试】 //算法输入信息整理【调试】
LOG_DEBUG_INPUT("HI_Input:unFrmId:{}, nWidth:{},nHeight:{}, unFreq:{}, fServoAz:{}, fServoPt:{}, fAglReso:{}, nFocus:{}, fPixelSize:{}, unVideoType:{}", LOG_DEBUG_INPUT("HI_Input:unFrmId:{}, nWidth:{},nHeight:{}, unFreq:{}, fServoAz:{}, fServoPt:{},st.Att.R:{},P:{},Y:{}, fAglReso:{},f, nFocus:{}, fPixelSize:{}, unVideoType:{}",
stInputPara.unFrmId, img.u32Width, img.u32Height, stInputPara.unFreq, stInputPara.stServoInfo.fServoAz, stInputPara.stServoInfo.fServoPt, stInputPara.stCameraInfo.fAglReso, stInputPara.unFrmId, img.u32Width, img.u32Height, stInputPara.unFreq, stInputPara.stServoInfo.fServoAz, stInputPara.stServoInfo.fServoPt, stInputPara.stAirCraftInfo.stAtt.fRoll,
stInputPara.stAirCraftInfo.stAtt.fPitch,stInputPara.stAirCraftInfo.stAtt.fYaw, stInputPara.stCameraInfo.fAglReso,
stInputPara.stCameraInfo.nFocus, stInputPara.stCameraInfo.fPixelSize, stInputPara.stCameraInfo.unVideoType); stInputPara.stCameraInfo.nFocus, stInputPara.stCameraInfo.fPixelSize, stInputPara.stCameraInfo.unVideoType);
// 获取算法指针 // 获取算法指针
Arith_EOController* pArith = (Arith_EOController*)hArithSrc; Arith_EOController* pArith = (Arith_EOController*)hArithSrc;

@ -433,10 +433,12 @@ void RunNeoTracker(std::vector<VideoStream*> streamVec)
{ {
ARIDLL_INPUTPARA stInputPara = { 0 }; ARIDLL_INPUTPARA stInputPara = { 0 };
BYTE* m_pParamData = m_stream->GetParamDataBuffer(); BYTE* m_pParamData = m_stream->GetParamDataBuffer();
BYTE* m_pResultData = m_stream->GetResultDataBuffer(); //复用结果行解析红外参数
memset(&m_stInputPara, 0, sizeof(ARIDLL_INPUTPARA)); memset(&m_stInputPara, 0, sizeof(ARIDLL_INPUTPARA));
memset(&m_stOutput, 0, sizeof(ARIDLL_OUTPUT)); memset(&m_stOutput, 0, sizeof(ARIDLL_OUTPUT));
S3315GetImagePara(m_pParamData, &stInputPara); S3315GetImagePara(m_pParamData, m_pResultData, &stInputPara);
//memcpy(&m_stInputPara, &stInputPara, sizeof(ARIDLL_INPUTPARA)); memcpy(&m_stInputPara, &stInputPara, sizeof(ARIDLL_INPUTPARA));
m_stInputPara.unFrmId = frameID;
//memcpy(&m_stInputPara, m_pParamData, sizeof(ARIDLL_INPUTPARA));//读取可见光录像中算法输入 //memcpy(&m_stInputPara, m_pParamData, sizeof(ARIDLL_INPUTPARA));//读取可见光录像中算法输入
} }

@ -19,23 +19,28 @@ float calc_fov_by_mil(float mil, int mil_type)
return (mil * 360.0f / mil_type); return (mil * 360.0f / mil_type);
} }
void S3315GetImagePara(unsigned char* pParamDataBuffer, ARIDLL_INPUTPARA* ImagePara) void S3315GetImagePara(unsigned char* pParamDataBuffer, unsigned char* pResultDataBuffer, ARIDLL_INPUTPARA* ImagePara)
{ {
ST_3315_152_NO110 pParamNO110DataBuffer = { 0 }; ST_3315_152_NO110* pParamNO110DataBuffer = (ST_3315_152_NO110*)calloc(640, sizeof(int));
ST_3315_152_NO149 pParamNO149DataBuffer = { 0 }; ST_3315_152_NO149* pParamNO149DataBuffer = (ST_3315_152_NO149*)calloc(640, sizeof(int));
//unsigned char* IR_para = { 0 }; ST_3315_152_NO65* pParamNO65DataBuffer = (ST_3315_152_NO65*)calloc(640, sizeof(int));
//memcpy(IR_para, pParamDataBuffer, 1280); unsigned char* IR_para = { 0 };
//memcpy(&pParamNO110DataBuffer, pParamDataBuffer + 1280, 640); //memcpy(IR_para, pParamDataBuffer, 1280);
// memcpy(&pParamNO149DataBuffer, pParamDataBuffer + 1920, 640); memcpy(pParamNO110DataBuffer, pParamDataBuffer, 640);
//ImagePara->stServoInfo.fServoAz = calc_fov_by_mil(pParamNO149DataBuffer.B1B0,6000); memcpy(pParamNO149DataBuffer, pParamDataBuffer+ 640, 640);
//ImagePara->stServoInfo.fServoPt = calc_fov_by_mil(pParamNO149DataBuffer.B3B2,6000); memcpy(pParamNO65DataBuffer, pParamDataBuffer + 1280, 640);
//std::cout << std::hex << std::setw(8) << "pParamDataBuffer" << std::setfill('0') << reinterpret_cast<std::uintptr_t>(pParamDataBuffer) << ": " ; ImagePara->stServoInfo.fServoAz = calc_fov_by_mil(pParamNO65DataBuffer->B1B0 , 6000) * 6000.0f / 65536.0f;
//for (int i = 0; i < 21; ++i) ImagePara->stServoInfo.fServoPt = calc_fov_by_mil(pParamNO65DataBuffer->B3B2, 6000) * 6000.0f / 65536.0f;
//{ ImagePara->stCameraInfo.fPixelSize = 25;
// std::cout << std::hex << std::setw(4) << std::setfill('0') << static_cast<int>(pParamDataBuffer[i]) << " " ; ImagePara->stCameraInfo.nFocus = 302;
//} ImagePara->unFreq = 50;
//std::cout << std::endl; /*std::cout << std::hex << std::setw(8) << "pParamDataBuffer" << std::setfill('0') << reinterpret_cast<std::uintptr_t>(pParamDataBuffer) << ": ";
for (int i = 0; i < 640; ++i)
{
std::cout << std::hex << std::setw(4) << std::setfill('0') << static_cast<int>(pParamDataBuffer[1280+i]) << " " ;
}
std::cout << std::endl;*/
//int w = uint8_t(pParamDataBuffer[20]); //int w = uint8_t(pParamDataBuffer[20]);
//ImagePara->stServoInfo.fServoAz = pParamDataBuffer[258]; // ImagePara->stServoInfo.fServoAz = pParamDataBuffer[258];
//ImagePara->stServoInfo.fServoPt = pParamDataBuffer[259]; //ImagePara->stServoInfo.fServoPt = pParamDataBuffer[259];
} }

@ -17,6 +17,7 @@ typedef unsigned short USHORT;
* : 500HZ. * : 500HZ.
*/ */
typedef struct _3315_152_NO110 { typedef struct _3315_152_NO110 {
char Head[3]; /* 帧头 */
unsigned short B1B0; /* 方位角 */ unsigned short B1B0; /* 方位角 */
unsigned short B3B2; /* 纵摇角 */ unsigned short B3B2; /* 纵摇角 */
unsigned short B5B4; /* 横摇角 */ unsigned short B5B4; /* 横摇角 */
@ -34,8 +35,23 @@ typedef struct _3315_152_NO110 {
* : 500HZ. * : 500HZ.
*/ */
typedef struct _3315_152_NO149 { typedef struct _3315_152_NO149 {
char Head[3]; /* 帧头 */
unsigned short B1B0; /* 方位角 */ unsigned short B1B0; /* 方位角 */
unsigned short B3B2; /* 纵摇角 */ unsigned short B3B2; /* 纵摇角 */
}ST_3315_152_NO149; }ST_3315_152_NO149;
extern void S3315GetImagePara(unsigned char* pParamDataBuffer, ARIDLL_INPUTPARA* ImagePara);
/*
* (149)
* : PCIE ch2,can.
* : 500HZ.
*/
typedef struct _3315_152_NO65 {
char Head[3]; /* 帧头 */
unsigned short B1B0; /* 方位角(车体系) */
unsigned short B3B2; /* 纵摇角 (车体系)*/
unsigned short B5B4; /* 方位角(稳定系) */
unsigned short B7B6; /* 纵摇角 (稳定系)*/
}ST_3315_152_NO65;
extern void S3315GetImagePara(unsigned char* pParamDataBuffer, unsigned char* pResultDataBuffer, ARIDLL_INPUTPARA* ImagePara);

@ -98,10 +98,10 @@ bool RawFileStream::Open(const string & strStreamName)
} }
m_lFrameDataSize = m_lParamDataSize + m_lImageDataSize + m_lArithReslutDataSize; m_lFrameDataSize = m_lParamDataSize + m_lImageDataSize + m_lArithReslutDataSize;
//if (m_ptPixelType == PT_Y16DATA && PROJECT::S3315_IR == m_ProjectName) if (m_ptPixelType == PT_Y16DATA && PROJECT::S3315_IR == m_ProjectName)
//{ {
// m_lFrameDataSize = m_lParamDataSize + m_lImageDataSize + m_lArithReslutDataSize + 640 * 510; m_lFrameDataSize = m_lParamDataSize + m_lImageDataSize + m_lArithReslutDataSize + 640 * 513;
//} }
m_lFrameCount = long(m_binFile.tellg() / m_lFrameDataSize); m_lFrameCount = long(m_binFile.tellg() / m_lFrameDataSize);
@ -247,10 +247,21 @@ bool RawFileStream::ReadFrame(BYTE* pFrameData, BYTE* pImageData, BYTE* pParamDa
} }
if (m_ptPixelType == PT_Y16DATA && PROJECT::S3315_IR == m_ProjectName) if (m_ptPixelType == PT_Y16DATA && PROJECT::S3315_IR == m_ProjectName)
{ {
//S3315存储数据格式为640*512*2--Y16 + 1280 -- 参数行 + 640 * 510 -- Y8 //S3315存储数据格式为640*512*2--Y16 + 1280 -- 参数行 + 640 * 512 -- Y8 + 640 * 1
memcpy(pParamData, pFrameData + m_lArithReslutDataSize + m_lImageDataSize, m_lParamDataSize); /*
* 640 * 1024 0xA0000 Y16
* 640 * 2 0xA0500 Y16
* 640 * 512 0xF0500 Y8
* 640 * 1 0xF0780 Y8 ()
* 640 * 1 0xF0A00 No110
* 640 * 1 0xF0C80 No149
* 640 * 1 0xF0F00 No65
* 640 * 1 0xF1180 No56
* (640 * 4 )
*/
memcpy(pParamData, pFrameData + m_lArithReslutDataSize + m_lImageDataSize + 640 * 513, m_lParamDataSize);
memcpy(pImageData, pFrameData + m_lArithReslutDataSize, m_lImageDataSize); memcpy(pImageData, pFrameData + m_lArithReslutDataSize, m_lImageDataSize);
//memcpy(pResultData, pFrameData + m_lArithReslutDataSize + m_lImageDataSize, m_lParamDataSize); memcpy(pResultData, pFrameData + m_lImageDataSize , m_lArithReslutDataSize);
} }
unsigned short* pSrc = (unsigned short*)pImageData; unsigned short* pSrc = (unsigned short*)pImageData;

Loading…
Cancel
Save