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

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");
return 1;
}
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);
seabreeze_set_buffer_capacity(m_iSpectralmeterHandle, &error, test);
// 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);
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>
long minimum_time;
@ -261,10 +268,16 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData)
if(spec_length > 0)
{
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);
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("\tPixel value 20 is %1.2f\n", spectrum[20]);
ret = isSuccess((char*)get_error_string(error));
@ -303,8 +316,10 @@ int OceanOptics_lib::SetExposureTime(int iExposureTimeInMS)
int error;
seabreeze_set_trigger_mode(m_iSpectralmeterHandle, &error, 0); // trigger to normal
seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS*1000);
printf("Set integration time result is [%s]\n", get_error_string(error));
bool ret = isSuccess((char*)get_error_string(error));
if (!ret)
{
@ -384,6 +399,8 @@ int OceanOptics_lib::SetDeviceTemperature(float fTemperature)
//<2F><>ȡ<EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
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)
{
printf("\nNo!!!!!!!!!!!!\n");

View File

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

View File

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