34 #ifndef OCEAN_DIRECT_API_H
35 #define OCEAN_DIRECT_API_H
37 #include "api/DllDecl.h"
38 #include "api/FeatureIds.h"
39 #include "common/public/UsbEndpoint.h"
44 #include "common/devices/IDevice.h"
45 #include "api/advanced/Advance.h"
46 #include "common/public/SpectrumWithMetadata.h"
53 FEATURE_ID_SERIAL_NUMBER = oceandirect::api::serNo,
54 FEATURE_ID_SPECTROMETER = oceandirect::api::spectrm,
55 FEATURE_ID_THERMOELECTRIC = oceandirect::api::tec,
56 FEATURE_ID_IRRADCAL = oceandirect::api::iirad,
57 FEATURE_ID_EEPROM = oceandirect::api::eeprom,
58 FEATURE_ID_STROBE_LAMP = oceandirect::api::strobe,
59 FEATURE_ID_WAVECAL = oceandirect::api::wavecal,
60 FEATURE_ID_NONLINEARITYCAL = oceandirect::api::nonline,
61 FEATURE_ID_STRAYLIGHTCAL = oceandirect::api::stray,
62 FEATURE_ID_RAW_BUS_ACCESS = oceandirect::api::raw,
63 FEATURE_ID_CONTINUOUS_STROBE = oceandirect::api::contsrtb,
64 FEATURE_ID_LIGHT_SOURCE = oceandirect::api::light,
65 FEATURE_ID_TEMPERATURE = oceandirect::api::temper,
66 FEATURE_ID_OPTICAL_BENCH = oceandirect::api::optic,
67 FEATURE_ID_REVISION = oceandirect::api::revise,
68 FEATURE_ID_DATA_BUFFER = oceandirect::api::buffer,
69 FEATURE_ID_PIXEL_BINNING = oceandirect::api::binn,
70 FEATURE_ID_GPIO = oceandirect::api::gpio,
71 FEATURE_ID_SINGLE_STROBE = oceandirect::api::singlestrb,
72 FEATURE_ID_QUERY_STATUS = oceandirect::api::status,
73 FEATURE_ID_BACK_TO_BACK = oceandirect::api::backToBack,
74 FEATURE_ID_LED_ACTIVITY = oceandirect::api::activity,
75 FEATURE_ID_TIME_META = oceandirect::api::time,
76 FEATURE_ID_DHCP = oceandirect::api::dhcp,
77 FEATURE_ID_PIXEL = oceandirect::api::pixel,
78 FEATURE_ID_AUTO_NULLING = oceandirect::api::autonulling,
79 FEATURE_ID_IPV4_ADDRESS = oceandirect::api::ipv4address,
80 FEATURE_ID_IPV4_USER_STRING = oceandirect::api::userstring,
81 FEATURE_ID_DEVICE_INFORMATION = oceandirect::api::deviceInformation,
82 FEATURE_ID_DEVICE_ALIAS = oceandirect::api::deviceAlias,
83 FEATURE_ID_SERIAL_PORT = oceandirect::api::serialPort,
84 FEATURE_ID_SPECTRUM_ACQUISITION_CONTROL = oceandirect::api::spectrumAcquisitionControl,
85 FEATURE_ID_NETWORK_CONFIGURATION = oceandirect::api::networkConfiguration,
86 FEATURE_ID_ETHERNET = oceandirect::api::ethernet,
87 FEATURE_ID_SHUTTER = oceandirect::api::shutter,
88 FEATURE_ID_HIGH_GAIN_MODE = oceandirect::api::highGainMode
99 FEATURE_ID_SERIAL_NUMBER = serNo,
100 FEATURE_ID_SPECTROMETER = spectrm,
101 FEATURE_ID_THERMOELECTRIC = tec,
102 FEATURE_ID_IRRADCAL = iirad,
103 FEATURE_ID_EEPROM = eeprom,
104 FEATURE_ID_STROBE_LAMP = strobe,
105 FEATURE_ID_WAVECAL = wavecal,
106 FEATURE_ID_NONLINEARITYCAL = nonline,
107 FEATURE_ID_STRAYLIGHTCAL = stray,
108 FEATURE_ID_RAW_BUS_ACCESS = raw,
109 FEATURE_ID_CONTINUOUS_STROBE = contsrtb,
110 FEATURE_ID_LIGHT_SOURCE = light,
111 FEATURE_ID_TEMPERATURE = temper,
112 FEATURE_ID_OPTICAL_BENCH = optic,
113 FEATURE_ID_REVISION = revise,
114 FEATURE_ID_DATA_BUFFER = buffer,
115 FEATURE_ID_PIXEL_BINNING = binn,
116 FEATURE_ID_GPIO = gpio,
117 FEATURE_ID_SINGLE_STROBE = singlestrb,
118 FEATURE_ID_QUERY_STATUS = status,
119 FEATURE_ID_BACK_TO_BACK = backToBack,
120 FEATURE_ID_LED_ACTIVITY = activity,
121 FEATURE_ID_TIME_META = time,
122 FEATURE_ID_DHCP = dhcp,
123 FEATURE_ID_PIXEL = pixel,
124 FEATURE_ID_AUTO_NULLING = autonulling,
125 FEATURE_ID_IPV4_ADDRESS = ipv4address,
126 FEATURE_ID_IPV4_USER_STRING = userstring,
127 FEATURE_ID_DEVICE_INFORMATION = deviceInformation,
128 FEATURE_ID_DEVICE_ALIAS = deviceAlias,
129 FEATURE_ID_SERIAL_PORT = serialPort
186 void getAPIRCNumber(
unsigned int* candidate);
318 int getDeviceType(
long deviceID,
int *errorCode,
char *buffer,
unsigned int length);
474 long long int getTime(
long deviceID,
int *errorCode);
489 void setTime(
long deviceID,
int *errorCode,
long long int timeInMicrosecond);
506 int getWavelengths(
long deviceID,
int *errorCode,
double *wavelengths,
int length);
742 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
758 int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
759 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
794 int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
795 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
816 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
835 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
856 int nonlinearityCorrectedSpectrumLength);
874 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
890 unsigned int illuminatedSpectrumLength,
unsigned int boxcarWidth);
963 void setBoxcarWidth(
long deviceID,
int* errorCode,
unsigned short int boxcarWidth);
1118 double lo,
double hi);
1155 IDevice *getDeviceByID(
unsigned long id);
1180 friend class OceanDirectAdminAPI;
1181 friend class NetOceanDirectAdmin;
1183 static constexpr
int OBP1_TCP_IP_PORT = 57357;
1184 static constexpr
int OBP2_TCP_IP_PORT = 57350;
1190 std::string getDeviceModel(
long deviceID,
int *errorCode,
int index);
1204 long addTCPIPv4DeviceLocation(
bool obp1Device,
const char *deviceTypeName, std::string ipAddr,
int port,
int* errorCode);
1206 void LegacyProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1207 void OBP2ProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1211 std::vector<IDevice *> probedDevices;
1212 std::vector<IDevice *> specifiedDevices;
1232 DLL_DECL
void odapi_initialize();
1239 DLL_DECL
void odapi_shutdown();
1248 DLL_DECL
double odapi_get_api_version();
1258 DLL_DECL
void odapi_get_api_version_numbers(
unsigned int* major,
unsigned int* minor,
unsigned int* point);
1259 DLL_DECL
void odapi_get_rc_version_number(
unsigned int* candidate);
1280 odapi_add_RS232_device_location(
char *deviceTypeName,
char *deviceBusPath,
1281 unsigned int baud,
int* errorCode);
1299 odapi_probe_devices();
1312 odapi_get_number_of_device_ids();
1331 odapi_get_device_ids(
long *ids,
unsigned int max_ids);
1350 odapi_get_network_device_ids(
long* ids,
unsigned int max_ids);
1358 DLL_DECL
int odapi_detect_network_devices();
1380 odapi_open_device(
long id,
int *error_code);
1397 odapi_add_network_devices(
const char* ipAddressStr,
const char* deviceTypeStr,
int* error_code);
1412 odapi_close_device(
long id,
int *error_code);
1426 odapi_get_error_string(
int error_code,
char* error_string,
int length);
1436 odapi_get_error_string_length(
int error_code);
1460 odapi_get_device_type(
long id,
int *error_code,
1461 char *buffer,
unsigned int length);
1480 odapi_get_device_name(
long id,
int *error_code,
1481 char *buffer,
unsigned int length);
1497 DLL_DECL
unsigned char
1498 odapi_get_device_usb_endpoint_primary_out(
long id,
int *error_code);
1514 DLL_DECL
unsigned char
1515 odapi_get_device_usb_endpoint_primary_in(
long id,
int *error_code);
1531 DLL_DECL
unsigned char
1532 odapi_get_device_usb_endpoint_secondary_out(
long id,
int *error_code);
1548 DLL_DECL
unsigned char
1549 odapi_get_device_usb_endpoint_secondary_in(
long id,
int *error_code);
1565 DLL_DECL
unsigned char
1566 odapi_get_device_usb_endpoint_secondary_in2(
long id,
int *error_code);
1582 odapi_is_feature_enabled(
long deviceID,
int *errorCode,
enum FeatureId featureID);
1606 odapi_get_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
1623 DLL_DECL
unsigned char
1624 odapi_get_serial_number_maximum_length(
long deviceID,
int *error_code);
1644 DLL_DECL
long long int
1645 odapi_get_time(
long deviceID,
int *error_code);
1663 odapi_set_time(
long deviceID,
int *error_code,
long long int time_in_microsecond);
1687 DLL_DECL
void odapi_apply_nonlinearity_correct_usage(
long deviceID,
int *error_code,
bool use);
1705 DLL_DECL
bool odapi_get_nonlinearity_correct_usage(
long deviceID,
int *error_code);
1727 odapi_adv_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1748 odapi_adv_get_trigger_mode(
long deviceID,
int *error_code);
1768 odapi_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1790 odapi_get_trigger_mode(
long deviceID,
int *error_code);
1807 DLL_DECL
void odapi_set_acquisition_delay_microseconds(
long deviceID,
int* errorCode,
unsigned long delay_usec);
1829 DLL_DECL
unsigned long odapi_get_acquisition_delay_microseconds(
long deviceID,
int* errorCode);
1844 DLL_DECL
unsigned long odapi_get_acquisition_delay_increment_microseconds(
long deviceID,
int* errorCode);
1859 DLL_DECL
unsigned long odapi_get_acquisition_delay_maximum_microseconds(
long deviceID,
int* errorCode);
1874 DLL_DECL
unsigned long odapi_get_acquisition_delay_minimum_microseconds(
long deviceID,
int* errorCode);
1903 odapi_set_integration_time_micros(
long deviceID,
1904 int *error_code,
unsigned long integration_time_micros);
1924 DLL_DECL
unsigned long
1925 odapi_get_integration_time_micros(
long deviceID,
int *error_code);
1950 odapi_get_minimum_integration_time_micros(
long deviceID,
int *error_code);
1967 DLL_DECL
unsigned long
1968 odapi_get_integration_time_increment_micros(
long deviceID,
int* error_code);
1992 odapi_get_minimum_averaging_integration_time_micros(
long deviceID,
int* error_code);
2011 odapi_get_maximum_integration_time_micros(
long deviceID,
int *error_code);
2030 odapi_get_maximum_intensity(
long deviceID,
int *error_code);
2053 odapi_get_raw_spectrum_with_metadata(
long deviceID,
int *error_code,
double *buffer[],
int buffer_row_size,
int buffer_column_size,
2054 long long int *tick_count,
int tick_count_size);
2073 odapi_get_formatted_spectrum_length(
long deviceID,
int *error_code);
2097 odapi_get_formatted_spectrum(
long deviceID,
int *error_code,
2098 double* buffer,
int buffer_length);
2112 DLL_DECL
void odapi_set_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2128 DLL_DECL
int odapi_get_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2147 DLL_DECL
int odapi_get_dark_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2148 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2164 DLL_DECL
int odapi_dark_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
2165 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2184 DLL_DECL
int odapi_get_dark_corrected_spectrum2(
long deviceID,
int* errorCode,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2200 DLL_DECL
int odapi_dark_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2201 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2221 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2222 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2240 DLL_DECL
int odapi_nonlinearity_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
2241 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2261 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum2(
long deviceID,
int* errorCode,
double* nonlinearityCorrectedSpectrum,
2262 int nonlinearityCorrectedSpectrumLength);
2279 DLL_DECL
int odapi_nonlinearity_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2280 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2295 DLL_DECL
void odapi_boxcar_correct_spectrum(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
2296 unsigned int illuminatedSpectrumLength,
unsigned int boxcarWidth);
2314 DLL_DECL
unsigned int odapi_get_scans_to_average(
long deviceID,
int* error_code);
2343 DLL_DECL
void odapi_set_scans_to_average(
long deviceID,
int* error_code,
unsigned int scansToAverage);
2364 DLL_DECL
unsigned short int odapi_get_boxcar_width(
long deviceID,
int* error_code);
2387 DLL_DECL
void odapi_set_boxcar_width(
long deviceID,
int* error_code,
unsigned short int boxcarWidth);
2411 odapi_get_wavelengths(
long deviceID,
int *error_code,
double *wavelengths,
int length);
2432 DLL_DECL
int odapi_get_wavelength_coeffs(
long deviceID,
int *error_code,
double *coeff,
int length);
2454 odapi_get_index_at_wavelength(
long deviceID,
int *error_code,
double *wavelength,
double approxWavelength);
2475 odapi_get_indices_at_wavelengths(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
double *wavelength,
int wavelengthLength);
2499 odapi_get_indices_at_wavelength_range(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
2500 double *wavelength,
int wavelengthLength,
double lo,
double hi);
2521 DLL_DECL
int odapi_get_electric_dark_pixel_count(
long deviceID,
int *error_code);
2533 DLL_DECL
int odapi_get_pixel_count(
long deviceID,
int *error_code);
2547 DLL_DECL
int odapi_get_active_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2561 DLL_DECL
int odapi_get_optical_dark_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2575 DLL_DECL
int odapi_get_transition_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2589 DLL_DECL
int odapi_get_bad_pixel_indices(
long deviceID,
int *error_code,
int *badPixelsIndices,
int badPixelSize);
2614 DLL_DECL
int odapi_get_electric_dark_pixel_indices(
long deviceID,
int *error_code,
int *indices,
int length);
2636 odapi_adv_get_light_source_count(
long deviceID,
int* error_code);
2661 DLL_DECL
unsigned char
2662 odapi_adv_light_source_has_enable(
long deviceID,
int *error_code,
2663 int light_source_index);
2684 DLL_DECL
unsigned char
2685 odapi_adv_light_source_is_enabled(
long deviceID,
int *error_code,
2686 int light_source_index);
2710 odapi_adv_light_source_set_enable(
long deviceID,
int *error_code,
2711 int light_source_index,
unsigned char enable);
2731 odapi_adv_set_lamp_enable(
long deviceID,
int *error_code,
unsigned char lamp_enable);
2747 odapi_adv_get_lamp_enable(
long deviceID,
int *error_code);
2763 odapi_adv_set_shutter_open(
long deviceID,
int* error_code,
unsigned char shutter_state);
2779 odapi_adv_get_shutter_state(
long deviceID,
int* error_code);
2798 odapi_adv_set_single_strobe_enable(
long deviceID,
int *error_code,
2799 unsigned char enable);
2818 odapi_adv_set_single_strobe_delay(
long deviceID,
int *error_code,
2819 unsigned long delay_micros);
2838 odapi_adv_set_single_strobe_width(
long deviceID,
int *error_code,
2839 unsigned long width_micros);
2858 odapi_adv_get_single_strobe_enable(
long deviceID,
int *error_code);
2875 DLL_DECL
unsigned long
2876 odapi_adv_get_single_strobe_delay(
long deviceID,
int *error_code);
2892 DLL_DECL
unsigned long
2893 odapi_adv_get_single_strobe_width(
long deviceID,
int *error_code);
2908 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
2923 DLL_DECL
bool odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
2938 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
2953 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
2971 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
2987 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3004 DLL_DECL
unsigned long
3005 odapi_adv_get_single_strobe_delay_minimum(
long deviceID,
int *error_code);
3022 DLL_DECL
unsigned long
3023 odapi_adv_get_single_strobe_delay_maximum(
long deviceID,
int *error_code);
3038 DLL_DECL
unsigned long
3039 odapi_adv_get_single_strobe_delay_increment(
long deviceID,
int *error_code);
3055 DLL_DECL
unsigned long
3056 odapi_adv_get_single_strobe_width_minimum(
long deviceID,
int *error_code);
3072 DLL_DECL
unsigned long
3073 odapi_adv_get_single_strobe_width_maximum(
long deviceID,
int *error_code);
3088 DLL_DECL
unsigned long
3089 odapi_adv_get_single_strobe_width_increment(
long deviceID,
int *error_code);
3104 DLL_DECL
unsigned long
3105 odapi_adv_get_single_strobe_cycle_maximum(
long deviceID,
int *error_code);
3120 DLL_DECL
unsigned long
3121 odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
3137 odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
3152 DLL_DECL
unsigned long
3153 odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
3168 DLL_DECL
unsigned long
3169 odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
3184 DLL_DECL
unsigned long
3185 odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
3201 DLL_DECL
unsigned long
3202 odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3223 DLL_DECL
void odapi_adv_set_continuous_strobe_enable(
long deviceID,
int *error_code,
unsigned char enable);
3238 DLL_DECL
void odapi_adv_set_continuous_strobe_period_micros(
long deviceID,
int *error_code,
unsigned long period_micros);
3255 odapi_adv_set_continuous_strobe_width_micros(
long deviceID,
int *error_code,
unsigned long width_micros);
3275 odapi_adv_set_led_enable(
long deviceID,
int *error_code,
bool led_enable);
3291 odapi_adv_get_led_enable(
long deviceID,
int *error_code);
3310 odapi_adv_tec_get_temperature_degrees_C(
long deviceID,
int *error_code);
3328 odapi_adv_tec_set_temperature_setpoint_degrees_C(
long deviceID,
int *error_code,
3329 double temperature_degrees_celsius);
3349 odapi_adv_tec_set_enable(
long deviceID,
int *error_code,
unsigned char tec_enable);
3366 odapi_adv_tec_get_enable(
long deviceID,
int *error_code);
3383 odapi_adv_tec_get_temperature_setpoint_degrees_C(
long deviceID,
int *error_code);
3400 odapi_adv_tec_get_stable(
long deviceID,
int *error_code);
3417 odapi_adv_tec_get_fan_enable(
long deviceID,
int *error_code);
3437 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs(
long deviceID,
int *error_code,
double *buffer,
int max_length);
3454 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs_count1(
long deviceID,
int *error_code);
3471 DLL_DECL
double odapi_adv_get_nonlinearity_coeffs1(
long deviceID,
int *error_code,
int index);
3489 DLL_DECL
unsigned short int odapi_adv_get_revision_firmware(
long deviceID,
int *error_code,
char *buffer,
int length);
3507 DLL_DECL
unsigned short int odapi_adv_get_revision_fpga(
long deviceID,
int *error_code,
char *buffer,
int length);
3520 DLL_DECL
void odapi_adv_clear_data_buffer(
long deviceID,
int *error_code);
3534 DLL_DECL
unsigned long odapi_adv_get_data_buffer_number_of_elements(
long deviceID,
int *error_code);
3549 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity(
long deviceID,
int *error_code);
3563 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_maximum(
long deviceID,
int *error_code);
3577 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_minimum(
long deviceID,
int *error_code);
3594 DLL_DECL
void odapi_adv_set_data_buffer_capacity(
long deviceID,
int *error_code,
unsigned long capacity);
3609 DLL_DECL
void odapi_adv_set_data_buffer_enable(
long deviceID,
int *error_code,
unsigned char flag);
3624 DLL_DECL
bool odapi_adv_get_data_buffer_enable(
long deviceID,
int *error_code);
3637 DLL_DECL
void odapi_adv_abort_acquisition(
long deviceID,
int *error_code);
3650 DLL_DECL
void odapi_adv_acquire_spectra_to_buffer(
long deviceID,
int *error_code);
3664 DLL_DECL
bool odapi_adv_get_device_idle_state(
long deviceID,
int *error_code);
3679 DLL_DECL
unsigned long odapi_adv_get_number_of_backtoback_scans(
long deviceID,
int *error_code);
3694 DLL_DECL
void odapi_adv_set_number_of_backtoback_scans(
long deviceID,
int *error_code,
unsigned long numScans);
3708 DLL_DECL
int odapi_adv_get_autonull_maximum_adc_count(
long deviceID,
int *error_code);
3722 DLL_DECL
int odapi_adv_get_autonull_saturation_level(
long deviceID,
int *error_code);
3736 DLL_DECL
int odapi_adv_get_autonull_baseline_level(
long deviceID,
int *error_code);
3752 DLL_DECL
int odapi_get_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
3767 DLL_DECL
void odapi_set_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
3782 DLL_DECL
int odapi_get_user_string_count1(
long deviceID,
int *error_code);
3800 DLL_DECL
int odapi_get_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
3817 DLL_DECL
void odapi_set_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
3833 DLL_DECL
int odapi_adv_get_device_original_vid(
long deviceID,
int *error_code);
3847 DLL_DECL
int odapi_adv_get_device_original_pid(
long deviceID,
int *error_code);
3861 DLL_DECL
int odapi_adv_get_device_vid(
long deviceID,
int *error_code);
3876 DLL_DECL
void odapi_adv_set_device_vid(
long deviceID,
int *error_code,
int vid);
3891 DLL_DECL
void odapi_adv_set_device_pid(
long deviceID,
int *error_code,
int pid);
3905 DLL_DECL
int odapi_adv_get_device_pid(
long deviceID,
int *error_code);
3921 DLL_DECL
int odapi_adv_get_device_original_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
3937 DLL_DECL
int odapi_adv_get_device_original_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
3953 DLL_DECL
int odapi_adv_get_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
3969 DLL_DECL
void odapi_adv_set_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
3985 DLL_DECL
int odapi_adv_get_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4001 DLL_DECL
void odapi_adv_set_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4017 DLL_DECL
int odapi_adv_get_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4032 DLL_DECL
void odapi_adv_set_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4046 DLL_DECL
int odapi_adv_get_baud_rate(
long deviceID,
int *error_code);
4060 DLL_DECL
void odapi_adv_set_baud_rate(
long deviceID,
int *error_code,
int baudRate);
4073 DLL_DECL
void odapi_adv_save_settings_to_flash(
long deviceID,
int *error_code);
4086 DLL_DECL
void odapi_adv_reset_device(
long deviceID,
int *error_code);
4104 DLL_DECL
bool odapi_adv_ipv4_is_dhcp_enabled(
long deviceID,
int *errorCode,
unsigned char ifNum);
4119 DLL_DECL
void odapi_adv_ipv4_set_dhcp_enable(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char enabled);
4136 DLL_DECL
int odapi_adv_ipv4_get_number_of_ip_addresses(
long deviceID,
int *errorCode,
unsigned char ifNum);
4160 DLL_DECL
void odapi_adv_ipv4_read_ip_address(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char addressIndex,
4161 unsigned char *ipAddress,
int ipAddressLength,
unsigned int *netmask);
4181 DLL_DECL
void odapi_adv_ipv4_add_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4182 unsigned char *ipAddress,
int ipAddressLength,
unsigned int netmask);
4197 DLL_DECL
void odapi_adv_ipv4_delete_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
unsigned char addressIndex);
4218 DLL_DECL
void odapi_adv_ipv4_set_default_gateway_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4219 unsigned char* ipAddress,
int ipAddressLength);
4239 DLL_DECL
void odapi_adv_ipv4_get_default_gateway_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4240 unsigned char* outIpAddress,
int ipAddressLength);
4264 DLL_DECL
void odapi_apply_electric_dark_correction_usage(
long deviceID,
int *error_code,
unsigned char enable);
4284 DLL_DECL
bool odapi_get_electric_dark_correction_usage(
long deviceID,
int *error_code);
4292 DLL_DECL
int odapi_adv_get_gpio_pin_count(
long deviceID,
int* errorCode);
4301 DLL_DECL
void odapi_adv_gpio_set_output_enable1(
long deviceID,
int *errorCode,
int bit,
bool isOutput);
4308 DLL_DECL
void odapi_adv_gpio_set_output_enable2(
long deviceID,
int *errorCode, uint32_t bitmask);
4316 DLL_DECL
bool odapi_adv_gpio_get_output_enable1(
long deviceID,
int *errorCode,
int bit);
4323 DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(
long deviceID,
int *errorCode);
4331 DLL_DECL
void odapi_adv_gpio_set_value1(
long deviceID,
int *errorCode,
int bit,
bool isHigh);
4338 DLL_DECL
void odapi_adv_gpio_set_value2(
long deviceID,
int *errorCode, uint32_t bitmask);
4346 DLL_DECL
bool odapi_adv_gpio_get_value1(
long deviceID,
int *errorCode,
int bit);
4353 DLL_DECL uint32_t odapi_adv_gpio_get_value2(
long deviceID,
int *errorCode);
4365 DLL_DECL
void odapi_adv_gpio_set_output_alternate1(
long deviceID,
int* errorCode,
int bit,
bool isAlternate);
4376 DLL_DECL
void odapi_adv_gpio_set_output_alternate2(
long deviceID,
int* errorCode, uint32_t bitMask);
4388 DLL_DECL
bool odapi_adv_gpio_get_output_alternate1(
long deviceID,
int* errorCode,
int bit);
4399 DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(
long deviceID,
int* errorCode);
4411 DLL_DECL uint32_t odapi_adv_network_conf_get_interface_count(
long deviceID,
int* errorCode);
4421 DLL_DECL uint32_t odapi_adv_network_conf_get_interface_type(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4431 DLL_DECL
bool odapi_adv_network_conf_get_interface_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4441 DLL_DECL
void odapi_adv_network_conf_set_interface_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4456 DLL_DECL
bool odapi_adv_network_conf_get_multicast_group_enabled(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4471 DLL_DECL
void odapi_adv_network_conf_set_multicast_group_enabled(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4482 DLL_DECL
void odapi_adv_network_conf_save_interface_setting(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4492 DLL_DECL
bool odapi_adv_ethernet_get_gigabit_enable_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4502 DLL_DECL
void odapi_adv_ethernet_set_gigabit_enable_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4515 DLL_DECL
void odapi_adv_ethernet_get_mac_address(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
unsigned char* macAddress,
int macAddressLength);
4528 DLL_DECL
void odapi_adv_ethernet_set_mac_address(
long deviceID,
int* errorCode, uint32_t interfaceIndex,
unsigned char* macAddress,
int macAddressLength);
4537 DLL_DECL
unsigned char odapi_adv_get_ip_address_assigned_mode(
long deviceID,
int* errorCode);
4545 DLL_DECL
void odapi_adv_set_ip_address_assigned_mode(
long deviceID,
int* errorCode,
unsigned char useStaticIP);
4561 DLL_DECL
void odapi_adv_get_network_configuration(
long deviceID,
int* errorCode,
unsigned char* outManualAssignment,
4562 unsigned char* outIpv4Address,
unsigned int ipv4AddressSize,
4563 unsigned char* outSubnetMask,
unsigned int subnetMaskSize,
4564 unsigned char* outDefaultGateway,
unsigned int defaultGatewaySize,
4565 unsigned char* outDNSServer,
unsigned int dnsServerSize);
4580 DLL_DECL
void odapi_adv_set_manual_network_configuration(
long deviceID,
int* errorCode,
4581 unsigned char* ipv4Address,
unsigned int ipv4AddressSize,
4582 unsigned char* subnetMask,
unsigned int subnetMaskSize,
4583 unsigned char* defaultGateway,
unsigned int defaultGatewaySize,
4584 unsigned char* dnsServer,
unsigned int dnsServerSize);
4599 DLL_DECL
void odapi_adv_get_manual_network_configuration(
long deviceID,
int* errorCode,
4600 unsigned char* outIpv4Address,
unsigned int ipv4AddressSize,
4601 unsigned char* outSubnetMask,
unsigned int subnetMaskSize,
4602 unsigned char* outDefaultGateway,
unsigned int defaultGatewaySize,
4603 unsigned char* outDNSServer,
unsigned int dnsServerSize);
Definition: OceanDirectAPI.h:150
int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength)
void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros)
int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength)
void getAPIVersionNumber(unsigned int *major, unsigned int *minor, unsigned int *point)
int getFormattedSpectrumLength(long deviceID, int *errorCode)
unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode)
int addNetworkDevice(const char *ipAddressStr, const char *deviceTypeStr, int *errorCode)
void setBoxcarWidth(long deviceID, int *errorCode, unsigned short int boxcarWidth)
int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize, double lo, double hi)
void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value)
bool nonLinearityCorrectionUsage(long deviceID, int *errorCode)
int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getDeviceIDs(long *ids, unsigned long maxLength)
unsigned short int getBoxcarWidth(long deviceID, int *errorCode)
bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId)
long long int getTime(long deviceID, int *errorCode)
int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getNetworkDeviceIDs(long *ids, unsigned long maxLength)
void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value)
unsigned long getDelayMaximumMicroseconds(long deviceID, int *errorCode)
void boxcarCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth)
unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int *errorCode)
Advance * AdvancedControl()
int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length)
int darkCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
void openDevice(long deviceID, int *errorCode)
int getStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode)
unsigned long getDelayIncrementMicroseconds(long deviceID, int *errorCode)
int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength)
int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getElectricDarkPixelCount(long deviceID, int *errorCode)
int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length)
bool electricDarkCorrectionUsage(long deviceID, int *errorCode)
int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
int getNumberOfDeviceIDs()
int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength)
int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength)
int getErrorMessage(int errorCode, char *returnMessage, int length)
int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond)
int detectNetworkDevices()
void setStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
double getMaximumIntensity(long deviceID, int *errorCode)
unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType)
int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length)
void setTriggerMode(long deviceID, int *errorCode, int mode)
int getErrorStringLength(int errorCode)
unsigned long getDelayMinimumMicroseconds(long deviceID, int *errorCode)
void setScansToAverage(long deviceID, int *errorCode, unsigned int scansToAverage)
void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int *errorCode)
int darkCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
double getAPIVersionNumber()
void setDelayMicroseconds(long deviceID, int *errorCode, unsigned long delayMicroseconds)
int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length)
static OceanDirectAPI * getInstance()
unsigned int getScansToAverage(long deviceID, int *errorCode)
unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode)
int getTriggerMode(long deviceID, int *errorCode)
unsigned long getDelayMicroseconds(long deviceID, int *errorCode)
unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode)
unsigned long getIntegrationTimeIncrementMicros(long deviceID, int *errorCode)
int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength)
void closeDevice(long deviceID, int *errorCode)
This is an interface to OceanDirect that allows the user to connect to devices over USB and other bus...
Definition: OceanDirectAPI.h:144