修改了函数执行失败后返回值

This commit is contained in:
2021-12-03 17:33:42 +08:00
parent 941339130a
commit fae1a5e462
5 changed files with 335 additions and 64 deletions

View File

@ -11,9 +11,25 @@ include_directories(.)#包含头文件
file(GLOB_RECURSE SRC_CPP ./*.cpp) file(GLOB_RECURSE SRC_CPP ./*.cpp)
add_library(oceanlib SHARED ${SRC_CPP}) #add_library(${CMAKE_PROJECT_NAME} SHARED ${SRC_CPP})
#
#TARGET_LINK_LIBRARIES(oceanlib
# seabreeze
# usb
# )
TARGET_LINK_LIBRARIES(oceanlib
### Outputs提示
#add_executable(${CMAKE_PROJECT_NAME}
# ${SRC_CPP}
# )
add_executable(${CMAKE_PROJECT_NAME}
library.cpp
main.cpp
)
target_link_libraries(${CMAKE_PROJECT_NAME}
seabreeze seabreeze
usb usb
) )

View File

@ -22,12 +22,12 @@ namespace ZZ_MISCDEF
ZZ_U16 usExposureTimeInMS; ZZ_U16 usExposureTimeInMS;
ZZ_U16 usData[4096]; ZZ_U16 usData[4096];
float fTemperature; float fTemperature;
double dTimes = 0;// double dTimes = 0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}DataFrame; }DataFrame;
typedef struct tagDeviceInfo typedef struct tagDeviceInfo
{ {
std::string strPN;// std::string strPN;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::string strSN; std::string strSN;
}DeviceInfo; }DeviceInfo;

View File

@ -3,10 +3,14 @@
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
//void hello() { OceanOptics_lib::OceanOptics_lib()
// std::cout << "Hello, World!" << std::endl; {
//} m_iSpectralmeterHandle=-100;
}
OceanOptics_lib::~OceanOptics_lib()
{
}
//ʹ<><CAB9>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>#include "api/SeaBreezeWrapper.h" //ʹ<><CAB9>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>#include "api/SeaBreezeWrapper.h"
int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName) int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName)
@ -21,7 +25,7 @@ int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string s
{ {
printf("\nOpening spectrometer %d.\n", i); printf("\nOpening spectrometer %d.\n", i);
flag = seabreeze_open_spectrometer(i, &error); flag = seabreeze_open_spectrometer(i, &error);
printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); printf("Open spectrometer result is (%d) [%s]\n", flag, get_error_string(error));
if(0 == flag) if(0 == flag)
{ {
device_count++; device_count++;
@ -34,18 +38,78 @@ int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string s
printf("\nfind!!!!!!!!!!!!\n"); printf("\nfind!!!!!!!!!!!!\n");
break; break;
} }
else
{
printf("\nClosing spectrometer %d.\n", i);
flag = seabreeze_close_spectrometer(i, &error);
printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error));
}
} }
// for(i = 0; i < device_count; i++) if(m_iSpectralmeterHandle==-100)
// { {
// printf("\nGetting device %d name.\n", i); printf("\nNo!!!!!!!!!!!!\n");
// seabreeze_get_model(i, &error, type, sizeof(type)); return 1;
// printf("...Result is (%s) [%s]\n", type, get_error_string(error)); }
//
// GetSerialNumber(i);
// }
return 1;
//<2F><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
long minimum_time;
minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error);
printf("...Minimum is %ld microseconds, result is [%s]\n", minimum_time, get_error_string(error));
if(minimum_time < 0) {
/* If there was an error, reset to a time that is supported widely. */
minimum_time = 15000;
return 1;
}
SetExposureTime(minimum_time/1000);
return 0;
}
//ʹ<><CAB9>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>#include "api/SeaBreezeWrapper.h"
int OceanOptics_lib::Initialize()
{
int flag;
int error;
char type[16];
int device_count = 0;
int i;
for(i = 0; i < SEABREEZE_MAX_DEVICES; i++)
{
printf("\nOpening spectrometer %d.\n", i);
flag = seabreeze_open_spectrometer(i, &error);
printf("Open spectrometer result is (%d) [%s]\n", flag, get_error_string(error));
if(0 == flag)
{
m_iSpectralmeterHandle = i;
break;
}
}
if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
//<2F><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
long minimum_time;
minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error);
printf("...Minimum is %ld microseconds, result is [%s]\n", minimum_time, get_error_string(error));
if(minimum_time < 0) {
/* If there was an error, reset to a time that is supported widely. */
minimum_time = 15000;
}
SetExposureTime(minimum_time/1000);
return 0;
} }
@ -134,12 +198,18 @@ void OceanOptics_lib::Close()
int error; int error;
flag = seabreeze_close_spectrometer(m_iSpectralmeterHandle, &error); flag = seabreeze_close_spectrometer(m_iSpectralmeterHandle, &error);
printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); printf("Close spectrometer result is (%d) [%s]\n", flag, get_error_string(error));
} }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
int OceanOptics_lib::SingleShot(DataFrame &dfData) int OceanOptics_lib::SingleShot(DataFrame &dfData)
{ {
if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
int error; int error;
int flag; int flag;
int spec_length; int spec_length;
@ -147,14 +217,15 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData)
printf("\n\nGetting formatted spectrum length.\n"); printf("\n\nGetting formatted spectrum length.\n");
spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error); spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error);
printf("...Result is (%d) [%s]\n", spec_length, get_error_string(error)); printf("Get formatted spectrum_length result is (%d) [%s]\n", spec_length, get_error_string(error));
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));
printf("\nGetting a formatted spectrum.\n"); 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("...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]);
for(int tmp = 0; tmp<spec_length; tmp++) for(int tmp = 0; tmp<spec_length; tmp++)
@ -173,82 +244,113 @@ int OceanOptics_lib::SingleShot(DataFrame &dfData)
free(spectrum); free(spectrum);
} }
return 1; return 0;
} }
//<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1> //<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1>
int OceanOptics_lib::SetExposureTime(int iExposureTimeInMS) int OceanOptics_lib::SetExposureTime(int iExposureTimeInMS)
{ {
int flag; if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
int error; int error;
seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS); seabreeze_set_integration_time_microsec(m_iSpectralmeterHandle, &error, iExposureTimeInMS*1000);
printf("...Result is [%s]\n", get_error_string(error)); printf("Set integration time result is [%s]\n", get_error_string(error));
return 1; m_iExposureTime = iExposureTimeInMS;
return 0;
} }
//<2F><>ȡ<EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><>ȡ<EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int OceanOptics_lib::GetExposureTime(int &iExposureTimeInMS) int OceanOptics_lib::GetExposureTime(int &iExposureTimeInMS)
{ {
long minimum_time; if(m_iSpectralmeterHandle==-100)
int error; {
printf("\nNo!!!!!!!!!!!!\n");
minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error); return 1;
printf("...Minimum is %ld microseconds, result is [%s]\n", minimum_time, get_error_string(error));
if(minimum_time < 0) {
/* If there was an error, reset to a time that is supported widely. */
minimum_time = 15000;
} }
iExposureTimeInMS = minimum_time; iExposureTimeInMS = m_iExposureTime;
return 1; return 0;
} }
//<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
int OceanOptics_lib::SetDeviceTemperature(float fTemperature) int OceanOptics_lib::SetDeviceTemperature(float fTemperature)
{ {
if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
int error; int error;
printf("\nSetting TEC temperature to -5C\n"); printf("\nSetting TEC temperature to -5C\n");
seabreeze_set_tec_temperature(m_iSpectralmeterHandle, &error, fTemperature); seabreeze_set_tec_temperature(m_iSpectralmeterHandle, &error, fTemperature);
printf("...Result is [%s]\n", get_error_string(error)); printf("Set tec temperature result is [%s]\n", get_error_string(error));
printf("\nSetting TEC enable to true\n"); printf("\nSetting TEC enable to true\n");
seabreeze_set_tec_enable(m_iSpectralmeterHandle, &error, 1); seabreeze_set_tec_enable(m_iSpectralmeterHandle, &error, 1);
printf("...Result is [%s]\n", get_error_string(error)); printf("Set tec enable result is [%s]\n", get_error_string(error));
return 1; return 0;
} }
//<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)
{ {
if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
double temp; double temp;
int error; int error;
// usleep(1000000); // usleep(1000000);
printf("\nGetting TEC temperature\n"); printf("\nGetting TEC temperature\n");
temp = seabreeze_read_tec_temperature(m_iSpectralmeterHandle, &error); temp = seabreeze_read_tec_temperature(m_iSpectralmeterHandle, &error);
printf("...Result is %1.2f C [%s]\n", temp, get_error_string(error)); printf("Read tec temperature result is %1.2f C [%s]\n", temp, get_error_string(error));
fTemperature = temp; fTemperature = temp;
return 1; return 0;
} }
//<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ
int OceanOptics_lib::GetDeviceInfo(DeviceInfo &Info) int OceanOptics_lib::GetDeviceInfo(DeviceInfo &Info)
{ {
string sn = GetSerialNumber(m_iSpectralmeterHandle); if(m_iSpectralmeterHandle==-100)
Info.strSN = sn; {
return 1; printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
string deviceType = GetDeviceType(m_iSpectralmeterHandle);
string SN = GetSerialNumber(m_iSpectralmeterHandle);
Info.strPN = deviceType;
Info.strSN = SN;
return 0;
} }
//<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr) int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr)
{ {
if(m_iSpectralmeterHandle==-100)
{
printf("\nNo!!!!!!!!!!!!\n");
return 1;
}
int error; int error;
int flag; int flag;
int spec_length; int spec_length;
@ -256,7 +358,7 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr)
printf("\n\nGetting formatted spectrum length.\n"); printf("\n\nGetting formatted spectrum length.\n");
spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error); spec_length = seabreeze_get_formatted_spectrum_length(m_iSpectralmeterHandle, &error);
printf("...Result is (%d) [%s]\n", spec_length, get_error_string(error)); printf("Get formatted spectrum length result is (%d) [%s]\n", spec_length, get_error_string(error));
Attr.iPixels = spec_length; Attr.iPixels = spec_length;
Attr.iMinIntegrationTimeInMS = 0; Attr.iMinIntegrationTimeInMS = 0;
@ -267,7 +369,7 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr)
printf("\nGetting wavelengths.\n"); printf("\nGetting wavelengths.\n");
flag = seabreeze_get_wavelengths(m_iSpectralmeterHandle, &error, wls, spec_length); flag = seabreeze_get_wavelengths(m_iSpectralmeterHandle, &error, wls, spec_length);
printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); printf("Get wavelengths result is (%d) [%s]\n", flag, get_error_string(error));
printf("\tPixel 20 is wavelength %1.2f nm\n", wls[20]); printf("\tPixel 20 is wavelength %1.2f nm\n", wls[20]);
for(int tmp = 0; tmp<spec_length; tmp++) for(int tmp = 0; tmp<spec_length; tmp++)
@ -278,9 +380,22 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr)
free(wls); free(wls);
} }
return 1; return 0;
} }
bool OceanOptics_lib::isSuccess(char* resultStr)
{
if(strstr(resultStr, "Success") == NULL)//<2F><>a<EFBFBD>в<EFBFBD><D0B2><EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
{
cout << "not found\n";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;
}
else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>
{
cout <<"found\n"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return false;
}
}
const char* OceanOptics_lib::get_error_string(int error) const char* OceanOptics_lib::get_error_string(int error)
{ {
static char buffer[32]; static char buffer[32];
@ -288,6 +403,20 @@ const char* OceanOptics_lib::get_error_string(int error)
return buffer; return buffer;
} }
string OceanOptics_lib::GetDeviceType(int index)
{
char type[16];
int error;
seabreeze_get_model(index, &error, type, sizeof(type));
printf("...Result is (%s) [%s]\n", type, get_error_string(error));
type[15] = '\0';
string deviceType = type;
return deviceType;
}
string OceanOptics_lib::GetSerialNumber(int index) string OceanOptics_lib::GetSerialNumber(int index)
{ {
static char serial_number[32];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>static<69><63><EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><E1B6A8><EFBFBD><EFBFBD>stack<63><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ󣬾<D8BA><F3A3ACBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> static char serial_number[32];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>static<69><63><EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><E1B6A8><EFBFBD><EFBFBD>stack<63><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ󣬾<D8BA><F3A3ACBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@ -296,7 +425,7 @@ string OceanOptics_lib::GetSerialNumber(int index)
printf("\n\nGetting serial number.\n"); printf("\n\nGetting serial number.\n");
flag = seabreeze_get_serial_number(index, &error, serial_number, 32); flag = seabreeze_get_serial_number(index, &error, serial_number, 32);
printf("...Result is (%d) [%s]\n", flag, get_error_string(error)); printf("Get serial number result is (%d) [%s]\n", flag, get_error_string(error));
serial_number[31] = '\0'; serial_number[31] = '\0';
if(flag > 0) { if(flag > 0) {
printf("\tSerial number: [%s]\n", serial_number); printf("\tSerial number: [%s]\n", serial_number);

View File

@ -11,53 +11,56 @@
//#include "api/seabreezeapi/SeaBreezeAPI.h" //#include "api/seabreezeapi/SeaBreezeAPI.h"
//void hello();
using namespace std; using namespace std;
class OceanOptics_lib:public CIrisFSBase class OceanOptics_lib:public CIrisFSBase
{ {
private: public:
int m_iSpectralmeterHandle; OceanOptics_lib();
DeviceInfo m_deviceInfo; virtual ~OceanOptics_lib();
public: public:
//初始化设备 //初始化设备
//此处string为指明连接哪个ocean光谱仪的参数可自行更换为其他c/c++标准类型 //此处string为指明连接哪个ocean光谱仪的参数可自行更换为其他c/c++标准类型
//0为无错误不同错误请返回不同值 //0为无错误不同错误请返回不同值
int Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName); int Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName);//ok
int Initialize();//ok
//关闭设备 //关闭设备
void Close(); void Close();//ok
//单次数据采集 //单次数据采集
int SingleShot(DataFrame &dfData); int SingleShot(DataFrame &dfData);
//设置曝光时间 //设置曝光时间
int SetExposureTime(int iExposureTimeInMS); int SetExposureTime(int iExposureTimeInMS);//ok
//获取曝光时间设置 //获取曝光时间设置
int GetExposureTime(int &iExposureTimeInMS); int GetExposureTime(int &iExposureTimeInMS);//ok
//设置目标温度 //设置目标温度
int SetDeviceTemperature(float fTemperature); int SetDeviceTemperature(float fTemperature);//ok
//获取温度设置 //获取温度设置
int GetDeviceTemperature(float &fTemperature); int GetDeviceTemperature(float &fTemperature);//ok
//获取设备信息 //获取设备信息
int GetDeviceInfo(DeviceInfo &Info);//ok int GetDeviceInfo(DeviceInfo &Info);//ok
//获取设备特征数据 //获取设备特征数据
int GetDeviceAttribute(DeviceAttribute &Attr); int GetDeviceAttribute(DeviceAttribute &Attr);//ok
//tc //tc
private:
int m_iSpectralmeterHandle;
DeviceInfo m_deviceInfo;
int m_iExposureTime;
bool isSuccess(char* resultStr);
static const char* get_error_string(int error); static const char* get_error_string(int error);
string GetDeviceType(int index);
string GetSerialNumber(int index); string GetSerialNumber(int index);
}; };
#endif //OCEAN_LIB_LIBRARY_H #endif //OCEAN_LIB_LIBRARY_H

123
ocean_lib/main.cpp Normal file
View File

@ -0,0 +1,123 @@
//
// Created by tangchao on 2021/11/29.
//
#include "api/seabreezeapi/SeaBreezeAPI.h"
#include <iostream>
#include "library.h"
int main()
{
std::cout << "Hello, World!" << std::endl;
OceanOptics_lib fiberImager;
fiberImager.Initialize(true,10,"FLMS15814");//QEP02975 FLMS15814
fiberImager.SetExposureTime(5000);
int exposureTime;
fiberImager.GetExposureTime(exposureTime);
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << exposureTime << std::endl;
fiberImager.SetDeviceTemperature(-8);
float fTemperature;
fiberImager.GetDeviceTemperature(fTemperature);
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << fTemperature << std::endl;
DeviceInfo Info;
fiberImager.GetDeviceInfo(Info);
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << Info.strPN << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SNΪ<EFBFBD><EFBFBD>" << Info.strSN << std::endl;
DeviceAttribute Attr;
fiberImager.GetDeviceAttribute(Attr);
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << Attr.iPixels << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << std::endl;
for(int i=0;i<Attr.iPixels;i++)
{
std::cout << Attr.fWaveLengthInNM[i] << ",";
}
std::cout << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << Attr.fWaveLengthInNM << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << Attr.iMaxIntegrationTimeInMS << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << Attr.iMinIntegrationTimeInMS << std::endl;
DataFrame dfData;
fiberImager.SingleShot(dfData);
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << std::endl;
for(int i=0;i<Attr.iPixels;i++)
{
std::cout << dfData.usData[i] << ",";
}
std::cout << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << dfData.fTemperature << std::endl;
std::cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>" << dfData.usExposureTimeInMS << std::endl;
fiberImager.Close();
return 0;
}
//int main()
//{
// int number_of_devices;
// long *device_ids;
// int i;
// int test_index;
// int flag;
// int unsupportedFeatureCount;
// int testFailureCount;
// int error = 0;
// char nameBuffer[80];
// int number_of_spectrometers;
// long *spectrometer_ids = 0;
//
//
// sbapi_initialize();
// sbapi_probe_devices();
//
// printf("Getting device count...\n"); fflush(stdout);
// number_of_devices = sbapi_get_number_of_device_ids();
//
// printf("Device count is %d\n", number_of_devices);
// if(0 == number_of_devices) {
// return 0;
// }
//
// printf("Getting device IDs...\n");
// device_ids = (long *)calloc(number_of_devices, sizeof(long));
//
// std::cout<<"ssss"<<device_ids[0];
//
// number_of_devices = sbapi_get_device_ids(device_ids, number_of_devices);
//
// flag = sbapi_open_device(device_ids[0], &error);
//
//
// number_of_spectrometers = sbapi_get_number_of_spectrometer_features(device_ids[0], &error);
//
// spectrometer_ids = (long *)calloc(10, sizeof(long));
//
// number_of_spectrometers = sbapi_get_spectrometer_features(2, &error,
// spectrometer_ids, 10);
//
// for(int i=0;i<10;i++)
// {
// std::cout<<std::endl;
// std::cout<<"ssss:"<<spectrometer_ids[i]<<std::endl;
// }
//
// printf("\t\t\tResult is %d [%s]\n", number_of_spectrometers,
// sbapi_get_error_string(error));
//
//
// std::cout<<"ssss:"<<error<<std::endl;
//}