105 #ifndef __SONICLIB_H_
106 #define __SONICLIB_H_
114 #define SONICLIB_VER_MAJOR (4)
115 #define SONICLIB_VER_MINOR (9)
116 #define SONICLIB_VER_REV (0)
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,
407 CH_DATA_VALIDATION_DISABLE = 0,
408 CH_DATA_VALIDATION_COUNTER = 1,
409 CH_DATA_VALIDATION_PRNG = 2,
427 #define I2C_DRV_FLAG_RESET_AFTER_NB (0x00000001)
428 #define I2C_DRV_FLAG_USE_PROG_NB (0x00000002)
444 uint16_t start_sample;
503 uint16_t meas_period;
507 #ifdef INCLUDE_SHASTA_SUPPORT
510 #define CH_MEAS_MAX_SEGMENTS (INST_BUF_LENGTH)
511 #define CH_MEAS_MAX_MEAS (MEAS_QUEUE_MAX_MEAS)
513 #define CH_SENSOR_ID_LENGTH 8
517 CH_MEAS_SEG_TYPE_COUNT = 0,
518 CH_MEAS_SEG_TYPE_TX = 1,
519 CH_MEAS_SEG_TYPE_RX = 2,
520 CH_MEAS_SEG_TYPE_EOF = 3
525 pmut_transceiver_inst_t inst;
532 uint16_t num_tx_segments;
533 uint16_t num_rx_samples;
543 uint16_t num_rx_samples;
548 uint8_t tx_pulse_width;
558 uint8_t current_meas;
568 uint8_t product_code;
569 uint8_t package_code;
579 typedef uint8_t (*ch_set_num_samples_func_t)(
ch_dev_t *dev_ptr, uint16_t num_samples);
580 typedef uint8_t (*ch_set_sample_window_func_t)(
ch_dev_t *dev_ptr, uint16_t start_sample, uint16_t end_sample);
582 typedef uint16_t (*ch_get_amplitude_func_t)(
ch_dev_t *dev_ptr);
583 typedef uint16_t (*ch_get_amplitude_avg_func_t)(
ch_dev_t *dev_ptr);
584 typedef uint8_t (*ch_set_frequency_func_t)(
ch_dev_t *dev_ptr, uint32_t target_freq_Hz);
585 typedef uint8_t (*ch_get_iq_data_func_t)(
ch_dev_t *dev_ptr,
ch_iq_sample_t *buf_ptr, uint16_t start_sample,
587 typedef uint8_t (*ch_get_amplitude_data_func_t)(
ch_dev_t *dev_ptr, uint16_t *buf_ptr, uint16_t start_sample,
589 typedef uint16_t (*ch_mm_to_samples_func_t)(
ch_dev_t *dev_ptr, uint16_t num_mm);
592 typedef uint8_t (*ch_set_target_int_counter_func_t)(
ch_dev_t *dev_ptr, uint8_t meas_hist, uint8_t thresh_count,
594 typedef uint8_t (*ch_get_target_int_counter_func_t)(
ch_dev_t *dev_ptr, uint8_t *meas_hist_ptr,
595 uint8_t *thresh_count_ptr, uint8_t *reset_ptr);
596 typedef uint8_t (*ch_set_rx_low_gain_func_t)(
ch_dev_t *dev_ptr, uint16_t num_samples);
597 typedef uint16_t (*ch_get_rx_low_gain_func_t)(
ch_dev_t *dev_ptr);
598 typedef uint8_t (*ch_set_tx_length_func_t)(
ch_dev_t *dev_ptr, uint16_t tx_length);
599 typedef uint16_t (*ch_get_tx_length_func_t)(
ch_dev_t *dev_ptr);
602 typedef uint8_t (*ch_set_data_output_func_t)(
ch_dev_t *dev_ptr,
const ch_output_t *output);
603 typedef void (*ch_trigger_soft_func_t)(
ch_dev_t *dev_ptr);
604 typedef uint8_t (*ch_set_data_ready_delay_func_t)(
ch_dev_t *dev_ptr, uint8_t num_cycles);
605 typedef uint8_t (*ch_get_data_ready_delay_func_t)(
ch_dev_t *dev_ptr);
608 #ifdef INCLUDE_SHASTA_SUPPORT
610 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);
615 ch_set_num_samples_func_t set_num_samples;
616 ch_set_sample_window_func_t set_sample_window;
617 ch_get_range_func_t get_range;
618 ch_get_amplitude_func_t get_amplitude;
619 ch_get_amplitude_avg_func_t get_amplitude_avg;
620 ch_set_frequency_func_t set_frequency;
621 ch_get_iq_data_func_t get_iq_data;
622 ch_get_amplitude_data_func_t get_amplitude_data;
623 ch_mm_to_samples_func_t mm_to_samples;
624 ch_set_target_interrupt_func_t set_target_interrupt;
625 ch_get_target_interrupt_func_t get_target_interrupt;
626 ch_set_target_int_counter_func_t set_target_int_counter;
627 ch_get_target_int_counter_func_t get_target_int_counter;
628 ch_set_rx_low_gain_func_t set_rx_low_gain;
629 ch_get_rx_low_gain_func_t get_rx_low_gain;
630 ch_set_tx_length_func_t set_tx_length;
631 ch_get_tx_length_func_t get_tx_length;
632 ch_set_cal_result_func_t set_cal_result;
633 ch_get_cal_result_func_t get_cal_result;
634 ch_set_data_output_func_t set_data_output;
635 ch_trigger_soft_func_t trigger_soft;
636 ch_set_data_ready_delay_func_t set_data_ready_delay;
637 ch_get_data_ready_delay_func_t get_data_ready_delay;
638 ch_meas_get_status_func_t meas_get_status;
639 #ifdef INCLUDE_SHASTA_SUPPORT
640 ch_meas_get_iq_output_func_t meas_get_iq_output;
641 ch_meas_set_iq_output_func_t meas_set_iq_output;
644 const void *algo_specific_api;
690 const uint8_t reserved : 6;
731 #ifdef INCLUDE_WHITNEY_SUPPORT
741 #ifdef INCLUDE_SHASTA_SUPPORT
757 #ifdef INCLUDE_SHASTA_SUPPORT
766 #ifdef INCLUDE_WHITNEY_SUPPORT
787 #ifdef INCLUDE_SHASTA_SUPPORT
794 int16_t mq_sanitize_enabled;
2359 uint8_t *reset_ptr);
2921 #ifdef INCLUDE_SHASTA_SUPPORT
3000 const void *thresh_ptr);
3227 uint8_t index_to_insert);
3244 uint8_t index_to_insert);
3313 uint8_t atten, uint8_t int_enable);
3336 uint8_t phase, uint8_t int_enable);
3379 uint8_t atten, uint8_t int_enable);
3401 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:1051
uint8_t ch_check_program(ch_dev_t *dev_ptr)
Check sensor firmware program.
Definition: ch_api.c:952
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:1172
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:1041
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:1289
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:858
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:957
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:1023
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:1066
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:990
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
void ch_inst_get_seg_info(pmut_transceiver_inst_t *inst_ptr, uint8_t odr, ch_meas_seg_info_t *info_ptr)
Get configuration information for a measurement segment.
Definition: ch_api.c:1167
uint16_t ch_get_rx_low_gain(ch_dev_t *dev_ptr)
Get the receive low-gain sample count.
Definition: ch_api.c:903
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:1056
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:1389
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:1279
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:1127
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:1202
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:1344
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:968
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:946
uint16_t ch_get_tx_length(ch_dev_t *dev_ptr)
Get the ultrasound transmit pulse length.
Definition: ch_api.c:926
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:1132
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:1137
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:1319
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:1079
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:915
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:1162
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:1359
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:1265
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:1182
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:1293
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:1074
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:1245
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_data_validation_mode_t
Data validation mode configuration.
Definition: soniclib.h:406
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:511
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:1374
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:1324
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:1177
void ch_meas_activate(ch_dev_t *dev_ptr, uint8_t meas_num)
Activate a defined measurement.
Definition: ch_api.c:1117
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:1146
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:1013
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:1192
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:1349
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:1314
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:1379
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:1369
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:694
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:1108
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:1250
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:1046
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:697
const char * ch_get_sensor_id(ch_dev_t *dev_ptr)
Get the unique Sensor ID String for a sensor.
Definition: ch_api.c:1036
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:1309
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:1225
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:821
ch_pmut_clk_cfg_t ch_get_pmut_clock(ch_dev_t *dev_ptr)
Get ultrasound transducer clock configuration.
Definition: ch_api.c:1329
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:1085
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:1070
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:1211
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:844
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:1187
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:1018
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:1141
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:700
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:1364
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:1230
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:703
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:1207
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:1157
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:1197
uint32_t ch_measure_pmut_frequency(ch_dev_t *dev_ptr)
Measure PMUT frequency on an ICU device.
Definition: ch_api.c:1303
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:979
uint8_t ch_watchdog_disable(ch_dev_t *dev_ptr)
Disable watchdog timer in sensor.
Definition: ch_api.c:1384
uint8_t ch_get_data_ready_delay(ch_dev_t *dev_ptr)
Get data ready interrupt delay interval.
Definition: ch_api.c:1001
#define CH_SENSOR_ID_LENGTH
Definition: soniclib.h:513
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:577
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:1096
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:1061
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:891
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:1255
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:1220
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:1298
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:1284
uint8_t ch_enable_data_validation(ch_dev_t *dev_ptr, int16_t seed, ch_data_validation_mode_t mode)
Enable data validation mode. In this mode, ICU-x0201 sensors will overwrite the IQ data at the end of...
Definition: ch_api.c:791
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:1091
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:1334
ch_meas_seg_type_t
Measurement segment type.
Definition: soniclib.h:516
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:1240
uint32_t ch_cycles_to_usec(ch_dev_t *dev_ptr, uint32_t num_cycles)
Convert sensor cycles to microseconds.
Definition: ch_api.c:1354
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:872
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:1235
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:1274
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:1215
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:1102
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
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_set_rx_pretrigger(ch_group_t *grp_ptr, uint8_t enable)
Enable/disable receive-only sensor pre-triggering.
Definition: ch_api.c:937
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:1339
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:1122
Sensor combined amplitude + detection threshold sample value.
Definition: soniclib.h:437
uint16_t amp
Definition: soniclib.h:439
uint16_t thresh
Definition: soniclib.h:438
API function pointer structure (internal use).
Definition: soniclib.h:614
Calibration result structure.
Definition: soniclib.h:449
Definition: soniclib.h:647
Clock calibration values.
Definition: soniclib.h:455
uint16_t rtc_freq
Definition: soniclib.h:456
uint8_t cpu_trim
Definition: soniclib.h:459
uint16_t pmut_trim
Definition: soniclib.h:458
uint16_t pmut_fcount
Definition: soniclib.h:457
Combined configuration structure.
Definition: soniclib.h:463
uint16_t sample_interval
Definition: soniclib.h:466
uint16_t max_range
Definition: soniclib.h:465
ch_tgt_int_filter_t tgt_int_filter
Definition: soniclib.h:467
ch_mode_t mode
Definition: soniclib.h:464
Chirp sensor device descriptor structure.
Definition: soniclib.h:739
uint16_t num_rx_samples
Definition: soniclib.h:776
uint8_t sensor_connected
Definition: soniclib.h:773
ch_rtc_status_t rtc_status
Definition: soniclib.h:750
ch_clock_cal_t test_clock_cal
Definition: soniclib.h:791
uint32_t freerun_intvl_us
Definition: soniclib.h:749
uint8_t reg_fmt_ver_major
Definition: soniclib.h:796
uint8_t is_continuous
Definition: soniclib.h:810
uint32_t orig_pmut_freq
Definition: soniclib.h:753
uint16_t rtc_frequency
Definition: soniclib.h:756
uint16_t pmut_clock_fcount
Definition: soniclib.h:759
fw_info_t * main_fw_info
Definition: soniclib.h:785
ch_interrupt_drive_t int_drive
Definition: soniclib.h:783
void * algo_cfg_ptr
Definition: soniclib.h:819
uint16_t static_range
Definition: soniclib.h:748
uint16_t buf_addr
Definition: soniclib.h:814
uint16_t num_win_samples
Definition: soniclib.h:778
uint16_t fcount_cycles
Definition: soniclib.h:758
uint16_t num_iq_bytes
Definition: soniclib.h:813
uint16_t i2c_drv_flags
Definition: soniclib.h:769
ch_interrupt_mode_t int_mode
Definition: soniclib.h:782
uint8_t main_fw_init_done
Definition: soniclib.h:789
uint8_t odr_out
Definition: soniclib.h:811
ICU_ALGO_SHASTA_INFO * sens_algo_info_addr
Definition: soniclib.h:817
uint16_t max_range
Definition: soniclib.h:747
ch_group_t * group
Definition: soniclib.h:740
shasta_config_t * sens_cfg_addr
Definition: soniclib.h:743
uint8_t i2c_address
Definition: soniclib.h:767
ch_trigger_type_t trig_type
Definition: soniclib.h:781
uint16_t part_number
Definition: soniclib.h:772
ch_asic_gen_t asic_gen
Definition: soniclib.h:745
uint8_t cpu_trim
Definition: soniclib.h:760
uint16_t bandwidth
Definition: soniclib.h:763
measurement_queue_t meas_queue
Definition: soniclib.h:800
uint8_t app_i2c_address
Definition: soniclib.h:768
uint32_t op_frequency
Definition: soniclib.h:754
ch_mode_t mode
Definition: soniclib.h:746
ch_meas_status_t meas_status
Definition: soniclib.h:780
uint8_t last_measurement
Definition: soniclib.h:809
uint16_t amp_scale_factor
Definition: soniclib.h:764
int16_t data_validation_counter
Definition: soniclib.h:793
ch_pmut_clk_cfg_t pmut_clk_cfg
Definition: soniclib.h:752
uint16_t rtc_cal_result
Definition: soniclib.h:751
fw_info_t * current_fw
Definition: soniclib.h:786
uint8_t reg_fmt_ver_minor
Definition: soniclib.h:797
ch_tgt_int_filter_t tgt_int_filter
Definition: soniclib.h:784
uint8_t io_index
Definition: soniclib.h:775
ICU_ALGO_SHASTA_INFO algo_info
Definition: soniclib.h:818
uint16_t pmut_trim
Definition: soniclib.h:761
uint8_t iq_output_format
Definition: soniclib.h:812
fw_info_t * init_fw_info
Definition: soniclib.h:788
uint8_t bus_index
Definition: soniclib.h:771
uint8_t asic_ready
Definition: soniclib.h:790
uint16_t tof_scale_factor
Definition: soniclib.h:765
uint32_t cpu_frequency
Definition: soniclib.h:755
uint16_t win_start_sample
Definition: soniclib.h:777
Chirp sensor group descriptor structure.
Definition: soniclib.h:711
ch_io_int_callback_t io_int_callback
Definition: soniclib.h:726
uint8_t sensor_count
Definition: soniclib.h:717
uint8_t num_ports
Definition: soniclib.h:713
uint16_t pretrig_delay_us
Definition: soniclib.h:725
uint32_t op_frequency
Definition: soniclib.h:719
uint8_t num_connected[CHIRP_NUM_BUSES]
Definition: soniclib.h:732
uint32_t pmut_clock_freq
Definition: soniclib.h:720
ch_group_status_t status
Definition: soniclib.h:712
chdrv_queue_t queue[CHIRP_NUM_BUSES]
Definition: soniclib.h:734
uint32_t io_bus_speed_hz
Definition: soniclib.h:721
uint8_t sensor_int_pin
Definition: soniclib.h:714
uint16_t rtc_cal_pulse_ms
Definition: soniclib.h:724
uint16_t i2c_drv_flags
Definition: soniclib.h:722
uint8_t sensor_trig_pin
Definition: soniclib.h:715
uint8_t num_buses
Definition: soniclib.h:716
ch_rtc_cal_t rtc_cal_type
Definition: soniclib.h:718
ch_io_complete_callback_t io_complete_callback
Definition: soniclib.h:727
ch_dev_t * device[CHIRP_MAX_NUM_SENSORS]
Definition: soniclib.h:729
I2C info structure.
Definition: soniclib.h:420
uint16_t drv_flags
Definition: soniclib.h:423
uint8_t bus_num
Definition: soniclib.h:422
uint8_t address
Definition: soniclib.h:421
Sensor I/Q data value.
Definition: soniclib.h:431
int16_t i
Definition: soniclib.h:433
int16_t q
Definition: soniclib.h:432
Log configuration structure.
Definition: soniclib.h:477
ch_output_type_t output_type
Definition: soniclib.h:479
ch_decimation_t decimation_factor
Definition: soniclib.h:480
uint16_t start_sample
Definition: soniclib.h:481
uint16_t interval_ms
Definition: soniclib.h:478
Log data structure.
Definition: soniclib.h:485
ch_iq_sample_t * iq_sample_ptr
Definition: soniclib.h:493
uint16_t amplitude
Definition: soniclib.h:489
uint8_t annotation
Definition: soniclib.h:490
uint8_t tx_sensor_id
Definition: soniclib.h:486
uint8_t rx_sensor_id
Definition: soniclib.h:487
uint16_t start_sample
Definition: soniclib.h:496
uint16_t num_samples
Definition: soniclib.h:497
ch_output_type_t output_type
Definition: soniclib.h:491
uint32_t range
Definition: soniclib.h:488
uint16_t * mag_data_ptr
Definition: soniclib.h:494
Measurement configuration - used during ch_meas_init()
Definition: soniclib.h:501
Measurement info.
Definition: soniclib.h:530
uint8_t num_segments
Definition: soniclib.h:534
ch_meas_mode_t mode
Definition: soniclib.h:537
uint16_t meas_period
Definition: soniclib.h:536
Measurement queue info.
Definition: soniclib.h:554
Measurement segment info.
Definition: soniclib.h:541
Measurement segment.
Definition: soniclib.h:524
Sensor manufacturing info.
Definition: soniclib.h:564
Data output structure.
Definition: soniclib.h:471
ch_output_type_t output_type
Definition: soniclib.h:472
ch_decimation_t decimation_factor
Definition: soniclib.h:473
Detection threshold value.
Definition: soniclib.h:443
SonicLib version structure.
Definition: soniclib.h:413
uint8_t major
Definition: soniclib.h:414
uint8_t rev
Definition: soniclib.h:416
uint8_t minor
Definition: soniclib.h:415
Queue structure, for non-blocking access.
Definition: ch_driver.h:116
Definition: soniclib.h:665
uint16_t fw_text_size
Definition: soniclib.h:679
uint16_t(* get_fw_ram_init_size)(void)
Definition: soniclib.h:671
uint16_t(* get_fw_ram_init_addr)(void)
Definition: soniclib.h:673
uint16_t max_samples
Definition: soniclib.h:682
const int8_t oversample
Definition: soniclib.h:685
const uint8_t * ram_init
Definition: soniclib.h:670
const uint16_t freqCounterCycles
Definition: soniclib.h:683
const uint8_t * fw_text
Definition: soniclib.h:668
const uint8_t fw_includes_sensor_init
Definition: soniclib.h:688
const uint8_t max_num_thresholds
Definition: soniclib.h:686
const char * fw_version_string
Definition: soniclib.h:667
const ch_api_funcs_t *const api_funcs
Definition: soniclib.h:678
uint16_t fw_vec_size
Definition: soniclib.h:680
const uint8_t freqLockValue
Definition: soniclib.h:684
const uint8_t * fw_vec
Definition: soniclib.h:669
const uint8_t fw_includes_tx_optimization
Definition: soniclib.h:689
Definition: icu_algo_info.h:10