#include #include "S3315.h" #include #include #include #include < iomanip > /** * @brief * 根据密位返回角度 * * @param mil 密位 * @param mil_type 6000 * * @return 返回当前密位对应的角度 */ float calc_fov_by_mil(float mil, int mil_type) { return (mil * 360.0f / mil_type); } void S3315GetImagePara(unsigned char* pParamDataBuffer, unsigned char* pResultDataBuffer, ARIDLL_INPUTPARA* ImagePara) { ST_3315_152_NO110* pParamNO110DataBuffer = (ST_3315_152_NO110*)calloc(640, sizeof(int)); ST_3315_152_NO149* pParamNO149DataBuffer = (ST_3315_152_NO149*)calloc(640, sizeof(int)); ST_3315_152_NO65* pParamNO65DataBuffer = (ST_3315_152_NO65*)calloc(640, sizeof(int)); unsigned char* IR_para = { 0 }; //memcpy(IR_para, pParamDataBuffer, 1280); memcpy(pParamNO110DataBuffer, pParamDataBuffer, 640); memcpy(pParamNO149DataBuffer, pParamDataBuffer+ 640, 640); memcpy(pParamNO65DataBuffer, pParamDataBuffer + 1280, 640); ImagePara->stServoInfo.fServoAz = calc_fov_by_mil(pParamNO65DataBuffer->B1B0 , 6000) * 6000.0f / 65536.0f; ImagePara->stServoInfo.fServoPt = calc_fov_by_mil(pParamNO65DataBuffer->B3B2, 6000) * 6000.0f / 65536.0f; ImagePara->stCameraInfo.fPixelSize = 25; ImagePara->stCameraInfo.nFocus = 302; ImagePara->unFreq = 50; /*std::cout << std::hex << std::setw(8) << "pParamDataBuffer" << std::setfill('0') << reinterpret_cast(pParamDataBuffer) << ": "; for (int i = 0; i < 640; ++i) { std::cout << std::hex << std::setw(4) << std::setfill('0') << static_cast(pParamDataBuffer[1280+i]) << " " ; } std::cout << std::endl;*/ //int w = uint8_t(pParamDataBuffer[20]); // ImagePara->stServoInfo.fServoAz = pParamDataBuffer[258]; //ImagePara->stServoInfo.fServoPt = pParamDataBuffer[259]; }