AxsunOCTControl_LW 2.0.0
A light-weight & cross-platform alternative to the .NET-based AxsunOCTControl.dll.
Loading...
Searching...
No Matches
AxsunOCTControl_LW_C.h
Go to the documentation of this file.
1// AxsunOCTControl_LW_C.h
2// Copyright 2023 Excelitas Technologies
3
76#ifndef AXSUNOCTCONTROLLW_C_H
77#define AXSUNOCTCONTROLLW_C_H
78
79#include "AxsunCommonEnums.h"
80
81#ifdef __cplusplus
82#include <cstdint>
83extern "C" {
84#else
85#include <stdint.h>
86#endif // __cplusplus
87
89typedef enum
90#ifdef __cplusplus
91class
92#endif // __cplusplus
94 NONE = 0,
95 USB = 1,
97 RS232 = 3,
98 ETHERNET = 4
100
102typedef enum
103#ifdef __cplusplus
104class
105#endif // __cplusplus
106AxDevType {
107 UNDEFINED = 0,
108 LASER = 40,
109 CLDAQ = 41,
110 EDAQ = 42,
111 AZMYTH_LASER = 43
113
115typedef enum
116#ifdef __cplusplus
117class
118#endif // __cplusplus
123 READY = 3,
127 TEC_STATE_UNAVAILABLE = 99
129
131typedef enum
132#ifdef __cplusplus
133class
134#endif // __cplusplus
136 BEHAVIOR_UNAVAILABLE = 0,
141 BEHAVIOR_RFU = 5
143
145typedef enum
146#ifdef __cplusplus
147class
148#endif // __cplusplus
153 SINGLE_TYPE = 3
155
156typedef uint32_t AxDeviceHandle;
157
167typedef struct AxDeviceInfo AxDeviceInfo;
168
170#ifndef __cplusplus
171#include <stdbool.h>
172#endif // !__cplusplus
174 uint32_t u;
175 int32_t i;
176 bool b;
177 float f;
178};
180
182typedef void(__cdecl *AxConnectCallbackFunctionC_t)(void*);
183
185typedef void(__cdecl* AxCallbackConnectOrDisconnect_t)(AxDeviceInfo, int32_t, void*);
186
191
199 AXSUN_EXPORTS
200AxErr __cdecl axOpenAxsunOCTControl(uint32_t open_all_interfaces);
201
205 AXSUN_EXPORTS
207
213 AXSUN_EXPORTS
214uint32_t __cdecl axCountConnectedDevices();
215
223 AXSUN_EXPORTS
224void __cdecl axGetErrorExplained(AxErr errornum, char* error_string);
225
232 AXSUN_EXPORTS
233AxErr __cdecl axUSBInterfaceOpen(uint32_t interface_status);
234
241 AXSUN_EXPORTS
242AxErr __cdecl axNetworkInterfaceOpen(uint32_t interface_status);
243
251 AXSUN_EXPORTS
252AxErr __cdecl axSerialInterfaceOpen(uint32_t interface_status, const char* port);
253
262 AXSUN_EXPORTS
263AxErr __cdecl axLibraryVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build);
264
269 AXSUN_EXPORTS
270const char* axLWLibVersion();
271
279 AXSUN_EXPORTS
280int32_t __cdecl axGetLWBuildDateTime(char* datetime_str);
281
286 AXSUN_EXPORTS
287const char* axLWBuildDateTime();
288
296 AXSUN_EXPORTS
297int32_t __cdecl axGetLWBuildCfg();
298
307 AXSUN_EXPORTS
308AxErr __cdecl axGetLibusbVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build);
309
317 AXSUN_EXPORTS
318AxErr __cdecl axRegisterConnectCallback(AxConnectCallbackFunctionC_t callback_function, void* userData);
319
327 AXSUN_EXPORTS
328AxErr __cdecl axRegCallbackConnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void* userData);
329
337 AXSUN_EXPORTS
338AxErr __cdecl axRegCallbackDisconnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void* userData);
339
346 AXSUN_EXPORTS
347AxErr __cdecl axRegisterLabVIEWCallback(uint32_t* refnumptr);
348
349
351
352
357
365 AXSUN_EXPORTS
366AxErr __cdecl axGetDeviceHandle(AxDeviceHandle* handle, uint32_t which_device);
367
376 AXSUN_EXPORTS
377AxErr __cdecl axFirmwareVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t which_device);
378
389 AXSUN_EXPORTS
390AxErr __cdecl axFPGAVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build, uint32_t which_device);
391
398 AXSUN_EXPORTS
399AxErr __cdecl axDeviceType(AxDevType* device_type, uint32_t which_device);
400
407 AXSUN_EXPORTS
408AxErr __cdecl axSerialNumber(char* serial_number, uint32_t which_device);
409
416 AXSUN_EXPORTS
417AxErr __cdecl axPartNumber(char* part_number, uint32_t which_device);
418
425 AXSUN_EXPORTS
426AxErr __cdecl axConnectionType(AxConnectionType* connection_type, uint32_t which_device);
427
434 AXSUN_EXPORTS
435AxErr __cdecl axGetDeviceInfo(AxDeviceInfo* device_info, uint32_t which_device);
436
447 AXSUN_EXPORTS
448AxErr __cdecl axGetNamedData(uint32_t named_index, AxNamedDataType* named_type, AxNamedDataValue* named_value, char* field_name, uint32_t which_device);
449
460 AXSUN_EXPORTS
461AxErr __cdecl axSetNamedData(uint32_t named_index, AxNamedDataType named_type, AxNamedDataValue named_value, const char* field_name, uint32_t which_device);
462
469 AXSUN_EXPORTS
470AxErr __cdecl axClearNamedData(uint32_t named_index, uint32_t which_device);
471
477 AXSUN_EXPORTS
478AxErr __cdecl axClearAllNamedData(uint32_t which_device);
479
481
482
483
488
496 AXSUN_EXPORTS
497AxErr __cdecl axSetLaserEmission(uint32_t emission_state, uint32_t which_laser);
498
505 AXSUN_EXPORTS
506 AxErr __cdecl axGetLaserEmission(uint32_t* emitting, uint32_t which_laser);
507
514 AXSUN_EXPORTS
515 AxErr __cdecl axSetPointerEmission(uint32_t emission_state, uint32_t which_laser);
516
523 AXSUN_EXPORTS
524 AxErr __cdecl axGetPointerEmission(uint32_t* emitting, uint32_t which_laser);
525
533 AXSUN_EXPORTS
534 AxErr __cdecl axSetLaserPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser);
535
542 AXSUN_EXPORTS
543 AxErr __cdecl axGetLaserPowerUp(AxPowerUpBehavior* behavior, uint32_t which_laser);
544
552 AXSUN_EXPORTS
553 AxErr __cdecl axSetPointerPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser);
554
561 AXSUN_EXPORTS
562 AxErr __cdecl axGetPointerPowerUp(AxPowerUpBehavior* behavior, uint32_t which_laser);
563
571 AXSUN_EXPORTS
572 AxErr __cdecl axSetClockDelay(uint32_t delay_code, uint32_t which_laser);
573
580 AXSUN_EXPORTS
581 AxErr __cdecl axGetClockDelay(uint32_t* delay_code, uint32_t which_laser);
582
590 AXSUN_EXPORTS
591 AxErr __cdecl axSetDriveConfiguration(uint32_t which_config, uint32_t which_laser);
592
600 AXSUN_EXPORTS
601 AxErr __cdecl axGetDriveConfiguration(uint32_t* current_configuration, uint32_t which_laser);
602
611 AXSUN_EXPORTS
612 AxErr __cdecl axGetElapsedTimers(uint32_t* cum_emission_sec, uint32_t* cum_system_sec, uint32_t* uptime_msec, uint32_t which_laser);
613
622 AXSUN_EXPORTS
623 AxErr __cdecl axGetTECState(AxTECState* TEC_state, uint32_t which_TEC, uint32_t which_laser);
624
632 AXSUN_EXPORTS
633 AxErr __cdecl axGetLaserErrorState(uint32_t* error_bitfield, uint32_t which_laser);
634
644 AXSUN_EXPORTS
645 AxErr __cdecl axGetLaserDiagnostics(uint32_t* num_of_values, float* values, char** names, uint32_t which_laser);
646
653 AXSUN_EXPORTS
654 AxErr __cdecl axHomeVDL(uint32_t which_laser);
655
661 AXSUN_EXPORTS
662 AxErr __cdecl axStopVDL(uint32_t which_laser);
663
671 AXSUN_EXPORTS
672 AxErr __cdecl axMoveRelVDL(float rel_position, float speed, uint32_t which_laser);
673
681 AXSUN_EXPORTS
682 AxErr __cdecl axMoveAbsVDL(float abs_position, float speed, uint32_t which_laser);
683
704 AXSUN_EXPORTS
705 AxErr __cdecl axGetVDLStatus(float* current_pos, float* target_pos, float* speed,
706 int32_t* error_from_last_home, uint32_t* last_move_time,
707 uint8_t* state, uint8_t* home_switch, uint8_t* limit_switch, uint8_t* VDL_error, uint32_t which_laser);
708
709
711
712
717
725 AXSUN_EXPORTS
726AxErr __cdecl axImagingCntrlEthernet(int16_t number_of_images, uint32_t which_DAQ);
727
736 AXSUN_EXPORTS
737AxErr __cdecl axSetImageSyncSource(AxEdgeSource source, float frequency, uint32_t which_DAQ);
738
747 AXSUN_EXPORTS
748AxErr __cdecl axSetBurstRecordSource(AxEdgeSource source, AxRcrdTrigBehavior behavior, uint32_t which_DAQ);
749
757 AXSUN_EXPORTS
758AxErr __cdecl axSetSampleClockSource(AxEdgeSource source, uint32_t which_DAQ);
759
767 AXSUN_EXPORTS
768AxErr __cdecl axSetSweepTriggerSource(AxEdgeSource source, uint32_t which_DAQ);
769
778 AXSUN_EXPORTS
779AxErr __cdecl axSetSwpTrigSrcAndEdge(AxEdgeSource source, AxSwpTrgMode trig_edge, uint32_t trig_freq_Hz, uint32_t which_DAQ);
780
789 AXSUN_EXPORTS
790AxErr __cdecl axSetPipelineMode(AxPipelineMode pipeline_mode, AxChannelMode polarization_mode, uint32_t which_DAQ);
791
798 AXSUN_EXPORTS
799AxErr __cdecl axSetEightBitGain(float gain, uint32_t which_DAQ);
800
807 AXSUN_EXPORTS
808AxErr __cdecl axSetEightBitOffset(float offset, uint32_t which_DAQ);
809
816 AXSUN_EXPORTS
817AxErr __cdecl axSetSubsamplingFactor(uint8_t subsampling_factor, uint32_t which_DAQ);
818
826 AXSUN_EXPORTS
827AxErr __cdecl axGetFPGARegister(const uint32_t regnum, uint16_t* regval, uint32_t which_DAQ);
828
839 AXSUN_EXPORTS
840AxErr __cdecl axGetFPGARegisterRange(const uint32_t start_regnum, const uint32_t end_regnum, uint16_t* regvals, const uint32_t bytes_allocated, uint32_t which_DAQ);
841
842
853 AXSUN_EXPORTS
854AxErr __cdecl axGetFPGARegisterDefaults(uint32_t elements_allocated, uint16_t* regnums, uint16_t* regvals, uint32_t* elements_returned, uint32_t which_DAQ);
855
856
866 AXSUN_EXPORTS
867AxErr __cdecl axSetFPGARegisterDefaults(const uint16_t* regnums, const uint16_t* regvals, uint32_t count, uint32_t which_DAQ);
868
876 AXSUN_EXPORTS
877AxErr __cdecl axSetFPGARegister(uint32_t regnum, uint16_t regval, uint32_t which_DAQ);
878
887 AXSUN_EXPORTS
888AxErr __cdecl axSetFPGARegisterMasked(uint32_t regnum, uint16_t regval, uint16_t bitmask, uint32_t which_DAQ);
889
898 AXSUN_EXPORTS
899AxErr __cdecl axSetFPGARegisterSingleBit(uint32_t regnum, uint32_t which_bit, uint32_t value, uint32_t which_DAQ);
900
909 AXSUN_EXPORTS
910AxErr __cdecl axSetFPGARegisterSingleByte(uint32_t regnum, uint32_t which_byte, uint32_t value, uint32_t which_DAQ);
911
920 AXSUN_EXPORTS
921AxErr __cdecl axSetFPGARegisterSingleNibble(uint32_t regnum, uint32_t which_nibble, uint32_t value, uint32_t which_DAQ);
922
931 AXSUN_EXPORTS
932AxErr __cdecl axSetFPGADataArray(uint32_t regnum, const uint16_t* data_array, uint32_t number_of_words, uint32_t which_DAQ);
933
945 AXSUN_EXPORTS
946AxErr __cdecl axSetFPGAWindowFunction(AxChannelMode channel, const float* window_real, const float* window_imag, uint32_t window_length, uint32_t which_DAQ);
947
959 AXSUN_EXPORTS
960AxErr __cdecl axSetFPGAWindowFunc(AxChannelMode channel, AxSwpTrgMode trig_edge, const float* window_real, const float* window_imag, uint32_t window_length, uint32_t which_DAQ);
961
970 AXSUN_EXPORTS
971AxErr __cdecl axCalcWindowFunc(window_func_t params, float* window_real_out, float* window_imag_out);
972
985 AXSUN_EXPORTS
986AxErr __cdecl axCalcWindowFuncToFPGA(AxChannelMode channel, AxSwpTrgMode trig_edge, window_func_t params, const float* shape, float* window_real_out, float* window_imag_out, uint32_t which_DAQ);
987
989
990#ifdef __cplusplus
991} // end extern "C"
992
994inline const char* AxConnectTypeString(AxConnectionType connection) {
995 switch (connection) {
996 case AxConnectionType::USB: return "USB";
997 case AxConnectionType::RS232: return "RS-232";
998 case AxConnectionType::RS232_PASSTHROUGH: return "via DAQ";
999 case AxConnectionType::ETHERNET: return "Ethernet";
1000 default: return "Unknown";
1001 }
1002}
1003
1005inline const char* AxDevTypeString(AxDevType device) {
1006 switch (device) {
1007 case AxDevType::LASER: return "Laser";
1008 case AxDevType::AZMYTH_LASER: return "Azmyth Laser";
1009 case AxDevType::EDAQ: return "EDAQ";
1010 case AxDevType::CLDAQ: return "CLDAQ";
1011 default: return "Unknown";
1012 }
1013}
1014
1015#endif // end __cplusplus
1016
1017#endif // end header include guard
1018
This header file contains enums and other definitions for integrating AxsunOCTCapture....
AxEdgeSource
DAQ sample clock and trigger sources (incl. Sweep, Image_sync, and Burst Record triggers....
Definition AxsunCommonEnums.h:271
AxRcrdTrigBehavior
DAQ Burst Record trigger behavior. Applies to "External" trigger sources as described in AxEdgeSource...
Definition AxsunCommonEnums.h:287
AxChannelMode
DAQ channel selection modes.
Definition AxsunCommonEnums.h:228
AxSwpTrgMode
DAQ sweep trigger edge modes.
Definition AxsunCommonEnums.h:302
AxPipelineMode
DAQ pipeline modes.
Definition AxsunCommonEnums.h:210
AxErr
Error codes returned from AxsunOCTCapture or AxsunOCTControl_LW functions. Use axGetErrorString() in ...
Definition AxsunCommonEnums.h:40
AxErr __cdecl axSetFPGARegisterDefaults(const uint16_t *regnums, const uint16_t *regvals, uint32_t count, uint32_t which_DAQ)
Sets (i.e. writes) a power-on default FPGA register configuration script, overwriting the existing sc...
AxErr __cdecl axMoveAbsVDL(float abs_position, float speed, uint32_t which_laser)
Move the VDL to an absolute position.
AxErr __cdecl axClearAllNamedData(uint32_t which_device)
Clears all 50 Named Data fields on a connected device.
AxTECState
Laser TEC states.
Definition AxsunOCTControl_LW_C.h:119
@ ERROR_WENT_OUT_OF_RANGE
Definition AxsunOCTControl_LW_C.h:126
@ WAITING_IN_RANGE
Definition AxsunOCTControl_LW_C.h:122
@ READY
Definition AxsunOCTControl_LW_C.h:123
@ WARMING_UP
Definition AxsunOCTControl_LW_C.h:121
@ TEC_UNINITIALIZED
Definition AxsunOCTControl_LW_C.h:120
@ ERROR_NEVER_GOT_TO_READY
Definition AxsunOCTControl_LW_C.h:125
@ NOT_INSTALLED
Definition AxsunOCTControl_LW_C.h:124
AxErr __cdecl axGetNamedData(uint32_t named_index, AxNamedDataType *named_type, AxNamedDataValue *named_value, char *field_name, uint32_t which_device)
Retrieves a Named Data field from a connected device.
AxErr __cdecl axGetLaserErrorState(uint32_t *error_bitfield, uint32_t which_laser)
Gets the current error state of a Laser device.
AxConnectionType
Connection types (interfaces) supported by AxsunOCTControl_LW.
Definition AxsunOCTControl_LW_C.h:93
@ RS232_PASSTHROUGH
Definition AxsunOCTControl_LW_C.h:96
@ RS232
Definition AxsunOCTControl_LW_C.h:97
@ USB
Definition AxsunOCTControl_LW_C.h:95
@ ETHERNET
Definition AxsunOCTControl_LW_C.h:98
AxErr __cdecl axGetFPGARegisterDefaults(uint32_t elements_allocated, uint16_t *regnums, uint16_t *regvals, uint32_t *elements_returned, uint32_t which_DAQ)
Gets (i.e. reads) the programmed power-on default FPGA register configuration script as register numb...
const char * axLWBuildDateTime()
Get a string describing the time and date that the AxsunOCTControl_LW library was built.
AxErr __cdecl axSetFPGARegisterSingleBit(uint32_t regnum, uint32_t which_bit, uint32_t value, uint32_t which_DAQ)
Sets or Clears a single bit in a FPGA register.
AxErr __cdecl axGetPointerEmission(uint32_t *emitting, uint32_t which_laser)
Gets pointer/aiming laser emission status.
AxErr __cdecl axSetSwpTrigSrcAndEdge(AxEdgeSource source, AxSwpTrgMode trig_edge, uint32_t trig_freq_Hz, uint32_t which_DAQ)
Select the sweep trigger source.
AxErr __cdecl axRegCallbackDisconnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void *userData)
Registers a callback function to be executed following a device disconnection event.
AxErr __cdecl axGetLaserEmission(uint32_t *emitting, uint32_t which_laser)
Gets swept laser emission status.
AxErr __cdecl axSetSweepTriggerSource(AxEdgeSource source, uint32_t which_DAQ)
Select the sweep trigger source.
AxErr __cdecl axCalcWindowFuncToFPGA(AxChannelMode channel, AxSwpTrgMode trig_edge, window_func_t params, const float *shape, float *window_real_out, float *window_imag_out, uint32_t which_DAQ)
Calculates a window function according to parameterized description and writes it to the FPGA.
AxErr __cdecl axRegCallbackConnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void *userData)
Registers a callback function to be executed following a device connection event.
AxErr __cdecl axSetLaserPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser)
Sets swept laser emission power-up default behavior.
void(__cdecl * AxConnectCallbackFunctionC_t)(void *)
Type defintion for a user-provided function to be invoked upon connection or disconnection of a devic...
Definition AxsunOCTControl_LW_C.h:182
AxErr __cdecl axGetFPGARegister(const uint32_t regnum, uint16_t *regval, uint32_t which_DAQ)
Gets (i.e. reads) the current value in a FPGA register.
AxErr __cdecl axSetFPGADataArray(uint32_t regnum, const uint16_t *data_array, uint32_t number_of_words, uint32_t which_DAQ)
Sets (i.e. writes) a FPGA register with an array of multiple values.
AxErr __cdecl axSetFPGARegister(uint32_t regnum, uint16_t regval, uint32_t which_DAQ)
Sets (i.e. writes) a FPGA register with a single value.
AxErr __cdecl axGetPointerPowerUp(AxPowerUpBehavior *behavior, uint32_t which_laser)
Gets pointer/aiming laser emission power-up default behavior.
AxDevType
Axsun device types supported by AxsunOCTControl_LW.
Definition AxsunOCTControl_LW_C.h:106
@ LASER
Definition AxsunOCTControl_LW_C.h:108
@ CLDAQ
Definition AxsunOCTControl_LW_C.h:109
@ AZMYTH_LASER
Definition AxsunOCTControl_LW_C.h:111
@ EDAQ
Definition AxsunOCTControl_LW_C.h:110
AxErr __cdecl axOpenAxsunOCTControl(uint32_t open_all_interfaces)
Opens the AxsunOCTControl_LW session.
AxPowerUpBehavior
Laser engine default/power-up behaviors.
Definition AxsunOCTControl_LW_C.h:135
@ LINK_TO_SWEPT_LASER
Definition AxsunOCTControl_LW_C.h:140
@ ON_AT_POWER_UP
Definition AxsunOCTControl_LW_C.h:138
@ OFF_AT_POWER_UP
Definition AxsunOCTControl_LW_C.h:137
@ USE_DIGITAL_INPUT
Definition AxsunOCTControl_LW_C.h:139
AxErr __cdecl axGetDeviceHandle(AxDeviceHandle *handle, uint32_t which_device)
Gets the device unique handle.
const char * axLWLibVersion()
Get a string describing the AxsunOCTControl_LW library version.
AxErr __cdecl axDeviceType(AxDevType *device_type, uint32_t which_device)
Gets the device type (e.g. Laser, EDAQ).
AxErr __cdecl axSetFPGARegisterSingleNibble(uint32_t regnum, uint32_t which_nibble, uint32_t value, uint32_t which_DAQ)
Sets (i.e. writes) one nibble (4 bits) of an FPGA register, leaving the other 12 bits unchanged.
AxErr __cdecl axGetFPGARegisterRange(const uint32_t start_regnum, const uint32_t end_regnum, uint16_t *regvals, const uint32_t bytes_allocated, uint32_t which_DAQ)
Gets (i.e. reads) current values in a range of FPGA registers.
AxErr __cdecl axSetSampleClockSource(AxEdgeSource source, uint32_t which_DAQ)
Select the ADC sample clock source.
AxErr __cdecl axSetFPGAWindowFunc(AxChannelMode channel, AxSwpTrgMode trig_edge, const float *window_real, const float *window_imag, uint32_t window_length, uint32_t which_DAQ)
Sets (i.e. writes) an apodization window function to the FPGA.
uint32_t __cdecl axCountConnectedDevices()
Counts the number of devices successfully connected and enumerated by AxsunOCTControl_LW.
AxErr __cdecl axSerialInterfaceOpen(uint32_t interface_status, const char *port)
Opens, resets, or closes a RS-232 serial interface on a given port.
AxErr __cdecl axSetEightBitOffset(float offset, uint32_t which_DAQ)
Set the OFFSET term during 16- to 8-bit dynamic range compression.
void __cdecl axGetErrorExplained(AxErr errornum, char *error_string)
Gets a string which explains an error code in a more verbose fashion.
AxErr __cdecl axNetworkInterfaceOpen(uint32_t interface_status)
Opens, resets, or closes the Ethernet network interface.
AxErr __cdecl axPartNumber(char *part_number, uint32_t which_device)
Gets the device part number string.
AxNamedDataType
Available data types for Named Data field values.
Definition AxsunOCTControl_LW_C.h:149
@ INTEGER_TYPE
Definition AxsunOCTControl_LW_C.h:151
@ BOOL_TYPE
Definition AxsunOCTControl_LW_C.h:152
@ SINGLE_TYPE
Definition AxsunOCTControl_LW_C.h:153
@ UNINIT_TYPE
Definition AxsunOCTControl_LW_C.h:150
AxErr __cdecl axGetClockDelay(uint32_t *delay_code, uint32_t which_laser)
Gets the currently configured electronic K-clock delay.
AxErr __cdecl axSetSubsamplingFactor(uint8_t subsampling_factor, uint32_t which_DAQ)
Set the A-line subsampling factor.
AxErr __cdecl axSetEightBitGain(float gain, uint32_t which_DAQ)
Set the GAIN term during 16- to 8-bit dynamic range compression.
AxErr __cdecl axSetPointerPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser)
Sets pointer/aiming laser emission power-up default behavior.
AxErr __cdecl axCloseAxsunOCTControl()
Closes an AxsunOCTControl_LW session previously opened with axOpenAxsunOCTControl().
AxErr __cdecl axSerialNumber(char *serial_number, uint32_t which_device)
Gets the device serial number string.
AxErr __cdecl axHomeVDL(uint32_t which_laser)
Starts the VDL home operation.
AxErr __cdecl axSetLaserEmission(uint32_t emission_state, uint32_t which_laser)
Enables or disables swept laser emission.
AxErr __cdecl axGetVDLStatus(float *current_pos, float *target_pos, float *speed, int32_t *error_from_last_home, uint32_t *last_move_time, uint8_t *state, uint8_t *home_switch, uint8_t *limit_switch, uint8_t *VDL_error, uint32_t which_laser)
Gets the current status of the VDL.
int32_t __cdecl axGetLWBuildCfg()
Get the build configuration of the AxsunOCTControl_LW library.
AxErr __cdecl axSetDriveConfiguration(uint32_t which_config, uint32_t which_laser)
Selects a pre-programmed laser drive configuration.
AxErr __cdecl axSetPointerEmission(uint32_t emission_state, uint32_t which_laser)
Enables or disables pointer/aiming laser emission.
AxErr __cdecl axSetFPGARegisterSingleByte(uint32_t regnum, uint32_t which_byte, uint32_t value, uint32_t which_DAQ)
Sets (i.e. writes) the low or high byte of an FPGA register, leaving the other byte unchanged.
void(__cdecl * AxCallbackConnectOrDisconnect_t)(AxDeviceInfo, int32_t, void *)
Type defintion for a user-provided function to be invoked upon device connection if registered using ...
Definition AxsunOCTControl_LW_C.h:185
AxErr __cdecl axUSBInterfaceOpen(uint32_t interface_status)
Opens, resets, or closes the USB interface.
AxErr __cdecl axConnectionType(AxConnectionType *connection_type, uint32_t which_device)
Gets the device connection interface (e.g. USB, Ethernet, RS-232).
AxErr __cdecl axSetImageSyncSource(AxEdgeSource source, float frequency, uint32_t which_DAQ)
Select the Image_sync source.
AxErr __cdecl axGetTECState(AxTECState *TEC_state, uint32_t which_TEC, uint32_t which_laser)
Gets the current state of a Laser Thermo-Electric Cooler (TEC).
AxErr __cdecl axGetDeviceInfo(AxDeviceInfo *device_info, uint32_t which_device)
Gets info about a connected device.
AxErr __cdecl axSetFPGARegisterMasked(uint32_t regnum, uint16_t regval, uint16_t bitmask, uint32_t which_DAQ)
Sets (i.e. writes) FPGA register bits based on a bitmask.
AxErr __cdecl axImagingCntrlEthernet(int16_t number_of_images, uint32_t which_DAQ)
Control the DAQ operational mode (Live Imaging, Burst Recording, or Imaging Off) when using the Ether...
AxErr __cdecl axLibraryVersion(uint32_t *major, uint32_t *minor, uint32_t *patch, uint32_t *build)
Gets the AxsunOCTControl_LW library version as numeric elements.
AxErr __cdecl axStopVDL(uint32_t which_laser)
Stops any VDL operation (e.g. move or home) currently in progress.
AxErr __cdecl axMoveRelVDL(float rel_position, float speed, uint32_t which_laser)
Move the VDL relative to its current position.
AxErr __cdecl axFPGAVersion(uint32_t *major, uint32_t *minor, uint32_t *patch, uint32_t *build, uint32_t which_device)
Gets the device FPGA version.
AxErr __cdecl axSetClockDelay(uint32_t delay_code, uint32_t which_laser)
Sets the electronic K-clock delay.
AxErr __cdecl axSetFPGAWindowFunction(AxChannelMode channel, const float *window_real, const float *window_imag, uint32_t window_length, uint32_t which_DAQ)
Sets (i.e. writes) an apodization window function to the FPGA.
AxErr __cdecl axGetDriveConfiguration(uint32_t *current_configuration, uint32_t which_laser)
Gets the currently selected drive configuration.
AxErr __cdecl axGetElapsedTimers(uint32_t *cum_emission_sec, uint32_t *cum_system_sec, uint32_t *uptime_msec, uint32_t which_laser)
Gets elapsed timer values from a laser engine.
AxErr __cdecl axRegisterConnectCallback(AxConnectCallbackFunctionC_t callback_function, void *userData)
Registers a callback function to be executed following a device connection or disconnection event.
AxErr __cdecl axFirmwareVersion(uint32_t *major, uint32_t *minor, uint32_t *patch, uint32_t which_device)
Gets the device firmware version.
AxErr __cdecl axSetBurstRecordSource(AxEdgeSource source, AxRcrdTrigBehavior behavior, uint32_t which_DAQ)
Select the Burst Record trigger source and behavior.
AxErr __cdecl axSetNamedData(uint32_t named_index, AxNamedDataType named_type, AxNamedDataValue named_value, const char *field_name, uint32_t which_device)
Store a Named Data field on a connected device.
AxErr __cdecl axCalcWindowFunc(window_func_t params, float *window_real_out, float *window_imag_out)
Calculates a window function according to parameterized description and returns generated values to t...
AxErr __cdecl axRegisterLabVIEWCallback(uint32_t *refnumptr)
Registers a LabVIEW user event to be executed following a device connection or disconnection event.
AxErr __cdecl axGetLaserDiagnostics(uint32_t *num_of_values, float *values, char **names, uint32_t which_laser)
Gets diagnostic values and their field names from a Laser device.
AxErr __cdecl axClearNamedData(uint32_t named_index, uint32_t which_device)
Clears a Named Data field on a connected device.
AxErr __cdecl axGetLaserPowerUp(AxPowerUpBehavior *behavior, uint32_t which_laser)
Gets swept laser emission power-up default behavior.
AxErr __cdecl axGetLibusbVersion(uint32_t *major, uint32_t *minor, uint32_t *patch, uint32_t *build)
Gets the version of the libusb library loaded with axUSBInterfaceOpen().
AxErr __cdecl axSetPipelineMode(AxPipelineMode pipeline_mode, AxChannelMode polarization_mode, uint32_t which_DAQ)
Select the DAQ's pipeline mode (i.e. bypass mode) and polarization channel configuration.
int32_t __cdecl axGetLWBuildDateTime(char *datetime_str)
Get a string describing the time and date that the AxsunOCTControl_LW library was built.
Structure for device information available in connect or disconnect callback functions.
Definition AxsunOCTControl_LW_C.h:159
char FPGA_version[16]
Definition AxsunOCTControl_LW_C.h:164
char firmware_version[16]
Definition AxsunOCTControl_LW_C.h:163
char serial_number[40]
Definition AxsunOCTControl_LW_C.h:162
AxDeviceHandle handle
Definition AxsunOCTControl_LW_C.h:165
AxDevType device_type
Definition AxsunOCTControl_LW_C.h:160
AxConnectionType connection_type
Definition AxsunOCTControl_LW_C.h:161
Parameters for calculating a complex-valued window function with phase described using a Taylor serie...
Definition AxsunCommonEnums.h:326
Union for Named Data field value.
Definition AxsunOCTControl_LW_C.h:173