第一次提交
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/ocean_lib/build
|
||||||
|
/ocean_lib/.idea
|
42
ocean_lib/IrisFiberSpectrometerBase.h
Normal file
42
ocean_lib/IrisFiberSpectrometerBase.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include <string>
|
||||||
|
#include "ZZ_Types.h"
|
||||||
|
#pragma once
|
||||||
|
using namespace ZZ_MISCDEF;
|
||||||
|
using namespace ZZ_MISCDEF::IRIS::FS;
|
||||||
|
|
||||||
|
class CIrisFSBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//CIrisFSBase();
|
||||||
|
//virtual ~CIrisFSBase()= 0;
|
||||||
|
public:
|
||||||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>豸
|
||||||
|
//<2F>˴<EFBFBD>stringΪָ<CEAA><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ocean<61><6E><EFBFBD><EFBFBD><EFBFBD>ǵIJ<C7B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>c/c++<2B><><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
||||||
|
//0Ϊ<30><EFBFBD><DEB4><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>뷵<EFBFBD>ز<EFBFBD>ֵͬ
|
||||||
|
virtual int Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName) = 0;
|
||||||
|
|
||||||
|
// //<2F>ر<EFBFBD><D8B1>豸
|
||||||
|
// virtual void Close() = 0;
|
||||||
|
//
|
||||||
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲɼ<DDB2>
|
||||||
|
// virtual int SingleShot(DataFrame &dfData) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
// virtual int SetExposureTime(int iExposureTimeInMS) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><>ȡ<EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// virtual int GetExposureTime(int &iExposureTimeInMS) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>¶<EFBFBD>
|
||||||
|
// virtual int SetDeviceTemperature(float fTemperature) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><>ȡ<EFBFBD>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// virtual int GetDeviceTemperature(float &fTemperature) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8>Ϣ
|
||||||
|
// virtual int GetDeviceInfo(DeviceInfo &Info) = 0;
|
||||||
|
//
|
||||||
|
// //<2F><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// virtual int GetDeviceAttribute(DeviceAttribute &Attr) = 0;
|
||||||
|
|
||||||
|
};
|
44
ocean_lib/ZZ_Types.h
Normal file
44
ocean_lib/ZZ_Types.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ļ<EFBFBD>
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
namespace ZZ_MISCDEF
|
||||||
|
{
|
||||||
|
typedef unsigned char ZZ_U8;
|
||||||
|
typedef unsigned short int ZZ_U16;
|
||||||
|
typedef unsigned long int ZZ_U32;
|
||||||
|
|
||||||
|
|
||||||
|
namespace IRIS
|
||||||
|
{
|
||||||
|
//Fiber Spectrometer
|
||||||
|
namespace FS
|
||||||
|
{
|
||||||
|
typedef struct tagDataFrame
|
||||||
|
{
|
||||||
|
ZZ_U16 usExposureTimeInMS;
|
||||||
|
ZZ_U16 usData[4096];
|
||||||
|
float fTemperature;
|
||||||
|
double dTimes = 0;
|
||||||
|
}DataFrame;
|
||||||
|
|
||||||
|
typedef struct tagDeviceInfo
|
||||||
|
{
|
||||||
|
std::string strPN;
|
||||||
|
std::string strSN;
|
||||||
|
}DeviceInfo;
|
||||||
|
|
||||||
|
typedef struct tagDeviceAttribute
|
||||||
|
{
|
||||||
|
int iPixels;
|
||||||
|
int iMaxIntegrationTimeInMS;
|
||||||
|
int iMinIntegrationTimeInMS;
|
||||||
|
float fWaveLengthInNM[4096];
|
||||||
|
}DeviceAttribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
101
ocean_lib/library.cpp
Normal file
101
ocean_lib/library.cpp
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#include "library.h"
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
//void hello() {
|
||||||
|
// std::cout << "Hello, World!" << std::endl;
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
int OceanOptics_lib::Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName)
|
||||||
|
{
|
||||||
|
int number_of_devices;
|
||||||
|
long *device_ids;
|
||||||
|
int i;
|
||||||
|
int flag;
|
||||||
|
int error = 0;
|
||||||
|
char nameBuffer[80];
|
||||||
|
|
||||||
|
|
||||||
|
/* Give the driver a chance to initialize itself */
|
||||||
|
sbapi_initialize();
|
||||||
|
|
||||||
|
printf("Probing for devices...\n"); fflush(stdout);
|
||||||
|
sbapi_probe_devices();
|
||||||
|
|
||||||
|
printf("Getting device count...\n"); fflush(stdout);
|
||||||
|
number_of_devices = sbapi_get_number_of_device_ids();
|
||||||
|
std::cout<<"Device count is "<< number_of_devices <<std::endl;
|
||||||
|
if(0 == number_of_devices) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Getting device IDs...\n");
|
||||||
|
device_ids = (long *)calloc(number_of_devices, sizeof(long));
|
||||||
|
number_of_devices = sbapi_get_device_ids(device_ids, number_of_devices);
|
||||||
|
printf("Got %d device ID%s.\n", number_of_devices, number_of_devices == 1 ? "" : "s"); fflush(stdout);
|
||||||
|
|
||||||
|
|
||||||
|
for(i = 0; i < number_of_devices; i++)
|
||||||
|
{
|
||||||
|
printf("%d: Device 0x%02lX:\n", i, device_ids[i]);
|
||||||
|
printf("\tGetting device type...\n");
|
||||||
|
flag = sbapi_get_device_type(device_ids[i], &error, nameBuffer, 79);
|
||||||
|
printf("\t\tResult is (%d) [%s]\n", flag, sbapi_get_error_string(error));
|
||||||
|
if(flag > 0) {
|
||||||
|
printf("\tDevice type: [%s]\n", nameBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
// /* Open the device */
|
||||||
|
// printf("\tAttempting to open:\n");
|
||||||
|
// flag = sbapi_open_device(device_ids[i], &error);
|
||||||
|
// printf("\t\tResult is (%d) [%s]\n", flag, sbapi_get_error_string(error));
|
||||||
|
//
|
||||||
|
// // jump to the next iteration if there was a problem
|
||||||
|
// if(flag != 0) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // log deviations
|
||||||
|
// unsupportedFeatureCount=0;
|
||||||
|
// testFailureCount=0;
|
||||||
|
//
|
||||||
|
// /* Test the device */
|
||||||
|
// for(test_index = 0; test_index < __test_function_count; test_index++) {
|
||||||
|
// /* Invoke each of the test functions against this device */
|
||||||
|
// __test_functions[test_index](device_ids[i], &unsupportedFeatureCount, &testFailureCount);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /* Close the device */
|
||||||
|
// printf("\tAttempting to close:\n");
|
||||||
|
// sbapi_close_device(device_ids[i], &error);
|
||||||
|
// printf("\t\tResult is (%d) [%s]\n", flag, sbapi_get_error_string(error));
|
||||||
|
// printf("%d: Device 0x%02lX: \n\tNumber of unsupported features = %d\n\tNumber of test failures = %d\n", i, device_ids[i], unsupportedFeatureCount, testFailureCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
flag = sbapi_get_device_type(device_ids[i], &error, nameBuffer, 79);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* OceanOptics_lib::get_error_string(int error)
|
||||||
|
{
|
||||||
|
static char buffer[32];
|
||||||
|
seabreeze_get_error_string(error, buffer, sizeof(buffer));
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OceanOptics_lib::read_serial_number_test(int index)
|
||||||
|
{
|
||||||
|
char serial_number[32];
|
||||||
|
int flag;
|
||||||
|
int error;
|
||||||
|
|
||||||
|
printf("\n\nGetting serial number.\n");
|
||||||
|
flag = seabreeze_get_serial_number(index, &error, serial_number, 32);
|
||||||
|
printf("...Result is (%d) [%s]\n", flag, get_error_string(error));
|
||||||
|
serial_number[31] = '\0';
|
||||||
|
if(flag > 0) {
|
||||||
|
printf("\tSerial number: [%s]\n", serial_number);
|
||||||
|
}
|
||||||
|
}
|
58
ocean_lib/library.h
Normal file
58
ocean_lib/library.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#ifndef OCEAN_LIB_LIBRARY_H
|
||||||
|
#define OCEAN_LIB_LIBRARY_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "api/SeaBreezeWrapper.h"
|
||||||
|
|
||||||
|
#include "IrisFiberSpectrometerBase.h"
|
||||||
|
#include "api/seabreezeapi/SeaBreezeAPI.h"
|
||||||
|
|
||||||
|
|
||||||
|
//void hello();
|
||||||
|
|
||||||
|
class OceanOptics_lib:public CIrisFSBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//初始化设备
|
||||||
|
//此处string为指明连接哪个ocean光谱仪的参数,可自行更换为其他c/c++标准类型
|
||||||
|
//0为无错误,不同错误请返回不同值
|
||||||
|
int Initialize(bool bIsUSBMode,ZZ_U8 ucPortNumber,std::string strDeviceName);
|
||||||
|
//
|
||||||
|
// //关闭设备
|
||||||
|
// void Close();
|
||||||
|
//
|
||||||
|
// //单次数据采集
|
||||||
|
// int SingleShot(DataFrame &dfData);
|
||||||
|
//
|
||||||
|
// //设置曝光时间
|
||||||
|
// int SetExposureTime(int iExposureTimeInMS);
|
||||||
|
//
|
||||||
|
// //获取曝光时间设置
|
||||||
|
// int GetExposureTime(int &iExposureTimeInMS);
|
||||||
|
//
|
||||||
|
// //设置目标温度
|
||||||
|
// int SetDeviceTemperature(float fTemperature);
|
||||||
|
//
|
||||||
|
// //获取温度设置
|
||||||
|
// int GetDeviceTemperature(float &fTemperature);
|
||||||
|
//
|
||||||
|
// //获取设备信息
|
||||||
|
// int GetDeviceInfo(DeviceInfo &Info);
|
||||||
|
//
|
||||||
|
// //获取设备特征数据
|
||||||
|
// int GetDeviceAttribute(DeviceAttribute &Attr);
|
||||||
|
|
||||||
|
//tc
|
||||||
|
static const char* get_error_string(int error);
|
||||||
|
void read_serial_number_test(int index);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //OCEAN_LIB_LIBRARY_H
|
Reference in New Issue
Block a user