AxsunOCTControl_LW 1.6.0
A light-weight & cross-platform alternative to the .NET-based AxsunOCTControl.dll.
AxsunOCTControl_LW_C.h
Go to the documentation of this file.
1// AxsunOCTControl_LW_C.h
2// Copyright 2022 Excelitas Technologies
3
50#ifndef AXSUNOCTCONTROLLW_C_H
51#define AXSUNOCTCONTROLLW_C_H
52
53#include "AxsunCommonEnums.h"
54
55#ifdef __cplusplus
56#include <cstdint>
57extern "C" {
58#else
59#include <stdint.h>
60#endif // __cplusplus
61
63typedef enum
64#ifdef __cplusplus
65class
66#endif // __cplusplus
68 NONE = 0,
69 USB = 1,
71 RS232 = 3,
72 ETHERNET = 4
74
76typedef enum
77#ifdef __cplusplus
78class
79#endif // __cplusplus
81 UNDEFINED = 0,
82 LASER = 40,
83 CLDAQ = 41,
84 EDAQ = 42,
85 AZMYTH_LASER = 43
87
89typedef enum
90#ifdef __cplusplus
91class
92#endif // __cplusplus
97 READY = 3,
101 TEC_STATE_UNAVAILABLE = 99
103
105typedef enum
106#ifdef __cplusplus
107class
108#endif // __cplusplus
110 BEHAVIOR_UNAVAILABLE = 0,
115 BEHAVIOR_RFU = 5
117
122 char serial_number[40];
124 char FPGA_version[16];
125};
126typedef struct AxDeviceInfo AxDeviceInfo;
127
129typedef void(__cdecl *AxConnectCallbackFunctionC_t)(void*);
130
132typedef void(__cdecl* AxCallbackConnectOrDisconnect_t)(AxDeviceInfo, int32_t, void*);
133
138 AXSUN_EXPORTS
147AxErr __cdecl axOpenAxsunOCTControl(uint32_t open_all_interfaces);
148 AXSUN_EXPORTS
154 AXSUN_EXPORTS
161uint32_t __cdecl axCountConnectedDevices();
162 AXSUN_EXPORTS
171void __cdecl axGetErrorExplained(AxErr errornum, char* error_string);
172 AXSUN_EXPORTS
180AxErr __cdecl axUSBInterfaceOpen(uint32_t interface_status);
181 AXSUN_EXPORTS
189AxErr __cdecl axNetworkInterfaceOpen(uint32_t interface_status);
190 AXSUN_EXPORTS
199AxErr __cdecl axSerialInterfaceOpen(uint32_t interface_status, const char* port);
200 AXSUN_EXPORTS
210AxErr __cdecl axLibraryVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build);
211 AXSUN_EXPORTS
219int32_t __cdecl axGetLWBuildDateTime(char* datetime_str);
220 AXSUN_EXPORTS
229int32_t __cdecl axGetLWBuildCfg();
230 AXSUN_EXPORTS
240AxErr __cdecl axGetLibusbVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build);
241 AXSUN_EXPORTS
250AxErr __cdecl axRegisterConnectCallback(AxConnectCallbackFunctionC_t callback_function, void* userData);
251 AXSUN_EXPORTS
260AxErr __cdecl axRegCallbackConnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void* userData);
261 AXSUN_EXPORTS
270AxErr __cdecl axRegCallbackDisconnectOnly(AxCallbackConnectOrDisconnect_t callback_function, void* userData);
271 AXSUN_EXPORTS
279AxErr __cdecl axRegisterLabVIEWCallback(uint32_t* refnumptr);
280
281
283
284
289
290
291 AXSUN_EXPORTS
301AxErr __cdecl axFirmwareVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t which_device);
302 AXSUN_EXPORTS
314AxErr __cdecl axFPGAVersion(uint32_t* major, uint32_t* minor, uint32_t* patch, uint32_t* build, uint32_t which_device);
315 AXSUN_EXPORTS
323AxErr __cdecl axDeviceType(AxDevType* device_type, uint32_t which_device);
324 AXSUN_EXPORTS
332AxErr __cdecl axSerialNumber(char* serial_number, uint32_t which_device);
333 AXSUN_EXPORTS
342 AXSUN_EXPORTS
350AxErr __cdecl axGetDeviceInfo(AxDeviceInfo* device_info, uint32_t which_device);
351
353
354
355
360 AXSUN_EXPORTS
369AxErr __cdecl axSetLaserEmission(uint32_t emission_state, uint32_t which_laser);
370 AXSUN_EXPORTS
378 AxErr __cdecl axGetLaserEmission(uint32_t* emitting, uint32_t which_laser);
379 AXSUN_EXPORTS
387 AxErr __cdecl axSetPointerEmission(uint32_t emission_state, uint32_t which_laser);
388 AXSUN_EXPORTS
396 AxErr __cdecl axGetPointerEmission(uint32_t* emitting, uint32_t which_laser);
397 AXSUN_EXPORTS
406 AxErr __cdecl axSetLaserPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser);
407 AXSUN_EXPORTS
415 AxErr __cdecl axGetLaserPowerUp(AxPowerUpBehavior* behavior, uint32_t which_laser);
416 AXSUN_EXPORTS
425 AxErr __cdecl axSetPointerPowerUp(AxPowerUpBehavior behavior, uint32_t which_laser);
426 AXSUN_EXPORTS
434 AxErr __cdecl axGetPointerPowerUp(AxPowerUpBehavior* behavior, uint32_t which_laser);
435 AXSUN_EXPORTS
444 AxErr __cdecl axSetClockDelay(uint32_t delay_code, uint32_t which_laser);
445 AXSUN_EXPORTS
453 AxErr __cdecl axGetClockDelay(uint32_t* delay_code, uint32_t which_laser);
454 AXSUN_EXPORTS
463 AxErr __cdecl axSetDriveConfiguration(uint32_t which_config, uint32_t which_laser);
464 AXSUN_EXPORTS
473 AxErr __cdecl axGetDriveConfiguration(uint32_t* current_configuration, uint32_t which_laser);
474 AXSUN_EXPORTS
484 AxErr __cdecl axGetElapsedTimers(uint32_t* cum_emission_sec, uint32_t* cum_system_sec, uint32_t* uptime_msec, uint32_t which_laser);
485 AXSUN_EXPORTS
495 AxErr __cdecl axGetTECState(AxTECState* TEC_state, uint32_t which_TEC, uint32_t which_laser);
496 AXSUN_EXPORTS
505 AxErr __cdecl axGetLaserErrorState(uint32_t* error_bitfield, uint32_t which_laser);
506 AXSUN_EXPORTS
514 AxErr __cdecl axHomeVDL(uint32_t which_laser);
515 AXSUN_EXPORTS
522 AxErr __cdecl axStopVDL(uint32_t which_laser);
523 AXSUN_EXPORTS
532 AxErr __cdecl axMoveRelVDL(float rel_position, float speed, uint32_t which_laser);
533 AXSUN_EXPORTS
542 AxErr __cdecl axMoveAbsVDL(float abs_position, float speed, uint32_t which_laser);
543 AXSUN_EXPORTS
565 AxErr __cdecl axGetVDLStatus(float* current_pos, float* target_pos, float* speed,
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);
568
569
570
571
573
574
579 AXSUN_EXPORTS
588AxErr __cdecl axImagingCntrlEthernet(int16_t number_of_images, uint32_t which_DAQ);
589 AXSUN_EXPORTS
599AxErr __cdecl axSetImageSyncSource(AxEdgeSource source, float frequency, uint32_t which_DAQ);
600 AXSUN_EXPORTS
609AxErr __cdecl axSetSampleClockSource(AxEdgeSource source, uint32_t which_DAQ);
610 AXSUN_EXPORTS
619AxErr __cdecl axSetSweepTriggerSource(AxEdgeSource source, uint32_t which_DAQ);
620 AXSUN_EXPORTS
630AxErr __cdecl axSetPipelineMode(AxPipelineMode pipeline_mode, AxChannelMode polarization_mode, uint32_t which_DAQ);
631 AXSUN_EXPORTS
639AxErr __cdecl axSetEightBitGain(float gain, uint32_t which_DAQ);
640 AXSUN_EXPORTS
648AxErr __cdecl axSetEightBitOffset(float offset, uint32_t which_DAQ);
649 AXSUN_EXPORTS
657AxErr __cdecl axSetSubsamplingFactor(uint8_t subsampling_factor, uint32_t which_DAQ);
658 AXSUN_EXPORTS
667AxErr __cdecl axGetFPGARegister(const uint32_t regnum, uint16_t* regval, uint32_t which_DAQ);
668 AXSUN_EXPORTS
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);
681
682 AXSUN_EXPORTS
694AxErr __cdecl axGetFPGARegisterDefaults(uint32_t elements_allocated, uint16_t* regnums, uint16_t* regvals, uint32_t* elements_returned, uint32_t which_DAQ);
695
696 AXSUN_EXPORTS
707AxErr __cdecl axSetFPGARegisterDefaults(const uint16_t* regnums, const uint16_t* regvals, uint32_t count, uint32_t which_DAQ);
708 AXSUN_EXPORTS
717AxErr __cdecl axSetFPGARegister(uint32_t regnum, uint16_t regval, uint32_t which_DAQ);
718 AXSUN_EXPORTS
728AxErr __cdecl axSetFPGARegisterMasked(uint32_t regnum, uint16_t regval, uint16_t bitmask, uint32_t which_DAQ);
729 AXSUN_EXPORTS
739AxErr __cdecl axSetFPGARegisterSingleBit(uint32_t regnum, uint32_t which_bit, uint32_t value, uint32_t which_DAQ);
740 AXSUN_EXPORTS
750AxErr __cdecl axSetFPGARegisterSingleByte(uint32_t regnum, uint32_t which_byte, uint32_t value, uint32_t which_DAQ);
751 AXSUN_EXPORTS
761AxErr __cdecl axSetFPGARegisterSingleNibble(uint32_t regnum, uint32_t which_nibble, uint32_t value, uint32_t which_DAQ);
762 AXSUN_EXPORTS
772AxErr __cdecl axSetFPGADataArray(uint32_t regnum, const uint16_t* data_array, uint32_t number_of_words, uint32_t which_DAQ);
773 AXSUN_EXPORTS
785AxErr __cdecl axSetFPGAWindowFunction(AxChannelMode channel, const float* window_real, const float* window_imag, uint32_t window_length, uint32_t which_DAQ);
786
787
789
793
794 AXSUN_EXPORTS
805AxErr __cdecl axCountDeviceSettings(uint32_t* float_count, uint32_t* int_count, uint32_t* bool_count, uint32_t which_device);
806 AXSUN_EXPORTS
818AxErr __cdecl axGetFloatSetting(uint32_t which_setting, float* setting_value, char* setting_string, uint32_t which_device);
819 AXSUN_EXPORTS
831AxErr __cdecl axGetIntSetting(uint32_t which_setting, int32_t* setting_value, char* setting_string, uint32_t which_device);
832 AXSUN_EXPORTS
844AxErr __cdecl axGetBoolSetting(uint32_t which_setting, uint8_t* setting_value, char* setting_string, uint32_t which_device);
845 AXSUN_EXPORTS
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);
861 AXSUN_EXPORTS
871AxErr __cdecl axConnectionHeartbeat(uint32_t heartbeat_state, uint32_t which_device);
872 AXSUN_EXPORTS
885AxErr __cdecl axDebugCommand(uint32_t command_number, uint32_t value_out, uint32_t* command_in, uint32_t* value_in, uint32_t which_device);
886 AXSUN_EXPORTS
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);
909
910 AXSUN_EXPORTS
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);
929 AXSUN_EXPORTS
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);
947 AXSUN_EXPORTS
959AxErr __cdecl axReadDAQPHYRegister(uint32_t phynum, uint32_t regnum, uint16_t* regval, uint32_t which_DAQ);
960
961 AXSUN_EXPORTS
971AxErr __cdecl axUpdateMicroprocessorFW(const char* file, uint32_t which_device);
972
976typedef void(__cdecl* AxProgressCallbackFcn)(int32_t, int32_t, void*);
977 AXSUN_EXPORTS
989AxErr __cdecl axUpdateFPGABitstream(const char* file, AxProgressCallbackFcn callback, void* user_data, uint32_t which_device);
990 AXSUN_EXPORTS
1001AxErr __cdecl axUpdateFPGABitstreamLabVIEW(const char* file, uint32_t* refnumptr, uint32_t which_device);
1002
1004
1005
1006#ifdef __cplusplus
1007} // end extern "C"
1008
1010inline const char* AxConnectTypeString(AxConnectionType connection) {
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";
1017 }
1018}
1019
1021inline const char* AxDevTypeString(AxDevType device) {
1022 switch (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";
1028 }
1029}
1030
1031
1032
1033#endif // __cplusplus
1034
1035#endif /* End header include guard */
1036
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