diff --git a/ocean_lib/library.cpp b/ocean_lib/library.cpp index bc88ec8..c8baef0 100644 --- a/ocean_lib/library.cpp +++ b/ocean_lib/library.cpp @@ -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)); //设置初始积分时间 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 fp_ms = endTime - startTime; + std::cout <<"采集耗时为:"<< 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) //获取温度设置 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"); diff --git a/ocean_lib/library.h b/ocean_lib/library.h index 5f09b0c..1d21b93 100644 --- a/ocean_lib/library.h +++ b/ocean_lib/library.h @@ -5,6 +5,8 @@ #include #include #include +#include + #include "api/SeaBreezeWrapper.h" #include "IrisFiberSpectrometerBase.h" diff --git a/ocean_lib/main.cpp b/ocean_lib/main.cpp index e74a1ce..ce8ec42 100644 --- a/ocean_lib/main.cpp +++ b/ocean_lib/main.cpp @@ -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() //{