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
94 FEATURE_ID_SERIAL_NUMBER = serNo,
95 FEATURE_ID_SPECTROMETER = spectrm,
96 FEATURE_ID_THERMOELECTRIC = tec,
97 FEATURE_ID_IRRADCAL = iirad,
98 FEATURE_ID_EEPROM = eeprom,
99 FEATURE_ID_STROBE_LAMP = strobe,
100 FEATURE_ID_WAVECAL = wavecal,
101 FEATURE_ID_NONLINEARITYCAL = nonline,
102 FEATURE_ID_STRAYLIGHTCAL = stray,
103 FEATURE_ID_RAW_BUS_ACCESS = raw,
104 FEATURE_ID_CONTINUOUS_STROBE = contsrtb,
105 FEATURE_ID_LIGHT_SOURCE = light,
106 FEATURE_ID_TEMPERATURE = temper,
107 FEATURE_ID_OPTICAL_BENCH = optic,
108 FEATURE_ID_REVISION = revise,
109 FEATURE_ID_DATA_BUFFER = buffer,
110 FEATURE_ID_PIXEL_BINNING = binn,
111 FEATURE_ID_GPIO = gpio,
112 FEATURE_ID_SINGLE_STROBE = singlestrb,
113 FEATURE_ID_QUERY_STATUS = status,
114 FEATURE_ID_BACK_TO_BACK = backToBack,
115 FEATURE_ID_LED_ACTIVITY = activity,
116 FEATURE_ID_TIME_META = time,
117 FEATURE_ID_DHCP = dhcp,
118 FEATURE_ID_PIXEL = pixel,
119 FEATURE_ID_AUTO_NULLING = autonulling,
120 FEATURE_ID_IPV4_ADDRESS = ipv4address,
121 FEATURE_ID_IPV4_USER_STRING = userstring,
122 FEATURE_ID_DEVICE_INFORMATION = deviceInformation,
123 FEATURE_ID_DEVICE_ALIAS = deviceAlias,
124 FEATURE_ID_SERIAL_PORT = serialPort
181 void getAPIRCNumber(
unsigned int* candidate);
299 int getDeviceType(
long deviceID,
int *errorCode,
char *buffer,
unsigned int length);
471 long long int getTime(
long deviceID,
int *errorCode);
486 void setTime(
long deviceID,
int *errorCode,
long long int timeInMicrosecond);
503 int getWavelengths(
long deviceID,
int *errorCode,
double *wavelengths,
int length);
782 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
798 int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
799 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
834 int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
835 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
856 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
875 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
896 int nonlinearityCorrectedSpectrumLength);
914 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
987 void setBoxcarWidth(
long deviceID,
int* errorCode,
unsigned short int boxcarWidth);
1142 double lo,
double hi);
1179 IDevice *getDeviceByID(
unsigned long id);
1205 static constexpr
int TCP_IP_PORT = 57357;
1211 std::string getDeviceModel(
long deviceID,
int *errorCode,
int index);
1225 long addTCPIPv4DeviceLocation(
const char *deviceTypeName, std::string ipAddr,
int port,
int* errorCode);
1227 void LegacyProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1228 void OBP2ProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1232 std::vector<IDevice *> probedDevices;
1233 std::vector<IDevice *> specifiedDevices;
1253 DLL_DECL
void odapi_initialize();
1260 DLL_DECL
void odapi_shutdown();
1269 DLL_DECL
double odapi_get_api_version();
1279 DLL_DECL
void odapi_get_api_version_numbers(
unsigned int* major,
unsigned int* minor,
unsigned int* point);
1280 DLL_DECL
void odapi_get_rc_version_number(
unsigned int* candidate);
1301 odapi_add_RS232_device_location(
char *deviceTypeName,
char *deviceBusPath,
1302 unsigned int baud,
int* errorCode);
1320 odapi_probe_devices();
1333 odapi_get_number_of_device_ids();
1351 odapi_get_device_ids(
long *ids,
unsigned int max_ids);
1369 odapi_get_network_device_ids(
long* ids,
unsigned int max_ids);
1376 DLL_DECL
int odapi_detect_network_devices();
1393 odapi_open_device(
long id,
int *error_code);
1407 odapi_add_network_devices(
const char* ipAddressStr,
const char* deviceTypeStr,
int* error_code);
1421 odapi_close_device(
long id,
int *error_code);
1435 odapi_get_error_string(
int error_code,
char* error_string,
int length);
1445 odapi_get_error_string_length(
int error_code);
1469 odapi_get_device_type(
long id,
int *error_code,
1470 char *buffer,
unsigned int length);
1489 odapi_get_device_name(
long id,
int *error_code,
1490 char *buffer,
unsigned int length);
1506 DLL_DECL
unsigned char
1507 odapi_get_device_usb_endpoint_primary_out(
long id,
int *error_code);
1523 DLL_DECL
unsigned char
1524 odapi_get_device_usb_endpoint_primary_in(
long id,
int *error_code);
1540 DLL_DECL
unsigned char
1541 odapi_get_device_usb_endpoint_secondary_out(
long id,
int *error_code);
1557 DLL_DECL
unsigned char
1558 odapi_get_device_usb_endpoint_secondary_in(
long id,
int *error_code);
1574 DLL_DECL
unsigned char
1575 odapi_get_device_usb_endpoint_secondary_in2(
long id,
int *error_code);
1591 odapi_is_feature_enabled(
long deviceID,
int *errorCode,
enum FeatureId featureID);
1613 odapi_adv_raw_usb_read(
long deviceID,
int *error_code,
unsigned char *buffer,
1614 int buffer_length,
unsigned char endpoint);
1636 odapi_adv_raw_usb_write(
long deviceID,
int *error_code,
unsigned char *buffer,
1637 int buffer_length,
unsigned char endpoint);
1657 odapi_adv_raw_eth_read(
long deviceID,
int *error_code,
unsigned char *buffer,
int buffer_length);
1677 odapi_adv_raw_eth_write(
long deviceID,
int *error_code,
unsigned char *buffer,
int buffer_length);
1701 odapi_get_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
1722 odapi_set_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
1739 DLL_DECL
unsigned char
1740 odapi_get_serial_number_maximum_length(
long deviceID,
int *error_code);
1760 DLL_DECL
long long int
1761 odapi_get_time(
long deviceID,
int *error_code);
1779 odapi_set_time(
long deviceID,
int *error_code,
long long int time_in_microsecond);
1803 DLL_DECL
void odapi_apply_nonlinearity_correct_usage(
long deviceID,
int *error_code,
bool use);
1821 DLL_DECL
bool odapi_get_nonlinearity_correct_usage(
long deviceID,
int *error_code);
1843 odapi_adv_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1864 odapi_adv_get_trigger_mode(
long deviceID,
int *error_code);
1884 odapi_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1906 odapi_get_trigger_mode(
long deviceID,
int *error_code);
1923 DLL_DECL
void odapi_set_acquisition_delay_microseconds(
long deviceID,
int* errorCode,
unsigned long delay_usec);
1945 DLL_DECL
unsigned long odapi_get_acquisition_delay_microseconds(
long deviceID,
int* errorCode);
1960 DLL_DECL
unsigned long odapi_get_acquisition_delay_increment_microseconds(
long deviceID,
int* errorCode);
1975 DLL_DECL
unsigned long odapi_get_acquisition_delay_maximum_microseconds(
long deviceID,
int* errorCode);
1990 DLL_DECL
unsigned long odapi_get_acquisition_delay_minimum_microseconds(
long deviceID,
int* errorCode);
2019 odapi_set_integration_time_micros(
long deviceID,
2020 int *error_code,
unsigned long integration_time_micros);
2040 DLL_DECL
unsigned long
2041 odapi_get_integration_time_micros(
long deviceID,
int *error_code);
2066 odapi_get_minimum_integration_time_micros(
long deviceID,
int *error_code);
2083 DLL_DECL
unsigned long
2084 odapi_get_integration_time_increment_micros(
long deviceID,
int* error_code);
2108 odapi_get_minimum_averaging_integration_time_micros(
long deviceID,
int* error_code);
2127 odapi_get_maximum_integration_time_micros(
long deviceID,
int *error_code);
2146 odapi_get_maximum_intensity(
long deviceID,
int *error_code);
2169 odapi_get_raw_spectrum_with_metadata(
long deviceID,
int *error_code,
double *buffer[],
int buffer_row_size,
int buffer_column_size,
2170 long long int *tick_count,
int tick_count_size);
2189 odapi_get_formatted_spectrum_length(
long deviceID,
int *error_code);
2213 odapi_get_formatted_spectrum(
long deviceID,
int *error_code,
2214 double* buffer,
int buffer_length);
2233 odapi_get_unformatted_spectrum_length(
long deviceID,
int *error_code);
2256 odapi_get_unformatted_spectrum(
long deviceID,
int *error_code,
2257 unsigned char *buffer,
int buffer_length);
2272 DLL_DECL
void odapi_set_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2288 DLL_DECL
int odapi_get_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2307 DLL_DECL
int odapi_get_dark_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2308 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2324 DLL_DECL
int odapi_dark_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
2325 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2344 DLL_DECL
int odapi_get_dark_corrected_spectrum2(
long deviceID,
int* errorCode,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2360 DLL_DECL
int odapi_dark_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2361 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2381 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2382 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2400 DLL_DECL
int odapi_nonlinearity_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
2401 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2421 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum2(
long deviceID,
int* errorCode,
double* nonlinearityCorrectedSpectrum,
2422 int nonlinearityCorrectedSpectrumLength);
2439 DLL_DECL
int odapi_nonlinearity_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2440 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2459 DLL_DECL
unsigned short int odapi_get_scans_to_average(
long deviceID,
int* error_code);
2488 DLL_DECL
void odapi_set_scans_to_average(
long deviceID,
int* error_code,
unsigned short int scansToAverage);
2509 DLL_DECL
unsigned short int odapi_get_boxcar_width(
long deviceID,
int* error_code);
2532 DLL_DECL
void odapi_set_boxcar_width(
long deviceID,
int* error_code,
unsigned short int boxcarWidth);
2556 odapi_get_wavelengths(
long deviceID,
int *error_code,
double *wavelengths,
int length);
2577 DLL_DECL
int odapi_get_wavelength_coeffs(
long deviceID,
int *error_code,
double *coeff,
int length);
2596 DLL_DECL
void odapi_set_wavelength_coeffs(
long deviceID,
int *error_code,
double *coeff,
int length);
2618 odapi_get_index_at_wavelength(
long deviceID,
int *error_code,
double *wavelength,
double approxWavelength);
2639 odapi_get_indices_at_wavelengths(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
double *wavelength,
int wavelengthLength);
2663 odapi_get_indices_at_wavelength_range(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
2664 double *wavelength,
int wavelengthLength,
double lo,
double hi);
2685 DLL_DECL
int odapi_get_electric_dark_pixel_count(
long deviceID,
int *error_code);
2697 DLL_DECL
int odapi_get_pixel_count(
long deviceID,
int *error_code);
2711 DLL_DECL
int odapi_get_active_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2725 DLL_DECL
int odapi_get_optical_dark_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2739 DLL_DECL
int odapi_get_transition_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2753 DLL_DECL
int odapi_get_bad_pixel_indices(
long deviceID,
int *error_code,
int *badPixelsIndices,
int badPixelSize);
2766 DLL_DECL
void odapi_set_bad_pixel_indices(
long deviceID,
int *error_code,
int *badPixelsIndices,
int badPixelSize);
2791 DLL_DECL
int odapi_get_electric_dark_pixel_indices(
long deviceID,
int *error_code,
int *indices,
int length);
2813 odapi_adv_get_light_source_count(
long deviceID,
int *error_code);
2838 DLL_DECL
unsigned char
2839 odapi_adv_light_source_has_enable(
long deviceID,
int *error_code,
2840 int light_source_index);
2861 DLL_DECL
unsigned char
2862 odapi_adv_light_source_is_enabled(
long deviceID,
int *error_code,
2863 int light_source_index);
2887 odapi_adv_light_source_set_enable(
long deviceID,
int *error_code,
2888 int light_source_index,
unsigned char enable);
2911 DLL_DECL
unsigned char
2912 odapi_adv_light_source_has_variable_intensity(
long deviceID,
2913 int *error_code,
int light_source_index);
2951 odapi_adv_light_source_get_intensity(
long deviceID,
2952 int *error_code,
int light_source_index);
2986 odapi_adv_light_source_set_intensity(
long deviceID,
int *error_code,
2987 int light_source_index,
double intensity);
3007 odapi_adv_set_lamp_enable(
long deviceID,
int *error_code,
unsigned char lamp_enable);
3023 odapi_adv_get_lamp_enable(
long deviceID,
int *error_code);
3043 odapi_adv_set_single_strobe_enable(
long deviceID,
int *error_code,
3044 unsigned char enable);
3063 odapi_adv_set_single_strobe_delay(
long deviceID,
int *error_code,
3064 unsigned long delay_micros);
3083 odapi_adv_set_single_strobe_width(
long deviceID,
int *error_code,
3084 unsigned long width_micros);
3103 odapi_adv_get_single_strobe_enable(
long deviceID,
int *error_code);
3120 DLL_DECL
unsigned long
3121 odapi_adv_get_single_strobe_delay(
long deviceID,
int *error_code);
3137 DLL_DECL
unsigned long
3138 odapi_adv_get_single_strobe_width(
long deviceID,
int *error_code);
3153 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
3168 DLL_DECL
bool odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
3183 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
3198 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
3216 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
3232 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3249 DLL_DECL
unsigned long
3250 odapi_adv_get_single_strobe_delay_minimum(
long deviceID,
int *error_code);
3267 DLL_DECL
unsigned long
3268 odapi_adv_get_single_strobe_delay_maximum(
long deviceID,
int *error_code);
3283 DLL_DECL
unsigned long
3284 odapi_adv_get_single_strobe_delay_increment(
long deviceID,
int *error_code);
3300 DLL_DECL
unsigned long
3301 odapi_adv_get_single_strobe_width_minimum(
long deviceID,
int *error_code);
3317 DLL_DECL
unsigned long
3318 odapi_adv_get_single_strobe_width_maximum(
long deviceID,
int *error_code);
3333 DLL_DECL
unsigned long
3334 odapi_adv_get_single_strobe_width_increment(
long deviceID,
int *error_code);
3349 DLL_DECL
unsigned long
3350 odapi_adv_get_single_strobe_cycle_maximum(
long deviceID,
int *error_code);
3365 DLL_DECL
unsigned long
3366 odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
3382 odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
3397 DLL_DECL
unsigned long
3398 odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
3413 DLL_DECL
unsigned long
3414 odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
3429 DLL_DECL
unsigned long
3430 odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
3446 DLL_DECL
unsigned long
3447 odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3468 DLL_DECL
void odapi_adv_set_continuous_strobe_enable(
long deviceID,
int *error_code,
unsigned char enable);
3483 DLL_DECL
void odapi_adv_set_continuous_strobe_period_micros(
long deviceID,
int *error_code,
unsigned long period_micros);
3500 odapi_adv_set_continuous_strobe_width_micros(
long deviceID,
int *error_code,
unsigned long width_micros);
3520 odapi_adv_set_led_enable(
long deviceID,
int *error_code,
bool led_enable);
3536 odapi_adv_get_led_enable(
long deviceID,
int *error_code);
3560 odapi_adv_eeprom_read_slot(
long deviceID,
int *error_code,
int slot_number,
3561 unsigned char *buffer,
int buffer_length);
3580 odapi_adv_tec_read_temperature_degrees_C(
long deviceID,
int *error_code);
3598 odapi_adv_tec_set_temperature_setpoint_degrees_C(
long deviceID,
int *error_code,
3599 double temperature_degrees_celsius);
3619 odapi_adv_tec_set_enable(
long deviceID,
int *error_code,
unsigned char tec_enable);
3636 odapi_adv_tec_get_enable(
long deviceID,
int *error_code);
3653 odapi_adv_tec_get_setpoint(
long deviceID,
int *error_code);
3670 odapi_adv_tec_get_stable(
long deviceID,
int *error_code);
3687 odapi_adv_tec_get_fan_enable(
long deviceID,
int *error_code);
3704 odapi_adv_tec_set_fan_enable(
long deviceID,
int *error_code,
unsigned char fan_enable);
3724 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs(
long deviceID,
int *error_code,
double *buffer,
int max_length);
3743 DLL_DECL
int odapi_adv_set_nonlinearity_coeffs(
long deviceID,
int *error_code,
double *buffer,
int max_length);
3760 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs_count1(
long deviceID,
int *error_code);
3777 DLL_DECL
double odapi_adv_get_nonlinearity_coeffs1(
long deviceID,
int *error_code,
int index);
3795 DLL_DECL
void odapi_adv_set_nonlinearity_coeffs1(
long deviceID,
int *error_code,
int index,
double coefficient);
3813 DLL_DECL
int odapi_adv_get_temperature_count(
long deviceID,
int *error_code);
3831 DLL_DECL
double odapi_adv_get_temperature(
long deviceID,
int *error_code,
int index);
3849 DLL_DECL
double odapi_adv_get_temperature_extreme(
long deviceID,
int *error_code);
3868 DLL_DECL
int odapi_adv_get_all_temperatures(
long deviceID,
int *error_code,
double *buffer,
int max_length);
3887 DLL_DECL
unsigned char odapi_adv_get_revision_hardware(
long deviceID,
int *error_code,
char *buffer,
int length);
3905 DLL_DECL
unsigned short int odapi_adv_get_revision_firmware(
long deviceID,
int *error_code,
char *buffer,
int length);
3923 DLL_DECL
unsigned short int odapi_adv_get_revision_fpga(
long deviceID,
int *error_code,
char *buffer,
int length);
3944 DLL_DECL
int odapi_adv_get_optical_bench_array_wavelength(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
3962 DLL_DECL
unsigned short int odapi_adv_get_optical_bench_slit_width_microns(
long deviceID,
int *error_code);
3978 DLL_DECL
void odapi_adv_set_optical_bench_slit_width_microns(
long deviceID,
int *error_code,
unsigned short int widthMicrons);
4003 odapi_adv_get_optical_bench_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4021 odapi_adv_set_optical_bench_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4045 odapi_adv_get_optical_bench_id(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4063 odapi_adv_set_optical_bench_id(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4081 DLL_DECL
unsigned short int
4082 odapi_adv_get_optical_bench_fiber_diameter(
long deviceID,
int *error_code);
4099 odapi_adv_set_optical_bench_fiber_diameter(
long deviceID,
int *error_code,
unsigned short int diameterMicrons);
4125 odapi_adv_get_optical_bench_coating(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4143 odapi_adv_set_optical_bench_coating(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4168 odapi_adv_get_optical_bench_filter(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4186 odapi_adv_set_optical_bench_filter(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4211 odapi_adv_get_optical_bench_grating(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4230 odapi_adv_set_optical_bench_grating(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4254 odapi_adv_get_optical_bench_lens_installed(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4267 DLL_DECL
void odapi_adv_clear_data_buffer(
long deviceID,
int *error_code);
4281 DLL_DECL
unsigned long odapi_adv_get_data_buffer_number_of_elements(
long deviceID,
int *error_code);
4296 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity(
long deviceID,
int *error_code);
4310 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_maximum(
long deviceID,
int *error_code);
4324 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_minimum(
long deviceID,
int *error_code);
4341 DLL_DECL
void odapi_adv_set_data_buffer_capacity(
long deviceID,
int *error_code,
unsigned long capacity);
4356 DLL_DECL
void odapi_adv_set_data_buffer_enable(
long deviceID,
int *error_code,
unsigned char flag);
4371 DLL_DECL
bool odapi_adv_get_data_buffer_enable(
long deviceID,
int *error_code);
4384 DLL_DECL
void odapi_adv_abort_acquisition(
long deviceID,
int *error_code);
4397 DLL_DECL
void odapi_adv_acquire_spectra_to_buffer(
long deviceID,
int *error_code);
4411 DLL_DECL
bool odapi_adv_get_device_idle_state(
long deviceID,
int *error_code);
4426 DLL_DECL
unsigned long odapi_adv_get_number_of_backtoback_scans(
long deviceID,
int *error_code);
4441 DLL_DECL
void odapi_adv_set_number_of_backtoback_scans(
long deviceID,
int *error_code,
unsigned long numScans);
4460 DLL_DECL
int odapi_adv_get_irrad_calibration(
long deviceID,
int *errorCode,
float *buffer,
int bufferLength);
4475 DLL_DECL
int odapi_adv_get_irrad_calibration_size(
long deviceID,
int *errorCode);
4492 DLL_DECL
int odapi_adv_set_irrad_calibration(
long deviceID,
int *errorCode,
float *buffer,
int bufferLength);
4506 DLL_DECL
bool odapi_adv_has_irrad_collection_area(
long deviceID,
int *errorCode);
4521 DLL_DECL
float odapi_adv_get_irrad_collection_area(
long deviceID,
int *errorCode);
4536 DLL_DECL
void odapi_adv_set_irrad_collection_area(
long deviceID,
int *errorCode,
float area);
4554 odapi_adv_analogout_get_outputs(
long deviceID,
int *error_code);
4571 odapi_adv_analogout_get_max_volt_dc(
long deviceID,
int *error_code);
4589 odapi_adv_analogout_get_min_volt_dc(
long deviceID,
int *error_code);
4606 odapi_adv_analogout_set_voltage(
long deviceID,
4607 int *error_code,
int output,
double volts);
4624 odapi_adv_analogout_configure_pin(
long deviceID,
4625 int *error_code,
int pinNumber,
int pinType);
4643 odapi_adv_analogin_get_inputs(
long deviceID,
int *error_code);
4660 odapi_adv_analogin_get_max_volt_dc(
long deviceID,
int *error_code);
4678 odapi_adv_analogin_get_min_volt_dc(
long deviceID,
int *error_code);
4699 odapi_adv_analogin_get_voltage(
long deviceID,
4700 int *error_code,
int input);
4716 DLL_DECL
void odapi_adv_analogin_configure_pin(
long deviceID,
int *error_code,
int pinNumber,
int pinType);
4730 DLL_DECL
int odapi_adv_get_autonull_maximum_adc_count(
long deviceID,
int *error_code);
4744 DLL_DECL
int odapi_adv_get_autonull_saturation_level(
long deviceID,
int *error_code);
4758 DLL_DECL
void odapi_adv_set_autonull_saturation_level(
long deviceID,
int *error_code,
int level);
4772 DLL_DECL
int odapi_adv_get_autonull_baseline_level(
long deviceID,
int *error_code);
4786 DLL_DECL
void odapi_adv_set_autonull_baseline_level(
long deviceID,
int *error_code,
int level);
4802 DLL_DECL
int odapi_get_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4817 DLL_DECL
void odapi_set_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
4832 DLL_DECL
int odapi_get_user_string_count1(
long deviceID,
int *error_code);
4850 DLL_DECL
int odapi_get_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
4867 DLL_DECL
void odapi_set_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
4883 DLL_DECL
int odapi_adv_get_device_original_vid(
long deviceID,
int *error_code);
4897 DLL_DECL
int odapi_adv_get_device_original_pid(
long deviceID,
int *error_code);
4911 DLL_DECL
int odapi_adv_get_device_vid(
long deviceID,
int *error_code);
4926 DLL_DECL
void odapi_adv_set_device_vid(
long deviceID,
int *error_code,
int vid);
4941 DLL_DECL
void odapi_adv_set_device_pid(
long deviceID,
int *error_code,
int pid);
4955 DLL_DECL
int odapi_adv_get_device_pid(
long deviceID,
int *error_code);
4971 DLL_DECL
int odapi_adv_get_device_original_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4987 DLL_DECL
int odapi_adv_get_device_original_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5003 DLL_DECL
int odapi_adv_get_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5019 DLL_DECL
void odapi_adv_set_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5035 DLL_DECL
int odapi_adv_get_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5051 DLL_DECL
void odapi_adv_set_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5067 DLL_DECL
int odapi_adv_get_command_list(
long deviceID,
int *error_code,
unsigned int *buffer,
int bufferLength);
5082 DLL_DECL
int odapi_adv_get_integration_time_step_size(
long deviceID,
int *error_code);
5098 DLL_DECL
int odapi_adv_get_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5113 DLL_DECL
void odapi_adv_set_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
5127 DLL_DECL
int odapi_adv_get_baud_rate(
long deviceID,
int *error_code);
5141 DLL_DECL
void odapi_adv_set_baud_rate(
long deviceID,
int *error_code,
int baudRate);
5154 DLL_DECL
void odapi_adv_save_settings_to_flash(
long deviceID,
int *error_code);
5167 DLL_DECL
void odapi_adv_reset_device(
long deviceID,
int *error_code);
5185 DLL_DECL
bool odapi_adv_ipv4_is_dhcp_enabled(
long deviceID,
int *errorCode,
unsigned char ifNum);
5200 DLL_DECL
void odapi_adv_ipv4_set_dhcp_enable(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char enabled);
5217 DLL_DECL
int odapi_adv_ipv4_get_number_of_ip_addresses(
long deviceID,
int *errorCode,
unsigned char ifNum);
5241 DLL_DECL
void odapi_adv_ipv4_read_ip_address(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char addressIndex,
5242 unsigned char *ipAddress,
int ipAddressLength,
unsigned int *netmask);
5262 DLL_DECL
void odapi_adv_ipv4_add_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
5263 unsigned char *ipAddress,
int ipAddressLength,
unsigned int netmask);
5278 DLL_DECL
void odapi_adv_ipv4_delete_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
unsigned char addressIndex);
5301 DLL_DECL
void odapi_apply_electric_dark_correction_usage(
long deviceID,
int *error_code,
unsigned char enable);
5321 DLL_DECL
bool odapi_get_electric_dark_correction_usage(
long deviceID,
int *error_code);
5329 DLL_DECL
int odapi_adv_get_gpio_pin_count(
long deviceID,
int* errorCode);
5338 DLL_DECL
void odapi_adv_gpio_set_output_enable1(
long deviceID,
int *errorCode,
int bit,
bool isOutput);
5345 DLL_DECL
void odapi_adv_gpio_set_output_enable2(
long deviceID,
int *errorCode, uint32_t bitmask);
5353 DLL_DECL
bool odapi_adv_gpio_get_output_enable1(
long deviceID,
int *errorCode,
int bit);
5360 DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(
long deviceID,
int *errorCode);
5368 DLL_DECL
void odapi_adv_gpio_set_value1(
long deviceID,
int *errorCode,
int bit,
bool isHigh);
5375 DLL_DECL
void odapi_adv_gpio_set_value2(
long deviceID,
int *errorCode, uint32_t bitmask);
5383 DLL_DECL
bool odapi_adv_gpio_get_value1(
long deviceID,
int *errorCode,
int bit);
5390 DLL_DECL uint32_t odapi_adv_gpio_get_value2(
long deviceID,
int *errorCode);
5401 DLL_DECL
void odapi_adv_gpio_set_output_alternate1(
long deviceID,
int *errorCode,
int bit,
bool isAlternate);
5411 DLL_DECL
void odapi_adv_gpio_set_output_alternate2(
long deviceID,
int *errorCode, uint32_t bitMask);
5422 DLL_DECL
bool odapi_adv_gpio_get_output_alternate1(
long deviceID,
int *errorCode,
int bit);
5432 DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(
long deviceID,
int *errorCode);
Definition: OceanDirectAPI.h:145
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)
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)
void setScansToAverage(long deviceID, int *errorCode, unsigned short int scansToAverage)
void setWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length)
int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length)
bool electricDarkCorrectionUsage(long deviceID, int *errorCode)
int getUnformattedSpectrumLength(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 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)
void setSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength)
unsigned short int getScansToAverage(long deviceID, int *errorCode)
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 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)
int getUnformattedSpectrum(long deviceID, int *errorCode, unsigned char *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: DeviceFactory.h:38