105 #ifndef __SONICLIB_H_
106 #define __SONICLIB_H_
114 #define SONICLIB_VER_MAJOR (4)
115 #define SONICLIB_VER_MINOR (5)
116 #define SONICLIB_VER_REV (2)
117 #define SONICLIB_VER_SUFFIX ""
121 #ifdef INVN_SONICLIB_INTERNAL_BOARD_CONFIG
122 #include <invn/soniclib/details/chirp_board_config.h>
126 #include "chirp_board_config.h"
135 #ifdef INCLUDE_SHASTA_SUPPORT
136 #include <invn/icu_interface/shasta_external_regs.h>
138 #include <invn/icu_interface/icu_algo_info.h>
152 #define CH101_PART_NUMBER (101)
153 #define CH201_PART_NUMBER (201)
154 #define ICU10201_PART_NUMBER (10201)
155 #define ICU20201_PART_NUMBER (20201)
156 #define ICU30201_PART_NUMBER (30201)
157 #define ICU_UNKNOWN_PART_NUMBER (0)
160 #ifdef INCLUDE_WHITNEY_SUPPORT
162 #define CH101_MAX_NUM_SAMPLES (225)
163 #define CH201_MAX_NUM_SAMPLES (450)
164 #define MAX_NUM_SAMPLES CH201_MAX_NUM_SAMPLES
167 #ifdef INCLUDE_SHASTA_SUPPORT
169 #define ICU_MAX_NUM_SAMPLES (IQ_SAMPLES_MAX)
170 #define MAX_NUM_SAMPLES ICU_MAX_NUM_SAMPLES
175 #define CH_NO_TARGET (0xFFFFFFFF)
176 #define CH_MIN_RANGE_VAL (0x0001)
178 #define CH_DEFAULT_MEAS_NUM (0)
179 #define CH_DEFAULT_TARGET_NUM (0)
181 #define CH_I2C_ADDR_PROG (0x45)
182 #define CH_SIG_BYTE_0 (0x0a)
183 #define CH_SIG_BYTE_1 (0x02)
185 #define CH_RTC_FREQ_TYPICAL (29000)
186 #define CH_PMUT_TICKS_PER_CYCLE (16)
188 #define CH_OP_FREQ_USE_AVG (0)
191 #define CH_MAX_NUM_TARGETS (MAXTARG)
193 #define CH_MAX_NUM_TARGETS (1)
196 #define CH_SPEEDOFSOUND_MPS (343)
198 #define CH_WINDOW_MAX_SAMPLES (64)
288 #ifdef INCLUDE_SHASTA_SUPPORT
334 #define CH_TARGET_INT_HIST_MAX (15)
335 #define CH_TARGET_INT_HIST_DEFAULT (5)
336 #define CH_TARGET_INT_THRESH_DEFAULT (3)
364 #define CH_RTC_USE_BUS_SPEED (UINT16_MAX)
391 CH_DECIMATION_0_25 = -2,
392 CH_DECIMATION_0_50 = -1,
393 CH_DECIMATION_NONE = 1,
420 #define I2C_DRV_FLAG_RESET_AFTER_NB (0x00000001)
421 #define I2C_DRV_FLAG_USE_PROG_NB (0x00000002)
437 uint16_t start_sample;
496 uint16_t meas_period;
500 #ifdef INCLUDE_SHASTA_SUPPORT
503 #define CH_MEAS_MAX_SEGMENTS (INST_BUF_LENGTH)
504 #define CH_MEAS_MAX_MEAS (MEAS_QUEUE_MAX_MEAS)
506 #define CH_SENSOR_ID_LENGTH 8
510 CH_MEAS_SEG_TYPE_COUNT = 0,
511 CH_MEAS_SEG_TYPE_TX = 1,
512 CH_MEAS_SEG_TYPE_RX = 2,
513 CH_MEAS_SEG_TYPE_EOF = 3
518 pmut_transceiver_inst_t inst;
525 uint16_t num_tx_segments;
526 uint16_t num_rx_samples;
536 uint16_t num_rx_samples;
541 uint8_t tx_pulse_width;
551 uint8_t current_meas;
561 uint8_t product_code;
562 uint8_t package_code;
572 typedef uint8_t (*ch_set_num_samples_func_t)(
ch_dev_t *dev_ptr, uint16_t num_samples);
573 typedef uint8_t (*ch_set_sample_window_func_t)(
ch_dev_t *dev_ptr, uint16_t start_sample, uint16_t end_sample);
575 typedef uint16_t (*ch_get_amplitude_func_t)(
ch_dev_t *dev_ptr);
576 typedef uint16_t (*ch_get_amplitude_avg_func_t)(
ch_dev_t *dev_ptr);
577 typedef uint8_t (*ch_set_frequency_func_t)(
ch_dev_t *dev_ptr, uint32_t target_freq_Hz);
578 typedef uint8_t (*ch_get_iq_data_func_t)(
ch_dev_t *dev_ptr,
ch_iq_sample_t *buf_ptr, uint16_t start_sample,
580 typedef uint8_t (*ch_get_amplitude_data_func_t)(
ch_dev_t *dev_ptr, uint16_t *buf_ptr, uint16_t start_sample,
582 typedef uint16_t (*ch_mm_to_samples_func_t)(
ch_dev_t *dev_ptr, uint16_t num_mm);
585 typedef uint8_t (*ch_set_target_int_counter_func_t)(
ch_dev_t *dev_ptr, uint8_t meas_hist, uint8_t thresh_count,
587 typedef uint8_t (*ch_get_target_int_counter_func_t)(
ch_dev_t *dev_ptr, uint8_t *meas_hist_ptr,
588 uint8_t *thresh_count_ptr, uint8_t *reset_ptr);
589 typedef uint8_t (*ch_set_rx_low_gain_func_t)(
ch_dev_t *dev_ptr, uint16_t num_samples);
590 typedef uint16_t (*ch_get_rx_low_gain_func_t)(
ch_dev_t *dev_ptr);
591 typedef uint8_t (*ch_set_tx_length_func_t)(
ch_dev_t *dev_ptr, uint16_t tx_length);
592 typedef uint16_t (*ch_get_tx_length_func_t)(
ch_dev_t *dev_ptr);
595 typedef uint8_t (*ch_set_data_output_func_t)(
ch_dev_t *dev_ptr,
const ch_output_t *output);
596 typedef void (*ch_trigger_soft_func_t)(
ch_dev_t *dev_ptr);
597 typedef uint8_t (*ch_set_data_ready_delay_func_t)(
ch_dev_t *dev_ptr, uint8_t num_cycles);
598 typedef uint8_t (*ch_get_data_ready_delay_func_t)(
ch_dev_t *dev_ptr);
601 #ifdef INCLUDE_SHASTA_SUPPORT
603 typedef uint8_t (*ch_meas_set_iq_output_func_t)(
ch_dev_t *dev_ptr, uint8_t meas_num,
ch_output_type_t output_format);
608 ch_set_num_samples_func_t set_num_samples;
609 ch_set_sample_window_func_t set_sample_window;
610 ch_get_range_func_t get_range;
611 ch_get_amplitude_func_t get_amplitude;
612 ch_get_amplitude_avg_func_t get_amplitude_avg;
613 ch_set_frequency_func_t set_frequency;
614 ch_get_iq_data_func_t get_iq_data;
615 ch_get_amplitude_data_func_t get_amplitude_data;
616 ch_mm_to_samples_func_t mm_to_samples;
617 ch_set_target_interrupt_func_t set_target_interrupt;
618 ch_get_target_interrupt_func_t get_target_interrupt;
619 ch_set_target_int_counter_func_t set_target_int_counter;
620 ch_get_target_int_counter_func_t get_target_int_counter;
621 ch_set_rx_low_gain_func_t set_rx_low_gain;
622 ch_get_rx_low_gain_func_t get_rx_low_gain;
623 ch_set_tx_length_func_t set_tx_length;
624 ch_get_tx_length_func_t get_tx_length;
625 ch_set_cal_result_func_t set_cal_result;
626 ch_get_cal_result_func_t get_cal_result;
627 ch_set_data_output_func_t set_data_output;
628 ch_trigger_soft_func_t trigger_soft;
629 ch_set_data_ready_delay_func_t set_data_ready_delay;
630 ch_get_data_ready_delay_func_t get_data_ready_delay;
631 ch_meas_get_status_func_t meas_get_status;
632 #ifdef INCLUDE_SHASTA_SUPPORT
633 ch_meas_get_iq_output_func_t meas_get_iq_output;
634 ch_meas_set_iq_output_func_t meas_set_iq_output;
637 const void *algo_specific_api;
683 const uint8_t reserved : 6;
724 #ifdef INCLUDE_WHITNEY_SUPPORT
734 #ifdef INCLUDE_SHASTA_SUPPORT
750 #ifdef INCLUDE_SHASTA_SUPPORT
759 #ifdef INCLUDE_WHITNEY_SUPPORT
780 #ifdef INCLUDE_SHASTA_SUPPORT
2348 uint8_t *reset_ptr);
2907 #ifdef INCLUDE_SHASTA_SUPPORT
2986 const void *thresh_ptr);
3213 uint8_t index_to_insert);
3230 uint8_t index_to_insert);
3299 uint8_t atten, uint8_t int_enable);
3322 uint8_t phase, uint8_t int_enable);
3365 uint8_t atten, uint8_t int_enable);
3387 uint8_t int_enable);
Internal driver functions for operation with the Chirp ultrasonic sensor.
Functions for performing fixed point arithmetic. https://github.com/dmoulding/log2fix https://github....
Internal definitions for TDK/Chirp ICU ultrasonic sensors.
ch_meas_status_t
Measurement status.
Definition: soniclib.h:249
@ CH_MEAS_STATUS_INIT
Definition: soniclib.h:251
@ CH_MEAS_STATUS_DONE
Definition: soniclib.h:255
@ CH_MEAS_STATUS_TX_OPT
Definition: soniclib.h:252
@ CH_MEAS_STATUS_UNKNOWN
Definition: soniclib.h:250
@ CH_MEAS_STATUS_OK
Definition: soniclib.h:253
@ CH_MEAS_STATUS_PENDING
Definition: soniclib.h:254
void ch_set_trigger_type(ch_dev_t *dev_ptr, ch_trigger_type_t trig_type)
Set the trigger type for a sensor.
Definition: ch_api.c:192
uint8_t ch_meas_add_segment(ch_dev_t *dev_ptr, uint8_t meas_num, ch_meas_segment_t *seg_ptr)
Add a segment to a measurement.
Definition: ch_api.c:1027
uint8_t ch_check_program(ch_dev_t *dev_ptr)
Check sensor firmware program.
Definition: ch_api.c:928
void ch_meas_get_seg_info(ch_dev_t *dev_ptr, uint8_t meas_num, uint8_t seg_num, ch_meas_seg_info_t *info_ptr)
Get configuration information for a measurement segment.
Definition: ch_api.c:1143
uint8_t ch_get_mfg_info(ch_dev_t *dev_ptr, ch_mfg_info_t *info_ptr)
Get manufacturing information for a sensor.
Definition: ch_api.c:1017
uint8_t ch_set_algo_config(ch_dev_t *dev_ptr, const void *algo_cfg_ptr)
Set the measurement algorithm configuration data to a sensor.
Definition: ch_api.c:1260
ch_interrupt_drive_t ch_get_interrupt_drive(ch_dev_t *dev_ptr)
Get the pulse interrupt drive setting.
Definition: ch_api.c:786
uint8_t ch_enable_metadata_in_iq0(ch_dev_t *dev_ptr, uint8_t enable)
Enable or disable placing metadata in the first IQ sample.
Definition: ch_api.c:834
uint8_t ch_set_cal_result(ch_dev_t *dev_ptr, ch_cal_result_t *cal_ptr)
Set the calibration result.
Definition: ch_api.c:933
ch_mode_t
Sensor operating modes.
Definition: soniclib.h:225
@ CH_MODE_CONTINUOUS_RX
Continuous receive mode.
Definition: soniclib.h:238
@ CH_MODE_TRIGGERED_RX_ONLY
Definition: soniclib.h:231
@ CH_MODE_FREERUN
Definition: soniclib.h:227
@ CH_MODE_TRIGGERED_TX_RX
Definition: soniclib.h:229
@ CH_MODE_IDLE
Definition: soniclib.h:226
uint8_t ch_meas_init(ch_dev_t *dev_ptr, uint8_t meas_num, const ch_meas_config_t *meas_config_ptr, const void *thresh_ptr)
Initialize a measurement.
Definition: ch_api.c:999
uint8_t ch_meas_remove_segment(ch_dev_t *dev_ptr, uint8_t meas_num, uint8_t index_to_remove)
Remove an instruction(segment) in a measurement.
Definition: ch_api.c:1042
uint8_t ch_set_data_ready_delay(ch_dev_t *dev_ptr, uint8_t delay_ms)
Set data ready interrupt delay interval.
Definition: ch_api.c:966
ch_prod_code_t
Sensor product codes.
Definition: soniclib.h:204
@ CH_PROD_CODE_ICU10201
Definition: soniclib.h:206
@ CH_PROD_CODE_UNKNOWN
Definition: soniclib.h:208
@ CH_PROD_CODE_ICU30201
Definition: soniclib.h:207
@ CH_PROD_CODE_ICU20201
Definition: soniclib.h:205
uint16_t ch_get_rx_low_gain(ch_dev_t *dev_ptr)
Get the receive low-gain sample count.
Definition: ch_api.c:879
enum ch_group_status ch_group_status_t
Sensor group status.
uint8_t ch_meas_insert_segment(ch_dev_t *dev_ptr, uint8_t meas_num, const ch_meas_segment_t *inst_ptr, uint8_t index_to_insert)
Insert an instruction(segment) to a measurement.
Definition: ch_api.c:1032
uint8_t ch_freerun_time_hop_enable(ch_dev_t *dev_ptr)
Enable time-hopping on measure period freerunning mode.
Definition: ch_api.c:438
uint8_t ch_set_sample_window(ch_dev_t *dev_ptr, uint16_t start_sample, uint16_t num_samples)
Set the sample window for amplitude averaging.
Definition: ch_api.c:491
uint8_t ch_check_reset_state(ch_dev_t *dev_ptr, ch_sensor_reset_state_t *reset_state_ptr)
Check if sensor reset has occurred.
Definition: ch_api.c:1360
ch_range_t
Range data types.
Definition: soniclib.h:218
@ CH_RANGE_DIRECT
Definition: soniclib.h:221
@ CH_RANGE_ECHO_ROUND_TRIP
Definition: soniclib.h:220
@ CH_RANGE_ECHO_ONE_WAY
Definition: soniclib.h:219
uint8_t ch_set_interrupt_drive(ch_dev_t *dev_ptr, ch_interrupt_drive_t drive)
Set interrupt drive (open drain or push pull)
Definition: ch_api.c:781
uint8_t ch_get_algo_info(ch_dev_t *dev_ptr, ICU_ALGO_SHASTA_INFO *algo_info_ptr)
Get the measurement algorithm information data from a sensor.
Definition: ch_api.c:1250
uint8_t ch_sensor_is_connected(ch_dev_t *dev_ptr)
Indicate if a sensor is connected.
Definition: ch_api.c:229
uint8_t ch_get_config(ch_dev_t *dev_ptr, ch_config_t *config_ptr)
Get current configuration settings for a sensor.
Definition: ch_api.c:91
uint8_t ch_meas_switch(ch_dev_t *dev_ptr)
Switch active and standby measurement definitions.
Definition: ch_api.c:1103
uint8_t ch_set_config(ch_dev_t *dev_ptr, ch_config_t *config_ptr)
Set multiple configuration settings for a sensor.
Definition: ch_api.c:101
uint8_t ch_set_target_int_counter(ch_dev_t *dev_ptr, uint8_t meas_hist, uint8_t thresh_count, uint8_t reset)
Configure the target interrupt counter filter.
Definition: ch_api.c:737
uint16_t ch_iq_to_amplitude(ch_iq_sample_t *iq_sample_ptr)
Calculate amplitude from sample I/Q values.
Definition: ch_api.c:632
void ch_log_append(uint8_t log_id, ch_log_fmt_t format, uint64_t timestamp, ch_log_data_t *log_data_ptr)
Append received sensor data to log.
Definition: ch_api.c:333
uint32_t ch_meas_get_interval_ticks(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the repeat interval for a measurement, in sensor RTC clock ticks.
Definition: ch_api.c:1173
uint16_t ch_get_num_output_samples(ch_dev_t *dev_ptr)
Get the number of valid output samples in last measurement.
Definition: ch_api.c:1315
uint8_t ch_get_cal_result(ch_dev_t *dev_ptr, ch_cal_result_t *cal_ptr)
Get the calibration result.
Definition: ch_api.c:944
uint16_t ch_samples_to_mm(ch_dev_t *dev_ptr, uint16_t num_samples)
Convert sample count to millimeters for a sensor.
Definition: ch_api.c:617
uint8_t ch_get_rx_pretrigger(ch_group_t *grp_ptr)
Get receive-only sensor pre-triggering setting.
Definition: ch_api.c:922
uint16_t ch_get_tx_length(ch_dev_t *dev_ptr)
Get the ultrasound transmit pulse length.
Definition: ch_api.c:902
void ch_trigger_soft(ch_dev_t *dev_ptr)
Trigger a measurement using software (SPI) interface.
Definition: ch_api.c:177
uint8_t ch_meas_get_last_num(ch_dev_t *dev_ptr)
Get number of last completed measurement.
Definition: ch_api.c:1108
uint16_t ch_get_freerun_interval(ch_dev_t *dev_ptr)
Get the internal sensing timing interval for a sensor, in milliseconds.
Definition: ch_api.c:391
uint16_t ch_get_next_buf_addr(ch_dev_t *dev_ptr)
Get the address of the IQ buffer that will be written by the next measurement.
Definition: ch_api.c:1113
uint16_t ch_get_rtc_frequency(ch_dev_t *dev_ptr)
Get the sensor real-time clock (RTC) frequency, in Hz.
Definition: ch_api.c:1290
uint8_t ch_set_freerun_interval_us(ch_dev_t *dev_ptr, uint32_t interval_us)
Set the internal sensing interval for freerunning mode, in microseconds.
Definition: ch_api.c:423
uint8_t ch_meas_add_segment_rx(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_samples, uint8_t gain_reduce, uint8_t atten, uint8_t int_enable)
Add a receive segment to a measurement.
Definition: ch_api.c:1055
ch_interrupt_drive_t
Sensor interrupt drive type.
Definition: soniclib.h:283
@ CH_INTERRUPT_DRIVE_PUSH_PULL
Definition: soniclib.h:285
@ CH_INTERRUPT_DRIVE_OPEN_DRAIN
Definition: soniclib.h:284
uint8_t ch_set_tx_length(ch_dev_t *dev_ptr, uint16_t num_cycles)
Set the ultrasound transmit pulse length.
Definition: ch_api.c:891
ch_asic_gen_t
Sensor asic design generations.
Definition: soniclib.h:212
@ CH_ASIC_GEN_2_SHASTA
Definition: soniclib.h:214
@ CH_ASIC_GEN_1_WHITNEY
Definition: soniclib.h:213
ch_interrupt_mode_t ch_get_interrupt_mode(ch_dev_t *dev_ptr)
Get the pulse interrupt mode setting.
Definition: ch_api.c:776
uint8_t ch_get_bus(ch_dev_t *dev_ptr)
Get the active SPI/I2C bus for a sensor.
Definition: ch_api.c:262
void ch_meas_get_queue_info(ch_dev_t *dev_ptr, ch_meas_queue_info_t *info_ptr)
Get configuration information for the sensor measurement queue.
Definition: ch_api.c:1138
void ch_reset(ch_dev_t *dev_ptr, ch_reset_t reset_type)
Reset a sensor.
Definition: ch_api.c:207
uint32_t ch_samples_to_cycles(uint16_t num_samples, ch_odr_t odr)
Convert samples to sensor cycles.
Definition: ch_api.c:1330
uint8_t ch_group_start(ch_group_t *grp_ptr)
Program and start a group of sensors.
Definition: ch_api.c:134
uint8_t ch_meas_set_iq_output(ch_dev_t *dev_ptr, uint8_t meas_num, ch_output_type_t output_format)
Set the I/Q data output format for a measurement.
Definition: ch_api.c:1236
uint8_t ch_freerun_time_hop_disable(ch_dev_t *dev_ptr)
Disable time-hopping on measure period freerunning mode.
Definition: ch_api.c:442
uint8_t ch_meas_set_interval_us(ch_dev_t *dev_ptr, uint8_t meas_num, uint32_t interval_us)
Set the repeat interval for a measurement, in microseconds.
Definition: ch_api.c:1153
uint8_t ch_get_algo_output(ch_dev_t *dev_ptr, void *algo_out_ptr)
Get the measurement algorithm output data from a sensor.
Definition: ch_api.c:1264
uint8_t ch_meas_add_segment_count(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_cycles, uint8_t int_enable)
Add a count (delay) segment to a measurement.
Definition: ch_api.c:1050
uint8_t ch_set_max_range(ch_dev_t *dev_ptr, uint16_t max_range)
Set the maximum range for a sensor.
Definition: ch_api.c:470
uint16_t ch_meas_mm_to_samples(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_mm)
Convert millimeters to sample count for a specific measurement.
Definition: ch_api.c:1216
uint32_t ch_group_get_frequency(ch_group_t *grp_ptr)
Get the operating frequency for a group of sensors.
Definition: ch_api.c:585
ch_interrupt_mode_t
Sensor interrupt modes.
Definition: soniclib.h:277
@ CH_INTERRUPT_MODE_PULSE
Definition: soniclib.h:278
@ CH_INTERRUPT_MODE_LATCH
Definition: soniclib.h:279
uint8_t ch_log_init(ch_group_t *grp_ptr, ch_log_fmt_t format, ch_log_cfg_t *config_ptr)
Initialize a log in the specified log format.
Definition: ch_api.c:285
#define CH_MEAS_MAX_MEAS
Definition: soniclib.h:504
uint8_t ch_set_rx_holdoff(ch_dev_t *dev_ptr, uint16_t num_samples)
Set the receive holdoff sample count.
Definition: ch_rangefinder.c:318
uint16_t ch_get_bandwidth(ch_dev_t *dev_ptr)
Get the bandwidth of a sensor.
Definition: ch_api.c:553
uint32_t ch_ticks_to_usec(ch_dev_t *dev_ptr, uint16_t num_ticks)
Convert sensor RTC clock ticks to microseconds.
Definition: ch_api.c:1345
uint8_t ch_set_pmut_clock(ch_dev_t *dev_ptr, ch_pmut_clk_cfg_t clock_cfg)
Configure ultrasound transducer clock.
Definition: ch_api.c:1295
ch_output_type_t
Output type.
Definition: soniclib.h:308
@ CH_OUTPUT_IQ
Definition: soniclib.h:309
@ CH_OUTPUT_AMP
Definition: soniclib.h:311
@ CH_OUTPUT_AMP_THRESH
Definition: soniclib.h:310
uint8_t ch_meas_set_interval(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t interval_ms)
Set the repeat interval for a measurement, in milliseconds.
Definition: ch_api.c:1148
void ch_meas_activate(ch_dev_t *dev_ptr, uint8_t meas_num)
Activate a defined measurement.
Definition: ch_api.c:1093
uint16_t ch_get_num_samples(ch_dev_t *dev_ptr)
Get the number of samples per measurement cycle.
Definition: ch_api.c:446
uint8_t ch_get_sample_window(ch_dev_t *dev_ptr, uint16_t *start_sample_ptr, uint16_t *num_samples_ptr)
Get the sample window for amplitude averaging.
Definition: ch_api.c:479
uint8_t ch_meas_get_queue(ch_dev_t *dev_ptr, measurement_queue_t *meas_queue_ptr)
Get measurement queue values for a sensor.
Definition: ch_api.c:1122
uint8_t ch_group_set_frequency(ch_group_t *grp_ptr, uint32_t request_op_freq_hz)
Set the operating frequency for a group of sensors.
Definition: ch_api.c:580
uint8_t ch_meas_init_queue(ch_dev_t *dev_ptr)
Initialize the sensor measurement queue.
Definition: ch_api.c:989
uint8_t ch_set_frequency(ch_dev_t *dev_ptr, uint32_t request_op_freq_hz)
Set the operating frequency of a sensor.
Definition: ch_api.c:558
uint16_t ch_meas_get_interval(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the repeat interval for a measurement, in milliseconds.
Definition: ch_api.c:1163
uint32_t ch_get_range(ch_dev_t *dev_ptr, ch_range_t range_type)
Get the measured range from a sensor.
Definition: ch_api.c:502
uint32_t ch_usec_to_cycles(ch_dev_t *dev_ptr, uint32_t num_usec)
Convert microseconds to sensor cycles.
Definition: ch_api.c:1320
uint8_t ch_set_rtc(ch_dev_t *dev_ptr, ch_rtc_src_t rtc_source, uint16_t rtc_freq)
Configure the sensor real-time clock (RTC).
Definition: ch_api.c:1285
void ch_group_reset(ch_group_t *grp_ptr, ch_reset_t reset_type)
Reset a group of sensors.
Definition: ch_api.c:221
ch_io_mode_t
I/O blocking mode flags.
Definition: soniclib.h:384
@ CH_IO_MODE_NONBLOCK
Definition: soniclib.h:386
@ CH_IO_MODE_BLOCK
Definition: soniclib.h:385
uint8_t ch_watchdog_enable(ch_dev_t *dev_ptr)
Enable watchdog timer in sensor.
Definition: ch_api.c:1350
void ch_interrupt(ch_group_t *grp_ptr, uint8_t dev_num)
Run SonicLib's full-featured interrupt handler.
Definition: ch_api.c:675
uint8_t ch_group_restart(ch_group_t *grp_ptr)
Restart a group of sensors.
Definition: ch_api.c:155
uint16_t ch_usec_to_ticks(ch_dev_t *dev_ptr, uint32_t num_usec)
Convert microseconds to sensor RTC clock ticks.
Definition: ch_api.c:1340
uint8_t(* ch_fw_init_func_t)(ch_dev_t *dev_ptr, fw_info_t **fw_info)
ASIC firmware init function pointer typedef.
Definition: soniclib.h:687
uint8_t ch_meas_optimize(ch_dev_t *dev_ptr, measurement_queue_t *meas_queue_ptr, void *algo_cfg_ptr)
Optimize ultrasound measurement sequences for a sensor.
Definition: ch_api.c:1084
ch_dev_t * ch_get_dev_ptr(ch_group_t *grp_ptr, uint8_t dev_num)
Get device descriptor pointer for a sensor.
Definition: ch_api.c:244
uint16_t ch_meas_samples_to_mm(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_samples)
Convert sample count to millimeters for a specific measurement.
Definition: ch_api.c:1221
uint8_t ch_meas_import(ch_dev_t *dev_ptr, measurement_queue_t *meas_queue_ptr, void *algo_cfg_ptr)
Import an externally defined measurement configuration.
Definition: ch_api.c:1022
ch_trigger_type_t ch_get_trigger_type(ch_dev_t *dev_ptr)
Get the trigger type for a sensor.
Definition: ch_api.c:199
void(* ch_io_int_callback_t)(ch_group_t *grp_ptr, uint8_t io_index, ch_interrupt_type_t int_type)
Sensor interrupt callback routine pointer.
Definition: soniclib.h:690
const char * ch_get_sensor_id(ch_dev_t *dev_ptr)
Get the unique Sensor ID String for a sensor.
Definition: ch_api.c:1012
ch_retval
Return value codes.
Definition: soniclib.h:201
uint32_t ch_get_cpu_frequency(ch_dev_t *dev_ptr)
Get the sensor CPU frequency, in Hz.
Definition: ch_api.c:1280
uint8_t ch_get_dev_num(ch_dev_t *dev_ptr)
Get device number (I/O index values) for a sensor.
Definition: ch_api.c:239
uint32_t ch_get_frequency(ch_dev_t *dev_ptr)
Get the operating frequency of a sensor.
Definition: ch_api.c:575
uint8_t ch_meas_set_num_samples(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_samples)
Set the sensor sample count for a specific measurement.
Definition: ch_api.c:1196
uint16_t ch_get_max_samples(ch_dev_t *dev_ptr)
Get the maximum possible sample count per measurement.
Definition: ch_api.c:474
uint16_t ch_data_validation_check(ch_dev_t *dev_ptr, ch_iq_sample_t *data, uint16_t num_samples)
Check data in validation mode, which should be enabled before calling this. Should be run over all IQ...
Definition: ch_api.c:801
ch_pmut_clk_cfg_t ch_get_pmut_clock(ch_dev_t *dev_ptr)
Get ultrasound transducer clock configuration.
Definition: ch_api.c:1300
uint8_t ch_meas_add_segment_tx(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t num_cycles, uint8_t pulse_width, uint8_t phase, uint8_t int_enable)
Add a transmit segment to a measurement.
Definition: ch_api.c:1061
uint8_t ch_meas_remove_instruction(ch_dev_t *dev_ptr, uint8_t meas_num, uint8_t index_to_remove)
Remove an instruction(segment) in a measurement.
Definition: ch_api.c:1046
uint8_t ch_meas_time_hop_disable(ch_dev_t *dev_ptr, uint8_t meas_num)
Disable time-hopping on measure period freerunning mode.
Definition: ch_api.c:1182
ch_sensor_reset_state_t
Sensor reset state.
Definition: soniclib.h:400
ch_odr_t
Sensor output data rate (ODR).
Definition: soniclib.h:339
@ CH_ODR_FREQ_DIV_16
Definition: soniclib.h:341
@ CH_ODR_FREQ_DIV_4
Definition: soniclib.h:343
@ CH_ODR_FREQ_DIV_32
Definition: soniclib.h:340
@ CH_ODR_DEFAULT
Definition: soniclib.h:345
@ CH_ODR_FREQ_DIV_2
Definition: soniclib.h:344
@ CH_ODR_FREQ_DIV_8
Definition: soniclib.h:342
uint8_t ch_enable_double_buffer(ch_dev_t *dev_ptr, uint8_t enable)
Enable or disable the double buffering mode.
Definition: ch_api.c:820
uint8_t ch_meas_set_interval_ticks(ch_dev_t *dev_ptr, uint8_t meas_num, uint32_t rtc_ticks)
Set the repeat interval for a measurement, in sensor RTC clock ticks.
Definition: ch_api.c:1158
void ch_get_version(ch_version_t *version_ptr)
Get the SonicLib version number.
Definition: ch_api.c:272
uint8_t ch_set_num_samples(ch_dev_t *dev_ptr, uint16_t num_samples)
Set the sensor sample count directly.
Definition: ch_api.c:451
uint8_t ch_meas_reset(ch_dev_t *dev_ptr, uint8_t meas_num)
Reset a measurement.
Definition: ch_api.c:994
uint8_t ch_set_freerun_interval(ch_dev_t *dev_ptr, uint16_t interval_ms)
Set the internal sensing interval for freerunning mode, in milliseconds.
Definition: ch_api.c:418
uint8_t ch_meas_write_config(ch_dev_t *dev_ptr)
Write measurement configuration to sensor.
Definition: ch_api.c:1117
ch_meas_status_t ch_meas_get_status(ch_dev_t *dev_ptr, uint8_t meas_num)
Get measurement status.
Definition: ch_api.c:760
ch_interrupt_type_t
Sensor interrupt types.
Definition: soniclib.h:290
@ CH_INTERRUPT_TYPE_RTC_CAL_RDY
Definition: soniclib.h:297
@ CH_INTERRUPT_TYPE_OTP_WR_STEP
Definition: soniclib.h:299
@ CH_INTERRUPT_TYPE_MUT_FCOUNT
Definition: soniclib.h:293
@ CH_INTERRUPT_TYPE_CPU_FCOUNT
Definition: soniclib.h:294
@ CH_INTERRUPT_TYPE_WATCHDOG
Definition: soniclib.h:300
@ CH_INTERRUPT_TYPE_DEBUG
Definition: soniclib.h:303
@ CH_INTERRUPT_TYPE_TX_OPTIMIZE
Definition: soniclib.h:296
@ CH_INTERRUPT_TYPE_ERROR
Definition: soniclib.h:304
@ CH_INTERRUPT_TYPE_UNKNOWN
Definition: soniclib.h:291
@ CH_INTERRUPT_TYPE_DATA_RDY
Definition: soniclib.h:292
@ CH_INTERRUPT_TYPE_OTP_COPY
Definition: soniclib.h:298
@ CH_INTERRUPT_TYPE_BIST_RDY
Definition: soniclib.h:295
@ CH_INTERRUPT_TYPE_ALGO_ERROR
Definition: soniclib.h:302
@ CH_INTERRUPT_TYPE_PGM_LOADED
Definition: soniclib.h:301
uint32_t ch_get_freerun_interval_us(ch_dev_t *dev_ptr)
Get the internal sensing timing interval for a sensor, in microseconds.
Definition: ch_api.c:400
ch_rtc_src_t
Sensor real-time clock sources.
Definition: soniclib.h:349
@ CH_RTC_SRC_INTERNAL
Definition: soniclib.h:350
@ CH_RTC_SRC_EXTERNAL
Definition: soniclib.h:351
uint16_t ch_get_max_range(ch_dev_t *dev_ptr)
Get the maximum range setting in mm for a sensor.
Definition: ch_api.c:465
uint16_t ch_get_sample_interval(ch_dev_t *dev_ptr)
Get the internal sensing timing interval for a sensor (deprecated).
Definition: ch_api.c:386
void(* ch_io_complete_callback_t)(ch_group_t *grp_ptr)
Non-blocking I/O complete callback routine pointer.
Definition: soniclib.h:693
ch_log_fmt_t
Log format.
Definition: soniclib.h:403
uint16_t ch_cycles_to_samples(uint32_t num_cycles, ch_odr_t odr)
Convert sensor cycles to samples.
Definition: ch_api.c:1335
uint16_t ch_meas_get_num_samples(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the number of samples per measurement cycle for a specific measurement.
Definition: ch_api.c:1201
ch_rtc_status_t
Sensor real-time clock status.
Definition: soniclib.h:355
@ CH_RTC_STATUS_CAL_BUS
Definition: soniclib.h:360
@ CH_RTC_STATUS_INIT
Definition: soniclib.h:356
@ CH_RTC_STATUS_CAL_ESTIMATED
Definition: soniclib.h:359
@ CH_RTC_STATUS_CAL_FACTORY
Definition: soniclib.h:358
@ CH_RTC_STATUS_EXTERNAL
Definition: soniclib.h:361
@ CH_RTC_STATUS_CAL_DONE
Definition: soniclib.h:357
void(* ch_timer_callback_t)(void)
Periodic timer callback routine pointer.
Definition: soniclib.h:696
ch_trigger_type_t
Sensor trigger types.
Definition: soniclib.h:271
@ CH_TRIGGER_TYPE_HW
Definition: soniclib.h:272
@ CH_TRIGGER_TYPE_SW
Definition: soniclib.h:273
uint16_t ch_mm_to_samples(ch_dev_t *dev_ptr, uint16_t num_mm)
Convert millimeters to sample count for a sensor.
Definition: ch_api.c:621
uint8_t ch_meas_time_hop_enable(ch_dev_t *dev_ptr, uint8_t meas_num)
Enable time-hopping on measure period freerunning mode.
Definition: ch_api.c:1178
uint16_t ch_get_amplitude(ch_dev_t *dev_ptr)
Get the measured amplitude from a sensor.
Definition: ch_api.c:513
uint16_t ch_get_rtc_cal_result(ch_dev_t *dev_ptr)
Get the real-time clock calibration value.
Definition: ch_api.c:595
void ch_meas_get_info(ch_dev_t *dev_ptr, uint8_t meas_num, ch_meas_info_t *info_ptr)
Get configuration information for a measurement.
Definition: ch_api.c:1133
void ch_group_trigger(ch_group_t *grp_ptr)
Trigger a measurement on a group of sensors.
Definition: ch_api.c:203
void ch_io_notify(ch_group_t *grp_ptr, uint8_t bus_index)
Notify SonicLib that a non-blocking I/O operation has completed.
Definition: ch_api.c:710
uint32_t ch_meas_get_interval_us(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the repeat interval for a measurement, in microseconds.
Definition: ch_api.c:1168
uint32_t ch_measure_pmut_frequency(ch_dev_t *dev_ptr)
Measure PMUT frequency on an ICU device.
Definition: ch_api.c:1274
uint16_t ch_get_freerun_interval_ticks(ch_dev_t *dev_ptr)
Get the internal sensing timing interval for a sensor, in RTC clock ticks.
Definition: ch_api.c:409
uint8_t ch_set_data_output(ch_dev_t *dev_ptr, ch_output_t *output_ptr)
Set data output format and rate.
Definition: ch_api.c:955
uint8_t ch_watchdog_disable(ch_dev_t *dev_ptr)
Disable watchdog timer in sensor.
Definition: ch_api.c:1355
uint8_t ch_get_data_ready_delay(ch_dev_t *dev_ptr)
Get data ready interrupt delay interval.
Definition: ch_api.c:977
#define CH_SENSOR_ID_LENGTH
Definition: soniclib.h:506
uint8_t ch_group_init(ch_group_t *grp_ptr, uint8_t num_devices, uint8_t num_buses, uint16_t rtc_cal_pulse_ms)
Initialize the group descriptor for a group of sensors.
Definition: ch_api.c:27
uint8_t(* ch_get_config_func_t)(ch_dev_t *dev_ptr, ch_config_t *config_ptr)
API function pointer typedefs.
Definition: soniclib.h:570
void ch_meas_init_segment_rx(ch_meas_segment_t *seg_ptr, uint16_t num_samples, ch_odr_t odr, uint8_t gain_reduce, uint8_t atten, uint8_t int_enable)
Initialize a receive measurement segment.
Definition: ch_api.c:1072
uint8_t ch_set_init_firmware(ch_dev_t *dev_ptr, ch_fw_init_func_t fw_init_func)
Initialize the init firmware to use for a sensor.
Definition: ch_api.c:76
uint8_t ch_set_interrupt_mode(ch_dev_t *dev_ptr, ch_interrupt_mode_t mode)
Set interrupt mode (pulsed or latching)
Definition: ch_api.c:771
uint8_t ch_meas_insert_instruction(ch_dev_t *dev_ptr, uint8_t meas_num, const ch_meas_segment_t *inst_ptr, uint8_t index_to_insert)
Insert an instruction(segment) to a measurement.
Definition: ch_api.c:1037
uint8_t ch_set_target_interrupt(ch_dev_t *dev_ptr, ch_tgt_int_filter_t tgt_int_filter)
Configure target interrupt filtering mode.
Definition: ch_api.c:715
uint8_t ch_get_i2c_address(ch_dev_t *dev_ptr)
Get the active I2C address for a sensor.
Definition: ch_api.c:252
ch_decimation_t
Decimation factor.
Definition: soniclib.h:390
uint16_t ch_get_rx_holdoff(ch_dev_t *dev_ptr)
Get the receive holdoff sample count.
Definition: ch_rangefinder.c:330
uint16_t ch_get_scale_factor(ch_dev_t *dev_ptr)
Get the amplitude scale factor of a sensor.
Definition: ch_api.c:600
uint8_t ch_set_rx_low_gain(ch_dev_t *dev_ptr, uint16_t num_samples)
Set the receive low-gain sample count.
Definition: ch_api.c:867
ch_output_type_t ch_meas_get_iq_output(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the I/Q data output format for a measurement.
Definition: ch_api.c:1226
ch_odr_t ch_meas_get_odr(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the output data rate for a measurement.
Definition: ch_api.c:1191
ch_tgt_int_filter_t ch_get_target_interrupt(ch_dev_t *dev_ptr)
Get the target interrupt filtering mode setting.
Definition: ch_api.c:726
uint8_t ch_get_target_int_counter(ch_dev_t *dev_ptr, uint8_t *meas_hist_ptr, uint8_t *thresh_count_ptr, uint8_t *reset_ptr)
Get the target interrupt counter filter settings.
Definition: ch_api.c:748
uint8_t ch_get_algo_state(ch_dev_t *dev_ptr, void *algo_state_ptr)
Get the measurement algorithm state data from a sensor.
Definition: ch_api.c:1269
uint8_t ch_get_algo_config(ch_dev_t *dev_ptr, void *algo_cfg_ptr)
Get the measurement algorithm configuration data from a sensor.
Definition: ch_api.c:1255
void ch_meas_init_segment_count(ch_meas_segment_t *seg_ptr, uint16_t num_cycles, uint8_t int_enable)
Initialize a count (delay) measurement segment.
Definition: ch_api.c:1067
ch_tgt_int_filter_t
Target interrupt filter modes.
Definition: soniclib.h:328
@ CH_TGT_INT_FILTER_COUNTER
Definition: soniclib.h:331
@ CH_TGT_INT_FILTER_OFF
Definition: soniclib.h:329
@ CH_TGT_INT_FILTER_ANY
Definition: soniclib.h:330
const char * ch_get_fw_version_string(ch_dev_t *dev_ptr)
Get the firmware version description string for a sensor.
Definition: ch_api.c:280
void ch_group_set_pmut_clock_freq(ch_group_t *grp_ptr, uint32_t pmut_clock_freq)
Specify the transducer clock input frequency for a group of sensors.
Definition: ch_api.c:1305
ch_meas_seg_type_t
Measurement segment type.
Definition: soniclib.h:509
ch_pmut_clk_cfg_t
PMUT clock configuration (ICU sensors)
Definition: soniclib.h:374
@ CH_PMUT_CLK_SRC_EXTERNAL
Definition: soniclib.h:378
@ CH_PMUT_CLK_OUTPUT_ENABLE
Definition: soniclib.h:376
@ CH_PMUT_CLK_OUTPUT_AUTO
Definition: soniclib.h:379
@ CH_PMUT_CLK_DEFAULT
Definition: soniclib.h:375
ch_meas_mode_t
Measurement mode (active / standby)
Definition: soniclib.h:259
@ CH_MEAS_MODE_ACTIVE
Definition: soniclib.h:260
@ CH_MEAS_MODE_STANDBY
Definition: soniclib.h:261
ch_mode_t ch_get_mode(ch_dev_t *dev_ptr)
Get the current operating mode for a sensor.
Definition: ch_api.c:372
uint16_t ch_meas_get_max_range(ch_dev_t *dev_ptr, uint8_t meas_num)
Get the maximum range setting in mm for a specific measurement.
Definition: ch_api.c:1211
uint32_t ch_cycles_to_usec(ch_dev_t *dev_ptr, uint32_t num_cycles)
Convert sensor cycles to microseconds.
Definition: ch_api.c:1325
uint8_t ch_get_iq_data(ch_dev_t *dev_ptr, ch_iq_sample_t *buf_ptr, uint16_t start_sample, uint16_t num_samples, ch_io_mode_t mode)
Get the raw I/Q measurement data from a sensor.
Definition: ch_api.c:605
uint8_t ch_update_metadata_from_iq0(ch_dev_t *dev_ptr, ch_iq_sample_t *iq_data)
Extract the metadata from the first IQ sample and update the device pointer.
Definition: ch_api.c:848
uint8_t ch_meas_set_max_range(ch_dev_t *dev_ptr, uint8_t meas_num, uint16_t max_range_mm)
Set the maximum range in mm for a specific measurement.
Definition: ch_api.c:1206
uint8_t ch_enable_data_validation(ch_dev_t *dev_ptr, int16_t seed, uint8_t enable)
Enable data validation mode. In this mode, ICU-x0201 sensors will overwrite the IQ data at the end of...
Definition: ch_api.c:791
uint16_t ch_get_part_number(ch_dev_t *dev_ptr)
Get part number for a sensor.
Definition: ch_api.c:234
uint8_t ch_init_algo(ch_dev_t *dev_ptr)
Initialize the measurement algorithm on a sensor.
Definition: ch_api.c:1245
ch_reset_t
Sensor reset types.
Definition: soniclib.h:265
@ CH_RESET_SOFT
Definition: soniclib.h:267
@ CH_RESET_HARD
Definition: soniclib.h:266
uint8_t ch_meas_set_odr(ch_dev_t *dev_ptr, uint8_t meas_num, ch_odr_t odr)
Set the output data rate for a measurement.
Definition: ch_api.c:1186
void ch_meas_init_segment_tx(ch_meas_segment_t *seg_ptr, uint16_t num_cycles, uint8_t pulse_width, uint8_t phase, uint8_t int_enable)
Initialize a transmit measurement segment.
Definition: ch_api.c:1078
void ch_trigger(ch_dev_t *dev_ptr)
Trigger a measurement on one sensor.
Definition: ch_api.c:168
ch_group_status
Sensor group status.
Definition: soniclib.h:242
@ CH_GROUP_STAT_INIT_PENDING
Definition: soniclib.h:244
@ CH_GROUP_STAT_INIT_OK
Definition: soniclib.h:245
@ CH_GROUP_STAT_NOT_INIT
Definition: soniclib.h:243
uint8_t ch_get_num_ports(ch_group_t *grp_ptr)
Get the total number of sensor ports (possible sensors) in a sensor group.
Definition: ch_api.c:267
uint8_t ch_set_sample_interval(ch_dev_t *dev_ptr, uint16_t interval_ms)
Set the internal sensing interval (deprecated).
Definition: ch_api.c:433
void ch_io_complete_callback_set(ch_group_t *grp_ptr, ch_io_complete_callback_t callback_func_ptr)
Register non-blocking I/O complete callback routine for a group of sensors.
Definition: ch_api.c:695
uint8_t ch_get_amp_thresh_data(ch_dev_t *dev_ptr, ch_amp_thresh_t *buf_ptr, uint16_t start_sample, uint16_t num_samples, ch_io_mode_t mode)
Get the amplitude measurement and threshold data from a sensor.
Definition: ch_api.c:547
uint8_t ch_minimal_int_handler(ch_group_t *grp_ptr, uint8_t dev_num)
Notify SonicLib that a sensor interrupt was received.
Definition: ch_api.c:661
uint16_t ch_get_amplitude_avg(ch_dev_t *dev_ptr)
Get the averaged measured amplitude over the sample window.
Definition: ch_api.c:524
void ch_set_rx_pretrigger(ch_group_t *grp_ptr, uint8_t enable)
Enable/disable receive-only sensor pre-triggering.
Definition: ch_api.c:913
ch_rtc_cal_t
Sensor real-time clock status.
Definition: soniclib.h:367
@ CH_RTC_CAL_MANUAL
Definition: soniclib.h:369
@ CH_RTC_CAL_BUS
Definition: soniclib.h:370
@ CH_RTC_CAL_STD
Definition: soniclib.h:368
uint16_t ch_get_rtc_cal_pulselength(ch_dev_t *dev_ptr)
Get the real-time clock calibration pulse length.
Definition: ch_api.c:590
uint8_t ch_set_freerun_interval_ticks(ch_dev_t *dev_ptr, uint32_t interval_ticks)
Set the internal sensing interval for freerunning mode, in RTC clock ticks.
Definition: ch_api.c:428
uint8_t ch_restart(ch_dev_t *dev_ptr)
Restart a sensor.
Definition: ch_api.c:139
void ch_io_int_callback_set(ch_group_t *grp_ptr, ch_io_int_callback_t callback_func_ptr)
Register sensor interrupt callback routine for a group of sensors.
Definition: ch_api.c:685
uint8_t ch_set_mode(ch_dev_t *dev_ptr, ch_mode_t mode)
Configure a sensor for the specified operating mode.
Definition: ch_api.c:377
uint8_t ch_io_start_nb(ch_group_t *grp_ptr)
Start non-blocking I/O operation(s) for a group of sensors.
Definition: ch_api.c:649
uint32_t ch_group_get_pmut_clock_freq(ch_group_t *grp_ptr)
Get the transducer clock input frequency for a group of sensors.
Definition: ch_api.c:1310
uint8_t ch_get_amplitude_data(ch_dev_t *dev_ptr, uint16_t *buf_ptr, uint16_t start_sample, uint16_t num_samples, ch_io_mode_t mode)
Get the raw amplitude measurement data from a sensor.
Definition: ch_api.c:535
uint8_t ch_init(ch_dev_t *dev_ptr, ch_group_t *grp_ptr, uint8_t dev_num, ch_fw_init_func_t fw_init_func)
Initialize the device descriptor for a sensor.
Definition: ch_api.c:51
void ch_meas_standby(ch_dev_t *dev_ptr, uint8_t meas_num)
Put a measurement in standby mode.
Definition: ch_api.c:1098
Sensor combined amplitude + detection threshold sample value.
Definition: soniclib.h:430
uint16_t amp
Definition: soniclib.h:432
uint16_t thresh
Definition: soniclib.h:431
API function pointer structure (internal use).
Definition: soniclib.h:607
Calibration result structure.
Definition: soniclib.h:442
Definition: soniclib.h:640
Clock calibration values.
Definition: soniclib.h:448
uint16_t rtc_freq
Definition: soniclib.h:449
uint8_t cpu_trim
Definition: soniclib.h:452
uint16_t pmut_trim
Definition: soniclib.h:451
uint16_t pmut_fcount
Definition: soniclib.h:450
Combined configuration structure.
Definition: soniclib.h:456
uint16_t sample_interval
Definition: soniclib.h:459
uint16_t max_range
Definition: soniclib.h:458
ch_tgt_int_filter_t tgt_int_filter
Definition: soniclib.h:460
ch_mode_t mode
Definition: soniclib.h:457
Chirp sensor device descriptor structure.
Definition: soniclib.h:732
uint16_t num_rx_samples
Definition: soniclib.h:769
uint8_t sensor_connected
Definition: soniclib.h:766
ch_rtc_status_t rtc_status
Definition: soniclib.h:743
ch_clock_cal_t test_clock_cal
Definition: soniclib.h:784
uint32_t freerun_intvl_us
Definition: soniclib.h:742
uint8_t is_continuous
Definition: soniclib.h:799
uint32_t orig_pmut_freq
Definition: soniclib.h:746
uint16_t rtc_frequency
Definition: soniclib.h:749
uint16_t pmut_clock_fcount
Definition: soniclib.h:752
fw_info_t * main_fw_info
Definition: soniclib.h:778
ch_interrupt_drive_t int_drive
Definition: soniclib.h:776
void * algo_cfg_ptr
Definition: soniclib.h:808
uint16_t static_range
Definition: soniclib.h:741
uint16_t buf_addr
Definition: soniclib.h:803
uint16_t num_win_samples
Definition: soniclib.h:771
uint16_t fcount_cycles
Definition: soniclib.h:751
uint16_t num_iq_bytes
Definition: soniclib.h:802
uint16_t i2c_drv_flags
Definition: soniclib.h:762
ch_interrupt_mode_t int_mode
Definition: soniclib.h:775
uint8_t main_fw_init_done
Definition: soniclib.h:782
uint8_t odr_out
Definition: soniclib.h:800
ICU_ALGO_SHASTA_INFO * sens_algo_info_addr
Definition: soniclib.h:806
uint16_t max_range
Definition: soniclib.h:740
ch_group_t * group
Definition: soniclib.h:733
shasta_config_t * sens_cfg_addr
Definition: soniclib.h:736
uint8_t i2c_address
Definition: soniclib.h:760
ch_trigger_type_t trig_type
Definition: soniclib.h:774
uint16_t part_number
Definition: soniclib.h:765
ch_asic_gen_t asic_gen
Definition: soniclib.h:738
uint8_t cpu_trim
Definition: soniclib.h:753
uint16_t bandwidth
Definition: soniclib.h:756
measurement_queue_t meas_queue
Definition: soniclib.h:789
uint8_t app_i2c_address
Definition: soniclib.h:761
uint32_t op_frequency
Definition: soniclib.h:747
ch_mode_t mode
Definition: soniclib.h:739
ch_meas_status_t meas_status
Definition: soniclib.h:773
uint8_t last_measurement
Definition: soniclib.h:798
uint16_t amp_scale_factor
Definition: soniclib.h:757
int16_t data_validation_counter
Definition: soniclib.h:786
ch_pmut_clk_cfg_t pmut_clk_cfg
Definition: soniclib.h:745
uint16_t rtc_cal_result
Definition: soniclib.h:744
fw_info_t * current_fw
Definition: soniclib.h:779
ch_tgt_int_filter_t tgt_int_filter
Definition: soniclib.h:777
uint8_t io_index
Definition: soniclib.h:768
ICU_ALGO_SHASTA_INFO algo_info
Definition: soniclib.h:807
uint16_t pmut_trim
Definition: soniclib.h:754
uint8_t iq_output_format
Definition: soniclib.h:801
fw_info_t * init_fw_info
Definition: soniclib.h:781
uint8_t bus_index
Definition: soniclib.h:764
uint8_t asic_ready
Definition: soniclib.h:783
uint16_t tof_scale_factor
Definition: soniclib.h:758
uint32_t cpu_frequency
Definition: soniclib.h:748
uint16_t win_start_sample
Definition: soniclib.h:770
Chirp sensor group descriptor structure.
Definition: soniclib.h:704
ch_io_int_callback_t io_int_callback
Definition: soniclib.h:719
uint8_t sensor_count
Definition: soniclib.h:710
uint8_t num_ports
Definition: soniclib.h:706
uint16_t pretrig_delay_us
Definition: soniclib.h:718
uint32_t op_frequency
Definition: soniclib.h:712
uint8_t num_connected[CHIRP_NUM_BUSES]
Definition: soniclib.h:725
uint32_t pmut_clock_freq
Definition: soniclib.h:713
ch_group_status_t status
Definition: soniclib.h:705
chdrv_queue_t queue[CHIRP_NUM_BUSES]
Definition: soniclib.h:727
uint32_t io_bus_speed_hz
Definition: soniclib.h:714
uint8_t sensor_int_pin
Definition: soniclib.h:707
uint16_t rtc_cal_pulse_ms
Definition: soniclib.h:717
uint16_t i2c_drv_flags
Definition: soniclib.h:715
uint8_t sensor_trig_pin
Definition: soniclib.h:708
uint8_t num_buses
Definition: soniclib.h:709
ch_rtc_cal_t rtc_cal_type
Definition: soniclib.h:711
ch_io_complete_callback_t io_complete_callback
Definition: soniclib.h:720
ch_dev_t * device[CHIRP_MAX_NUM_SENSORS]
Definition: soniclib.h:722
I2C info structure.
Definition: soniclib.h:413
uint16_t drv_flags
Definition: soniclib.h:416
uint8_t bus_num
Definition: soniclib.h:415
uint8_t address
Definition: soniclib.h:414
Sensor I/Q data value.
Definition: soniclib.h:424
int16_t i
Definition: soniclib.h:426
int16_t q
Definition: soniclib.h:425
Log configuration structure.
Definition: soniclib.h:470
ch_output_type_t output_type
Definition: soniclib.h:472
ch_decimation_t decimation_factor
Definition: soniclib.h:473
uint16_t start_sample
Definition: soniclib.h:474
uint16_t interval_ms
Definition: soniclib.h:471
Log data structure.
Definition: soniclib.h:478
ch_iq_sample_t * iq_sample_ptr
Definition: soniclib.h:486
uint16_t amplitude
Definition: soniclib.h:482
uint8_t annotation
Definition: soniclib.h:483
uint8_t tx_sensor_id
Definition: soniclib.h:479
uint8_t rx_sensor_id
Definition: soniclib.h:480
uint16_t start_sample
Definition: soniclib.h:489
uint16_t num_samples
Definition: soniclib.h:490
ch_output_type_t output_type
Definition: soniclib.h:484
uint32_t range
Definition: soniclib.h:481
uint16_t * mag_data_ptr
Definition: soniclib.h:487
Measurement configuration - used during ch_meas_init()
Definition: soniclib.h:494
Measurement info.
Definition: soniclib.h:523
uint8_t num_segments
Definition: soniclib.h:527
ch_meas_mode_t mode
Definition: soniclib.h:530
uint16_t meas_period
Definition: soniclib.h:529
Measurement queue info.
Definition: soniclib.h:547
Measurement segment info.
Definition: soniclib.h:534
Measurement segment.
Definition: soniclib.h:517
Sensor manufacturing info.
Definition: soniclib.h:557
Data output structure.
Definition: soniclib.h:464
ch_output_type_t output_type
Definition: soniclib.h:465
ch_decimation_t decimation_factor
Definition: soniclib.h:466
Detection threshold value.
Definition: soniclib.h:436
SonicLib version structure.
Definition: soniclib.h:406
uint8_t major
Definition: soniclib.h:407
uint8_t rev
Definition: soniclib.h:409
uint8_t minor
Definition: soniclib.h:408
Queue structure, for non-blocking access.
Definition: ch_driver.h:115
Definition: soniclib.h:658
uint16_t fw_text_size
Definition: soniclib.h:672
uint16_t(* get_fw_ram_init_size)(void)
Definition: soniclib.h:664
uint16_t(* get_fw_ram_init_addr)(void)
Definition: soniclib.h:666
uint16_t max_samples
Definition: soniclib.h:675
const int8_t oversample
Definition: soniclib.h:678
const uint8_t * ram_init
Definition: soniclib.h:663
const uint16_t freqCounterCycles
Definition: soniclib.h:676
const uint8_t * fw_text
Definition: soniclib.h:661
const uint8_t fw_includes_sensor_init
Definition: soniclib.h:681
const uint8_t max_num_thresholds
Definition: soniclib.h:679
const char * fw_version_string
Definition: soniclib.h:660
const ch_api_funcs_t *const api_funcs
Definition: soniclib.h:671
uint16_t fw_vec_size
Definition: soniclib.h:673
const uint8_t freqLockValue
Definition: soniclib.h:677
const uint8_t * fw_vec
Definition: soniclib.h:662
const uint8_t fw_includes_tx_optimization
Definition: soniclib.h:682
Definition: icu_algo_info.h:10