# TecellaAmp.h File Reference

## Data Structures
struct | tecella_lib_props
struct | tecella_hw_props
struct | tecella_hw_props_ex_01
struct | tecella_reg_props
struct | tecella_system_monitor_result
struct | tecella_stimulus_segment
struct | tecella_stimulus_segment_ex
## Defines
#define | TECELLA_ALLCHAN 0x8000
#define | TECELLA_SOURCE_NONE 0
#define | TECELLA_SOURCE_HEAD 1
#define | TECELLA_SOURCE_MODEL1 2
#define | TECELLA_SOURCE_MODEL2 3
#define | TECELLA_GAIN_A 0
#define | TECELLA_GAIN_B 1
#define | TECELLA_GAIN_C 2
#define | TECELLA_GAIN_D 3
#define | TECELLA_HW_PROPS_DEVICE_NAME_SIZE 32
#define | TECELLA_HW_PROPS_SERIAL_NUMBER_SIZE 32
#define | TECELLA_HW_PROPS_USER_CONFIG_NAME_SIZE 32
#define | TECELLA_HW_PROPS_ACQUISITION_UNITS_SIZE 32
#define | TECELLA_HW_PROPS_STIMULUS_UNITS_SIZE 32
#define | TECELLA_HW_PROPS_GAIN_NAME_SIZE 32
#define | TECELLA_REG_PROPS_LABEL_SIZE 32
#define | TECELLA_REG_PROPS_UNITS_SIZE 32
#define | TECELLA_SYSTEM_MONITOR_RESULT_LABEL_SIZE 32
#define | TECELLA_SYSTEM_MONITOR_UNITS_LABEL_SIZE 32
#define | CALL __cdecl
## Typedefs
typedef int | TECELLA_HNDL
typedef struct tecella_lib_props | TECELLA_LIB_PROPS
typedef struct tecella_hw_props | TECELLA_HW_PROPS
typedef struct tecella_hw_props_ex_01 | TECELLA_HW_PROPS_EX_01
typedef struct tecella_reg_props | TECELLA_REG_PROPS
typedef struct tecella_system_monitor_result | TECELLA_SYSTEM_MONITOR_RESULT
typedef struct tecella_stimulus_segment | TECELLA_STIMULUS_SEGMENT
typedef struct tecella_stimulus_segment_ex | TECELLA_STIMULUS_SEGMENT_EX
typedef void(CALL * | TECELLA_ERR_CB )(TECELLA_HNDL h, TECELLA_ERRNUM e, const wchar_t *msg)
typedef void(CALL * | TECELLA_ACQUIRE_CB )(TECELLA_HNDL h, int channel, unsigned int samples_available)
typedef void(CALL * | TECELLA_STIMULUS_CB )(TECELLA_HNDL h, int stimulus_index, unsigned long long timestamp)
## Enumerations
enum | TECELLA_HW_MODEL { TECELLA_HW_MODEL_AUTO_DETECT, TECELLA_HW_MODEL_TRITON, TECELLA_HW_MODEL_TRITON_PLUS, TECELLA_HW_MODEL_JET, TECELLA_HW_MODEL_RICHMOND, TECELLA_HW_MODEL_PROTEUS, TECELLA_HW_MODEL_APOLLO, TECELLA_HW_MODEL_WALL_E, TECELLA_HW_MODEL_SHASTA, TECELLA_HW_MODEL_AMADEUS, TECELLA_HW_MODEL_PICO }
enum | TECELLA_REGISTER { TECELLA_REG_CFAST = 0x00, TECELLA_REG_CSLOW_A = 0x01, TECELLA_REG_CSLOW_B = 0x02, TECELLA_REG_CSLOW_C = 0x03, TECELLA_REG_CSLOW_D = 0x04, TECELLA_REG_RSERIES = 0x05, TECELLA_REG_LEAK = 0x06, TECELLA_REG_JP = 0x07, TECELLA_REG_JP_FINE = 0x08, TECELLA_REG_LEAK_FINE = 0x09, TECELLA_REG_ICMD_OFFSET = 0x0A, TECELLA_REG_BOOST_FREQUENCY = 0x0B, TECELLA_REG_BOOST_GAIN = 0x0C }
enum | TECELLA_OFFSET_ADJUST_MODE { TECELLA_OAM_OFF = 0, TECELLA_OAM_ADJUST_STIMULUS = 1, TECELLA_OAM_ADJUST_RESPONSE = 2, TECELLA_OAM_ADJUST_STIMULUS_AND_RESPONSE = 3 }
enum | TECELLA_ERRNUM { TECELLA_ERR_OK = 0x000, TECELLA_ERR_NOT_IMPLEMENTED = 0x001, TECELLA_ERR_NOT_SUPPORTED = 0x002, TECELLA_ERR_NOT_SUPPORTED_01 = 0x401, TECELLA_ERR_NOT_SUPPORTED_02 = 0x402, TECELLA_ERR_NOT_SUPPORTED_03 = 0x403, TECELLA_ERR_NOT_SUPPORTED_04 = 0x404, TECELLA_ERR_NOT_SUPPORTED_05 = 0x405, TECELLA_ERR_NOT_SUPPORTED_06 = 0x406, TECELLA_ERR_NOT_SUPPORTED_07 = 0x407, TECELLA_ERR_NOT_SUPPORTED_08 = 0x408, TECELLA_ERR_NOT_SUPPORTED_09 = 0x409, TECELLA_ERR_NOT_SUPPORTED_10 = 0x40A, TECELLA_ERR_BAD_HANDLE = 0x003, TECELLA_ERR_INVALID_CHANNEL = 0x004, TECELLA_ERR_INVALID_STIMULUS = 0x005, TECELLA_ERR_INVALID_CHOICE = 0x006, TECELLA_ERR_ALLCHAN_NOT_ALLOWED = 0x007, TECELLA_ERR_RETURN_POINTER_NULL = 0x008, TECELLA_ERR_ARGUMENT_POINTER_NULL = 0x009, TECELLA_ERR_VALUE_OUTSIDE_OF_RANGE = 0x00A, TECELLA_ERR_INVALID_REGISTER_COMBINATION = 0x00B, TECELLA_ERR_DEVICE_CONTENTION = 0x00C, TECELLA_ERR_INTERNAL = 0x00D, TECELLA_ERR_FILE_DOES_NOT_EXIST = 0x00E, TECELLA_ERR_BAD_FILE_FORMAT = 0X00F, TECELLA_ERR_STD_EXCEPTION = 0x0010, TECELLA_ERR_UNKNOWN_EXCEPTION = 0x0011, TECELLA_ERR_OKLIB_NOT_FOUND = 0x100, TECELLA_ERR_DEVICE_OPEN_FAILED = 0x101, TECELLA_ERR_DEVICE_INIT_FAILED = 0x102, TECELLA_ERR_INVALID_DEVICE_INDEX = 0x103, TECELLA_ERR_BAD_FIRMWARE_VERSION = 0x104, TECELLA_ERR_STIMULUS_INVALID_SEGMENT_COUNT = 0x200, TECELLA_ERR_STIMULUS_INVALID_DURATION = 0x201, TECELLA_ERR_STIMULUS_INVALID_VALUE = 0x202, TECELLA_ERR_STIMULUS_INVALID_DURATION_DELTA = 0x203, TECELLA_ERR_STIMULUS_INVALID_VALUE_DELTA = 0x204, TECELLA_ERR_STIMULUS_INVALID_RAMP_STEP_COUNT = 0x205, TECELLA_ERR_STIMULUS_INVALID_RAMP_END_VALUE = 0x206, TECELLA_ERR_STIMULUS_INVALID_DELTA_COUNT = 0x207, TECELLA_ERR_STIMULUS_INVALID_REPEAT_COUNT = 0x208, TECELLA_ERR_STIMULUS_INVALID_SEGMENT_SEQUENCE = 0x209, TECELLA_ERR_STIMULUS_INVALID_SIZE = 0x20A, TECELLA_ERR_INVALID_SAMPLE_PERIOD = 0x300, TECELLA_ERR_HW_BUFFER_OVERFLOW = 0x301, TECELLA_ERR_SW_BUFFER_OVERFLOW = 0x302, TECELLA_ERR_ACQ_CRC_FAILED = 0x303, TECELLA_ERR_CHANNEL_BUFFER_OVERFLOW = 0x304 }
enum | TECELLA_STIMULUS_SEGMENT_TYPE { TECELLA_STIMULUS_SEGMENT_SET, TECELLA_STIMULUS_SEGMENT_DELTA, TECELLA_STIMULUS_SEGMENT_RAMP }
## Functions
DLLEXPORT TECELLA_ERRNUM CALL | tecella_debug (const char *logfile)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_debug_default ()
DLLEXPORT TECELLA_ERRNUM CALL | tecella_enumerate (int *device_count)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_enumerate_get (int device_index, TECELLA_HW_PROPS *description)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_initialize (TECELLA_HNDL *h, int device_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_initialize_pair (TECELLA_HNDL *h, TECELLA_HNDL hA, TECELLA_HNDL hB)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_finalize (TECELLA_HNDL h)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_user_config_get (TECELLA_HNDL h, int user_config, TECELLA_HW_PROPS *description)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_user_config_set (TECELLA_HNDL h, int user_config)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_user_config_get_current (TECELLA_HNDL h, int *user_config)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_initialize_from_file (TECELLA_HNDL *ph, char *filename)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_finalize_to_file (TECELLA_HNDL h, char *filename)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_calibrate_all (TECELLA_HNDL h)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_calibrate_save (TECELLA_HNDL h, const char *foldername, const char *filename=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_calibrate_load (TECELLA_HNDL h, const char *foldername, const char *filename=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_scale (TECELLA_HNDL h, bool enable, int unused_stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_scale_enable (TECELLA_HNDL h, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_scale_enable_get (TECELLA_HNDL h, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_calibrate (TECELLA_HNDL h, bool enable, int unused_stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_calibrate_enable (TECELLA_HNDL h, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_calibrate_enable_get (TECELLA_HNDL h, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_calibrate_get (TECELLA_HNDL h, int channel, int *offset)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_calibrate_set (TECELLA_HNDL h, int channel, int offset)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_lib_props (TECELLA_LIB_PROPS *props)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_hw_props (TECELLA_HNDL h, TECELLA_HW_PROPS *props)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_hw_props_ex_01 (TECELLA_HNDL h, TECELLA_HW_PROPS_EX_01 *props)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_reg_props (TECELLA_HNDL h, TECELLA_REGISTER r, TECELLA_REG_PROPS *props)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_gain_label (TECELLA_HNDL h, int gain_index, const wchar_t **label)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_gain1_label (TECELLA_HNDL h, int gain_index, const wchar_t **label)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_gain2_label (TECELLA_HNDL h, int gain_index, const wchar_t **label)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_source_label (TECELLA_HNDL h, int source_index, const wchar_t **label)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_get_slew_label (TECELLA_HNDL h, int slew_index, const wchar_t **label)
DLLEXPORT const wchar_t *CALL | tecella_error_message (TECELLA_ERRNUM errnum)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_error_set_callback (TECELLA_HNDL h, TECELLA_ERR_CB f)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_system_monitor_run (TECELLA_HNDL h, int *result_count, int *results_per_controller, int *results_per_slot)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_system_monitor_get (TECELLA_HNDL h, int result_index, TECELLA_SYSTEM_MONITOR_RESULT *result)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_system_monitor_dynamic_set (TECELLA_HNDL h, int monitor_index)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_diagnostics_run (TECELLA_HNDL h, int *pass_count, int *fail_count)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_diagnostics_get_pass (TECELLA_HNDL h, int pass_index, const wchar_t **msg)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_diagnostics_get_failure (TECELLA_HNDL h, int fail_index, const wchar_t **msg)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_utility_dac_set (TECELLA_HNDL h, double value, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_utility_trigger_out (TECELLA_HNDL h, int index)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_utility_set_stimulus (TECELLA_HNDL h, int channel, int stimulus_index)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_telegraph_enable (TECELLA_HNDL h, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_source (TECELLA_HNDL h, int channel, int choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_source (TECELLA_HNDL h, int channel, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_gain (TECELLA_HNDL h, int channel, int choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_gain1 (TECELLA_HNDL h, int channel, int choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_gain2 (TECELLA_HNDL h, int channel, int choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_gain (TECELLA_HNDL h, int channel, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_gain1 (TECELLA_HNDL h, int channel, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_gain2 (TECELLA_HNDL h, int channel, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_stimulus (TECELLA_HNDL h, int channel, int choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_stimulus (TECELLA_HNDL h, int channel, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_boost_enable (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_boost_enable (TECELLA_HNDL h, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_boost_enable_supported (TECELLA_HNDL h, bool *supported)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_iclamp_enable (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_iclamp_enable (TECELLA_HNDL h, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_vcmd_enable (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_vcmd_enable (TECELLA_HNDL h, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_Rs100_enable (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_Rs100_enable (TECELLA_HNDL h, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_IclampOn (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_IclampOn (TECELLA_HNDL h, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, double value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, double *value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_pct (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, double pct)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_pct (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, double *pct)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_enable (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_enable (TECELLA_HNDL h, TECELLA_REGISTER r, int channel, bool *enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_bessel (TECELLA_HNDL h, int channel, int value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_bessel (TECELLA_HNDL h, int channel, int *value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_bessel_value2freq (TECELLA_HNDL h, int value, double *kHz)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_bessel_freq2value (TECELLA_HNDL h, double kHz, int *value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_hpf (TECELLA_HNDL h, int channel, int value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_hpf (TECELLA_HNDL h, int channel, int *value)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_hpf_value2freq (TECELLA_HNDL h, int choice, double *Hz)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_hpf_freq2value (TECELLA_HNDL h, double Hz, int *choice)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_digital_leak (TECELLA_HNDL h, int channel, double digital_leak)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_digital_leak (TECELLA_HNDL h, int channel, double *digital_leak)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_set_digital_leak_enable (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_chan_get_digital_leak_enable (TECELLA_HNDL h, int channel, bool *enabled)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_set_hold (TECELLA_HNDL h, double value, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_set (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT *segments, int segment_count, int delta_count=1, int repeat_count=1, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_set_ex (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT_EX *segments, int segment_count, int delta_count=1, int repeat_count=1, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_get (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT *segments, int segments_max, int *segments_in_stimulus, int *delta_count, int *repeat_count, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_get_ex (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT_EX *segments, int segments_max, int *segments_in_stimulus, int *delta_count, int *repeat_count, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_set_slew (TECELLA_HNDL h, int choice, int index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_set_callback (TECELLA_HNDL h, TECELLA_STIMULUS_CB f)
DLLEXPORT unsigned long long CALL | tecella_stimulus_index_sample_count (TECELLA_HNDL h, int index, double sample_period)
DLLEXPORT unsigned long long CALL | tecella_stimulus_sample_count (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT *segments, int segment_count, int delta_count, int repeat_count, double sample_period)
DLLEXPORT unsigned long long CALL | tecella_stimulus_sample_count_ex (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT_EX *segments, int segment_count, int delta_count, int repeat_count, double sample_period)
DLLEXPORT unsigned int CALL | tecella_stimulus_sample_count_partial (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT *segments, int segment_count, int delta_iteration, double sample_period)
DLLEXPORT unsigned int CALL | tecella_stimulus_sample_count_partial_ex (TECELLA_HNDL h, TECELLA_STIMULUS_SEGMENT_EX *segments, int segment_count, int delta_iteration, double sample_period)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_zap (TECELLA_HNDL h, double duration, double amplitude, int *channels=0, int channel_count=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_steer (TECELLA_HNDL h, int stimulus_index, int destination_index, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_stream_initialize (TECELLA_HNDL h, short *data, int size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_stream_write (TECELLA_HNDL h, short *data, int size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_stimulus_stream_end (TECELLA_HNDL h)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_offset (TECELLA_HNDL h, double jp_delta=0, int unused_stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_comp_offset_adjust_mode_set (TECELLA_HNDL h, int channel, TECELLA_OFFSET_ADJUST_MODE mode)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_comp_offset_adjust_mode_get (TECELLA_HNDL h, int channel, TECELLA_OFFSET_ADJUST_MODE *mode)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_comp (TECELLA_HNDL h, double v_hold=0, double t_hold=20e-3, double v_step=10e-3, double t_step=20e-3, bool use_leak=true, bool use_digital_leak=false, bool use_cfast=true, bool use_cslow_a=true, bool use_cslow_b=true, bool use_cslow_c=true, bool use_cslow_d=true, bool use_artifact=true, double under_comp_coefficient=0.0, int acq_iterations=10, int unused_stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_decay_start (TECELLA_HNDL h, double time_fraction)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_update (TECELLA_HNDL h, double v_hold=0, double t_hold=19e-3, double v_step=10e-3, double t_step=19e-3, int iterations=10, int unused_stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_enable (TECELLA_HNDL h, bool enable=true, int stimulus_index=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_get_capacitance (TECELLA_HNDL h, int channel, double *capacitance)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_get_size (TECELLA_HNDL h, int channel, int *size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_get (TECELLA_HNDL h, int channel, double *artifact, int max_size, int *actual_size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_artifact_set (TECELLA_HNDL h, int channel, double *artifact, int size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_auto_frequency_boost_filter (TECELLA_HNDL h, int lpf_width, int stimulus=0)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_sw_filter_enable (TECELLA_HNDL h, bool enable, int channel=TECELLA_ALLCHAN)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_sw_filter_auto_downsample (TECELLA_HNDL h, bool enable, int channel=TECELLA_ALLCHAN)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_sw_filter_set (TECELLA_HNDL h, double *kernel, int kernel_size, int channel=TECELLA_ALLCHAN)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_sw_filter_set_box (TECELLA_HNDL h, int width, int channel=TECELLA_ALLCHAN)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_sw_filter_set_lanczos (TECELLA_HNDL h, double width, int quality=3, int channel=TECELLA_ALLCHAN)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_set_callback (TECELLA_HNDL h, TECELLA_ACQUIRE_CB f, unsigned int period=1024)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_enable_channel (TECELLA_HNDL h, int channel, bool enable)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_enable_auto_zero (TECELLA_HNDL h, int channel, bool enable, int window_size)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_set_buffer_size (TECELLA_HNDL h, unsigned int samples_per_chan)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_set_trigger_in_mode (TECELLA_HNDL h, bool active_high, double debounce_delay)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_start (TECELLA_HNDL h, int sample_period_multiplier, bool continuous=false, bool start_stimuli=true, bool continuous_stimuli=false, bool start_on_trigger=false)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_start_stimulus (TECELLA_HNDL h, int stimulus_index, bool start=true, bool continuous=false, int sample_period_multiplier=1)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_start_stimuli (TECELLA_HNDL h, int *stimulus_indexes, int stimulus_count, bool start=true, bool continuous=false, int sample_period_multiplier=1)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_stop_stimulus (TECELLA_HNDL h, int stimulus_index, bool continuous=false)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_stop (TECELLA_HNDL h)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_samples_available (TECELLA_HNDL h, int chan, unsigned int *samples_available)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_read_d (TECELLA_HNDL h, int chan, int requested_samples, double *data, unsigned int *actual_samples, unsigned long long *first_sample_timestamp, bool *last_sample_flag)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_read_f (TECELLA_HNDL h, int chan, int requested_samples, float *data, unsigned int *actual_samples, unsigned long long *first_sample_timestamp, bool *last_sample_flag)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_read_i (TECELLA_HNDL h, int chan, int requested_samples, short *data, unsigned int *actual_samples, unsigned long long *first_sample_timestamp, bool *last_sample_flag)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_read_clip_detect (TECELLA_HNDL h, int chan, bool *clipping_detected)
DLLEXPORT TECELLA_ERRNUM CALL | tecella_acquire_i2d_scale (TECELLA_HNDL h, int chan, double *scale)

## Define Documentation

#define TECELLA_ALLCHAN 0x8000

Use this in place of a channel number to indicate all channels.

#define TECELLA_GAIN_A 0

#define TECELLA_GAIN_B 1

#define TECELLA_GAIN_C 2

#define TECELLA_GAIN_D 3

#define TECELLA_HW_PROPS_ACQUISITION_UNITS_SIZE 32

tecella_hw_props_ex_01 subject to change Properties of the connected device. For use with tecella_get_hw_props_ex_01().

#define TECELLA_HW_PROPS_DEVICE_NAME_SIZE 32

tecella_hw_props Properties of the connected device. For use with tecella_get_hw_props().

#define TECELLA_HW_PROPS_GAIN_NAME_SIZE 32

#define TECELLA_HW_PROPS_SERIAL_NUMBER_SIZE 32

#define TECELLA_HW_PROPS_STIMULUS_UNITS_SIZE 32

#define TECELLA_HW_PROPS_USER_CONFIG_NAME_SIZE 32

#define TECELLA_REG_PROPS_LABEL_SIZE 32

tecella_reg_props Provides useful information about a register for a specific device. For use with tecella_get_reg_props().

#define TECELLA_REG_PROPS_UNITS_SIZE 32

#define TECELLA_SOURCE_HEAD 1

Tells tecella_chan_set_source() to use the regular head inputs. (Default)

#define TECELLA_SOURCE_MODEL1 2

Tells tecella_chan_set_source() to use the internal model cell. May or may not be supported, see tecella_get_hw_props().

#define TECELLA_SOURCE_MODEL2 3

Tells tecella_chan_set_source() to use no input. May or may not be supported, see tecella_get_hw_props().

#define TECELLA_SOURCE_NONE 0

Tells tecella_chan_set_source() to use no input

#define TECELLA_SYSTEM_MONITOR_RESULT_LABEL_SIZE 32

tecella_system_monitor_result Contains information about results returned by tecella_system_monitor_get_result().

#define TECELLA_SYSTEM_MONITOR_UNITS_LABEL_SIZE 32

## Typedef Documentation

typedef int TECELLA_HNDL

A device handle to let the API know which device you're addressing.

typedef struct tecella_hw_props TECELLA_HW_PROPS

typedef struct tecella_hw_props_ex_01 TECELLA_HW_PROPS_EX_01

typedef struct tecella_lib_props TECELLA_LIB_PROPS

tecella_lib_props Represents the version of the DLL being used. For use with tecella_get_lib_props().

typedef struct tecella_reg_props TECELLA_REG_PROPS

typedef struct tecella_stimulus_segment TECELLA_STIMULUS_SEGMENT

tecella_stimulus_segment Create an array of these and pass it to tecella_vcmd_set().

typedef struct tecella_stimulus_segment_ex TECELLA_STIMULUS_SEGMENT_EX

tecella_stimulus_segment_ex Create an array of these and pass it to tecella_vcmd_set_ex(). This version adds new features compared to the non "ex" version, but is more likely to change between versions

typedef struct tecella_system_monitor_result TECELLA_SYSTEM_MONITOR_RESULT

## Enumeration Type Documentation

enum TECELLA_ERRNUM

TECELLA_ERRNUM All functions in this API return one of these error values.

Enumerator:

  TECELLA_ERR_OK |
  TECELLA_ERR_NOT_IMPLEMENTED |
  TECELLA_ERR_NOT_SUPPORTED |
  TECELLA_ERR_NOT_SUPPORTED_01 |
  TECELLA_ERR_NOT_SUPPORTED_02 |
  TECELLA_ERR_NOT_SUPPORTED_03 |
  TECELLA_ERR_NOT_SUPPORTED_04 |
  TECELLA_ERR_NOT_SUPPORTED_05 |
  TECELLA_ERR_NOT_SUPPORTED_06 |
  TECELLA_ERR_NOT_SUPPORTED_07 |
  TECELLA_ERR_NOT_SUPPORTED_08 |
  TECELLA_ERR_NOT_SUPPORTED_09 |
  TECELLA_ERR_NOT_SUPPORTED_10 |
  TECELLA_ERR_BAD_HANDLE |
  TECELLA_ERR_INVALID_CHANNEL |
  TECELLA_ERR_INVALID_STIMULUS |
  TECELLA_ERR_INVALID_CHOICE |
  TECELLA_ERR_ALLCHAN_NOT_ALLOWED |
  TECELLA_ERR_RETURN_POINTER_NULL |
  TECELLA_ERR_ARGUMENT_POINTER_NULL |
  TECELLA_ERR_VALUE_OUTSIDE_OF_RANGE |
  TECELLA_ERR_INVALID_REGISTER_COMBINATION | One of the following constraints was not met: 1) Leak must be greater than Rseries.
  TECELLA_ERR_DEVICE_CONTENTION | Certain tasks cannot be run in parallel, such as diagnostics and acquisition.
  TECELLA_ERR_INTERNAL |
  TECELLA_ERR_FILE_DOES_NOT_EXIST |
  TECELLA_ERR_BAD_FILE_FORMAT |
  TECELLA_ERR_STD_EXCEPTION |
  TECELLA_ERR_UNKNOWN_EXCEPTION |
  TECELLA_ERR_OKLIB_NOT_FOUND |
  TECELLA_ERR_DEVICE_OPEN_FAILED |
  TECELLA_ERR_DEVICE_INIT_FAILED |
  TECELLA_ERR_INVALID_DEVICE_INDEX |
  TECELLA_ERR_BAD_FIRMWARE_VERSION |
  TECELLA_ERR_STIMULUS_INVALID_SEGMENT_COUNT |
  TECELLA_ERR_STIMULUS_INVALID_DURATION |
  TECELLA_ERR_STIMULUS_INVALID_VALUE |
  TECELLA_ERR_STIMULUS_INVALID_DURATION_DELTA |
  TECELLA_ERR_STIMULUS_INVALID_VALUE_DELTA |
  TECELLA_ERR_STIMULUS_INVALID_RAMP_STEP_COUNT |
  TECELLA_ERR_STIMULUS_INVALID_RAMP_END_VALUE |
  TECELLA_ERR_STIMULUS_INVALID_DELTA_COUNT |
  TECELLA_ERR_STIMULUS_INVALID_REPEAT_COUNT |
  TECELLA_ERR_STIMULUS_INVALID_SEGMENT_SEQUENCE |
  TECELLA_ERR_STIMULUS_INVALID_SIZE |
  TECELLA_ERR_INVALID_SAMPLE_PERIOD |
  TECELLA_ERR_HW_BUFFER_OVERFLOW |
  TECELLA_ERR_SW_BUFFER_OVERFLOW |
  TECELLA_ERR_ACQ_CRC_FAILED |
  TECELLA_ERR_CHANNEL_BUFFER_OVERFLOW |

enum TECELLA_HW_MODEL

TECELLA_HW_MODEL Specifies the type of device we're connected to or want to connect to. Use in conjunction with tecella_initialize() and tecella_get_hw_props().

Enumerator:

  TECELLA_HW_MODEL_AUTO_DETECT |
  TECELLA_HW_MODEL_TRITON |
  TECELLA_HW_MODEL_TRITON_PLUS |
  TECELLA_HW_MODEL_JET |
  TECELLA_HW_MODEL_RICHMOND |
  TECELLA_HW_MODEL_PROTEUS |
  TECELLA_HW_MODEL_APOLLO |
  TECELLA_HW_MODEL_WALL_E |
  TECELLA_HW_MODEL_SHASTA |
  TECELLA_HW_MODEL_AMADEUS |
  TECELLA_HW_MODEL_PICO |

enum TECELLA_OFFSET_ADJUST_MODE

TECELLA_OFFSET_ADJUST_MODE Used by tecella_auto_comp_offset_adjust_mode_set() to indicate if remaining offsets in the response after tecella_auto_comp() should be compensated using JP and/or offset in the response.

Enumerator:

  TECELLA_OAM_OFF |
  TECELLA_OAM_ADJUST_STIMULUS | Adjusts JP. JP must be supported by the hardware.
  TECELLA_OAM_ADJUST_RESPONSE | Adjusts the response offset.
  TECELLA_OAM_ADJUST_STIMULUS_AND_RESPONSE | Adjusts both JP and the response offset.

enum TECELLA_REGISTER

TECELLA_REGISTER An enumeration of all per-channel settings that may exist on a device. To see if a setting is supported by the device, use tecella_get_reg_props().

Enumerator:

  TECELLA_REG_CFAST |
  TECELLA_REG_CSLOW_A |
  TECELLA_REG_CSLOW_B |
  TECELLA_REG_CSLOW_C |
  TECELLA_REG_CSLOW_D |
  TECELLA_REG_RSERIES |
  TECELLA_REG_LEAK |
  TECELLA_REG_JP |
  TECELLA_REG_JP_FINE |
  TECELLA_REG_LEAK_FINE |
  TECELLA_REG_ICMD_OFFSET |
  TECELLA_REG_BOOST_FREQUENCY |
  TECELLA_REG_BOOST_GAIN |

enum TECELLA_STIMULUS_SEGMENT_TYPE

TECELLA_STIMULUS_SEGMENT_TYPE Specifies the segment type in tecella_stimulus_segment.

Enumerator:

  TECELLA_STIMULUS_SEGMENT_SET | A flat segment.
  TECELLA_STIMULUS_SEGMENT_DELTA | A flat segment that changes its amplitude and/or duration after each iteration.
  TECELLA_STIMULUS_SEGMENT_RAMP | A segment that interpolates from one amplitude to another over a fixed duration.