修复了曝光时瞬间 闪过的情况

This commit is contained in:
2021-12-06 17:55:51 +08:00
parent 6334ea9e41
commit f1db1457e6
3 changed files with 29 additions and 10 deletions

View File

@ -56,11 +56,12 @@ int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string s
// printf("\nNo!!!!!!!!!!!!\n"); // printf("\nNo!!!!!!!!!!!!\n");
return 1; return 1;
} }
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0);
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); long test = seabreeze_get_buffer_capacity_minimum(m_iSpectralmeterHandle, &error);
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); seabreeze_set_buffer_capacity(m_iSpectralmeterHandle, &error, test);
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0);
printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error)); // printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error));
@ -120,7 +121,13 @@ int OceanOptics_lib::Initialize()
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0);
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0);
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0);
printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error));
long test = seabreeze_get_buffer_capacity_minimum(m_iSpectralmeterHandle, &error);
printf("seabreeze_get_buffer_capacity_minimum: Result is [%s]\n", get_error_string(error));
seabreeze_set_buffer_capacity(m_iSpectralmeterHandle, &error, test);
printf("seabreeze_set_buffer_capacity: Result is [%s]\n", get_error_string(error));
// printf("seabreeze_set_trigger_mode: Result is [%s]\n", get_error_string(error));
//<2F><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> //<2F><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
long minimum_time; long minimum_time;
@ -261,10 +268,16 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData)
if(spec_length > 0) if(spec_length > 0)
{ {
spectrum = (double *)calloc((size_t)spec_length, sizeof(double)); spectrum = (double *)calloc((size_t)spec_length, sizeof(double));
seabreeze_clear_buffer(m_iSpectralmeterHandle, &error);
auto startTime = std::chrono::high_resolution_clock::now();
printf("\nGetting a formatted spectrum.\n");
flag = seabreeze_get_formatted_spectrum(m_iSpectralmeterHandle, &error, spectrum, spec_length); flag = seabreeze_get_formatted_spectrum(m_iSpectralmeterHandle, &error, spectrum, spec_length);
printf("\nGetting a formatted spectrum------------------------------.\n");
auto endTime = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> fp_ms = endTime - startTime;
std::cout <<"<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>ʱΪ<EFBFBD><EFBFBD>"<< fp_ms.count()/1000 <<"s."<< std::endl;
// printf("Get formatted spectrum result is (%d) [%s]\n", flag, get_error_string(error)); // printf("Get formatted spectrum result is (%d) [%s]\n", flag, get_error_string(error));
// printf("\tPixel value 20 is %1.2f\n", spectrum[20]); // printf("\tPixel value 20 is %1.2f\n", spectrum[20]);
ret = isSuccess((char*)get_error_string(error)); ret = isSuccess((char*)get_error_string(error));
@ -303,8 +316,10 @@ int OceanOptics_lib::SetExposureTime(int iExposureTimeInMS)
int error; int error;
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); // trigger to normal
seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS*1000); seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS*1000);
printf("Set integration time result is [%s]\n", get_error_string(error)); printf("Set integration time result is [%s]\n", get_error_string(error));
bool ret = isSuccess((char*)get_error_string(error)); bool ret = isSuccess((char*)get_error_string(error));
if (!ret) if (!ret)
{ {
@ -384,6 +399,8 @@ int OceanOptics_lib::SetDeviceTemperature(float fTemperature)
//<2F><>ȡ<EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD> //<2F><>ȡ<EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
int OceanOptics_lib::GetDeviceTemperature(float &fTemperature) int OceanOptics_lib::GetDeviceTemperature(float &fTemperature)
{ {
dark_pixel_count = seabreeze_get_electric_dark_pixel_indices(index,
error_code, dark_pixels, MAX_DARK_PIXELS);
if(m_iSpectralmeterHandle==-100) if(m_iSpectralmeterHandle==-100)
{ {
printf("\nNo!!!!!!!!!!!!\n"); printf("\nNo!!!!!!!!!!!!\n");

View File

@ -5,6 +5,8 @@
#include <cstdlib> #include <cstdlib>
#include <ctime> #include <ctime>
#include <unistd.h> #include <unistd.h>
#include <chrono>
#include "api/SeaBreezeWrapper.h" #include "api/SeaBreezeWrapper.h"
#include "IrisFiberSpectrometerBase.h" #include "IrisFiberSpectrometerBase.h"

View File

@ -129,8 +129,8 @@ int main()
//--------------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------------
int ret; int ret;
OceanOptics_lib fiberImager; OceanOptics_lib fiberImager;
fiberImager.Initialize(true,10,"QEP02975");//QEP02975 FLMS15814 // fiberImager.Initialize(true,10,"FLMS15814");//QEP02975 FLMS15814
// fiberImager.Initialize(); fiberImager.Initialize();
ret = fiberImager.SetExposureTime(10000); ret = fiberImager.SetExposureTime(10000);
@ -152,7 +152,7 @@ int main()
//
// //
//int main() //int main()
//{ //{