50#ifndef AXSUNOCTCONTROLLW_C_H
51#define AXSUNOCTCONTROLLW_C_H
101 TEC_STATE_UNAVAILABLE = 99
110 BEHAVIOR_UNAVAILABLE = 0,
314AxErr __cdecl
axFPGAVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build, uint32_t which_device);
484 AxErr __cdecl
axGetElapsedTimers(uint32_t* cum_emission_sec, uint32_t* cum_system_sec, uint32_t* uptime_msec, uint32_t which_laser);
566 int32_t* error_from_last_home, uint32_t* last_move_time,
567 uint8_t* state, uint8_t* home_switch, uint8_t* limit_switch, uint8_t* VDL_error, uint32_t which_laser);
680AxErr __cdecl
axGetFPGARegisterRange(
const uint32_t start_regnum,
const uint32_t end_regnum, uint16_t* regvals,
const uint32_t bytes_allocated, uint32_t which_DAQ);
805AxErr __cdecl axCountDeviceSettings(uint32_t* float_count, uint32_t* int_count, uint32_t* bool_count, uint32_t which_device);
818AxErr __cdecl axGetFloatSetting(uint32_t which_setting,
float* setting_value,
char* setting_string, uint32_t which_device);
831AxErr __cdecl axGetIntSetting(uint32_t which_setting, int32_t* setting_value,
char* setting_string, uint32_t which_device);
844AxErr __cdecl axGetBoolSetting(uint32_t which_setting, uint8_t* setting_value,
char* setting_string, uint32_t which_device);
860AxErr __cdecl axSettingsToDevice(uint32_t float_count, uint32_t int_count, uint32_t bool_count,
const float* float_values,
const int32_t* int_values,
const uint8_t* bool_values, uint32_t which_device);
871AxErr __cdecl axConnectionHeartbeat(uint32_t heartbeat_state, uint32_t which_device);
885AxErr __cdecl axDebugCommand(uint32_t command_number, uint32_t value_out, uint32_t* command_in, uint32_t* value_in, uint32_t which_device);
908AxErr __cdecl axGetDebugInfo(int32_t code, uint32_t* field1, uint32_t* field2, uint32_t* field3, uint32_t* field4, uint32_t* field5, uint32_t* field6, uint32_t* field7, uint32_t* field8, uint32_t* field9, uint32_t* field10,
void* data1,
void* data2, uint32_t which_device);
927AxErr __cdecl axSetDACTable(uint32_t points, uint32_t speed, uint32_t timer1time, uint32_t timer2time,
928 uint32_t timer1duration, uint32_t timer2duration,
const uint16_t* volts_currents, uint32_t save_to_flash, uint32_t which_laser);
945AxErr __cdecl axGetDACTable(uint32_t* points, uint32_t* speed, uint32_t* timer1time, uint32_t* timer2time,
946 uint32_t* timer1duration, uint32_t* timer2duration, uint16_t* volts_currents, uint32_t which_laser);
959AxErr __cdecl axReadDAQPHYRegister(uint32_t phynum, uint32_t regnum, uint16_t* regval, uint32_t which_DAQ);
971AxErr __cdecl axUpdateMicroprocessorFW(
const char* file, uint32_t which_device);
976typedef void(__cdecl* AxProgressCallbackFcn)(int32_t, int32_t,
void*);
989AxErr __cdecl axUpdateFPGABitstream(
const char* file, AxProgressCallbackFcn callback,
void* user_data, uint32_t which_device);
1001AxErr __cdecl axUpdateFPGABitstreamLabVIEW(
const char* file, uint32_t* refnumptr, uint32_t which_device);
1011 switch (connection) {
1012 case AxConnectionType::USB:
return "USB";
1013 case AxConnectionType::RS232:
return "RS-232";
1014 case AxConnectionType::RS232_PASSTHROUGH:
return "via DAQ";
1015 case AxConnectionType::ETHERNET:
return "Ethernet";
1016 default:
return "Unknown";
1021inline const char* AxDevTypeString(
AxDevType device) {
1023 case AxDevType::LASER:
return "Laser";
1024 case AxDevType::AZMYTH_LASER:
return "Azmyth Laser";
1025 case AxDevType::EDAQ:
return "EDAQ";
1026 case AxDevType::CLDAQ:
return "CLDAQ";
1027 default:
return "Unknown";
This header file contains enums and other definitions for integrating AxsunOCTCapture....
AxEdgeSource
DAQ clock and trigger sources.
Definition: AxsunCommonEnums.h:265
AxChannelMode
DAQ channel selection modes.
Definition: AxsunCommonEnums.h:222
AxPipelineMode
DAQ pipeline modes.
Definition: AxsunCommonEnums.h:204
AxErr
Error codes returned from AxsunOCTCapture or AxsunOCTControl_LW functions. Use axGetErrorString() in ...
Definition: AxsunCommonEnums.h:34
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.
AxTECState
Laser TEC states.
Definition: AxsunOCTControl_LW_C.h:93
@ ERROR_WENT_OUT_OF_RANGE
Definition: AxsunOCTControl_LW_C.h:100
@ WAITING_IN_RANGE
Definition: AxsunOCTControl_LW_C.h:96
@ READY
Definition: AxsunOCTControl_LW_C.h:97
@ WARMING_UP
Definition: AxsunOCTControl_LW_C.h:95
@ TEC_UNINITIALIZED
Definition: AxsunOCTControl_LW_C.h:94
@ ERROR_NEVER_GOT_TO_READY
Definition: AxsunOCTControl_LW_C.h:99
@ NOT_INSTALLED
Definition: AxsunOCTControl_LW_C.h:98
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:67
@ RS232_PASSTHROUGH
Definition: AxsunOCTControl_LW_C.h:70
@ RS232
Definition: AxsunOCTControl_LW_C.h:71
@ USB
Definition: AxsunOCTControl_LW_C.h:69
@ ETHERNET
Definition: AxsunOCTControl_LW_C.h:72
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...
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 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 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:129
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:80
@ LASER
Definition: AxsunOCTControl_LW_C.h:82
@ CLDAQ
Definition: AxsunOCTControl_LW_C.h:83
@ AZMYTH_LASER
Definition: AxsunOCTControl_LW_C.h:85
@ EDAQ
Definition: AxsunOCTControl_LW_C.h:84
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:109
@ LINK_TO_SWEPT_LASER
Definition: AxsunOCTControl_LW_C.h:114
@ ON_AT_POWER_UP
Definition: AxsunOCTControl_LW_C.h:112
@ OFF_AT_POWER_UP
Definition: AxsunOCTControl_LW_C.h:111
@ USE_DIGITAL_INPUT
Definition: AxsunOCTControl_LW_C.h:113
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.
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 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:132
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.
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 axRegisterLabVIEWCallback(uint32_t *refnumptr)
Registers a LabVIEW user event to be executed following a device connection or disconnection event.
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:119
char FPGA_version[16]
Definition: AxsunOCTControl_LW_C.h:124
char firmware_version[16]
Definition: AxsunOCTControl_LW_C.h:123
char serial_number[40]
Definition: AxsunOCTControl_LW_C.h:122
AxDevType device_type
Definition: AxsunOCTControl_LW_C.h:120
AxConnectionType connection_type
Definition: AxsunOCTControl_LW_C.h:121