76#ifndef AXSUNOCTCONTROLLW_C_H
77#define AXSUNOCTCONTROLLW_C_H
127 TEC_STATE_UNAVAILABLE = 99
136 BEHAVIOR_UNAVAILABLE = 0,
156typedef uint32_t AxDeviceHandle;
390AxErr __cdecl
axFPGAVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build, uint32_t which_device);
612 AxErr __cdecl
axGetElapsedTimers(uint32_t* cum_emission_sec, uint32_t* cum_system_sec, uint32_t* uptime_msec, uint32_t which_laser);
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);
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);
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";
1005inline const char* AxDevTypeString(
AxDevType 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";
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