OceanDirect  1.31.0
OceanDirect C++/C API
OceanDirectAPI.h
1 /*******************************************************
2  * @file OceanDirectAPI.h
3  * @date September 2021
4  * @author Ocean Insight, Inc.
5  *
6  * This is an interface to OceanDirect that allows
7  * the user to connect to devices over USB and other buses.
8  * This is intended as a usable and extensible API. The method
9  * calls below represent the complete C and Python interface for
10  * accessing an Ocean Insight spectrometer.
11  *
12  * This provides a C and Python interface to help with linkage.
13  */
14  /************************************************************************
15  *
16  * OCEAN INSIGHT CONFIDENTIAL
17  * __________________
18  *
19  * [2018] - [2020] Ocean Insight Incorporated
20  * All Rights Reserved.
21  *
22  * NOTICE: All information contained herein is, and remains
23  * the property of Ocean Insight Incorporated and its suppliers,
24  * if any. The intellectual and technical concepts contained
25  * herein are proprietary to Ocean Insight Incorporated
26  * and its suppliers and may be covered by U.S. and Foreign Patents,
27  * patents in process, and are protected by trade secret or copyright law.
28  * Dissemination of this information or reproduction of this material
29  * is strictly forbidden unless prior written permission is obtained
30  * from Ocean Insight Incorporated.
31  *
32  **************************************************************************/
33 
34 #ifndef OCEAN_DIRECT_API_H
35 #define OCEAN_DIRECT_API_H
36 
37 #include "api/DllDecl.h"
38 #include "api/FeatureIds.h"
39 #include "common/public/UsbEndpoint.h"
40 
41 #ifdef __cplusplus
42 #include <memory>
43 #include <vector>
44 #include "common/devices/IDevice.h"
45 #include "api/advanced/Advance.h"
46 #include "common/public/SpectrumWithMetadata.h"
47 extern "C" {
48  /* Redeclaration of the features enum with "friendlier" names for the public API.
49  * Use this with isFeatureEnabled to determine if a spectrometer has a give feature.
50  * Give it C linkage so it can be used by the C API.
51  */
52  enum FeatureId {
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  };
85  }
86 #else
87 #include <stdint.h>
88 #include <stdbool.h>
89  /* Redeclaration of the features enum with "friendlier" names for the public API.
90  * Use this with isFeatureEnabled to determine if a spectrometer has a give feature.
91  * Give it C linkage so it can be used by the C API.
92  */
93 enum FeatureId {
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
125 };
126 #endif
127 
128 
129 #ifdef __cplusplus
139 namespace oceandirect {
140 
141  namespace api {
142 
143  class DeviceAdapter;
144 
145  class DLL_DECL OceanDirectAPI {
146  public:
157 
161  static void shutdown();
162 
172 
180  void getAPIVersionNumber(unsigned int* major, unsigned int* minor, unsigned int* point);
181  void getAPIRCNumber(unsigned int* candidate);
182 
192 
205  void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int* errorCode);
206 
215 
224 
237  int getDeviceIDs(long *ids, unsigned long maxLength);
238 
251  int getNetworkDeviceIDs(long* ids, unsigned long maxLength);
252 
253 
262  void openDevice(long deviceID, int *errorCode);
263 
275  int addNetworkDevice(const char* ipAddressStr, const char* deviceTypeStr, int* errorCode);
276 
285  void closeDevice(long deviceID, int *errorCode);
286 
299  int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length);
300 
301 
314  int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength);
315 
327  unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType);
328 
336 
346  bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId);
347 
362  int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength);
363 
378  void setSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength);
379 
391  unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode);
392 
411  void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value);
412 
423  bool nonLinearityCorrectionUsage(long deviceID, int *errorCode);
424 
444  void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value);
445 
457  bool electricDarkCorrectionUsage(long deviceID, int *errorCode);
458 
471  long long int getTime(long deviceID, int *errorCode);
472 
486  void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond);
487 
488  /* Spectrometer capabilities */
489 
503  int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length);
504 
518  int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length);
519 
520 
533  void setWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length);
534 
556  void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros);
557 
570  unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode);
571 
584  unsigned long getIntegrationTimeIncrementMicros(long deviceID, int* errorCode);
585 
603  unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode);
604 
622  unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int* errorCode);
623 
635  unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode);
636 
648  double getMaximumIntensity(long deviceID, int *errorCode);
649 
661  int getUnformattedSpectrumLength(long deviceID, int *errorCode);
662 
677  int getUnformattedSpectrum(long deviceID, int *errorCode, unsigned char *buffer, int bufferLength);
678 
690  int getFormattedSpectrumLength(long deviceID, int *errorCode);
691 
706  int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength);
707 
732  int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength);
733 
746  void setStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
747 
762  int getStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
763 
781  int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
782  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
783 
798  int darkCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
799  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
800 
818  int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
819 
834  int darkCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
835  int illuminatedSpectrumLength, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
836 
855  int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
856  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
857 
874  int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum,
875  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
876 
895  int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
896  int nonlinearityCorrectedSpectrumLength);
897 
913  int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
914  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
915 
929  unsigned short int getScansToAverage(long deviceID, int* errorCode);
930 
951  void setScansToAverage(long deviceID, int* errorCode, unsigned short int scansToAverage);
952 
968  unsigned short int getBoxcarWidth(long deviceID, int* errorCode);
969 
987  void setBoxcarWidth(long deviceID, int* errorCode, unsigned short int boxcarWidth);
988 
1003  void setTriggerMode(long deviceID, int *errorCode, int mode);
1004 
1020  int getTriggerMode(long deviceID, int *errorCode);
1021 
1035  void setDelayMicroseconds(long deviceID, int* errorCode, unsigned long delayMicroseconds);
1036 
1049  unsigned long getDelayMicroseconds(long deviceID, int* errorCode);
1050 
1065  unsigned long getDelayIncrementMicroseconds(long deviceID, int* errorCode);
1066 
1079  unsigned long getDelayMaximumMicroseconds(long deviceID, int* errorCode);
1080 
1093  unsigned long getDelayMinimumMicroseconds(long deviceID, int* errorCode);
1094 
1107  int getElectricDarkPixelCount(long deviceID, int *errorCode);
1108 
1123  int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length);
1124 
1141  int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize,
1142  double lo, double hi);
1143 
1163  int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
1164 
1177  int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength);
1178 
1179  IDevice *getDeviceByID(unsigned long id);
1180 
1181 
1191  int getErrorMessage(int errorCode, char* returnMessage, int length);
1192 
1200  int getErrorStringLength(int errorCode);
1201 
1202  virtual ~OceanDirectAPI();
1203 
1204  private:
1205  static constexpr int TCP_IP_PORT = 57357;
1206  static OceanDirectAPI* instance;
1207 
1211  std::string getDeviceModel(long deviceID, int *errorCode, int index);
1212 
1225  long addTCPIPv4DeviceLocation(const char *deviceTypeName, std::string ipAddr, int port, int* errorCode);
1226 
1227  void LegacyProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1228  void OBP2ProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1229 
1230  OceanDirectAPI();
1231 
1232  std::vector<IDevice *> probedDevices;
1233  std::vector<IDevice *> specifiedDevices;
1234 
1235  };
1236  }
1237 }
1238 
1239 extern "C" {
1240 #endif /* __cplusplus */
1241 #if 1
1242  /* All of these C functions start with odapi_ to prevent namespace
1243  * collisions.
1244  */
1245 
1253  DLL_DECL void odapi_initialize();
1254 
1260  DLL_DECL void odapi_shutdown();
1261 
1269  DLL_DECL double odapi_get_api_version();
1270 
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);
1300  DLL_DECL void
1301  odapi_add_RS232_device_location(char *deviceTypeName, char *deviceBusPath,
1302  unsigned int baud, int* errorCode);
1303 
1319  DLL_DECL int
1320  odapi_probe_devices();
1321 
1332  DLL_DECL int
1333  odapi_get_number_of_device_ids();
1334 
1350  DLL_DECL int
1351  odapi_get_device_ids(long *ids, unsigned int max_ids);
1352 
1368  DLL_DECL int
1369  odapi_get_network_device_ids(long* ids, unsigned int max_ids);
1370 
1376  DLL_DECL int odapi_detect_network_devices();
1377 
1392  DLL_DECL void
1393  odapi_open_device(long id, int *error_code);
1394 
1406  DLL_DECL long
1407  odapi_add_network_devices(const char* ipAddressStr, const char* deviceTypeStr, int* error_code);
1408 
1420  DLL_DECL void
1421  odapi_close_device(long id, int *error_code);
1422 
1434  DLL_DECL int
1435  odapi_get_error_string(int error_code, char* error_string, int length);
1444  DLL_DECL int
1445  odapi_get_error_string_length(int error_code);
1446 
1468  DLL_DECL int
1469  odapi_get_device_type(long id, int *error_code,
1470  char *buffer, unsigned int length);
1471 
1488  DLL_DECL int
1489  odapi_get_device_name(long id, int *error_code,
1490  char *buffer, unsigned int length);
1491 
1506  DLL_DECL unsigned char
1507  odapi_get_device_usb_endpoint_primary_out(long id, int *error_code);
1508 
1523  DLL_DECL unsigned char
1524  odapi_get_device_usb_endpoint_primary_in(long id, int *error_code);
1525 
1540  DLL_DECL unsigned char
1541  odapi_get_device_usb_endpoint_secondary_out(long id, int *error_code);
1542 
1557  DLL_DECL unsigned char
1558  odapi_get_device_usb_endpoint_secondary_in(long id, int *error_code);
1559 
1574  DLL_DECL unsigned char
1575  odapi_get_device_usb_endpoint_secondary_in2(long id, int *error_code);
1576 
1590  DLL_DECL bool
1591  odapi_is_feature_enabled(long deviceID, int *errorCode, enum FeatureId featureID);
1592 
1612  DLL_DECL int
1613  odapi_adv_raw_usb_read(long deviceID, int *error_code, unsigned char *buffer,
1614  int buffer_length, unsigned char endpoint);
1615 
1635  DLL_DECL int
1636  odapi_adv_raw_usb_write(long deviceID, int *error_code, unsigned char *buffer,
1637  int buffer_length, unsigned char endpoint);
1638 
1656  DLL_DECL int
1657  odapi_adv_raw_eth_read(long deviceID, int *error_code, unsigned char *buffer, int buffer_length);
1658 
1676  DLL_DECL int
1677  odapi_adv_raw_eth_write(long deviceID, int *error_code, unsigned char *buffer, int buffer_length);
1678 
1700  DLL_DECL int
1701  odapi_get_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
1702 
1721  DLL_DECL void
1722  odapi_set_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
1723 
1739  DLL_DECL unsigned char
1740  odapi_get_serial_number_maximum_length(long deviceID, int *error_code);
1741 
1760  DLL_DECL long long int
1761  odapi_get_time(long deviceID, int *error_code);
1762 
1778  DLL_DECL void
1779  odapi_set_time(long deviceID, int *error_code, long long int time_in_microsecond);
1780 
1803  DLL_DECL void odapi_apply_nonlinearity_correct_usage(long deviceID, int *error_code, bool use);
1804 
1821  DLL_DECL bool odapi_get_nonlinearity_correct_usage(long deviceID, int *error_code);
1822 
1842  DLL_DECL void
1843  odapi_adv_set_trigger_mode(long deviceID, int *error_code, int mode);
1844 
1863  DLL_DECL int
1864  odapi_adv_get_trigger_mode(long deviceID, int *error_code);
1865 
1883  DLL_DECL void
1884  odapi_set_trigger_mode(long deviceID, int *error_code, int mode);
1885 
1905  DLL_DECL int
1906  odapi_get_trigger_mode(long deviceID, int *error_code);
1907 
1923  DLL_DECL void odapi_set_acquisition_delay_microseconds(long deviceID, int* errorCode, unsigned long delay_usec);
1924 
1945  DLL_DECL unsigned long odapi_get_acquisition_delay_microseconds(long deviceID, int* errorCode);
1946 
1960  DLL_DECL unsigned long odapi_get_acquisition_delay_increment_microseconds(long deviceID, int* errorCode);
1961 
1975  DLL_DECL unsigned long odapi_get_acquisition_delay_maximum_microseconds(long deviceID, int* errorCode);
1976 
1990  DLL_DECL unsigned long odapi_get_acquisition_delay_minimum_microseconds(long deviceID, int* errorCode);
1991 
2018  DLL_DECL void
2019  odapi_set_integration_time_micros(long deviceID,
2020  int *error_code, unsigned long integration_time_micros);
2021 
2040  DLL_DECL unsigned long
2041  odapi_get_integration_time_micros(long deviceID, int *error_code);
2042 
2065  DLL_DECL long
2066  odapi_get_minimum_integration_time_micros(long deviceID, int *error_code);
2067 
2083  DLL_DECL unsigned long
2084  odapi_get_integration_time_increment_micros(long deviceID, int* error_code);
2085 
2107  DLL_DECL long
2108  odapi_get_minimum_averaging_integration_time_micros(long deviceID, int* error_code);
2109 
2126  DLL_DECL long
2127  odapi_get_maximum_integration_time_micros(long deviceID, int *error_code);
2128 
2145  DLL_DECL double
2146  odapi_get_maximum_intensity(long deviceID, int *error_code);
2147 
2168  DLL_DECL int
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);
2171 
2188  DLL_DECL int
2189  odapi_get_formatted_spectrum_length(long deviceID, int *error_code);
2190 
2212  DLL_DECL int
2213  odapi_get_formatted_spectrum(long deviceID, int *error_code,
2214  double* buffer, int buffer_length);
2215 
2232  DLL_DECL int
2233  odapi_get_unformatted_spectrum_length(long deviceID, int *error_code);
2234 
2255  DLL_DECL int
2256  odapi_get_unformatted_spectrum(long deviceID, int *error_code,
2257  unsigned char *buffer, int buffer_length);
2258 
2259 
2272  DLL_DECL void odapi_set_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2273 
2288  DLL_DECL int odapi_get_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2289 
2307  DLL_DECL int odapi_get_dark_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2308  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2309 
2324  DLL_DECL int odapi_dark_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
2325  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2326 
2344  DLL_DECL int odapi_get_dark_corrected_spectrum2(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2345 
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);
2362 
2381  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2382  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2383 
2400  DLL_DECL int odapi_nonlinearity_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum,
2401  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2402 
2421  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum2(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
2422  int nonlinearityCorrectedSpectrumLength);
2423 
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);
2441 
2442 
2459  DLL_DECL unsigned short int odapi_get_scans_to_average(long deviceID, int* error_code);
2460 
2488  DLL_DECL void odapi_set_scans_to_average(long deviceID, int* error_code, unsigned short int scansToAverage);
2489 
2490 
2509  DLL_DECL unsigned short int odapi_get_boxcar_width(long deviceID, int* error_code);
2510 
2532  DLL_DECL void odapi_set_boxcar_width(long deviceID, int* error_code, unsigned short int boxcarWidth);
2533 
2555  DLL_DECL int
2556  odapi_get_wavelengths(long deviceID, int *error_code, double *wavelengths, int length);
2557 
2577  DLL_DECL int odapi_get_wavelength_coeffs(long deviceID, int *error_code, double *coeff, int length);
2578 
2596  DLL_DECL void odapi_set_wavelength_coeffs(long deviceID, int *error_code, double *coeff, int length);
2597 
2617  DLL_DECL int
2618  odapi_get_index_at_wavelength(long deviceID, int *error_code, double *wavelength, double approxWavelength);
2619 
2638  DLL_DECL int
2639  odapi_get_indices_at_wavelengths(long deviceID, int *error_code, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
2640 
2662  DLL_DECL int
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);
2665 
2685  DLL_DECL int odapi_get_electric_dark_pixel_count(long deviceID, int *error_code);
2686 
2697  DLL_DECL int odapi_get_pixel_count(long deviceID, int *error_code);
2698 
2711  DLL_DECL int odapi_get_active_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2712 
2725  DLL_DECL int odapi_get_optical_dark_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2726 
2739  DLL_DECL int odapi_get_transition_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2740 
2753  DLL_DECL int odapi_get_bad_pixel_indices(long deviceID, int *error_code, int *badPixelsIndices, int badPixelSize);
2754 
2766  DLL_DECL void odapi_set_bad_pixel_indices(long deviceID, int *error_code, int *badPixelsIndices, int badPixelSize);
2767 
2791  DLL_DECL int odapi_get_electric_dark_pixel_indices(long deviceID, int *error_code, int *indices, int length);
2792 
2812  DLL_DECL int
2813  odapi_adv_get_light_source_count(long deviceID, int *error_code);
2814 
2838  DLL_DECL unsigned char
2839  odapi_adv_light_source_has_enable(long deviceID, int *error_code,
2840  int light_source_index);
2841 
2861  DLL_DECL unsigned char
2862  odapi_adv_light_source_is_enabled(long deviceID, int *error_code,
2863  int light_source_index);
2864 
2886  DLL_DECL void
2887  odapi_adv_light_source_set_enable(long deviceID, int *error_code,
2888  int light_source_index, unsigned char enable);
2889 
2911  DLL_DECL unsigned char
2912  odapi_adv_light_source_has_variable_intensity(long deviceID,
2913  int *error_code, int light_source_index);
2914 
2950  DLL_DECL double
2951  odapi_adv_light_source_get_intensity(long deviceID,
2952  int *error_code, int light_source_index);
2953 
2985  DLL_DECL void
2986  odapi_adv_light_source_set_intensity(long deviceID, int *error_code,
2987  int light_source_index, double intensity);
2988 
3006  DLL_DECL void
3007  odapi_adv_set_lamp_enable(long deviceID, int *error_code, unsigned char lamp_enable);
3008 
3022  DLL_DECL bool
3023  odapi_adv_get_lamp_enable(long deviceID, int *error_code);
3024 
3025 
3042  DLL_DECL void
3043  odapi_adv_set_single_strobe_enable(long deviceID, int *error_code,
3044  unsigned char enable);
3045 
3062  DLL_DECL void
3063  odapi_adv_set_single_strobe_delay(long deviceID, int *error_code,
3064  unsigned long delay_micros);
3065 
3082  DLL_DECL void
3083  odapi_adv_set_single_strobe_width(long deviceID, int *error_code,
3084  unsigned long width_micros);
3085 
3102  DLL_DECL bool
3103  odapi_adv_get_single_strobe_enable(long deviceID, int *error_code);
3104 
3120  DLL_DECL unsigned long
3121  odapi_adv_get_single_strobe_delay(long deviceID, int *error_code);
3122 
3137  DLL_DECL unsigned long
3138  odapi_adv_get_single_strobe_width(long deviceID, int *error_code);
3139 
3153  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
3154 
3168  DLL_DECL bool odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
3169 
3183  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
3184 
3198  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
3199 
3216  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
3217 
3232  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
3233 
3249  DLL_DECL unsigned long
3250  odapi_adv_get_single_strobe_delay_minimum(long deviceID, int *error_code);
3251 
3267  DLL_DECL unsigned long
3268  odapi_adv_get_single_strobe_delay_maximum(long deviceID, int *error_code);
3269 
3283  DLL_DECL unsigned long
3284  odapi_adv_get_single_strobe_delay_increment(long deviceID, int *error_code);
3285 
3300  DLL_DECL unsigned long
3301  odapi_adv_get_single_strobe_width_minimum(long deviceID, int *error_code);
3302 
3317  DLL_DECL unsigned long
3318  odapi_adv_get_single_strobe_width_maximum(long deviceID, int *error_code);
3319 
3333  DLL_DECL unsigned long
3334  odapi_adv_get_single_strobe_width_increment(long deviceID, int *error_code);
3335 
3349  DLL_DECL unsigned long
3350  odapi_adv_get_single_strobe_cycle_maximum(long deviceID, int *error_code);
3351 
3365  DLL_DECL unsigned long
3366  odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
3367 
3381  DLL_DECL bool
3382  odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
3383 
3397  DLL_DECL unsigned long
3398  odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
3399 
3413  DLL_DECL unsigned long
3414  odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
3415 
3429  DLL_DECL unsigned long
3430  odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
3431 
3446  DLL_DECL unsigned long
3447  odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
3448 
3468  DLL_DECL void odapi_adv_set_continuous_strobe_enable(long deviceID, int *error_code, unsigned char enable);
3469 
3483  DLL_DECL void odapi_adv_set_continuous_strobe_period_micros(long deviceID, int *error_code, unsigned long period_micros);
3484 
3499  DLL_DECL void
3500  odapi_adv_set_continuous_strobe_width_micros(long deviceID, int *error_code, unsigned long width_micros);
3501 
3519  DLL_DECL void
3520  odapi_adv_set_led_enable(long deviceID, int *error_code, bool led_enable);
3521 
3535  DLL_DECL bool
3536  odapi_adv_get_led_enable(long deviceID, int *error_code);
3537 
3559  DLL_DECL int
3560  odapi_adv_eeprom_read_slot(long deviceID, int *error_code, int slot_number,
3561  unsigned char *buffer, int buffer_length);
3562 
3579  DLL_DECL double
3580  odapi_adv_tec_read_temperature_degrees_C(long deviceID, int *error_code);
3581 
3597  DLL_DECL void
3598  odapi_adv_tec_set_temperature_setpoint_degrees_C(long deviceID, int *error_code,
3599  double temperature_degrees_celsius);
3600 
3618  DLL_DECL void
3619  odapi_adv_tec_set_enable(long deviceID, int *error_code, unsigned char tec_enable);
3620 
3635  DLL_DECL bool
3636  odapi_adv_tec_get_enable(long deviceID, int *error_code);
3637 
3652  DLL_DECL float
3653  odapi_adv_tec_get_setpoint(long deviceID, int *error_code);
3654 
3669  DLL_DECL bool
3670  odapi_adv_tec_get_stable(long deviceID, int *error_code);
3671 
3686  DLL_DECL bool
3687  odapi_adv_tec_get_fan_enable(long deviceID, int *error_code);
3688 
3703  DLL_DECL void
3704  odapi_adv_tec_set_fan_enable(long deviceID, int *error_code, unsigned char fan_enable);
3705 
3724  DLL_DECL int odapi_adv_get_nonlinearity_coeffs(long deviceID, int *error_code, double *buffer, int max_length);
3725 
3743  DLL_DECL int odapi_adv_set_nonlinearity_coeffs(long deviceID, int *error_code, double *buffer, int max_length);
3744 
3760  DLL_DECL int odapi_adv_get_nonlinearity_coeffs_count1(long deviceID, int *error_code);
3761 
3777  DLL_DECL double odapi_adv_get_nonlinearity_coeffs1(long deviceID, int *error_code, int index);
3778 
3795  DLL_DECL void odapi_adv_set_nonlinearity_coeffs1(long deviceID, int *error_code, int index, double coefficient);
3796 
3797 
3813  DLL_DECL int odapi_adv_get_temperature_count(long deviceID, int *error_code);
3814 
3831  DLL_DECL double odapi_adv_get_temperature(long deviceID, int *error_code, int index);
3832 
3849  DLL_DECL double odapi_adv_get_temperature_extreme(long deviceID, int *error_code);
3850 
3868  DLL_DECL int odapi_adv_get_all_temperatures(long deviceID, int *error_code, double *buffer, int max_length);
3869 
3870 
3887  DLL_DECL unsigned char odapi_adv_get_revision_hardware(long deviceID, int *error_code, char *buffer, int length);
3888 
3905  DLL_DECL unsigned short int odapi_adv_get_revision_firmware(long deviceID, int *error_code, char *buffer, int length);
3906 
3923  DLL_DECL unsigned short int odapi_adv_get_revision_fpga(long deviceID, int *error_code, char *buffer, int length);
3924 
3944  DLL_DECL int odapi_adv_get_optical_bench_array_wavelength(long deviceID, int *error_code, char *buffer, int buffer_length);
3945 
3962  DLL_DECL unsigned short int odapi_adv_get_optical_bench_slit_width_microns(long deviceID, int *error_code);
3963 
3978  DLL_DECL void odapi_adv_set_optical_bench_slit_width_microns(long deviceID, int *error_code, unsigned short int widthMicrons);
3979 
4002  DLL_DECL int
4003  odapi_adv_get_optical_bench_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
4004 
4020  DLL_DECL void
4021  odapi_adv_set_optical_bench_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
4022 
4044  DLL_DECL int
4045  odapi_adv_get_optical_bench_id(long deviceID, int *error_code, char *buffer, int buffer_length);
4046 
4062  DLL_DECL void
4063  odapi_adv_set_optical_bench_id(long deviceID, int *error_code, char *buffer, int buffer_length);
4064 
4081  DLL_DECL unsigned short int
4082  odapi_adv_get_optical_bench_fiber_diameter(long deviceID, int *error_code);
4083 
4098  DLL_DECL void
4099  odapi_adv_set_optical_bench_fiber_diameter(long deviceID, int *error_code, unsigned short int diameterMicrons);
4100 
4101 
4124  DLL_DECL int
4125  odapi_adv_get_optical_bench_coating(long deviceID, int *error_code, char *buffer, int buffer_length);
4126 
4142  DLL_DECL void
4143  odapi_adv_set_optical_bench_coating(long deviceID, int *error_code, char *buffer, int buffer_length);
4144 
4167  DLL_DECL int
4168  odapi_adv_get_optical_bench_filter(long deviceID, int *error_code, char *buffer, int buffer_length);
4169 
4185  DLL_DECL void
4186  odapi_adv_set_optical_bench_filter(long deviceID, int *error_code, char *buffer, int buffer_length);
4187 
4210  DLL_DECL int
4211  odapi_adv_get_optical_bench_grating(long deviceID, int *error_code, char *buffer, int buffer_length);
4212 
4229  DLL_DECL void
4230  odapi_adv_set_optical_bench_grating(long deviceID, int *error_code, char *buffer, int buffer_length);
4231 
4253  DLL_DECL int
4254  odapi_adv_get_optical_bench_lens_installed(long deviceID, int *error_code, char *buffer, int buffer_length);
4255 
4267  DLL_DECL void odapi_adv_clear_data_buffer(long deviceID, int *error_code);
4268 
4281  DLL_DECL unsigned long odapi_adv_get_data_buffer_number_of_elements(long deviceID, int *error_code);
4282 
4296  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity(long deviceID, int *error_code);
4297 
4310  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_maximum(long deviceID, int *error_code);
4311 
4324  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_minimum(long deviceID, int *error_code);
4325 
4341  DLL_DECL void odapi_adv_set_data_buffer_capacity(long deviceID, int *error_code, unsigned long capacity);
4342 
4356  DLL_DECL void odapi_adv_set_data_buffer_enable(long deviceID, int *error_code, unsigned char flag);
4357 
4371  DLL_DECL bool odapi_adv_get_data_buffer_enable(long deviceID, int *error_code);
4372 
4384  DLL_DECL void odapi_adv_abort_acquisition(long deviceID, int *error_code);
4385 
4397  DLL_DECL void odapi_adv_acquire_spectra_to_buffer(long deviceID, int *error_code);
4398 
4411  DLL_DECL bool odapi_adv_get_device_idle_state(long deviceID, int *error_code);
4412 
4413 
4426  DLL_DECL unsigned long odapi_adv_get_number_of_backtoback_scans(long deviceID, int *error_code);
4427 
4441  DLL_DECL void odapi_adv_set_number_of_backtoback_scans(long deviceID, int *error_code, unsigned long numScans);
4442 
4460  DLL_DECL int odapi_adv_get_irrad_calibration(long deviceID, int *errorCode, float *buffer, int bufferLength);
4461 
4475  DLL_DECL int odapi_adv_get_irrad_calibration_size(long deviceID, int *errorCode);
4476 
4492  DLL_DECL int odapi_adv_set_irrad_calibration(long deviceID, int *errorCode, float *buffer, int bufferLength);
4493 
4506  DLL_DECL bool odapi_adv_has_irrad_collection_area(long deviceID, int *errorCode);
4507 
4521  DLL_DECL float odapi_adv_get_irrad_collection_area(long deviceID, int *errorCode);
4522 
4536  DLL_DECL void odapi_adv_set_irrad_collection_area(long deviceID, int *errorCode, float area);
4537 
4553  DLL_DECL int
4554  odapi_adv_analogout_get_outputs(long deviceID, int *error_code);
4555 
4570  DLL_DECL double
4571  odapi_adv_analogout_get_max_volt_dc(long deviceID, int *error_code);
4572 
4588  DLL_DECL double
4589  odapi_adv_analogout_get_min_volt_dc(long deviceID, int *error_code);
4590 
4605  DLL_DECL void
4606  odapi_adv_analogout_set_voltage(long deviceID,
4607  int *error_code, int output, double volts);
4608 
4623  DLL_DECL void
4624  odapi_adv_analogout_configure_pin(long deviceID,
4625  int *error_code, int pinNumber, int pinType);
4626 
4642  DLL_DECL int
4643  odapi_adv_analogin_get_inputs(long deviceID, int *error_code);
4644 
4659  DLL_DECL double
4660  odapi_adv_analogin_get_max_volt_dc(long deviceID, int *error_code);
4661 
4677  DLL_DECL double
4678  odapi_adv_analogin_get_min_volt_dc(long deviceID, int *error_code);
4679 
4698  DLL_DECL double
4699  odapi_adv_analogin_get_voltage(long deviceID,
4700  int *error_code, int input);
4701 
4716  DLL_DECL void odapi_adv_analogin_configure_pin(long deviceID, int *error_code, int pinNumber, int pinType);
4717 
4730  DLL_DECL int odapi_adv_get_autonull_maximum_adc_count(long deviceID, int *error_code);
4731 
4744  DLL_DECL int odapi_adv_get_autonull_saturation_level(long deviceID, int *error_code);
4745 
4758  DLL_DECL void odapi_adv_set_autonull_saturation_level(long deviceID, int *error_code, int level);
4759 
4772  DLL_DECL int odapi_adv_get_autonull_baseline_level(long deviceID, int *error_code);
4773 
4786  DLL_DECL void odapi_adv_set_autonull_baseline_level(long deviceID, int *error_code, int level);
4787 
4802  DLL_DECL int odapi_get_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
4803 
4817  DLL_DECL void odapi_set_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
4818 
4832  DLL_DECL int odapi_get_user_string_count1(long deviceID, int *error_code);
4833 
4850  DLL_DECL int odapi_get_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
4851 
4867  DLL_DECL void odapi_set_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
4868 
4869 
4870 
4883  DLL_DECL int odapi_adv_get_device_original_vid(long deviceID, int *error_code);
4884 
4897  DLL_DECL int odapi_adv_get_device_original_pid(long deviceID, int *error_code);
4898 
4911  DLL_DECL int odapi_adv_get_device_vid(long deviceID, int *error_code);
4912 
4926  DLL_DECL void odapi_adv_set_device_vid(long deviceID, int *error_code, int vid);
4927 
4941  DLL_DECL void odapi_adv_set_device_pid(long deviceID, int *error_code, int pid);
4942 
4955  DLL_DECL int odapi_adv_get_device_pid(long deviceID, int *error_code);
4956 
4971  DLL_DECL int odapi_adv_get_device_original_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4972 
4987  DLL_DECL int odapi_adv_get_device_original_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4988 
5003  DLL_DECL int odapi_adv_get_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
5004 
5019  DLL_DECL void odapi_adv_set_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
5020 
5035  DLL_DECL int odapi_adv_get_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
5036 
5051  DLL_DECL void odapi_adv_set_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
5052 
5067  DLL_DECL int odapi_adv_get_command_list(long deviceID, int *error_code, unsigned int *buffer, int bufferLength);
5068 
5082  DLL_DECL int odapi_adv_get_integration_time_step_size(long deviceID, int *error_code);
5083 
5098  DLL_DECL int odapi_adv_get_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
5099 
5113  DLL_DECL void odapi_adv_set_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
5114 
5127  DLL_DECL int odapi_adv_get_baud_rate(long deviceID, int *error_code);
5128 
5141  DLL_DECL void odapi_adv_set_baud_rate(long deviceID, int *error_code, int baudRate);
5142 
5154  DLL_DECL void odapi_adv_save_settings_to_flash(long deviceID, int *error_code);
5155 
5167  DLL_DECL void odapi_adv_reset_device(long deviceID, int *error_code);
5168 
5169 
5185  DLL_DECL bool odapi_adv_ipv4_is_dhcp_enabled(long deviceID, int *errorCode, unsigned char ifNum);
5186 
5200  DLL_DECL void odapi_adv_ipv4_set_dhcp_enable(long deviceID, int *errorCode, unsigned char ifNum, unsigned char enabled);
5201 
5217  DLL_DECL int odapi_adv_ipv4_get_number_of_ip_addresses(long deviceID, int *errorCode, unsigned char ifNum);
5218 
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);
5243 
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);
5264 
5278  DLL_DECL void odapi_adv_ipv4_delete_static_ip_address(long deviceID, int* errorCode, unsigned char ifNum, unsigned char addressIndex);
5279 
5301  DLL_DECL void odapi_apply_electric_dark_correction_usage(long deviceID, int *error_code, unsigned char enable);
5302 
5321  DLL_DECL bool odapi_get_electric_dark_correction_usage(long deviceID, int *error_code);
5322 
5329  DLL_DECL int odapi_adv_get_gpio_pin_count(long deviceID, int* errorCode);
5330 
5338  DLL_DECL void odapi_adv_gpio_set_output_enable1(long deviceID, int *errorCode, int bit, bool isOutput);
5339 
5345  DLL_DECL void odapi_adv_gpio_set_output_enable2(long deviceID, int *errorCode, uint32_t bitmask);
5346 
5353  DLL_DECL bool odapi_adv_gpio_get_output_enable1(long deviceID, int *errorCode, int bit);
5354 
5360  DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(long deviceID, int *errorCode);
5361 
5368  DLL_DECL void odapi_adv_gpio_set_value1(long deviceID, int *errorCode, int bit, bool isHigh);
5369 
5375  DLL_DECL void odapi_adv_gpio_set_value2(long deviceID, int *errorCode, uint32_t bitmask);
5376 
5383  DLL_DECL bool odapi_adv_gpio_get_value1(long deviceID, int *errorCode, int bit);
5384 
5390  DLL_DECL uint32_t odapi_adv_gpio_get_value2(long deviceID, int *errorCode);
5391 
5401  DLL_DECL void odapi_adv_gpio_set_output_alternate1(long deviceID, int *errorCode, int bit, bool isAlternate);
5402 
5411  DLL_DECL void odapi_adv_gpio_set_output_alternate2(long deviceID, int *errorCode, uint32_t bitMask);
5412 
5422  DLL_DECL bool odapi_adv_gpio_get_output_alternate1(long deviceID, int *errorCode, int bit);
5423 
5432  DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(long deviceID, int *errorCode);
5433 
5434 #endif /* excluding C interface */
5435 #ifdef __cplusplus
5436 }
5437 #endif /* __cplusplus */
5438 #endif /* OCEAN_DIRECT_API_H */
Definition: Advance.h:69
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)
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 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)
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)
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