OceanDirectLighthouseC++  3.1.1
OceanDirect Lighthouse 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 <vector>
43 #include <fstream>
44 #include <memory>
45 #include "common/devices/IDevice.h"
46 #include "api/advanced/Advance.h"
47 #include "common/public/SpectrumWithMetadata.h"
48 
49 extern "C" {
50  /* Redeclaration of the features enum with "friendlier" names for the public API.
51  * Use this with isFeatureEnabled to determine if a spectrometer has a give feature.
52  * Give it C linkage so it can be used by the C API.
53  */
54  enum FeatureId {
55  FEATURE_ID_SERIAL_NUMBER = oceandirect::api::serNo,
56  FEATURE_ID_SPECTROMETER = oceandirect::api::spectrm,
57  FEATURE_ID_THERMOELECTRIC = oceandirect::api::tec,
58  FEATURE_ID_IRRADCAL = oceandirect::api::iirad,
59  FEATURE_ID_EEPROM = oceandirect::api::eeprom,
60  FEATURE_ID_STROBE_LAMP = oceandirect::api::strobe,
61  FEATURE_ID_WAVECAL = oceandirect::api::wavecal,
62  FEATURE_ID_NONLINEARITYCAL = oceandirect::api::nonline,
63  FEATURE_ID_STRAYLIGHTCAL = oceandirect::api::stray,
64  FEATURE_ID_RAW_BUS_ACCESS = oceandirect::api::raw,
65  FEATURE_ID_CONTINUOUS_STROBE = oceandirect::api::contsrtb,
66  FEATURE_ID_LIGHT_SOURCE = oceandirect::api::light,
67  FEATURE_ID_TEMPERATURE = oceandirect::api::temper,
68  FEATURE_ID_OPTICAL_BENCH = oceandirect::api::optic,
69  FEATURE_ID_REVISION = oceandirect::api::revise,
70  FEATURE_ID_DATA_BUFFER = oceandirect::api::buffer,
71  FEATURE_ID_PIXEL_BINNING = oceandirect::api::binn,
72  FEATURE_ID_GPIO = oceandirect::api::gpio,
73  FEATURE_ID_SINGLE_STROBE = oceandirect::api::singlestrb,
74  FEATURE_ID_QUERY_STATUS = oceandirect::api::status,
75  FEATURE_ID_BACK_TO_BACK = oceandirect::api::backToBack,
76  FEATURE_ID_LED_ACTIVITY = oceandirect::api::activity,
77  FEATURE_ID_TIME_META = oceandirect::api::time,
78  FEATURE_ID_DHCP = oceandirect::api::dhcp,
79  FEATURE_ID_PIXEL = oceandirect::api::pixel,
80  FEATURE_ID_AUTO_NULLING = oceandirect::api::autonulling,
81  FEATURE_ID_IPV4_ADDRESS = oceandirect::api::ipv4address,
82  FEATURE_ID_IPV4_USER_STRING = oceandirect::api::userstring,
83  FEATURE_ID_DEVICE_INFORMATION = oceandirect::api::deviceInformation,
84  FEATURE_ID_DEVICE_ALIAS = oceandirect::api::deviceAlias,
85  FEATURE_ID_SERIAL_PORT = oceandirect::api::serialPort,
86  FEATURE_ID_SPECTRUM_ACQUISITION_CONTROL = oceandirect::api::spectrumAcquisitionControl,
87  FEATURE_ID_NETWORK_CONFIGURATION = oceandirect::api::networkConfiguration,
88  FEATURE_ID_ETHERNET = oceandirect::api::ethernet,
89  FEATURE_ID_SHUTTER = oceandirect::api::shutter,
90  FEATURE_ID_HIGH_GAIN_MODE = oceandirect::api::highGainMode
91  };
92  }
93 #else
94 #include <stdint.h>
95 #include <stdbool.h>
96  /* Redeclaration of the features enum with "friendlier" names for the public API.
97  * Use this with isFeatureEnabled to determine if a spectrometer has a give feature.
98  * Give it C linkage so it can be used by the C API.
99  */
100 enum FeatureId {
101  FEATURE_ID_SERIAL_NUMBER = serNo,
102  FEATURE_ID_SPECTROMETER = spectrm,
103  FEATURE_ID_THERMOELECTRIC = tec,
104  FEATURE_ID_IRRADCAL = iirad,
105  FEATURE_ID_EEPROM = eeprom,
106  FEATURE_ID_STROBE_LAMP = strobe,
107  FEATURE_ID_WAVECAL = wavecal,
108  FEATURE_ID_NONLINEARITYCAL = nonline,
109  FEATURE_ID_STRAYLIGHTCAL = stray,
110  FEATURE_ID_RAW_BUS_ACCESS = raw,
111  FEATURE_ID_CONTINUOUS_STROBE = contsrtb,
112  FEATURE_ID_LIGHT_SOURCE = light,
113  FEATURE_ID_TEMPERATURE = temper,
114  FEATURE_ID_OPTICAL_BENCH = optic,
115  FEATURE_ID_REVISION = revise,
116  FEATURE_ID_DATA_BUFFER = buffer,
117  FEATURE_ID_PIXEL_BINNING = binn,
118  FEATURE_ID_GPIO = gpio,
119  FEATURE_ID_SINGLE_STROBE = singlestrb,
120  FEATURE_ID_QUERY_STATUS = status,
121  FEATURE_ID_BACK_TO_BACK = backToBack,
122  FEATURE_ID_LED_ACTIVITY = activity,
123  FEATURE_ID_TIME_META = time,
124  FEATURE_ID_DHCP = dhcp,
125  FEATURE_ID_PIXEL = pixel,
126  FEATURE_ID_AUTO_NULLING = autonulling,
127  FEATURE_ID_IPV4_ADDRESS = ipv4address,
128  FEATURE_ID_IPV4_USER_STRING = userstring,
129  FEATURE_ID_DEVICE_INFORMATION = deviceInformation,
130  FEATURE_ID_DEVICE_ALIAS = deviceAlias,
131  FEATURE_ID_SERIAL_PORT = serialPort
132 };
133 #endif
134 
135 
136 #ifdef __cplusplus
147 namespace oceandirect {
148 
149  namespace api {
150 
151  class DeviceAdapter;
152 
153  class DLL_DECL OceanDirectAPI {
154  public:
165 
169  static void shutdown();
170 
178  virtual void getAPIVersionNumber(unsigned int* major, unsigned int* minor, unsigned int* point);
179  virtual void getAPIRCNumber(unsigned int* candidate);
180 
187  void setMulticastMsgSendRetry(size_t retryCount);
188 
195  void setMulticastMsgResponseReadRetry(size_t retryCount);
196 
203  void setMulticastMsgResponseReadDelay(size_t delayMs);
204 
214  virtual int probeDevices();
215 
228  virtual void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int* errorCode);
229 
238  virtual int detectNetworkDevices();
239 
248  virtual int getNumberOfDeviceIDs();
249 
263  virtual int getDeviceIDs(long *ids, unsigned long maxLength);
264 
278  virtual int getNetworkDeviceIDs(long* ids, unsigned long maxLength);
279 
280 
294  virtual void openDevice(long deviceID, int *errorCode);
295 
309  virtual int addNetworkDevice(const char* ipAddressStr, const char* deviceTypeStr, int* errorCode);
310 
321  virtual void closeDevice(long deviceID, int *errorCode);
322 
335  virtual int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length);
336 
337 
350  virtual int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength);
351 
363  virtual unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType);
364 
372 
382  virtual bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId);
383 
398  virtual int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength);
399 
411  virtual unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode);
412 
431  virtual void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value);
432 
443  virtual bool nonLinearityCorrectionUsage(long deviceID, int *errorCode);
444 
464  virtual void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value);
465 
478  virtual bool electricDarkCorrectionUsage(long deviceID, int *errorCode);
479 
492  virtual long long int getTime(long deviceID, int *errorCode);
493 
507  virtual void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond);
508 
509  /* Spectrometer capabilities */
510 
524  virtual int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length);
525 
539  virtual int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length);
540 
541 
563  virtual void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros);
564 
577  virtual unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode);
578 
591  virtual unsigned long getIntegrationTimeIncrementMicros(long deviceID, int* errorCode);
592 
610  virtual unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode);
611 
629  virtual unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int* errorCode);
630 
642  virtual unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode);
643 
655  virtual double getMaximumIntensity(long deviceID, int *errorCode);
656 
668  virtual int getFormattedSpectrumLength(long deviceID, int *errorCode);
669 
684  virtual int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength);
685 
710  virtual int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength);
711 
724  virtual void setStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
725 
740  virtual int getStoredDarkSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
741 
759  virtual int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
760  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
761 
776  virtual int darkCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
777  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
778 
796  virtual int getDarkCorrectedSpectrum(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
797 
812  virtual int darkCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
813  int illuminatedSpectrumLength, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
814 
833  virtual int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
834  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
835 
852  virtual int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* illuminatedSpectrum,
853  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
854 
873  virtual int getNonlinearityCorrectedSpectrum(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
874  int nonlinearityCorrectedSpectrumLength);
875 
891  virtual int nonlinearityCorrectSpectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
892  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
893 
907  void boxcarCorrectSpectrum(long deviceID, int* errorCode, const double* illuminatedSpectrum, unsigned int illuminatedSpectrumLength,
908  unsigned int boxcarWidth, double* boxcarCorrectedSpectrum, unsigned int boxcarCorrectedSpectrumLength);
909 
923  virtual unsigned int getScansToAverage(long deviceID, int* errorCode);
924 
945  virtual void setScansToAverage(long deviceID, int* errorCode, unsigned int scansToAverage);
946 
962  virtual unsigned short int getBoxcarWidth(long deviceID, int* errorCode);
963 
981  virtual void setBoxcarWidth(long deviceID, int* errorCode, unsigned short int boxcarWidth);
982 
997  virtual void setTriggerMode(long deviceID, int *errorCode, int mode);
998 
1014  virtual int getTriggerMode(long deviceID, int *errorCode);
1015 
1029  virtual void setAcquisitionDelayMicroseconds(long deviceID, int* errorCode, unsigned long delayMicroseconds);
1030 
1043  virtual unsigned long getAcquisitionDelayMicroseconds(long deviceID, int* errorCode);
1044 
1059  virtual unsigned long getAcquisitionDelayIncrementMicroseconds(long deviceID, int* errorCode);
1060 
1073  virtual unsigned long getAcquisitionDelayMaximumMicroseconds(long deviceID, int* errorCode);
1074 
1087  virtual unsigned long getAcquisitionDelayMinimumMicroseconds(long deviceID, int* errorCode);
1088 
1101  virtual int getElectricDarkPixelCount(long deviceID, int *errorCode);
1102 
1117  virtual int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length);
1118 
1135  virtual int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize,
1136  double lo, double hi);
1137 
1157  virtual int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
1158 
1171  virtual int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength);
1172 
1173  virtual IDevice *getDeviceByID(long id);
1174 
1175 
1185  virtual int getErrorMessage(int errorCode, char* returnMessage, int length);
1186 
1194  virtual int getErrorStringLength(int errorCode);
1195 
1196  virtual ~OceanDirectAPI();
1197 
1198  friend class OceanDirectAdminAPI;
1199  friend class NetOceanDirectAdmin;
1200  private:
1201  static constexpr int OBP1_TCP_IP_PORT = 57357;
1202  static constexpr int OBP2_TCP_IP_PORT = 57350;
1203  friend class InstrumentedOceanDirectAPI;
1204  protected:
1205 
1209  virtual std::string getDeviceModel(long deviceID, int* errorCode, int index);
1210 
1223  virtual long addTCPIPv4DeviceLocation(const char *deviceTypeName, std::string ipAddr, int port, int* errorCode);
1224 
1225  virtual long addTCPIPv4OBP2DeviceLocation(const char* deviceTypeName, std::string ipAddr,
1226  int port, int* errorCode);
1227 
1228  OceanDirectAPI();
1229 
1230  static OceanDirectAPI* instance;
1231 
1232  //std::vector<IDevice*> probedDevices;
1233  //std::vector<IDevice*> specifiedDevices;
1234 
1235  private:
1236  // private log file and methods for the instrumentation
1237  static std::shared_ptr<std::ofstream> logFile;
1238  static OceanDirectAPI* getInstance(const char* log);
1239  static void shutdownInstrumentation();
1240  int probeInstrumentedDevices();
1241 
1242  static constexpr int TCP_IP_PORT = 57357;
1243  static size_t multicastMsgSendRetry;
1244  static size_t multicastMsgResponseReadRetry;
1245  static size_t multicastMsgResponseReadDelay;
1246  };
1247  }
1248 }
1249 
1250 extern "C" {
1251 #endif /* __cplusplus */
1252 #if 1
1253  /* All of these C functions start with odapi_ to prevent namespace
1254  * collisions.
1255  */
1256 
1264  DLL_DECL void odapi_initialize();
1265 
1271  DLL_DECL void odapi_shutdown();
1272 
1280  DLL_DECL double odapi_get_api_version();
1281 
1290  DLL_DECL void odapi_get_api_version_numbers(unsigned int* major, unsigned int* minor, unsigned int* point);
1291  DLL_DECL void odapi_get_rc_version_number(unsigned int* candidate);
1292 
1299  DLL_DECL void odapi_set_multicast_msg_send_retry(unsigned int retryCount);
1300 
1308  DLL_DECL void odapi_set_multicast_msg_response_read_retry(unsigned int retryCount);
1309 
1316  DLL_DECL void odapi_set_multicast_msg_response_read_delay(unsigned int delayMs);
1317 
1318 
1338  DLL_DECL void
1339  odapi_add_RS232_device_location(char *deviceTypeName, char *deviceBusPath,
1340  unsigned int baud, int* errorCode);
1341 
1357  DLL_DECL int
1358  odapi_probe_devices();
1359 
1370  DLL_DECL int
1371  odapi_get_number_of_device_ids();
1372 
1389  DLL_DECL int
1390  odapi_get_device_ids(long *ids, unsigned int max_ids);
1391 
1408  DLL_DECL int
1409  odapi_get_network_device_ids(long* ids, unsigned int max_ids);
1410 
1417  DLL_DECL int odapi_detect_network_devices();
1418 
1438  DLL_DECL void
1439  odapi_open_device(long id, int *error_code);
1440 
1455  DLL_DECL long
1456  odapi_add_network_devices(const char* ipAddressStr, const char* deviceTypeStr, int* error_code);
1457 
1470  DLL_DECL void
1471  odapi_close_device(long id, int *error_code);
1472 
1484  DLL_DECL int
1485  odapi_get_error_string(int error_code, char* error_string, int length);
1494  DLL_DECL int
1495  odapi_get_error_string_length(int error_code);
1496 
1518  DLL_DECL int
1519  odapi_get_device_type(long id, int *error_code,
1520  char *buffer, unsigned int length);
1521 
1538  DLL_DECL int
1539  odapi_get_device_name(long id, int *error_code,
1540  char *buffer, unsigned int length);
1541 
1556  DLL_DECL unsigned char
1557  odapi_get_device_usb_endpoint_primary_out(long id, int *error_code);
1558 
1573  DLL_DECL unsigned char
1574  odapi_get_device_usb_endpoint_primary_in(long id, int *error_code);
1575 
1590  DLL_DECL unsigned char
1591  odapi_get_device_usb_endpoint_secondary_out(long id, int *error_code);
1592 
1607  DLL_DECL unsigned char
1608  odapi_get_device_usb_endpoint_secondary_in(long id, int *error_code);
1609 
1624  DLL_DECL unsigned char
1625  odapi_get_device_usb_endpoint_secondary_in2(long id, int *error_code);
1626 
1640  DLL_DECL bool
1641  odapi_is_feature_enabled(long deviceID, int *errorCode, enum FeatureId featureID);
1642 
1664  DLL_DECL int
1665  odapi_get_serial_number(long deviceID, int *error_code, char *buffer, int buffer_length);
1666 
1682  DLL_DECL unsigned char
1683  odapi_get_serial_number_maximum_length(long deviceID, int *error_code);
1684 
1703  DLL_DECL long long int
1704  odapi_get_time(long deviceID, int *error_code);
1705 
1721  DLL_DECL void
1722  odapi_set_time(long deviceID, int *error_code, long long int time_in_microsecond);
1723 
1746  DLL_DECL void odapi_apply_nonlinearity_correct_usage(long deviceID, int *error_code, bool use);
1747 
1764  DLL_DECL bool odapi_get_nonlinearity_correct_usage(long deviceID, int *error_code);
1765 
1785  DLL_DECL void
1786  odapi_adv_set_trigger_mode(long deviceID, int *error_code, int mode);
1787 
1806  DLL_DECL int
1807  odapi_adv_get_trigger_mode(long deviceID, int *error_code);
1808 
1826  DLL_DECL void
1827  odapi_set_trigger_mode(long deviceID, int *error_code, int mode);
1828 
1848  DLL_DECL int
1849  odapi_get_trigger_mode(long deviceID, int *error_code);
1850 
1866  DLL_DECL void odapi_set_acquisition_delay_microseconds(long deviceID, int* errorCode, unsigned long delay_usec);
1867 
1888  DLL_DECL unsigned long odapi_get_acquisition_delay_microseconds(long deviceID, int* errorCode);
1889 
1903  DLL_DECL unsigned long odapi_get_acquisition_delay_increment_microseconds(long deviceID, int* errorCode);
1904 
1918  DLL_DECL unsigned long odapi_get_acquisition_delay_maximum_microseconds(long deviceID, int* errorCode);
1919 
1933  DLL_DECL unsigned long odapi_get_acquisition_delay_minimum_microseconds(long deviceID, int* errorCode);
1934 
1961  DLL_DECL void
1962  odapi_set_integration_time_micros(long deviceID,
1963  int *error_code, unsigned long integration_time_micros);
1964 
1983  DLL_DECL unsigned long
1984  odapi_get_integration_time_micros(long deviceID, int *error_code);
1985 
2008  DLL_DECL unsigned long
2009  odapi_get_minimum_integration_time_micros(long deviceID, int *error_code);
2010 
2026  DLL_DECL unsigned long
2027  odapi_get_integration_time_increment_micros(long deviceID, int* error_code);
2028 
2050  DLL_DECL unsigned long
2051  odapi_get_minimum_averaging_integration_time_micros(long deviceID, int* error_code);
2052 
2069  DLL_DECL unsigned long
2070  odapi_get_maximum_integration_time_micros(long deviceID, int *error_code);
2071 
2088  DLL_DECL double
2089  odapi_get_maximum_intensity(long deviceID, int *error_code);
2090 
2111  DLL_DECL int
2112  odapi_get_raw_spectrum_with_metadata(long deviceID, int *error_code, double *buffer[], int buffer_row_size, int buffer_column_size,
2113  long long int *tick_count, int tick_count_size);
2114 
2131  DLL_DECL int
2132  odapi_get_formatted_spectrum_length(long deviceID, int *error_code);
2133 
2155  DLL_DECL int
2156  odapi_get_formatted_spectrum(long deviceID, int *error_code,
2157  double* buffer, int buffer_length);
2158 
2171  DLL_DECL void odapi_set_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2172 
2187  DLL_DECL int odapi_get_stored_dark_spectrum(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength);
2188 
2206  DLL_DECL int odapi_get_dark_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2207  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2208 
2223  DLL_DECL int odapi_dark_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum, int illuminatedSpectrumLength,
2224  double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2225 
2243  DLL_DECL int odapi_get_dark_corrected_spectrum2(long deviceID, int* errorCode, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2244 
2259  DLL_DECL int odapi_dark_correct_spectrum2(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
2260  int illuminatedSpectrumLength, double* darkCorrectedSpectrum, int darkCorrectedSpectrumLength);
2261 
2280  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum1(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength,
2281  double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2282 
2299  DLL_DECL int odapi_nonlinearity_correct_spectrum1(long deviceID, int* errorCode, double* illuminatedSpectrum,
2300  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2301 
2320  DLL_DECL int odapi_get_nonlinearity_corrected_spectrum2(long deviceID, int* errorCode, double* nonlinearityCorrectedSpectrum,
2321  int nonlinearityCorrectedSpectrumLength);
2322 
2338  DLL_DECL int odapi_nonlinearity_correct_spectrum2(long deviceID, int* errorCode, double* darkSpectrum, int darkSpectrumLength, double* illuminatedSpectrum,
2339  int illuminatedSpectrumLength, double* nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength);
2340 
2354  DLL_DECL void odapi_boxcar_correct_spectrum(long deviceID, int* errorCode, double* illuminatedSpectrum, unsigned int illuminatedSpectrumLength,
2355  unsigned int boxcarWidth, double* boxcarCorrectedSpectrum, unsigned int boxcarCorrectedSpectrumLength);
2356 
2373  DLL_DECL unsigned int odapi_get_scans_to_average(long deviceID, int* error_code);
2374 
2402  DLL_DECL void odapi_set_scans_to_average(long deviceID, int* error_code, unsigned int scansToAverage);
2403 
2404 
2423  DLL_DECL unsigned short int odapi_get_boxcar_width(long deviceID, int* error_code);
2424 
2446  DLL_DECL void odapi_set_boxcar_width(long deviceID, int* error_code, unsigned short int boxcarWidth);
2447 
2469  DLL_DECL int
2470  odapi_get_wavelengths(long deviceID, int *error_code, double *wavelengths, int length);
2471 
2491  DLL_DECL int odapi_get_wavelength_coeffs(long deviceID, int *error_code, double *coeff, int length);
2492 
2512  DLL_DECL int
2513  odapi_get_index_at_wavelength(long deviceID, int *error_code, double *wavelength, double approxWavelength);
2514 
2533  DLL_DECL int
2534  odapi_get_indices_at_wavelengths(long deviceID, int *error_code, int *indices, int indicesLength, double *wavelength, int wavelengthLength);
2535 
2557  DLL_DECL int
2558  odapi_get_indices_at_wavelength_range(long deviceID, int *error_code, int *indices, int indicesLength,
2559  double *wavelength, int wavelengthLength, double lo, double hi);
2560 
2580  DLL_DECL int odapi_get_electric_dark_pixel_count(long deviceID, int *error_code);
2581 
2592  DLL_DECL int odapi_get_pixel_count(long deviceID, int *error_code);
2593 
2606  DLL_DECL int odapi_get_active_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2607 
2620  DLL_DECL int odapi_get_optical_dark_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2621 
2634  DLL_DECL int odapi_get_transition_pixel_range(long deviceID, int *error_code, int *range, int rangeSize);
2635 
2648  DLL_DECL int odapi_get_bad_pixel_indices(long deviceID, int *error_code, int *badPixelsIndices, int badPixelSize);
2649 
2673  DLL_DECL int odapi_get_electric_dark_pixel_indices(long deviceID, int *error_code, int *indices, int length);
2674 
2694  DLL_DECL int
2695  odapi_adv_get_light_source_count(long deviceID, int* error_code);
2696 
2720  DLL_DECL unsigned char
2721  odapi_adv_light_source_has_enable(long deviceID, int *error_code,
2722  int light_source_index);
2723 
2743  DLL_DECL unsigned char
2744  odapi_adv_light_source_is_enabled(long deviceID, int *error_code,
2745  int light_source_index);
2746 
2768  DLL_DECL void
2769  odapi_adv_light_source_set_enable(long deviceID, int *error_code,
2770  int light_source_index, unsigned char enable);
2771 
2789  DLL_DECL void
2790  odapi_adv_set_lamp_enable(long deviceID, int *error_code, unsigned char lamp_enable);
2791 
2805  DLL_DECL bool
2806  odapi_adv_get_lamp_enable(long deviceID, int *error_code);
2807 
2821  DLL_DECL void
2822  odapi_adv_set_shutter_open(long deviceID, int* error_code, unsigned char shutter_state);
2823 
2837  DLL_DECL bool
2838  odapi_adv_get_shutter_state(long deviceID, int* error_code);
2839 
2856  DLL_DECL void
2857  odapi_adv_set_single_strobe_enable(long deviceID, int *error_code,
2858  unsigned char enable);
2859 
2876  DLL_DECL void
2877  odapi_adv_set_single_strobe_delay(long deviceID, int *error_code,
2878  unsigned long delay_micros);
2879 
2896  DLL_DECL void
2897  odapi_adv_set_single_strobe_width(long deviceID, int *error_code,
2898  unsigned long width_micros);
2899 
2916  DLL_DECL bool
2917  odapi_adv_get_single_strobe_enable(long deviceID, int *error_code);
2918 
2934  DLL_DECL unsigned long
2935  odapi_adv_get_single_strobe_delay(long deviceID, int *error_code);
2936 
2951  DLL_DECL unsigned long
2952  odapi_adv_get_single_strobe_width(long deviceID, int *error_code);
2953 
2967  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
2968 
2982  DLL_DECL bool odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
2983 
2997  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
2998 
3012  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
3013 
3030  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
3031 
3046  DLL_DECL unsigned long odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
3047 
3063  DLL_DECL unsigned long
3064  odapi_adv_get_single_strobe_delay_minimum(long deviceID, int *error_code);
3065 
3081  DLL_DECL unsigned long
3082  odapi_adv_get_single_strobe_delay_maximum(long deviceID, int *error_code);
3083 
3097  DLL_DECL unsigned long
3098  odapi_adv_get_single_strobe_delay_increment(long deviceID, int *error_code);
3099 
3114  DLL_DECL unsigned long
3115  odapi_adv_get_single_strobe_width_minimum(long deviceID, int *error_code);
3116 
3131  DLL_DECL unsigned long
3132  odapi_adv_get_single_strobe_width_maximum(long deviceID, int *error_code);
3133 
3147  DLL_DECL unsigned long
3148  odapi_adv_get_single_strobe_width_increment(long deviceID, int *error_code);
3149 
3163  DLL_DECL unsigned long
3164  odapi_adv_get_single_strobe_cycle_maximum(long deviceID, int *error_code);
3165 
3179  DLL_DECL unsigned long
3180  odapi_adv_get_continuous_strobe_period_micros(long deviceID, int *error_code);
3181 
3195  DLL_DECL bool
3196  odapi_adv_get_continuous_strobe_enable(long deviceID, int *error_code);
3197 
3211  DLL_DECL unsigned long
3212  odapi_adv_get_continuous_strobe_period_minimum_micros(long deviceID, int *error_code);
3213 
3227  DLL_DECL unsigned long
3228  odapi_adv_get_continuous_strobe_period_maximum_micros(long deviceID, int *error_code);
3229 
3243  DLL_DECL unsigned long
3244  odapi_adv_get_continuous_strobe_period_increment_micros(long deviceID, int *error_code);
3245 
3260  DLL_DECL unsigned long
3261  odapi_adv_get_continuous_strobe_width_micros(long deviceID, int *error_code);
3262 
3282  DLL_DECL void odapi_adv_set_continuous_strobe_enable(long deviceID, int *error_code, unsigned char enable);
3283 
3297  DLL_DECL void odapi_adv_set_continuous_strobe_period_micros(long deviceID, int *error_code, unsigned long period_micros);
3298 
3313  DLL_DECL void
3314  odapi_adv_set_continuous_strobe_width_micros(long deviceID, int *error_code, unsigned long width_micros);
3315 
3333  DLL_DECL void
3334  odapi_adv_set_led_enable(long deviceID, int *error_code, bool led_enable);
3335 
3349  DLL_DECL bool
3350  odapi_adv_get_led_enable(long deviceID, int *error_code);
3351 
3368  DLL_DECL double
3369  odapi_adv_tec_get_temperature_degrees_C(long deviceID, int *error_code);
3370 
3386  DLL_DECL void
3387  odapi_adv_tec_set_temperature_setpoint_degrees_C(long deviceID, int *error_code,
3388  double temperature_degrees_celsius);
3389 
3407  DLL_DECL void
3408  odapi_adv_tec_set_enable(long deviceID, int *error_code, unsigned char tec_enable);
3409 
3424  DLL_DECL bool
3425  odapi_adv_tec_get_enable(long deviceID, int *error_code);
3426 
3441  DLL_DECL float
3442  odapi_adv_tec_get_temperature_setpoint_degrees_C(long deviceID, int *error_code);
3443 
3458  DLL_DECL bool
3459  odapi_adv_tec_get_stable(long deviceID, int *error_code);
3460 
3475  DLL_DECL bool
3476  odapi_adv_tec_get_fan_enable(long deviceID, int *error_code);
3477 
3496  DLL_DECL int odapi_adv_get_nonlinearity_coeffs(long deviceID, int *error_code, double *buffer, int max_length);
3497 
3513  DLL_DECL int odapi_adv_get_nonlinearity_coeffs_count1(long deviceID, int *error_code);
3514 
3530  DLL_DECL double odapi_adv_get_nonlinearity_coeffs1(long deviceID, int *error_code, int index);
3531 
3548  DLL_DECL unsigned short int odapi_adv_get_revision_firmware(long deviceID, int *error_code, char *buffer, int length);
3549 
3566  DLL_DECL unsigned short int odapi_adv_get_revision_fpga(long deviceID, int *error_code, char *buffer, int length);
3567 
3584  DLL_DECL unsigned short int odapi_adv_get_revision_system(long deviceID, int* error_code, char* buffer, int length);
3585 
3586 
3598  DLL_DECL void odapi_adv_clear_data_buffer(long deviceID, int *error_code);
3599 
3612  DLL_DECL unsigned long odapi_adv_get_data_buffer_number_of_elements(long deviceID, int *error_code);
3613 
3627  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity(long deviceID, int *error_code);
3628 
3641  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_maximum(long deviceID, int *error_code);
3642 
3655  DLL_DECL unsigned long odapi_adv_get_data_buffer_capacity_minimum(long deviceID, int *error_code);
3656 
3672  DLL_DECL void odapi_adv_set_data_buffer_capacity(long deviceID, int *error_code, unsigned long capacity);
3673 
3687  DLL_DECL void odapi_adv_set_data_buffer_enable(long deviceID, int *error_code, unsigned char flag);
3688 
3702  DLL_DECL bool odapi_adv_get_data_buffer_enable(long deviceID, int *error_code);
3703 
3715  DLL_DECL void odapi_adv_abort_acquisition(long deviceID, int *error_code);
3716 
3728  DLL_DECL void odapi_adv_acquire_spectra_to_buffer(long deviceID, int *error_code);
3729 
3742  DLL_DECL bool odapi_adv_get_device_idle_state(long deviceID, int *error_code);
3743 
3744 
3757  DLL_DECL unsigned long odapi_adv_get_number_of_backtoback_scans(long deviceID, int *error_code);
3758 
3772  DLL_DECL void odapi_adv_set_number_of_backtoback_scans(long deviceID, int *error_code, unsigned long numScans);
3773 
3786  DLL_DECL int odapi_adv_get_autonull_maximum_adc_count(long deviceID, int *error_code);
3787 
3800  DLL_DECL int odapi_adv_get_autonull_saturation_level(long deviceID, int *error_code);
3801 
3814  DLL_DECL int odapi_adv_get_autonull_baseline_level(long deviceID, int *error_code);
3815 
3828  DLL_DECL int odapi_adv_get_autonull_fpga_digital_gain(long deviceID, int* error_code);
3829 
3842  DLL_DECL int odapi_adv_get_autonull_fpga_digital_offset(long deviceID, int* error_code);
3843 
3844 
3845 
3860  DLL_DECL int odapi_get_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
3861 
3875  DLL_DECL void odapi_set_user_string(long deviceID, int *error_code, char *buffer, int buffer_length);
3876 
3890  DLL_DECL int odapi_get_user_string_count1(long deviceID, int *error_code);
3891 
3908  DLL_DECL int odapi_get_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
3909 
3925  DLL_DECL void odapi_set_user_string1(long deviceID, int *error_code, int index, char *buffer, int buffer_length);
3926 
3927 
3928 
3941  DLL_DECL int odapi_adv_get_device_original_vid(long deviceID, int *error_code);
3942 
3955  DLL_DECL int odapi_adv_get_device_original_pid(long deviceID, int *error_code);
3956 
3969  DLL_DECL int odapi_adv_get_device_vid(long deviceID, int *error_code);
3970 
3984  DLL_DECL void odapi_adv_set_device_vid(long deviceID, int *error_code, int vid);
3985 
3999  DLL_DECL void odapi_adv_set_device_pid(long deviceID, int *error_code, int pid);
4000 
4013  DLL_DECL int odapi_adv_get_device_pid(long deviceID, int *error_code);
4014 
4029  DLL_DECL int odapi_adv_get_device_original_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4030 
4045  DLL_DECL int odapi_adv_get_device_original_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4046 
4061  DLL_DECL int odapi_adv_get_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4062 
4077  DLL_DECL void odapi_adv_set_device_manufacturer_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4078 
4093  DLL_DECL int odapi_adv_get_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4094 
4109  DLL_DECL void odapi_adv_set_device_model_string(long deviceID, int *error_code, char *buffer, int bufferLength);
4110 
4125  DLL_DECL int odapi_adv_get_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
4126 
4140  DLL_DECL void odapi_adv_set_device_alias(long deviceID, int *error_code, char *buffer, int bufferLength);
4141 
4154  DLL_DECL int odapi_adv_get_baud_rate(long deviceID, int *error_code);
4155 
4168  DLL_DECL void odapi_adv_set_baud_rate(long deviceID, int *error_code, int baudRate);
4169 
4181  DLL_DECL void odapi_adv_save_settings_to_flash(long deviceID, int *error_code);
4182 
4194  DLL_DECL void odapi_adv_reset_device(long deviceID, int *error_code);
4195 
4196 
4212  DLL_DECL bool odapi_adv_ipv4_is_dhcp_enabled(long deviceID, int *errorCode, unsigned char ifNum);
4213 
4227  DLL_DECL void odapi_adv_ipv4_set_dhcp_enable(long deviceID, int *errorCode, unsigned char ifNum, unsigned char enabled);
4228 
4244  DLL_DECL int odapi_adv_ipv4_get_number_of_ip_addresses(long deviceID, int *errorCode, unsigned char ifNum);
4245 
4268  DLL_DECL void odapi_adv_ipv4_read_ip_address(long deviceID, int *errorCode, unsigned char ifNum, unsigned char addressIndex,
4269  unsigned char *ipAddress, int ipAddressLength, unsigned int *netmask);
4270 
4289  DLL_DECL void odapi_adv_ipv4_add_static_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4290  unsigned char *ipAddress, int ipAddressLength, unsigned int netmask);
4291 
4305  DLL_DECL void odapi_adv_ipv4_delete_static_ip_address(long deviceID, int* errorCode, unsigned char ifNum, unsigned char addressIndex);
4306 
4307 
4326  DLL_DECL void odapi_adv_ipv4_set_default_gateway_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4327  unsigned char* ipAddress, int ipAddressLength);
4328 
4347  DLL_DECL void odapi_adv_ipv4_get_default_gateway_ip_address(long deviceID, int* errorCode, unsigned char ifNum,
4348  unsigned char* outIpAddress, int ipAddressLength);
4349 
4350 
4372  DLL_DECL void odapi_apply_electric_dark_correction_usage(long deviceID, int *error_code, unsigned char enable);
4373 
4392  DLL_DECL bool odapi_get_electric_dark_correction_usage(long deviceID, int *error_code);
4393 
4400  DLL_DECL int odapi_adv_get_gpio_pin_count(long deviceID, int* errorCode);
4401 
4409  DLL_DECL void odapi_adv_gpio_set_output_enable1(long deviceID, int *errorCode, int bit, bool isOutput);
4410 
4416  DLL_DECL void odapi_adv_gpio_set_output_enable2(long deviceID, int *errorCode, uint32_t bitmask);
4417 
4424  DLL_DECL bool odapi_adv_gpio_get_output_enable1(long deviceID, int *errorCode, int bit);
4425 
4431  DLL_DECL uint32_t odapi_adv_gpio_get_output_enable2(long deviceID, int *errorCode);
4432 
4439  DLL_DECL void odapi_adv_gpio_set_value1(long deviceID, int *errorCode, int bit, bool isHigh);
4440 
4446  DLL_DECL void odapi_adv_gpio_set_value2(long deviceID, int *errorCode, uint32_t bitmask);
4447 
4454  DLL_DECL bool odapi_adv_gpio_get_value1(long deviceID, int *errorCode, int bit);
4455 
4461  DLL_DECL uint32_t odapi_adv_gpio_get_value2(long deviceID, int *errorCode);
4462 
4473  DLL_DECL void odapi_adv_gpio_set_output_alternate1(long deviceID, int* errorCode, int bit, bool isAlternate);
4474 
4484  DLL_DECL void odapi_adv_gpio_set_output_alternate2(long deviceID, int* errorCode, uint32_t bitMask);
4485 
4496  DLL_DECL bool odapi_adv_gpio_get_output_alternate1(long deviceID, int* errorCode, int bit);
4497 
4507  DLL_DECL uint32_t odapi_adv_gpio_get_output_alternate2(long deviceID, int* errorCode);
4508 
4509 
4510 
4511 
4519  DLL_DECL uint32_t odapi_adv_network_conf_get_interface_count(long deviceID, int* errorCode);
4520 
4529  DLL_DECL uint32_t odapi_adv_network_conf_get_interface_type(long deviceID, int* errorCode, unsigned int interfaceIndex);
4530 
4539  DLL_DECL bool odapi_adv_network_conf_get_interface_status(long deviceID, int* errorCode, unsigned int interfaceIndex);
4540 
4549  DLL_DECL void odapi_adv_network_conf_set_interface_status(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4550 
4564  DLL_DECL bool odapi_adv_network_conf_get_multicast_group_enabled(long deviceID, int* errorCode, unsigned int interfaceIndex);
4565 
4579  DLL_DECL void odapi_adv_network_conf_set_multicast_group_enabled(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4580 
4581 
4582 
4590  DLL_DECL void odapi_adv_network_conf_save_interface_setting(long deviceID, int* errorCode, unsigned int interfaceIndex);
4591 
4600  DLL_DECL bool odapi_adv_ethernet_get_gigabit_enable_status(long deviceID, int* errorCode, unsigned int interfaceIndex);
4601 
4610  DLL_DECL void odapi_adv_ethernet_set_gigabit_enable_status(long deviceID, int* errorCode, unsigned int interfaceIndex, bool enable);
4611 
4623  DLL_DECL void odapi_adv_ethernet_get_mac_address(long deviceID, int* errorCode, unsigned int interfaceIndex, unsigned char* macAddress, int macAddressLength);
4624 
4636  DLL_DECL void odapi_adv_ethernet_set_mac_address(long deviceID, int* errorCode, uint32_t interfaceIndex, unsigned char* macAddress, int macAddressLength);
4637 
4638  //OBP2 Commands
4646  DLL_DECL unsigned char odapi_adv_get_ip_address_assigned_mode(long deviceID, int* errorCode);
4647 
4655  DLL_DECL void odapi_adv_set_ip_address_assigned_mode(long deviceID, int* errorCode, unsigned char useDHCP);
4656 
4671  DLL_DECL void odapi_adv_get_network_configuration(long deviceID, int* errorCode, unsigned char* outIpAddressAssignment,
4672  unsigned char* outIpv4Address, unsigned int ipv4AddressSize,
4673  unsigned char* outSubnetMask, unsigned int subnetMaskSize,
4674  unsigned char* outDefaultGateway, unsigned int defaultGatewaySize,
4675  unsigned char* outDNSServer, unsigned int dnsServerSize);
4676 
4691  DLL_DECL void odapi_adv_set_manual_network_configuration(long deviceID, int* errorCode,
4692  unsigned char* ipv4Address, unsigned int ipv4AddressSize,
4693  unsigned char* subnetMask, unsigned int subnetMaskSize,
4694  unsigned char* defaultGateway, unsigned int defaultGatewaySize,
4695  unsigned char* dnsServer, unsigned int dnsServerSize);
4696 
4711  DLL_DECL void odapi_adv_get_manual_network_configuration(long deviceID, int* errorCode,
4712  unsigned char* outIpv4Address, unsigned int ipv4AddressSize,
4713  unsigned char* outSubnetMask, unsigned int subnetMaskSize,
4714  unsigned char* outDefaultGateway, unsigned int defaultGatewaySize,
4715  unsigned char* outDNSServer, unsigned int dnsServerSize);
4716 #endif /* excluding C interface */
4717 #ifdef __cplusplus
4718 }
4719 #endif /* __cplusplus */
4720 #endif /* OCEAN_DIRECT_API_H */
Definition: Advance.h:67
Definition: OceanDirectAPI.h:153
virtual int getElectricDarkPixelCount(long deviceID, int *errorCode)
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(long deviceID, int *errorCode)
virtual int getWavelengthCoefficients(long deviceID, int *errorCode, double *coeff, int length)
virtual int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual long long int getTime(long deviceID, int *errorCode)
virtual void applyNonLinearityCorrection(long deviceID, int *errorCode, bool value)
virtual int getNonlinearityCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
void setMulticastMsgResponseReadDelay(size_t delayMs)
virtual void setTriggerMode(long deviceID, int *errorCode, int mode)
virtual unsigned int getScansToAverage(long deviceID, int *errorCode)
virtual int getSerialNumber(long deviceID, int *errorCode, char *buffer, int bufferLength)
virtual unsigned char getDeviceEndpoint(long deviceID, int *error_code, usbEndpointType endpointType)
virtual int getFormattedSpectrum(long deviceID, int *errorCode, double *buffer, int bufferLength)
virtual void setAcquisitionDelayMicroseconds(long deviceID, int *errorCode, unsigned long delayMicroseconds)
virtual int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual void setTime(long deviceID, int *errorCode, long long int timeInMicrosecond)
virtual int getTriggerMode(long deviceID, int *errorCode)
virtual int getNetworkDeviceIDs(long *ids, unsigned long maxLength)
virtual int getDeviceModelText(long deviceID, int *errorCode, char *buffer, unsigned int bufferLength)
virtual int getIndexAtWavelength(long deviceID, int *errorCode, double &wavelength, double approxWavelength)
virtual int getDarkCorrectedSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual int getStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
virtual long addTCPIPv4DeviceLocation(const char *deviceTypeName, std::string ipAddr, int port, int *errorCode)
virtual void closeDevice(long deviceID, int *errorCode)
virtual unsigned long getMinimumAveragingIntegrationTimeMicros(long deviceID, int *errorCode)
virtual void getAPIVersionNumber(unsigned int *major, unsigned int *minor, unsigned int *point)
virtual int getDeviceIDs(long *ids, unsigned long maxLength)
void setMulticastMsgSendRetry(size_t retryCount)
virtual bool electricDarkCorrectionUsage(long deviceID, int *errorCode)
virtual int getDeviceType(long deviceID, int *errorCode, char *buffer, unsigned int length)
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(long deviceID, int *errorCode)
virtual void addRS232DeviceLocation(char *deviceTypeName, char *deviceBusPath, unsigned int baud, int *errorCode)
virtual bool isFeatureEnabled(long deviceId, int *errorCode, FeatureId featureId)
virtual int getErrorStringLength(int errorCode)
virtual void setScansToAverage(long deviceID, int *errorCode, unsigned int scansToAverage)
virtual int getElectricDarkPixelIndices(long deviceID, int *errorCode, int *indices, int length)
virtual int getIndicesAtAnyWavelength(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelength, int wavelengthLength)
void setMulticastMsgResponseReadRetry(size_t retryCount)
virtual Advance * AdvancedControl()
virtual unsigned short int getBoxcarWidth(long deviceID, int *errorCode)
virtual unsigned char getSerialNumberMaximumLength(long deviceID, int *errorCode)
virtual int getWavelengths(long deviceID, int *errorCode, double *wavelengths, int length)
virtual void applyElectricDarkCorrection(long deviceID, int *errorCode, bool value)
virtual unsigned long getAcquisitionDelayMicroseconds(long deviceID, int *errorCode)
virtual void openDevice(long deviceID, int *errorCode)
virtual unsigned long getIntegrationTimeMicros(long deviceID, int *errorCode)
virtual int darkCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual void setBoxcarWidth(long deviceID, int *errorCode, unsigned short int boxcarWidth)
virtual int getErrorMessage(int errorCode, char *returnMessage, int length)
virtual int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(long deviceID, int *errorCode)
virtual bool nonLinearityCorrectionUsage(long deviceID, int *errorCode)
virtual int darkCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *darkCorrectedSpectrum, int darkCorrectedSpectrumLength)
virtual std::string getDeviceModel(long deviceID, int *errorCode, int index)
virtual void setIntegrationTimeMicros(long deviceID, int *errorCode, unsigned long integrationTimeMicros)
static OceanDirectAPI * getInstance()
void boxcarCorrectSpectrum(long deviceID, int *errorCode, const double *illuminatedSpectrum, unsigned int illuminatedSpectrumLength, unsigned int boxcarWidth, double *boxcarCorrectedSpectrum, unsigned int boxcarCorrectedSpectrumLength)
virtual int getFormattedSpectrumLength(long deviceID, int *errorCode)
virtual int nonlinearityCorrectSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength, double *illuminatedSpectrum, int illuminatedSpectrumLength, double *nonlinearityCorrectedSpectrum, int nonlinearityCorrectedSpectrumLength)
virtual void setStoredDarkSpectrum(long deviceID, int *errorCode, double *darkSpectrum, int darkSpectrumLength)
virtual unsigned long getIntegrationTimeIncrementMicros(long deviceID, int *errorCode)
virtual int getRawSpectrumWithMetadata(long deviceID, int *errorCode, SpectrumWithMetadata *buffer, int bufferLength)
virtual int addNetworkDevice(const char *ipAddressStr, const char *deviceTypeStr, int *errorCode)
virtual double getMaximumIntensity(long deviceID, int *errorCode)
virtual int getIndicesAtWavelengthRange(long deviceID, int *errorCode, int *indices, int indicesLength, double *wavelengthLength, int wavelengthSize, double lo, double hi)
virtual unsigned long getMaximumIntegrationTimeMicros(long deviceID, int *errorCode)
virtual unsigned long getMinimumIntegrationTimeMicros(long deviceID, int *errorCode)
This is an interface to OceanDirect that allows the user to connect to devices over USB and other bus...
Definition: OceanDirectAPI.h:147