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"
45 #include "common/devices/IDevice.h"
46 #include "api/advanced/Advance.h"
47 #include "common/public/SpectrumWithMetadata.h"
55 FEATURE_ID_SERIAL_NUMBER = oceandirect::api::serNo,
56 FEATURE_ID_SPECTROMETER = oceandirect::api::spectrm,
57 FEATURE_ID_THERMOELECTRIC = oceandirect::api::tec,
58 FEATURE_ID_IRRADCAL = oceandirect::api::iirad,
59 FEATURE_ID_EEPROM = oceandirect::api::eeprom,
60 FEATURE_ID_STROBE_LAMP = oceandirect::api::strobe,
61 FEATURE_ID_WAVECAL = oceandirect::api::wavecal,
62 FEATURE_ID_NONLINEARITYCAL = oceandirect::api::nonline,
63 FEATURE_ID_STRAYLIGHTCAL = oceandirect::api::stray,
64 FEATURE_ID_RAW_BUS_ACCESS = oceandirect::api::raw,
65 FEATURE_ID_CONTINUOUS_STROBE = oceandirect::api::contsrtb,
66 FEATURE_ID_LIGHT_SOURCE = oceandirect::api::light,
67 FEATURE_ID_TEMPERATURE = oceandirect::api::temper,
68 FEATURE_ID_OPTICAL_BENCH = oceandirect::api::optic,
69 FEATURE_ID_REVISION = oceandirect::api::revise,
70 FEATURE_ID_DATA_BUFFER = oceandirect::api::buffer,
71 FEATURE_ID_PIXEL_BINNING = oceandirect::api::binn,
72 FEATURE_ID_GPIO = oceandirect::api::gpio,
73 FEATURE_ID_SINGLE_STROBE = oceandirect::api::singlestrb,
74 FEATURE_ID_QUERY_STATUS = oceandirect::api::status,
75 FEATURE_ID_BACK_TO_BACK = oceandirect::api::backToBack,
76 FEATURE_ID_LED_ACTIVITY = oceandirect::api::activity,
77 FEATURE_ID_TIME_META = oceandirect::api::time,
78 FEATURE_ID_DHCP = oceandirect::api::dhcp,
79 FEATURE_ID_PIXEL = oceandirect::api::pixel,
80 FEATURE_ID_AUTO_NULLING = oceandirect::api::autonulling,
81 FEATURE_ID_IPV4_ADDRESS = oceandirect::api::ipv4address,
82 FEATURE_ID_IPV4_USER_STRING = oceandirect::api::userstring,
83 FEATURE_ID_DEVICE_INFORMATION = oceandirect::api::deviceInformation,
84 FEATURE_ID_DEVICE_ALIAS = oceandirect::api::deviceAlias,
85 FEATURE_ID_SERIAL_PORT = oceandirect::api::serialPort,
86 FEATURE_ID_SPECTRUM_ACQUISITION_CONTROL = oceandirect::api::spectrumAcquisitionControl,
87 FEATURE_ID_NETWORK_CONFIGURATION = oceandirect::api::networkConfiguration,
88 FEATURE_ID_ETHERNET = oceandirect::api::ethernet,
89 FEATURE_ID_SHUTTER = oceandirect::api::shutter,
90 FEATURE_ID_HIGH_GAIN_MODE = oceandirect::api::highGainMode
101 FEATURE_ID_SERIAL_NUMBER = serNo,
102 FEATURE_ID_SPECTROMETER = spectrm,
103 FEATURE_ID_THERMOELECTRIC = tec,
104 FEATURE_ID_IRRADCAL = iirad,
105 FEATURE_ID_EEPROM = eeprom,
106 FEATURE_ID_STROBE_LAMP = strobe,
107 FEATURE_ID_WAVECAL = wavecal,
108 FEATURE_ID_NONLINEARITYCAL = nonline,
109 FEATURE_ID_STRAYLIGHTCAL = stray,
110 FEATURE_ID_RAW_BUS_ACCESS = raw,
111 FEATURE_ID_CONTINUOUS_STROBE = contsrtb,
112 FEATURE_ID_LIGHT_SOURCE = light,
113 FEATURE_ID_TEMPERATURE = temper,
114 FEATURE_ID_OPTICAL_BENCH = optic,
115 FEATURE_ID_REVISION = revise,
116 FEATURE_ID_DATA_BUFFER = buffer,
117 FEATURE_ID_PIXEL_BINNING = binn,
118 FEATURE_ID_GPIO = gpio,
119 FEATURE_ID_SINGLE_STROBE = singlestrb,
120 FEATURE_ID_QUERY_STATUS = status,
121 FEATURE_ID_BACK_TO_BACK = backToBack,
122 FEATURE_ID_LED_ACTIVITY = activity,
123 FEATURE_ID_TIME_META = time,
124 FEATURE_ID_DHCP = dhcp,
125 FEATURE_ID_PIXEL = pixel,
126 FEATURE_ID_AUTO_NULLING = autonulling,
127 FEATURE_ID_IPV4_ADDRESS = ipv4address,
128 FEATURE_ID_IPV4_USER_STRING = userstring,
129 FEATURE_ID_DEVICE_INFORMATION = deviceInformation,
130 FEATURE_ID_DEVICE_ALIAS = deviceAlias,
131 FEATURE_ID_SERIAL_PORT = serialPort
179 virtual void getAPIRCNumber(
unsigned int* candidate);
309 virtual int addNetworkDevice(
const char* ipAddressStr,
const char* deviceTypeStr,
int* errorCode);
335 virtual int getDeviceType(
long deviceID,
int *errorCode,
char *buffer,
unsigned int length);
350 virtual int getDeviceModelText(
long deviceID,
int *errorCode,
char *buffer,
unsigned int bufferLength);
363 virtual unsigned char getDeviceEndpoint(
long deviceID,
int *error_code, usbEndpointType endpointType);
398 virtual int getSerialNumber(
long deviceID,
int *errorCode,
char *buffer,
int bufferLength);
492 virtual long long int getTime(
long deviceID,
int *errorCode);
507 virtual void setTime(
long deviceID,
int *errorCode,
long long int timeInMicrosecond);
524 virtual int getWavelengths(
long deviceID,
int *errorCode,
double *wavelengths,
int length);
760 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
776 virtual int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
777 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
796 virtual int getDarkCorrectedSpectrum(
long deviceID,
int* errorCode,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
812 virtual int darkCorrectSpectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
813 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
834 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
853 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
874 int nonlinearityCorrectedSpectrumLength);
892 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
907 void boxcarCorrectSpectrum(
long deviceID,
int* errorCode,
const double* illuminatedSpectrum,
unsigned int illuminatedSpectrumLength,
908 unsigned int boxcarWidth,
double* boxcarCorrectedSpectrum,
unsigned int boxcarCorrectedSpectrumLength);
981 virtual void setBoxcarWidth(
long deviceID,
int* errorCode,
unsigned short int boxcarWidth);
1136 double lo,
double hi);
1157 virtual int getIndicesAtAnyWavelength(
long deviceID,
int *errorCode,
int *indices,
int indicesLength,
double *wavelength,
int wavelengthLength);
1173 virtual IDevice *getDeviceByID(
long id);
1198 friend class OceanDirectAdminAPI;
1199 friend class NetOceanDirectAdmin;
1201 static constexpr
int OBP1_TCP_IP_PORT = 57357;
1202 static constexpr
int OBP2_TCP_IP_PORT = 57350;
1203 friend class InstrumentedOceanDirectAPI;
1225 virtual long addTCPIPv4OBP2DeviceLocation(
const char* deviceTypeName, std::string ipAddr,
1226 int port,
int* errorCode);
1237 static std::shared_ptr<std::ofstream> logFile;
1239 static void shutdownInstrumentation();
1240 int probeInstrumentedDevices();
1242 static constexpr
int TCP_IP_PORT = 57357;
1243 static size_t multicastMsgSendRetry;
1244 static size_t multicastMsgResponseReadRetry;
1245 static size_t multicastMsgResponseReadDelay;
1264 DLL_DECL
void odapi_initialize();
1271 DLL_DECL
void odapi_shutdown();
1280 DLL_DECL
double odapi_get_api_version();
1290 DLL_DECL
void odapi_get_api_version_numbers(
unsigned int* major,
unsigned int* minor,
unsigned int* point);
1291 DLL_DECL
void odapi_get_rc_version_number(
unsigned int* candidate);
1299 DLL_DECL
void odapi_set_multicast_msg_send_retry(
unsigned int retryCount);
1308 DLL_DECL
void odapi_set_multicast_msg_response_read_retry(
unsigned int retryCount);
1316 DLL_DECL
void odapi_set_multicast_msg_response_read_delay(
unsigned int delayMs);
1339 odapi_add_RS232_device_location(
char *deviceTypeName,
char *deviceBusPath,
1340 unsigned int baud,
int* errorCode);
1358 odapi_probe_devices();
1371 odapi_get_number_of_device_ids();
1390 odapi_get_device_ids(
long *ids,
unsigned int max_ids);
1409 odapi_get_network_device_ids(
long* ids,
unsigned int max_ids);
1417 DLL_DECL
int odapi_detect_network_devices();
1439 odapi_open_device(
long id,
int *error_code);
1456 odapi_add_network_devices(
const char* ipAddressStr,
const char* deviceTypeStr,
int* error_code);
1471 odapi_close_device(
long id,
int *error_code);
1485 odapi_get_error_string(
int error_code,
char* error_string,
int length);
1495 odapi_get_error_string_length(
int error_code);
1519 odapi_get_device_type(
long id,
int *error_code,
1520 char *buffer,
unsigned int length);
1539 odapi_get_device_name(
long id,
int *error_code,
1540 char *buffer,
unsigned int length);
1556 DLL_DECL
unsigned char
1557 odapi_get_device_usb_endpoint_primary_out(
long id,
int *error_code);
1573 DLL_DECL
unsigned char
1574 odapi_get_device_usb_endpoint_primary_in(
long id,
int *error_code);
1590 DLL_DECL
unsigned char
1591 odapi_get_device_usb_endpoint_secondary_out(
long id,
int *error_code);
1607 DLL_DECL
unsigned char
1608 odapi_get_device_usb_endpoint_secondary_in(
long id,
int *error_code);
1624 DLL_DECL
unsigned char
1625 odapi_get_device_usb_endpoint_secondary_in2(
long id,
int *error_code);
1641 odapi_is_feature_enabled(
long deviceID,
int *errorCode,
enum FeatureId featureID);
1665 odapi_get_serial_number(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
1682 DLL_DECL
unsigned char
1683 odapi_get_serial_number_maximum_length(
long deviceID,
int *error_code);
1703 DLL_DECL
long long int
1704 odapi_get_time(
long deviceID,
int *error_code);
1722 odapi_set_time(
long deviceID,
int *error_code,
long long int time_in_microsecond);
1746 DLL_DECL
void odapi_apply_nonlinearity_correct_usage(
long deviceID,
int *error_code,
bool use);
1764 DLL_DECL
bool odapi_get_nonlinearity_correct_usage(
long deviceID,
int *error_code);
1786 odapi_adv_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1807 odapi_adv_get_trigger_mode(
long deviceID,
int *error_code);
1827 odapi_set_trigger_mode(
long deviceID,
int *error_code,
int mode);
1849 odapi_get_trigger_mode(
long deviceID,
int *error_code);
1866 DLL_DECL
void odapi_set_acquisition_delay_microseconds(
long deviceID,
int* errorCode,
unsigned long delay_usec);
1888 DLL_DECL
unsigned long odapi_get_acquisition_delay_microseconds(
long deviceID,
int* errorCode);
1903 DLL_DECL
unsigned long odapi_get_acquisition_delay_increment_microseconds(
long deviceID,
int* errorCode);
1918 DLL_DECL
unsigned long odapi_get_acquisition_delay_maximum_microseconds(
long deviceID,
int* errorCode);
1933 DLL_DECL
unsigned long odapi_get_acquisition_delay_minimum_microseconds(
long deviceID,
int* errorCode);
1962 odapi_set_integration_time_micros(
long deviceID,
1963 int *error_code,
unsigned long integration_time_micros);
1983 DLL_DECL
unsigned long
1984 odapi_get_integration_time_micros(
long deviceID,
int *error_code);
2008 DLL_DECL
unsigned long
2009 odapi_get_minimum_integration_time_micros(
long deviceID,
int *error_code);
2026 DLL_DECL
unsigned long
2027 odapi_get_integration_time_increment_micros(
long deviceID,
int* error_code);
2050 DLL_DECL
unsigned long
2051 odapi_get_minimum_averaging_integration_time_micros(
long deviceID,
int* error_code);
2069 DLL_DECL
unsigned long
2070 odapi_get_maximum_integration_time_micros(
long deviceID,
int *error_code);
2089 odapi_get_maximum_intensity(
long deviceID,
int *error_code);
2112 odapi_get_raw_spectrum_with_metadata(
long deviceID,
int *error_code,
double *buffer[],
int buffer_row_size,
int buffer_column_size,
2113 long long int *tick_count,
int tick_count_size);
2132 odapi_get_formatted_spectrum_length(
long deviceID,
int *error_code);
2156 odapi_get_formatted_spectrum(
long deviceID,
int *error_code,
2157 double* buffer,
int buffer_length);
2171 DLL_DECL
void odapi_set_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2187 DLL_DECL
int odapi_get_stored_dark_spectrum(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength);
2206 DLL_DECL
int odapi_get_dark_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2207 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2223 DLL_DECL
int odapi_dark_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
int illuminatedSpectrumLength,
2224 double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2243 DLL_DECL
int odapi_get_dark_corrected_spectrum2(
long deviceID,
int* errorCode,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2259 DLL_DECL
int odapi_dark_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2260 int illuminatedSpectrumLength,
double* darkCorrectedSpectrum,
int darkCorrectedSpectrumLength);
2280 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum1(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
2281 double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2299 DLL_DECL
int odapi_nonlinearity_correct_spectrum1(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
2300 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2320 DLL_DECL
int odapi_get_nonlinearity_corrected_spectrum2(
long deviceID,
int* errorCode,
double* nonlinearityCorrectedSpectrum,
2321 int nonlinearityCorrectedSpectrumLength);
2338 DLL_DECL
int odapi_nonlinearity_correct_spectrum2(
long deviceID,
int* errorCode,
double* darkSpectrum,
int darkSpectrumLength,
double* illuminatedSpectrum,
2339 int illuminatedSpectrumLength,
double* nonlinearityCorrectedSpectrum,
int nonlinearityCorrectedSpectrumLength);
2354 DLL_DECL
void odapi_boxcar_correct_spectrum(
long deviceID,
int* errorCode,
double* illuminatedSpectrum,
unsigned int illuminatedSpectrumLength,
2355 unsigned int boxcarWidth,
double* boxcarCorrectedSpectrum,
unsigned int boxcarCorrectedSpectrumLength);
2373 DLL_DECL
unsigned int odapi_get_scans_to_average(
long deviceID,
int* error_code);
2402 DLL_DECL
void odapi_set_scans_to_average(
long deviceID,
int* error_code,
unsigned int scansToAverage);
2423 DLL_DECL
unsigned short int odapi_get_boxcar_width(
long deviceID,
int* error_code);
2446 DLL_DECL
void odapi_set_boxcar_width(
long deviceID,
int* error_code,
unsigned short int boxcarWidth);
2470 odapi_get_wavelengths(
long deviceID,
int *error_code,
double *wavelengths,
int length);
2491 DLL_DECL
int odapi_get_wavelength_coeffs(
long deviceID,
int *error_code,
double *coeff,
int length);
2513 odapi_get_index_at_wavelength(
long deviceID,
int *error_code,
double *wavelength,
double approxWavelength);
2534 odapi_get_indices_at_wavelengths(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
double *wavelength,
int wavelengthLength);
2558 odapi_get_indices_at_wavelength_range(
long deviceID,
int *error_code,
int *indices,
int indicesLength,
2559 double *wavelength,
int wavelengthLength,
double lo,
double hi);
2580 DLL_DECL
int odapi_get_electric_dark_pixel_count(
long deviceID,
int *error_code);
2592 DLL_DECL
int odapi_get_pixel_count(
long deviceID,
int *error_code);
2606 DLL_DECL
int odapi_get_active_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2620 DLL_DECL
int odapi_get_optical_dark_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2634 DLL_DECL
int odapi_get_transition_pixel_range(
long deviceID,
int *error_code,
int *range,
int rangeSize);
2648 DLL_DECL
int odapi_get_bad_pixel_indices(
long deviceID,
int *error_code,
int *badPixelsIndices,
int badPixelSize);
2673 DLL_DECL
int odapi_get_electric_dark_pixel_indices(
long deviceID,
int *error_code,
int *indices,
int length);
2695 odapi_adv_get_light_source_count(
long deviceID,
int* error_code);
2720 DLL_DECL
unsigned char
2721 odapi_adv_light_source_has_enable(
long deviceID,
int *error_code,
2722 int light_source_index);
2743 DLL_DECL
unsigned char
2744 odapi_adv_light_source_is_enabled(
long deviceID,
int *error_code,
2745 int light_source_index);
2769 odapi_adv_light_source_set_enable(
long deviceID,
int *error_code,
2770 int light_source_index,
unsigned char enable);
2790 odapi_adv_set_lamp_enable(
long deviceID,
int *error_code,
unsigned char lamp_enable);
2806 odapi_adv_get_lamp_enable(
long deviceID,
int *error_code);
2822 odapi_adv_set_shutter_open(
long deviceID,
int* error_code,
unsigned char shutter_state);
2838 odapi_adv_get_shutter_state(
long deviceID,
int* error_code);
2857 odapi_adv_set_single_strobe_enable(
long deviceID,
int *error_code,
2858 unsigned char enable);
2877 odapi_adv_set_single_strobe_delay(
long deviceID,
int *error_code,
2878 unsigned long delay_micros);
2897 odapi_adv_set_single_strobe_width(
long deviceID,
int *error_code,
2898 unsigned long width_micros);
2917 odapi_adv_get_single_strobe_enable(
long deviceID,
int *error_code);
2934 DLL_DECL
unsigned long
2935 odapi_adv_get_single_strobe_delay(
long deviceID,
int *error_code);
2951 DLL_DECL
unsigned long
2952 odapi_adv_get_single_strobe_width(
long deviceID,
int *error_code);
2967 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
2982 DLL_DECL
bool odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
2997 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
3012 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
3030 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
3046 DLL_DECL
unsigned long odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3063 DLL_DECL
unsigned long
3064 odapi_adv_get_single_strobe_delay_minimum(
long deviceID,
int *error_code);
3081 DLL_DECL
unsigned long
3082 odapi_adv_get_single_strobe_delay_maximum(
long deviceID,
int *error_code);
3097 DLL_DECL
unsigned long
3098 odapi_adv_get_single_strobe_delay_increment(
long deviceID,
int *error_code);
3114 DLL_DECL
unsigned long
3115 odapi_adv_get_single_strobe_width_minimum(
long deviceID,
int *error_code);
3131 DLL_DECL
unsigned long
3132 odapi_adv_get_single_strobe_width_maximum(
long deviceID,
int *error_code);
3147 DLL_DECL
unsigned long
3148 odapi_adv_get_single_strobe_width_increment(
long deviceID,
int *error_code);
3163 DLL_DECL
unsigned long
3164 odapi_adv_get_single_strobe_cycle_maximum(
long deviceID,
int *error_code);
3179 DLL_DECL
unsigned long
3180 odapi_adv_get_continuous_strobe_period_micros(
long deviceID,
int *error_code);
3196 odapi_adv_get_continuous_strobe_enable(
long deviceID,
int *error_code);
3211 DLL_DECL
unsigned long
3212 odapi_adv_get_continuous_strobe_period_minimum_micros(
long deviceID,
int *error_code);
3227 DLL_DECL
unsigned long
3228 odapi_adv_get_continuous_strobe_period_maximum_micros(
long deviceID,
int *error_code);
3243 DLL_DECL
unsigned long
3244 odapi_adv_get_continuous_strobe_period_increment_micros(
long deviceID,
int *error_code);
3260 DLL_DECL
unsigned long
3261 odapi_adv_get_continuous_strobe_width_micros(
long deviceID,
int *error_code);
3282 DLL_DECL
void odapi_adv_set_continuous_strobe_enable(
long deviceID,
int *error_code,
unsigned char enable);
3297 DLL_DECL
void odapi_adv_set_continuous_strobe_period_micros(
long deviceID,
int *error_code,
unsigned long period_micros);
3314 odapi_adv_set_continuous_strobe_width_micros(
long deviceID,
int *error_code,
unsigned long width_micros);
3334 odapi_adv_set_led_enable(
long deviceID,
int *error_code,
bool led_enable);
3350 odapi_adv_get_led_enable(
long deviceID,
int *error_code);
3369 odapi_adv_tec_get_temperature_degrees_C(
long deviceID,
int *error_code);
3387 odapi_adv_tec_set_temperature_setpoint_degrees_C(
long deviceID,
int *error_code,
3388 double temperature_degrees_celsius);
3408 odapi_adv_tec_set_enable(
long deviceID,
int *error_code,
unsigned char tec_enable);
3425 odapi_adv_tec_get_enable(
long deviceID,
int *error_code);
3442 odapi_adv_tec_get_temperature_setpoint_degrees_C(
long deviceID,
int *error_code);
3459 odapi_adv_tec_get_stable(
long deviceID,
int *error_code);
3476 odapi_adv_tec_get_fan_enable(
long deviceID,
int *error_code);
3496 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs(
long deviceID,
int *error_code,
double *buffer,
int max_length);
3513 DLL_DECL
int odapi_adv_get_nonlinearity_coeffs_count1(
long deviceID,
int *error_code);
3530 DLL_DECL
double odapi_adv_get_nonlinearity_coeffs1(
long deviceID,
int *error_code,
int index);
3548 DLL_DECL
unsigned short int odapi_adv_get_revision_firmware(
long deviceID,
int *error_code,
char *buffer,
int length);
3566 DLL_DECL
unsigned short int odapi_adv_get_revision_fpga(
long deviceID,
int *error_code,
char *buffer,
int length);
3584 DLL_DECL
unsigned short int odapi_adv_get_revision_system(
long deviceID,
int* error_code,
char* buffer,
int length);
3598 DLL_DECL
void odapi_adv_clear_data_buffer(
long deviceID,
int *error_code);
3612 DLL_DECL
unsigned long odapi_adv_get_data_buffer_number_of_elements(
long deviceID,
int *error_code);
3627 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity(
long deviceID,
int *error_code);
3641 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_maximum(
long deviceID,
int *error_code);
3655 DLL_DECL
unsigned long odapi_adv_get_data_buffer_capacity_minimum(
long deviceID,
int *error_code);
3672 DLL_DECL
void odapi_adv_set_data_buffer_capacity(
long deviceID,
int *error_code,
unsigned long capacity);
3687 DLL_DECL
void odapi_adv_set_data_buffer_enable(
long deviceID,
int *error_code,
unsigned char flag);
3702 DLL_DECL
bool odapi_adv_get_data_buffer_enable(
long deviceID,
int *error_code);
3715 DLL_DECL
void odapi_adv_abort_acquisition(
long deviceID,
int *error_code);
3728 DLL_DECL
void odapi_adv_acquire_spectra_to_buffer(
long deviceID,
int *error_code);
3742 DLL_DECL
bool odapi_adv_get_device_idle_state(
long deviceID,
int *error_code);
3757 DLL_DECL
unsigned long odapi_adv_get_number_of_backtoback_scans(
long deviceID,
int *error_code);
3772 DLL_DECL
void odapi_adv_set_number_of_backtoback_scans(
long deviceID,
int *error_code,
unsigned long numScans);
3786 DLL_DECL
int odapi_adv_get_autonull_maximum_adc_count(
long deviceID,
int *error_code);
3800 DLL_DECL
int odapi_adv_get_autonull_saturation_level(
long deviceID,
int *error_code);
3814 DLL_DECL
int odapi_adv_get_autonull_baseline_level(
long deviceID,
int *error_code);
3828 DLL_DECL
int odapi_adv_get_autonull_fpga_digital_gain(
long deviceID,
int* error_code);
3842 DLL_DECL
int odapi_adv_get_autonull_fpga_digital_offset(
long deviceID,
int* error_code);
3860 DLL_DECL
int odapi_get_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
3875 DLL_DECL
void odapi_set_user_string(
long deviceID,
int *error_code,
char *buffer,
int buffer_length);
3890 DLL_DECL
int odapi_get_user_string_count1(
long deviceID,
int *error_code);
3908 DLL_DECL
int odapi_get_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
3925 DLL_DECL
void odapi_set_user_string1(
long deviceID,
int *error_code,
int index,
char *buffer,
int buffer_length);
3941 DLL_DECL
int odapi_adv_get_device_original_vid(
long deviceID,
int *error_code);
3955 DLL_DECL
int odapi_adv_get_device_original_pid(
long deviceID,
int *error_code);
3969 DLL_DECL
int odapi_adv_get_device_vid(
long deviceID,
int *error_code);
3984 DLL_DECL
void odapi_adv_set_device_vid(
long deviceID,
int *error_code,
int vid);
3999 DLL_DECL
void odapi_adv_set_device_pid(
long deviceID,
int *error_code,
int pid);
4013 DLL_DECL
int odapi_adv_get_device_pid(
long deviceID,
int *error_code);
4029 DLL_DECL
int odapi_adv_get_device_original_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4045 DLL_DECL
int odapi_adv_get_device_original_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4061 DLL_DECL
int odapi_adv_get_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4077 DLL_DECL
void odapi_adv_set_device_manufacturer_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4093 DLL_DECL
int odapi_adv_get_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4109 DLL_DECL
void odapi_adv_set_device_model_string(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4125 DLL_DECL
int odapi_adv_get_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4140 DLL_DECL
void odapi_adv_set_device_alias(
long deviceID,
int *error_code,
char *buffer,
int bufferLength);
4154 DLL_DECL
int odapi_adv_get_baud_rate(
long deviceID,
int *error_code);
4168 DLL_DECL
void odapi_adv_set_baud_rate(
long deviceID,
int *error_code,
int baudRate);
4181 DLL_DECL
void odapi_adv_save_settings_to_flash(
long deviceID,
int *error_code);
4194 DLL_DECL
void odapi_adv_reset_device(
long deviceID,
int *error_code);
4212 DLL_DECL
bool odapi_adv_ipv4_is_dhcp_enabled(
long deviceID,
int *errorCode,
unsigned char ifNum);
4227 DLL_DECL
void odapi_adv_ipv4_set_dhcp_enable(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char enabled);
4244 DLL_DECL
int odapi_adv_ipv4_get_number_of_ip_addresses(
long deviceID,
int *errorCode,
unsigned char ifNum);
4268 DLL_DECL
void odapi_adv_ipv4_read_ip_address(
long deviceID,
int *errorCode,
unsigned char ifNum,
unsigned char addressIndex,
4269 unsigned char *ipAddress,
int ipAddressLength,
unsigned int *netmask);
4289 DLL_DECL
void odapi_adv_ipv4_add_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4290 unsigned char *ipAddress,
int ipAddressLength,
unsigned int netmask);
4305 DLL_DECL
void odapi_adv_ipv4_delete_static_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
unsigned char addressIndex);
4326 DLL_DECL
void odapi_adv_ipv4_set_default_gateway_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4327 unsigned char* ipAddress,
int ipAddressLength);
4347 DLL_DECL
void odapi_adv_ipv4_get_default_gateway_ip_address(
long deviceID,
int* errorCode,
unsigned char ifNum,
4348 unsigned char* outIpAddress,
int ipAddressLength);
4372 DLL_DECL
void odapi_apply_electric_dark_correction_usage(
long deviceID,
int *error_code,
unsigned char enable);
4392 DLL_DECL
bool odapi_get_electric_dark_correction_usage(
long deviceID,
int *error_code);
4400 DLL_DECL
int odapi_adv_get_gpio_pin_count(
long deviceID,
int* errorCode);
4409 DLL_DECL
void odapi_adv_gpio_set_output_enable1(
long deviceID,
int *errorCode,
int bit,
bool isOutput);
4416 DLL_DECL
void odapi_adv_gpio_set_output_enable2(
long deviceID,
int *errorCode, uint32_t bitmask);
4424 DLL_DECL
bool odapi_adv_gpio_get_output_enable1(
long deviceID,
int *errorCode,
int bit);
4431 DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(
long deviceID,
int *errorCode);
4439 DLL_DECL
void odapi_adv_gpio_set_value1(
long deviceID,
int *errorCode,
int bit,
bool isHigh);
4446 DLL_DECL
void odapi_adv_gpio_set_value2(
long deviceID,
int *errorCode, uint32_t bitmask);
4454 DLL_DECL
bool odapi_adv_gpio_get_value1(
long deviceID,
int *errorCode,
int bit);
4461 DLL_DECL uint32_t odapi_adv_gpio_get_value2(
long deviceID,
int *errorCode);
4473 DLL_DECL
void odapi_adv_gpio_set_output_alternate1(
long deviceID,
int* errorCode,
int bit,
bool isAlternate);
4484 DLL_DECL
void odapi_adv_gpio_set_output_alternate2(
long deviceID,
int* errorCode, uint32_t bitMask);
4496 DLL_DECL
bool odapi_adv_gpio_get_output_alternate1(
long deviceID,
int* errorCode,
int bit);
4507 DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(
long deviceID,
int* errorCode);
4519 DLL_DECL uint32_t odapi_adv_network_conf_get_interface_count(
long deviceID,
int* errorCode);
4529 DLL_DECL uint32_t odapi_adv_network_conf_get_interface_type(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4539 DLL_DECL
bool odapi_adv_network_conf_get_interface_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4549 DLL_DECL
void odapi_adv_network_conf_set_interface_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4564 DLL_DECL
bool odapi_adv_network_conf_get_multicast_group_enabled(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4579 DLL_DECL
void odapi_adv_network_conf_set_multicast_group_enabled(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4590 DLL_DECL
void odapi_adv_network_conf_save_interface_setting(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4600 DLL_DECL
bool odapi_adv_ethernet_get_gigabit_enable_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex);
4610 DLL_DECL
void odapi_adv_ethernet_set_gigabit_enable_status(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
bool enable);
4623 DLL_DECL
void odapi_adv_ethernet_get_mac_address(
long deviceID,
int* errorCode,
unsigned int interfaceIndex,
unsigned char* macAddress,
int macAddressLength);
4636 DLL_DECL
void odapi_adv_ethernet_set_mac_address(
long deviceID,
int* errorCode, uint32_t interfaceIndex,
unsigned char* macAddress,
int macAddressLength);
4646 DLL_DECL
unsigned char odapi_adv_get_ip_address_assigned_mode(
long deviceID,
int* errorCode);
4655 DLL_DECL
void odapi_adv_set_ip_address_assigned_mode(
long deviceID,
int* errorCode,
unsigned char useDHCP);
4671 DLL_DECL
void odapi_adv_get_network_configuration(
long deviceID,
int* errorCode,
unsigned char* outIpAddressAssignment,
4672 unsigned char* outIpv4Address,
unsigned int ipv4AddressSize,
4673 unsigned char* outSubnetMask,
unsigned int subnetMaskSize,
4674 unsigned char* outDefaultGateway,
unsigned int defaultGatewaySize,
4675 unsigned char* outDNSServer,
unsigned int dnsServerSize);
4691 DLL_DECL
void odapi_adv_set_manual_network_configuration(
long deviceID,
int* errorCode,
4692 unsigned char* ipv4Address,
unsigned int ipv4AddressSize,
4693 unsigned char* subnetMask,
unsigned int subnetMaskSize,
4694 unsigned char* defaultGateway,
unsigned int defaultGatewaySize,
4695 unsigned char* dnsServer,
unsigned int dnsServerSize);
4711 DLL_DECL
void odapi_adv_get_manual_network_configuration(
long deviceID,
int* errorCode,
4712 unsigned char* outIpv4Address,
unsigned int ipv4AddressSize,
4713 unsigned char* outSubnetMask,
unsigned int subnetMaskSize,
4714 unsigned char* outDefaultGateway,
unsigned int defaultGatewaySize,
4715 unsigned char* outDNSServer,
unsigned int dnsServerSize);
Definition: OceanDirectAPI.h:153
virtual int getElectricDarkPixelCount(long deviceID, int *errorCode)
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(long deviceID, int *errorCode)
virtual int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length)
virtual int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual long long int getTime(long deviceID, int *errorCode)
virtual void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value)
virtual int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
void setMulticastMsgResponseReadDelay(size_t delayMs)
virtual void setTriggerMode(long deviceID, int *errorCode, int mode)
virtual unsigned int getScansToAverage(long deviceID, int *errorCode)
virtual int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength)
virtual unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType)
virtual int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength)
virtual void setAcquisitionDelayMicroseconds(long deviceID, int *errorCode, unsigned long delayMicroseconds)
virtual int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond)
virtual int getTriggerMode(long deviceID, int *errorCode)
virtual int getNetworkDeviceIDs(long *ids, unsigned long maxLength)
virtual int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength)
virtual int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength)
virtual int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual int getStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
virtual int detectNetworkDevices()
virtual long addTCPIPv4DeviceLocation(const char *deviceTypeName, std::string ipAddr, int port, int *errorCode)
virtual void closeDevice(long deviceID, int *errorCode)
virtual unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int *errorCode)
virtual void getAPIVersionNumber(unsigned int *major, unsigned int *minor, unsigned int *point)
virtual int getDeviceIDs(long *ids, unsigned long maxLength)
void setMulticastMsgSendRetry(size_t retryCount)
virtual bool electricDarkCorrectionUsage(long deviceID, int *errorCode)
virtual int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length)
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(long deviceID, int *errorCode)
virtual void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int *errorCode)
virtual bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId)
virtual int getErrorStringLength(int errorCode)
virtual void setScansToAverage(long deviceID, int *errorCode, unsigned int scansToAverage)
virtual int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length)
virtual int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength)
void setMulticastMsgResponseReadRetry(size_t retryCount)
virtual Advance * AdvancedControl()
virtual unsigned short int getBoxcarWidth(long deviceID, int *errorCode)
virtual unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode)
virtual int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length)
virtual void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value)
virtual unsigned long getAcquisitionDelayMicroseconds(long deviceID, int *errorCode)
virtual void openDevice(long deviceID, int *errorCode)
virtual unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode)
virtual int darkCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual void setBoxcarWidth(long deviceID, int *errorCode, unsigned short int boxcarWidth)
virtual int getErrorMessage(int errorCode, char *returnMessage, int length)
virtual int getNumberOfDeviceIDs()
virtual int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(long deviceID, int *errorCode)
virtual bool nonLinearityCorrectionUsage(long deviceID, int *errorCode)
virtual int darkCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual std::string getDeviceModel(long deviceID, int *errorCode, int index)
virtual void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros)
static OceanDirectAPI * getInstance()
void boxcarCorrectSpectrum(long deviceID, int *errorCode, const double *illuminatedSpectrum, unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth, double *boxcarCorrectedSpectrum, unsigned int boxcarCorrectedSpectrumLength)
virtual int probeDevices()
virtual int getFormattedSpectrumLength(long deviceID, int *errorCode)
virtual int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual void setStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
virtual unsigned long getIntegrationTimeIncrementMicros(long deviceID, int *errorCode)
virtual int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength)
virtual int addNetworkDevice(const char *ipAddressStr, const char *deviceTypeStr, int *errorCode)
virtual double getMaximumIntensity(long deviceID, int *errorCode)
virtual int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize, double lo, double hi)
virtual unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode)
virtual unsigned long getMinimumIntegrationTimeMicros(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:147