OceanDirect  2.4.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  FEATURE_ID_SPECTRUM_ACQUISITION_CONTROL = oceandirect::api::spectrumAcquisitionControl,
85  FEATURE_ID_NETWORK_CONFIGURATION = oceandirect::api::networkConfiguration,
86  FEATURE_ID_ETHERNET = oceandirect::api::ethernet,
87  FEATURE_ID_SHUTTER = oceandirect::api::shutter,
88  FEATURE_ID_HIGH_GAIN_MODE = oceandirect::api::highGainMode
89  };
90  }
91 #else
92 #include <stdint.h>
93 #include <stdbool.h>
94  /* Redeclaration of the features enum with "friendlier" names for the public API.
95  * Use this with isFeatureEnabled to determine if a spectrometer has a give feature.
96  * Give it C linkage so it can be used by the C API.
97  */
98 enum FeatureId {
99  FEATURE_ID_SERIAL_NUMBER = serNo,
100  FEATURE_ID_SPECTROMETER = spectrm,
101  FEATURE_ID_THERMOELECTRIC = tec,
102  FEATURE_ID_IRRADCAL = iirad,
103  FEATURE_ID_EEPROM = eeprom,
104  FEATURE_ID_STROBE_LAMP = strobe,
105  FEATURE_ID_WAVECAL = wavecal,
106  FEATURE_ID_NONLINEARITYCAL = nonline,
107  FEATURE_ID_STRAYLIGHTCAL = stray,
108  FEATURE_ID_RAW_BUS_ACCESS = raw,
109  FEATURE_ID_CONTINUOUS_STROBE = contsrtb,
110  FEATURE_ID_LIGHT_SOURCE = light,
111  FEATURE_ID_TEMPERATURE = temper,
112  FEATURE_ID_OPTICAL_BENCH = optic,
113  FEATURE_ID_REVISION = revise,
114  FEATURE_ID_DATA_BUFFER = buffer,
115  FEATURE_ID_PIXEL_BINNING = binn,
116  FEATURE_ID_GPIO = gpio,
117  FEATURE_ID_SINGLE_STROBE = singlestrb,
118  FEATURE_ID_QUERY_STATUS = status,
119  FEATURE_ID_BACK_TO_BACK = backToBack,
120  FEATURE_ID_LED_ACTIVITY = activity,
121  FEATURE_ID_TIME_META = time,
122  FEATURE_ID_DHCP = dhcp,
123  FEATURE_ID_PIXEL = pixel,
124  FEATURE_ID_AUTO_NULLING = autonulling,
125  FEATURE_ID_IPV4_ADDRESS = ipv4address,
126  FEATURE_ID_IPV4_USER_STRING = userstring,
127  FEATURE_ID_DEVICE_INFORMATION = deviceInformation,
128  FEATURE_ID_DEVICE_ALIAS = deviceAlias,
129  FEATURE_ID_SERIAL_PORT = serialPort
130 };
131 #endif
132 
133 
134 #ifdef __cplusplus
144 namespace oceandirect {
145 
146  namespace api {
147 
148  class DeviceAdapter;
149 
150  class DLL_DECL OceanDirectAPI {
151  public:
162 
166  static void shutdown();
167 
177 
185  void getAPIVersionNumber(unsigned int* major, unsigned int* minor, unsigned int* point);
186  void getAPIRCNumber(unsigned int* candidate);
187 
198 
211  void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int* errorCode);
212 
222 
232 
246  int getDeviceIDs(long *ids, unsigned long maxLength);
247 
261  int getNetworkDeviceIDs(long* ids, unsigned long maxLength);
262 
263 
277  void openDevice(long deviceID, int *errorCode);
278 
292  int addNetworkDevice(const char* ipAddressStr, const char* deviceTypeStr, int* errorCode);
293 
304  void closeDevice(long deviceID, int *errorCode);
305 
318  int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length);
319 
320 
333  int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength);
334 
346  unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType);
347 
355 
365  bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId);
366 
381  int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength);
382 
394  unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode);
395 
414  void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value);
415 
426  bool nonLinearityCorrectionUsage(long deviceID, int *errorCode);
427 
447  void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value);
448 
460  bool electricDarkCorrectionUsage(long deviceID, int *errorCode);
461 
474  long long int getTime(long deviceID, int *errorCode);
475 
489  void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond);
490 
491  /* Spectrometer capabilities */
492 
506  int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length);
507 
521  int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length);
522 
523 
545  void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros);
546 
559  unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode);
560 
573  unsigned long getIntegrationTimeIncrementMicros(long deviceID, int* errorCode);
574 
592  unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode);
593 
611  unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int* errorCode);
612 
624  unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode);
625 
637  double getMaximumIntensity(long deviceID, int *errorCode);
638 
650  int getFormattedSpectrumLength(long deviceID, int *errorCode);
651 
666  int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength);
667 
692  int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength);
693 
706  void setStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
707 
722  int getStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
723 
741  int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
742  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
743 
758  int darkCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
759  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
760 
778  int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
779 
794  int darkCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
795  int illuminatedSpectrumLength, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
796 
815  int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
816  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
817 
834  int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum,
835  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
836 
855  int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
856  int nonlinearityCorrectedSpectrumLength);
857 
873  int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
874  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
875 
889  void boxcarCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum,
890  unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth);
891 
905  unsigned int getScansToAverage(long deviceID, int* errorCode);
906 
927  void setScansToAverage(long deviceID, int* errorCode, unsigned int scansToAverage);
928 
944  unsigned short int getBoxcarWidth(long deviceID, int* errorCode);
945 
963  void setBoxcarWidth(long deviceID, int* errorCode, unsigned short int boxcarWidth);
964 
979  void setTriggerMode(long deviceID, int *errorCode, int mode);
980 
996  int getTriggerMode(long deviceID, int *errorCode);
997 
1011  void setDelayMicroseconds(long deviceID, int* errorCode, unsigned long delayMicroseconds);
1012 
1025  unsigned long getDelayMicroseconds(long deviceID, int* errorCode);
1026 
1041  unsigned long getDelayIncrementMicroseconds(long deviceID, int* errorCode);
1042 
1055  unsigned long getDelayMaximumMicroseconds(long deviceID, int* errorCode);
1056 
1069  unsigned long getDelayMinimumMicroseconds(long deviceID, int* errorCode);
1070 
1083  int getElectricDarkPixelCount(long deviceID, int *errorCode);
1084 
1099  int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length);
1100 
1117  int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize,
1118  double lo, double hi);
1119 
1139  int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
1140 
1153  int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength);
1154 
1155  IDevice *getDeviceByID(unsigned long id);
1156 
1157 
1167  int getErrorMessage(int errorCode, char* returnMessage, int length);
1168 
1176  int getErrorStringLength(int errorCode);
1177 
1178  virtual ~OceanDirectAPI();
1179 
1180  friend class OceanDirectAdminAPI;
1181  friend class NetOceanDirectAdmin;
1182  private:
1183  static constexpr int OBP1_TCP_IP_PORT = 57357;
1184  static constexpr int OBP2_TCP_IP_PORT = 57350;
1185  static OceanDirectAPI* instance;
1186 
1190  std::string getDeviceModel(long deviceID, int *errorCode, int index);
1191 
1204  long addTCPIPv4DeviceLocation(bool obp1Device, const char *deviceTypeName, std::string ipAddr, int port, int* errorCode);
1205 
1206  void LegacyProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1207  void OBP2ProbedDeviceCreation(std::vector<IDevice*>& validDevices);
1208 
1209  OceanDirectAPI();
1210 
1211  std::vector<IDevice *> probedDevices;
1212  std::vector<IDevice *> specifiedDevices;
1213 
1214  };
1215  }
1216 }
1217 
1218 extern "C" {
1219 #endif /* __cplusplus */
1220 #if 1
1221  /* All of these C functions start with odapi_ to prevent namespace
1222  * collisions.
1223  */
1224 
1232  DLL_DECL void odapi_initialize();
1233 
1239  DLL_DECL void odapi_shutdown();
1240 
1248  DLL_DECL double odapi_get_api_version();
1249 
1258  DLL_DECL void odapi_get_api_version_numbers(unsigned int* major, unsigned int* minor, unsigned int* point);
1259  DLL_DECL void odapi_get_rc_version_number(unsigned int* candidate);
1279  DLL_DECL void
1280  odapi_add_RS232_device_location(char *deviceTypeName, char *deviceBusPath,
1281  unsigned int baud, int* errorCode);
1282 
1298  DLL_DECL int
1299  odapi_probe_devices();
1300 
1311  DLL_DECL int
1312  odapi_get_number_of_device_ids();
1313 
1330  DLL_DECL int
1331  odapi_get_device_ids(long *ids, unsigned int max_ids);
1332 
1349  DLL_DECL int
1350  odapi_get_network_device_ids(long* ids, unsigned int max_ids);
1351 
1358  DLL_DECL int odapi_detect_network_devices();
1359 
1379  DLL_DECL void
1380  odapi_open_device(long id, int *error_code);
1381 
1396  DLL_DECL long
1397  odapi_add_network_devices(const char* ipAddressStr, const char* deviceTypeStr, int* error_code);
1398 
1411  DLL_DECL void
1412  odapi_close_device(long id, int *error_code);
1413 
1425  DLL_DECL int
1426  odapi_get_error_string(int error_code, char* error_string, int length);
1435  DLL_DECL int
1436  odapi_get_error_string_length(int error_code);
1437 
1459  DLL_DECL int
1460  odapi_get_device_type(long id, int *error_code,
1461  char *buffer, unsigned int length);
1462 
1479  DLL_DECL int
1480  odapi_get_device_name(long id, int *error_code,
1481  char *buffer, unsigned int length);
1482 
1497  DLL_DECL unsigned char
1498  odapi_get_device_usb_endpoint_primary_out(long id, int *error_code);
1499 
1514  DLL_DECL unsigned char
1515  odapi_get_device_usb_endpoint_primary_in(long id, int *error_code);
1516 
1531  DLL_DECL unsigned char
1532  odapi_get_device_usb_endpoint_secondary_out(long id, int *error_code);
1533 
1548  DLL_DECL unsigned char
1549  odapi_get_device_usb_endpoint_secondary_in(long id, int *error_code);
1550 
1565  DLL_DECL unsigned char
1566  odapi_get_device_usb_endpoint_secondary_in2(long id, int *error_code);
1567 
1581  DLL_DECL bool
1582  odapi_is_feature_enabled(long deviceID, int *errorCode, enum FeatureId featureID);
1583 
1605  DLL_DECL int
1606  odapi_get_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
1607 
1623  DLL_DECL unsigned char
1624  odapi_get_serial_number_maximum_length(long deviceID, int *error_code);
1625 
1644  DLL_DECL long long int
1645  odapi_get_time(long deviceID, int *error_code);
1646 
1662  DLL_DECL void
1663  odapi_set_time(long deviceID, int *error_code, long long int time_in_microsecond);
1664 
1687  DLL_DECL void odapi_apply_nonlinearity_correct_usage(long deviceID, int *error_code, bool use);
1688 
1705  DLL_DECL bool odapi_get_nonlinearity_correct_usage(long deviceID, int *error_code);
1706 
1726  DLL_DECL void
1727  odapi_adv_set_trigger_mode(long deviceID, int *error_code, int mode);
1728 
1747  DLL_DECL int
1748  odapi_adv_get_trigger_mode(long deviceID, int *error_code);
1749 
1767  DLL_DECL void
1768  odapi_set_trigger_mode(long deviceID, int *error_code, int mode);
1769 
1789  DLL_DECL int
1790  odapi_get_trigger_mode(long deviceID, int *error_code);
1791 
1807  DLL_DECL void odapi_set_acquisition_delay_microseconds(long deviceID, int* errorCode, unsigned long delay_usec);
1808 
1829  DLL_DECL unsigned long odapi_get_acquisition_delay_microseconds(long deviceID, int* errorCode);
1830 
1844  DLL_DECL unsigned long odapi_get_acquisition_delay_increment_microseconds(long deviceID, int* errorCode);
1845 
1859  DLL_DECL unsigned long odapi_get_acquisition_delay_maximum_microseconds(long deviceID, int* errorCode);
1860 
1874  DLL_DECL unsigned long odapi_get_acquisition_delay_minimum_microseconds(long deviceID, int* errorCode);
1875 
1902  DLL_DECL void
1903  odapi_set_integration_time_micros(long deviceID,
1904  int *error_code, unsigned long integration_time_micros);
1905 
1924  DLL_DECL unsigned long
1925  odapi_get_integration_time_micros(long deviceID, int *error_code);
1926 
1949  DLL_DECL long
1950  odapi_get_minimum_integration_time_micros(long deviceID, int *error_code);
1951 
1967  DLL_DECL unsigned long
1968  odapi_get_integration_time_increment_micros(long deviceID, int* error_code);
1969 
1991  DLL_DECL long
1992  odapi_get_minimum_averaging_integration_time_micros(long deviceID, int* error_code);
1993 
2010  DLL_DECL long
2011  odapi_get_maximum_integration_time_micros(long deviceID, int *error_code);
2012 
2029  DLL_DECL double
2030  odapi_get_maximum_intensity(long deviceID, int *error_code);
2031 
2052  DLL_DECL int
2053  odapi_get_raw_spectrum_with_metadata(long deviceID, int *error_code, double *buffer[], int buffer_row_size, int buffer_column_size,
2054  long long int *tick_count, int tick_count_size);
2055 
2072  DLL_DECL int
2073  odapi_get_formatted_spectrum_length(long deviceID, int *error_code);
2074 
2096  DLL_DECL int
2097  odapi_get_formatted_spectrum(long deviceID, int *error_code,
2098  double* buffer, int buffer_length);
2099 
2112  DLL_DECL void odapi_set_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2113 
2128  DLL_DECL int odapi_get_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2129 
2147  DLL_DECL int odapi_get_dark_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2148  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2149 
2164  DLL_DECL int odapi_dark_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
2165  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2166 
2184  DLL_DECL int odapi_get_dark_corrected_spectrum2(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2185 
2200  DLL_DECL int odapi_dark_correct_spectrum2(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
2201  int illuminatedSpectrumLength, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2202 
2221  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2222  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2223 
2240  DLL_DECL int odapi_nonlinearity_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum,
2241  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2242 
2261  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum2(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
2262  int nonlinearityCorrectedSpectrumLength);
2263 
2279  DLL_DECL int odapi_nonlinearity_correct_spectrum2(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
2280  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2281 
2295  DLL_DECL void odapi_boxcar_correct_spectrum(long deviceID, int* errorCode, double* illuminatedSpectrum,
2296  unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth);
2297 
2314  DLL_DECL unsigned int odapi_get_scans_to_average(long deviceID, int* error_code);
2315 
2343  DLL_DECL void odapi_set_scans_to_average(long deviceID, int* error_code, unsigned int scansToAverage);
2344 
2345 
2364  DLL_DECL unsigned short int odapi_get_boxcar_width(long deviceID, int* error_code);
2365 
2387  DLL_DECL void odapi_set_boxcar_width(long deviceID, int* error_code, unsigned short int boxcarWidth);
2388 
2410  DLL_DECL int
2411  odapi_get_wavelengths(long deviceID, int *error_code, double *wavelengths, int length);
2412 
2432  DLL_DECL int odapi_get_wavelength_coeffs(long deviceID, int *error_code, double *coeff, int length);
2433 
2453  DLL_DECL int
2454  odapi_get_index_at_wavelength(long deviceID, int *error_code, double *wavelength, double approxWavelength);
2455 
2474  DLL_DECL int
2475  odapi_get_indices_at_wavelengths(long deviceID, int *error_code, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
2476 
2498  DLL_DECL int
2499  odapi_get_indices_at_wavelength_range(long deviceID, int *error_code, int *indices, int indicesLength,
2500  double *wavelength, int wavelengthLength, double lo, double hi);
2501 
2521  DLL_DECL int odapi_get_electric_dark_pixel_count(long deviceID, int *error_code);
2522 
2533  DLL_DECL int odapi_get_pixel_count(long deviceID, int *error_code);
2534 
2547  DLL_DECL int odapi_get_active_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2548 
2561  DLL_DECL int odapi_get_optical_dark_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2562 
2575  DLL_DECL int odapi_get_transition_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2576 
2589  DLL_DECL int odapi_get_bad_pixel_indices(long deviceID, int *error_code, int *badPixelsIndices, int badPixelSize);
2590 
2614  DLL_DECL int odapi_get_electric_dark_pixel_indices(long deviceID, int *error_code, int *indices, int length);
2615 
2635  DLL_DECL int
2636  odapi_adv_get_light_source_count(long deviceID, int* error_code);
2637 
2661  DLL_DECL unsigned char
2662  odapi_adv_light_source_has_enable(long deviceID, int *error_code,
2663  int light_source_index);
2664 
2684  DLL_DECL unsigned char
2685  odapi_adv_light_source_is_enabled(long deviceID, int *error_code,
2686  int light_source_index);
2687 
2709  DLL_DECL void
2710  odapi_adv_light_source_set_enable(long deviceID, int *error_code,
2711  int light_source_index, unsigned char enable);
2712 
2730  DLL_DECL void
2731  odapi_adv_set_lamp_enable(long deviceID, int *error_code, unsigned char lamp_enable);
2732 
2746  DLL_DECL bool
2747  odapi_adv_get_lamp_enable(long deviceID, int *error_code);
2748 
2762  DLL_DECL void
2763  odapi_adv_set_shutter_open(long deviceID, int* error_code, unsigned char shutter_state);
2764 
2778  DLL_DECL bool
2779  odapi_adv_get_shutter_state(long deviceID, int* error_code);
2780 
2797  DLL_DECL void
2798  odapi_adv_set_single_strobe_enable(long deviceID, int *error_code,
2799  unsigned char enable);
2800 
2817  DLL_DECL void
2818  odapi_adv_set_single_strobe_delay(long deviceID, int *error_code,
2819  unsigned long delay_micros);
2820 
2837  DLL_DECL void
2838  odapi_adv_set_single_strobe_width(long deviceID, int *error_code,
2839  unsigned long width_micros);
2840 
2857  DLL_DECL bool
2858  odapi_adv_get_single_strobe_enable(long deviceID, int *error_code);
2859 
2875  DLL_DECL unsigned long
2876  odapi_adv_get_single_strobe_delay(long deviceID, int *error_code);
2877 
2892  DLL_DECL unsigned long
2893  odapi_adv_get_single_strobe_width(long deviceID, int *error_code);
2894 
2908  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
2909 
2923  DLL_DECL bool odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
2924 
2938  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
2939 
2953  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
2954 
2971  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
2972 
2987  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
2988 
3004  DLL_DECL unsigned long
3005  odapi_adv_get_single_strobe_delay_minimum(long deviceID, int *error_code);
3006 
3022  DLL_DECL unsigned long
3023  odapi_adv_get_single_strobe_delay_maximum(long deviceID, int *error_code);
3024 
3038  DLL_DECL unsigned long
3039  odapi_adv_get_single_strobe_delay_increment(long deviceID, int *error_code);
3040 
3055  DLL_DECL unsigned long
3056  odapi_adv_get_single_strobe_width_minimum(long deviceID, int *error_code);
3057 
3072  DLL_DECL unsigned long
3073  odapi_adv_get_single_strobe_width_maximum(long deviceID, int *error_code);
3074 
3088  DLL_DECL unsigned long
3089  odapi_adv_get_single_strobe_width_increment(long deviceID, int *error_code);
3090 
3104  DLL_DECL unsigned long
3105  odapi_adv_get_single_strobe_cycle_maximum(long deviceID, int *error_code);
3106 
3120  DLL_DECL unsigned long
3121  odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
3122 
3136  DLL_DECL bool
3137  odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
3138 
3152  DLL_DECL unsigned long
3153  odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
3154 
3168  DLL_DECL unsigned long
3169  odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
3170 
3184  DLL_DECL unsigned long
3185  odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
3186 
3201  DLL_DECL unsigned long
3202  odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
3203 
3223  DLL_DECL void odapi_adv_set_continuous_strobe_enable(long deviceID, int *error_code, unsigned char enable);
3224 
3238  DLL_DECL void odapi_adv_set_continuous_strobe_period_micros(long deviceID, int *error_code, unsigned long period_micros);
3239 
3254  DLL_DECL void
3255  odapi_adv_set_continuous_strobe_width_micros(long deviceID, int *error_code, unsigned long width_micros);
3256 
3274  DLL_DECL void
3275  odapi_adv_set_led_enable(long deviceID, int *error_code, bool led_enable);
3276 
3290  DLL_DECL bool
3291  odapi_adv_get_led_enable(long deviceID, int *error_code);
3292 
3309  DLL_DECL double
3310  odapi_adv_tec_get_temperature_degrees_C(long deviceID, int *error_code);
3311 
3327  DLL_DECL void
3328  odapi_adv_tec_set_temperature_setpoint_degrees_C(long deviceID, int *error_code,
3329  double temperature_degrees_celsius);
3330 
3348  DLL_DECL void
3349  odapi_adv_tec_set_enable(long deviceID, int *error_code, unsigned char tec_enable);
3350 
3365  DLL_DECL bool
3366  odapi_adv_tec_get_enable(long deviceID, int *error_code);
3367 
3382  DLL_DECL float
3383  odapi_adv_tec_get_temperature_setpoint_degrees_C(long deviceID, int *error_code);
3384 
3399  DLL_DECL bool
3400  odapi_adv_tec_get_stable(long deviceID, int *error_code);
3401 
3416  DLL_DECL bool
3417  odapi_adv_tec_get_fan_enable(long deviceID, int *error_code);
3418 
3437  DLL_DECL int odapi_adv_get_nonlinearity_coeffs(long deviceID, int *error_code, double *buffer, int max_length);
3438 
3454  DLL_DECL int odapi_adv_get_nonlinearity_coeffs_count1(long deviceID, int *error_code);
3455 
3471  DLL_DECL double odapi_adv_get_nonlinearity_coeffs1(long deviceID, int *error_code, int index);
3472 
3489  DLL_DECL unsigned short int odapi_adv_get_revision_firmware(long deviceID, int *error_code, char *buffer, int length);
3490 
3507  DLL_DECL unsigned short int odapi_adv_get_revision_fpga(long deviceID, int *error_code, char *buffer, int length);
3508 
3520  DLL_DECL void odapi_adv_clear_data_buffer(long deviceID, int *error_code);
3521 
3534  DLL_DECL unsigned long odapi_adv_get_data_buffer_number_of_elements(long deviceID, int *error_code);
3535 
3549  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity(long deviceID, int *error_code);
3550 
3563  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_maximum(long deviceID, int *error_code);
3564 
3577  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_minimum(long deviceID, int *error_code);
3578 
3594  DLL_DECL void odapi_adv_set_data_buffer_capacity(long deviceID, int *error_code, unsigned long capacity);
3595 
3609  DLL_DECL void odapi_adv_set_data_buffer_enable(long deviceID, int *error_code, unsigned char flag);
3610 
3624  DLL_DECL bool odapi_adv_get_data_buffer_enable(long deviceID, int *error_code);
3625 
3637  DLL_DECL void odapi_adv_abort_acquisition(long deviceID, int *error_code);
3638 
3650  DLL_DECL void odapi_adv_acquire_spectra_to_buffer(long deviceID, int *error_code);
3651 
3664  DLL_DECL bool odapi_adv_get_device_idle_state(long deviceID, int *error_code);
3665 
3666 
3679  DLL_DECL unsigned long odapi_adv_get_number_of_backtoback_scans(long deviceID, int *error_code);
3680 
3694  DLL_DECL void odapi_adv_set_number_of_backtoback_scans(long deviceID, int *error_code, unsigned long numScans);
3695 
3708  DLL_DECL int odapi_adv_get_autonull_maximum_adc_count(long deviceID, int *error_code);
3709 
3722  DLL_DECL int odapi_adv_get_autonull_saturation_level(long deviceID, int *error_code);
3723 
3736  DLL_DECL int odapi_adv_get_autonull_baseline_level(long deviceID, int *error_code);
3737 
3752  DLL_DECL int odapi_get_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
3753 
3767  DLL_DECL void odapi_set_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
3768 
3782  DLL_DECL int odapi_get_user_string_count1(long deviceID, int *error_code);
3783 
3800  DLL_DECL int odapi_get_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
3801 
3817  DLL_DECL void odapi_set_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
3818 
3819 
3820 
3833  DLL_DECL int odapi_adv_get_device_original_vid(long deviceID, int *error_code);
3834 
3847  DLL_DECL int odapi_adv_get_device_original_pid(long deviceID, int *error_code);
3848 
3861  DLL_DECL int odapi_adv_get_device_vid(long deviceID, int *error_code);
3862 
3876  DLL_DECL void odapi_adv_set_device_vid(long deviceID, int *error_code, int vid);
3877 
3891  DLL_DECL void odapi_adv_set_device_pid(long deviceID, int *error_code, int pid);
3892 
3905  DLL_DECL int odapi_adv_get_device_pid(long deviceID, int *error_code);
3906 
3921  DLL_DECL int odapi_adv_get_device_original_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
3922 
3937  DLL_DECL int odapi_adv_get_device_original_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
3938 
3953  DLL_DECL int odapi_adv_get_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
3954 
3969  DLL_DECL void odapi_adv_set_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
3970 
3985  DLL_DECL int odapi_adv_get_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
3986 
4001  DLL_DECL void odapi_adv_set_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4002 
4017  DLL_DECL int odapi_adv_get_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
4018 
4032  DLL_DECL void odapi_adv_set_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
4033 
4046  DLL_DECL int odapi_adv_get_baud_rate(long deviceID, int *error_code);
4047 
4060  DLL_DECL void odapi_adv_set_baud_rate(long deviceID, int *error_code, int baudRate);
4061 
4073  DLL_DECL void odapi_adv_save_settings_to_flash(long deviceID, int *error_code);
4074 
4086  DLL_DECL void odapi_adv_reset_device(long deviceID, int *error_code);
4087 
4088 
4104  DLL_DECL bool odapi_adv_ipv4_is_dhcp_enabled(long deviceID, int *errorCode, unsigned char ifNum);
4105 
4119  DLL_DECL void odapi_adv_ipv4_set_dhcp_enable(long deviceID, int *errorCode, unsigned char ifNum, unsigned char enabled);
4120 
4136  DLL_DECL int odapi_adv_ipv4_get_number_of_ip_addresses(long deviceID, int *errorCode, unsigned char ifNum);
4137 
4160  DLL_DECL void odapi_adv_ipv4_read_ip_address(long deviceID, int *errorCode, unsigned char ifNum, unsigned char addressIndex,
4161  unsigned char *ipAddress, int ipAddressLength, unsigned int *netmask);
4162 
4181  DLL_DECL void odapi_adv_ipv4_add_static_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4182  unsigned char *ipAddress, int ipAddressLength, unsigned int netmask);
4183 
4197  DLL_DECL void odapi_adv_ipv4_delete_static_ip_address(long deviceID, int* errorCode, unsigned char ifNum, unsigned char addressIndex);
4198 
4199 
4218  DLL_DECL void odapi_adv_ipv4_set_default_gateway_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4219  unsigned char* ipAddress, int ipAddressLength);
4220 
4239  DLL_DECL void odapi_adv_ipv4_get_default_gateway_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4240  unsigned char* outIpAddress, int ipAddressLength);
4241 
4242 
4264  DLL_DECL void odapi_apply_electric_dark_correction_usage(long deviceID, int *error_code, unsigned char enable);
4265 
4284  DLL_DECL bool odapi_get_electric_dark_correction_usage(long deviceID, int *error_code);
4285 
4292  DLL_DECL int odapi_adv_get_gpio_pin_count(long deviceID, int* errorCode);
4293 
4301  DLL_DECL void odapi_adv_gpio_set_output_enable1(long deviceID, int *errorCode, int bit, bool isOutput);
4302 
4308  DLL_DECL void odapi_adv_gpio_set_output_enable2(long deviceID, int *errorCode, uint32_t bitmask);
4309 
4316  DLL_DECL bool odapi_adv_gpio_get_output_enable1(long deviceID, int *errorCode, int bit);
4317 
4323  DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(long deviceID, int *errorCode);
4324 
4331  DLL_DECL void odapi_adv_gpio_set_value1(long deviceID, int *errorCode, int bit, bool isHigh);
4332 
4338  DLL_DECL void odapi_adv_gpio_set_value2(long deviceID, int *errorCode, uint32_t bitmask);
4339 
4346  DLL_DECL bool odapi_adv_gpio_get_value1(long deviceID, int *errorCode, int bit);
4347 
4353  DLL_DECL uint32_t odapi_adv_gpio_get_value2(long deviceID, int *errorCode);
4354 
4365  DLL_DECL void odapi_adv_gpio_set_output_alternate1(long deviceID, int* errorCode, int bit, bool isAlternate);
4366 
4376  DLL_DECL void odapi_adv_gpio_set_output_alternate2(long deviceID, int* errorCode, uint32_t bitMask);
4377 
4388  DLL_DECL bool odapi_adv_gpio_get_output_alternate1(long deviceID, int* errorCode, int bit);
4389 
4399  DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(long deviceID, int* errorCode);
4400 
4401 
4402 
4403 
4411  DLL_DECL uint32_t odapi_adv_network_conf_get_interface_count(long deviceID, int* errorCode);
4412 
4421  DLL_DECL uint32_t odapi_adv_network_conf_get_interface_type(long deviceID, int* errorCode, unsigned int interfaceIndex);
4422 
4431  DLL_DECL bool odapi_adv_network_conf_get_interface_status(long deviceID, int* errorCode, unsigned int interfaceIndex);
4432 
4441  DLL_DECL void odapi_adv_network_conf_set_interface_status(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4442 
4456  DLL_DECL bool odapi_adv_network_conf_get_multicast_group_enabled(long deviceID, int* errorCode, unsigned int interfaceIndex);
4457 
4471  DLL_DECL void odapi_adv_network_conf_set_multicast_group_enabled(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4472 
4473 
4474 
4482  DLL_DECL void odapi_adv_network_conf_save_interface_setting(long deviceID, int* errorCode, unsigned int interfaceIndex);
4483 
4492  DLL_DECL bool odapi_adv_ethernet_get_gigabit_enable_status(long deviceID, int* errorCode, unsigned int interfaceIndex);
4493 
4502  DLL_DECL void odapi_adv_ethernet_set_gigabit_enable_status(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4503 
4515  DLL_DECL void odapi_adv_ethernet_get_mac_address(long deviceID, int* errorCode, unsigned int interfaceIndex, unsigned char* macAddress, int macAddressLength);
4516 
4528  DLL_DECL void odapi_adv_ethernet_set_mac_address(long deviceID, int* errorCode, uint32_t interfaceIndex, unsigned char* macAddress, int macAddressLength);
4529 
4530  //OBP2 Commands
4537  DLL_DECL unsigned char odapi_adv_get_ip_address_assigned_mode(long deviceID, int* errorCode);
4538 
4545  DLL_DECL void odapi_adv_set_ip_address_assigned_mode(long deviceID, int* errorCode, unsigned char useStaticIP);
4546 
4561  DLL_DECL void odapi_adv_get_network_configuration(long deviceID, int* errorCode, unsigned char* outManualAssignment,
4562  unsigned char* outIpv4Address, unsigned int ipv4AddressSize,
4563  unsigned char* outSubnetMask, unsigned int subnetMaskSize,
4564  unsigned char* outDefaultGateway, unsigned int defaultGatewaySize,
4565  unsigned char* outDNSServer, unsigned int dnsServerSize);
4566 
4580  DLL_DECL void odapi_adv_set_manual_network_configuration(long deviceID, int* errorCode,
4581  unsigned char* ipv4Address, unsigned int ipv4AddressSize,
4582  unsigned char* subnetMask, unsigned int subnetMaskSize,
4583  unsigned char* defaultGateway, unsigned int defaultGatewaySize,
4584  unsigned char* dnsServer, unsigned int dnsServerSize);
4585 
4599  DLL_DECL void odapi_adv_get_manual_network_configuration(long deviceID, int* errorCode,
4600  unsigned char* outIpv4Address, unsigned int ipv4AddressSize,
4601  unsigned char* outSubnetMask, unsigned int subnetMaskSize,
4602  unsigned char* outDefaultGateway, unsigned int defaultGatewaySize,
4603  unsigned char* outDNSServer, unsigned int dnsServerSize);
4604 #endif /* excluding C interface */
4605 #ifdef __cplusplus
4606 }
4607 #endif /* __cplusplus */
4608 #endif /* OCEAN_DIRECT_API_H */
Definition: Advance.h:67
Definition: OceanDirectAPI.h:150
int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength)
void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros)
int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength)
void getAPIVersionNumber(unsigned int *major, unsigned int *minor, unsigned int *point)
int getFormattedSpectrumLength(long deviceID, int *errorCode)
unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode)
int addNetworkDevice(const char *ipAddressStr, const char *deviceTypeStr, int *errorCode)
void setBoxcarWidth(long deviceID, int *errorCode, unsigned short int boxcarWidth)
int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize, double lo, double hi)
void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value)
bool nonLinearityCorrectionUsage(long deviceID, int *errorCode)
int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getDeviceIDs(long *ids, unsigned long maxLength)
unsigned short int getBoxcarWidth(long deviceID, int *errorCode)
bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId)
long long int getTime(long deviceID, int *errorCode)
int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getNetworkDeviceIDs(long *ids, unsigned long maxLength)
void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value)
unsigned long getDelayMaximumMicroseconds(long deviceID, int *errorCode)
void boxcarCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth)
unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int *errorCode)
int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length)
int darkCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
void openDevice(long deviceID, int *errorCode)
int getStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode)
unsigned long getDelayIncrementMicroseconds(long deviceID, int *errorCode)
int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength)
int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
int getElectricDarkPixelCount(long deviceID, int *errorCode)
int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length)
bool electricDarkCorrectionUsage(long deviceID, int *errorCode)
int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
int 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 setScansToAverage(long deviceID, int *errorCode, unsigned int scansToAverage)
void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int *errorCode)
int darkCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
void setDelayMicroseconds(long deviceID, int *errorCode, unsigned long delayMicroseconds)
int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length)
static OceanDirectAPI * getInstance()
unsigned int getScansToAverage(long deviceID, int *errorCode)
unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode)
int getTriggerMode(long deviceID, int *errorCode)
unsigned long getDelayMicroseconds(long deviceID, int *errorCode)
unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode)
unsigned long getIntegrationTimeIncrementMicros(long deviceID, int *errorCode)
int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength)
void closeDevice(long deviceID, int *errorCode)
This is an interface to OceanDirect that allows the user to connect to devices over USB and other bus...
Definition: OceanDirectAPI.h:144