1、添加函数:test_nonlinearity_coeffs_feature;

2、优化项目结构;
This commit is contained in:
tangchao0503
2023-03-19 20:37:07 +08:00
parent b33e5a08ee
commit 86534c10f3
4 changed files with 140 additions and 5 deletions

View File

@ -1,35 +0,0 @@
cmake_minimum_required(VERSION 3.5)
project(ocean_lib)
set(CMAKE_CXX_STANDARD 14)
include_directories(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/include/)
LINK_DIRECTORIES(/home/iris-xport/projects/ocean/seabreeze-3.0.11/SeaBreeze/lib/)
include_directories(.)#包含头文件
#file(GLOB_RECURSE SRC_H ./*.h)
file(GLOB_RECURSE SRC_CPP ./*.cpp)
#add_library(${CMAKE_PROJECT_NAME} SHARED ${SRC_CPP})
#
#TARGET_LINK_LIBRARIES(oceanlib
# seabreeze
# usb
# )
### Outputs提示
#add_executable(${CMAKE_PROJECT_NAME}
# ${SRC_CPP}
# )
add_executable(${CMAKE_PROJECT_NAME}
library.cpp
main.cpp
)
target_link_libraries(${CMAKE_PROJECT_NAME}
seabreeze
usb
)

View File

@ -518,6 +518,61 @@ const char* OceanOptics_lib::get_error_string(int error)
return buffer;
}
void OceanOptics_lib::test_nonlinearity_coeffs_feature()
{
int error = 0;
int number_of_nonlinearity_coeff_features;
long *nonlinearity_coeff_feature_ids = 0;
double buffer[10];
int i;
int length;
printf("\n\tTesting nonlinearity coefficient features:\n");
printf("\t\tGetting number of nonlinearity coefficient features:\n");
number_of_nonlinearity_coeff_features =
sbapi_get_number_of_nonlinearity_coeffs_features(m_iSpectralmeterHandle, &error);
printf("\t\t\tResult is %d [%s]\n", number_of_nonlinearity_coeff_features,
sbapi_get_error_string(error));
if(0 == number_of_nonlinearity_coeff_features) {
printf("\tNo nonlinearity coefficient capabilities found.\n");
// tallyUnsupportedFeatures(unsupportedFeatureCount);
return;
}
nonlinearity_coeff_feature_ids =
(long *)calloc(number_of_nonlinearity_coeff_features, sizeof(long));
printf("\t\tGetting nonlinearity coefficient feature IDs...\n");
number_of_nonlinearity_coeff_features = sbapi_get_nonlinearity_coeffs_features(
m_iSpectralmeterHandle, &error, nonlinearity_coeff_feature_ids,
number_of_nonlinearity_coeff_features);
printf("\t\t\tResult is %d [%s]\n", number_of_nonlinearity_coeff_features,
sbapi_get_error_string(error));
for(i = 0; i < number_of_nonlinearity_coeff_features; i++) {
printf("\t\t%d: Testing device 0x%02lX, nonlinearity coeffs 0x%02lX\n",
i, m_iSpectralmeterHandle, nonlinearity_coeff_feature_ids[i]);
printf("\t\t\tAttempting to get nonlinearity coefficients...\n");
memset(buffer, (int)0, sizeof(buffer));
length = sbapi_nonlinearity_coeffs_get(m_iSpectralmeterHandle,
nonlinearity_coeff_feature_ids[i], &error, buffer, 10);
printf("\t\t\t\tResult is %d [%s]\n", length, sbapi_get_error_string(error));
if(0 == error && length > 0) {
printf("\t\t\t\tFirst calibration term: %1.2e\n", buffer[0]);
}
printf("\t\t%d: Finished testing device 0x%02lX, nonlinearity coeffs 0x%02lX\n",
i, m_iSpectralmeterHandle, nonlinearity_coeff_feature_ids[i]);
}
free(nonlinearity_coeff_feature_ids);
printf("\tFinished testing nonlinearity coefficient capabilities.\n");
}
string OceanOptics_lib::GetDeviceType(int index)
{
char type[16];

View File

@ -53,6 +53,7 @@ public:
//tc
static const char* get_error_string(int error);
void test_nonlinearity_coeffs_feature();
private:
int m_iSpectralmeterHandle;
DeviceInfo m_deviceInfo;