Go to the documentation of this file.
22 #define SENSOR_ID (1U)
23 #define SENSOR_TIMEOUT_MS (1000U)
87 printf(
"cargo_handle_create() failed\n");
95 printf(
"Presence metadata\n");
99 printf(
"presence_metadata.num_points: %" PRIu16
"\n", presence_metadata.
num_points);
103 printf(
"Cargo is not configured to have presence activated.\n");
108 printf(
"cargo_get_buffer_size() failed\n");
115 printf(
"cargo_get_distance_cal_result_static_size() failed\n");
123 printf(
"buffer allocation failed\n");
133 printf(
"distance_cal_result_static buffer allocation failed\n");
145 printf(
"acc_sensor_create() failed\n");
152 printf(
"do_sensor_calibration() failed\n");
171 printf(
"do_cargo_calibration() failed\n");
183 printf(
"cargo_prepare_utilization() failed\n");
193 printf(
"acc_sensor_measure() failed\n");
201 printf(
"Sensor interrupt timeout\n");
209 printf(
"acc_sensor_read() failed\n");
215 bool result_available =
false;
224 printf(
"cargo_process_utilization() failed\n");
238 printf(
"cargo_prepare_presence() failed\n");
248 printf(
"acc_sensor_measure() failed\n");
256 printf(
"Sensor interrupt timeout\n");
264 printf(
"acc_sensor_read() failed\n");
272 printf(
"cargo_process_presence() failed\n");
286 printf(
"Application finished OK\n");
320 bool cal_complete =
false;
321 const uint16_t calibration_retries = 1U;
324 for (uint16_t i = 0; !status && (i <= calibration_retries); i++)
334 if (status && !cal_complete)
338 }
while (status && !cal_complete);
354 bool calibration_done =
false;
356 while (status && !calibration_done)
368 if (status && !calibration_done)
379 static uint32_t frameno = 0U;
382 printf(
"frameno %" PRIu32
"\n", frameno);
384 if (result_available)
void acc_hal_integration_sensor_supply_off(acc_sensor_id_t sensor_id)
Power off sensor supply.
static bool do_cargo_calibration(acc_sensor_t *sensor, cargo_handle_t *cargo_handle, void *buffer, uint32_t buffer_size, acc_cal_result_t *sensor_cal_result, uint8_t *distance_cal_result_static, uint32_t distance_cal_result_static_size, acc_detector_cal_result_dynamic_t *distance_cal_result_dynamic)
Performs cargo calibration (with retry)
cargo_handle_t * cargo_handle_create(const cargo_config_t *cargo_config)
Create a cargo handle.
void acc_hal_integration_sensor_supply_on(acc_sensor_id_t sensor_id)
Power on sensor supply.
uint32_t distance_cal_result_static_size
bool cargo_process_presence(cargo_handle_t *handle, void *buffer, cargo_result_t *cargo_result, acc_detector_presence_result_t *nullable_presence_result)
Process Sparse IQ data into a Cargo result.
#define SENSOR_TIMEOUT_MS
bool cargo_prepare_presence(cargo_handle_t *handle, acc_sensor_t *sensor, const acc_cal_result_t *sensor_cal_result, void *buffer, uint32_t buffer_size)
Prepare Cargo presence for measurements.
bool acc_sensor_read(const acc_sensor_t *sensor, void *buffer, uint32_t buffer_size)
Read out radar data.
acc_cal_result_t sensor_cal_result
bool cargo_presence_metadata_get(cargo_handle_t *handle, acc_detector_presence_metadata_t *presence_metadata)
Get presence detector metadata.
The result from a completed calibration.
uint8_t * distance_cal_result_static
void cargo_config_initialize(cargo_config_t *cargo_config, cargo_preset_t preset)
Initialize cargo config struct with a preset.
Configuration struct for cargo.
float inter_presence_score
const acc_hal_a121_t * acc_hal_rss_integration_get_implementation(void)
Get hal implementation reference.
void * acc_integration_mem_alloc(size_t size)
Allocate dynamic memory.
The result from a completed calibration update.
bool cargo_calibrate(cargo_handle_t *handle, acc_sensor_t *sensor, const acc_cal_result_t *sensor_cal_result, void *buffer, uint32_t buffer_size, uint8_t *distance_cal_result_static, uint32_t distance_cal_result_static_size, acc_detector_cal_result_dynamic_t *distance_cal_result_dynamic, bool *calibration_complete)
Calibrate Cargo.
bool acc_hal_integration_wait_for_sensor_interrupt(acc_sensor_id_t sensor_id, uint32_t timeout_ms)
Wait for a sensor interrupt.
static bool do_sensor_calibration(acc_sensor_t *sensor, void *buffer, uint32_t buffer_size, acc_cal_result_t *cal_result)
Performs sensor calibration (with retry)
const char * acc_version_get(void)
Get the version of the Acconeer software.
void acc_hal_integration_sensor_enable(acc_sensor_id_t sensor_id)
Enable sensor.
bool cargo_get_buffer_size(const cargo_handle_t *handle, uint32_t *buffer_size)
Get the required buffer sensor data buffer size.
bool cargo_get_distance_cal_result_static_size(const cargo_handle_t *handle, uint32_t *distance_cal_result_static_size)
Get the required buffer for static distance detector calibration.
bool activate_utilization_level
float intra_presence_score
void acc_hal_integration_sensor_disable(acc_sensor_id_t sensor_id)
Disable sensor.
#define ACC_LOG_FLOAT_TO_INTEGER(a)
void cargo_config_log(const cargo_config_t *cargo_config)
Log cargo config to debug uart.
void cargo_handle_destroy(cargo_handle_t *handle)
Destroy a cargo handle.
void acc_sensor_status(const acc_sensor_t *sensor)
Check the status of the sensor.
void acc_integration_mem_free(void *ptr)
Free dynamic memory.
static void cleanup(acc_sensor_t *sensor, void *buffer, uint8_t *distance_cal_result_static, cargo_handle_t *handle)
Frees any allocated resources.
bool cargo_process_utilization(cargo_handle_t *handle, uint8_t *distance_cal_result_static, acc_detector_cal_result_dynamic_t *distance_cal_result_dynamic, void *buffer, cargo_result_t *cargo_result, bool *result_available, acc_detector_distance_result_t *nullable_distance_result)
Process Sparse IQ data into a Cargo result.
acc_detector_cal_result_dynamic_t distance_cal_result_dynamic
cargo_mode_t cargo_current_mode_get(const cargo_handle_t *handle)
Get current mode of the cargo handle.
bool acc_sensor_calibrate(acc_sensor_t *sensor, bool *cal_complete, acc_cal_result_t *cal_result, void *buffer, uint32_t buffer_size)
Calibrate a sensor.
#define PRIfloat
Specifier for printing float type using integers.
int acconeer_main(int argc, char *argv[])
Assembly test example.
static void print_cargo_result(const cargo_result_t *result, bool result_available)
Print a processor result in a human-readable format.
bool acc_sensor_measure(acc_sensor_t *sensor)
Start a radar measurement with previously prepared configuration.
bool cargo_prepare_utilization(cargo_handle_t *handle, acc_sensor_t *sensor, const acc_cal_result_t *sensor_cal_result, void *buffer, uint32_t buffer_size)
Prepare Cargo utilization for measurements.
struct acc_sensor acc_sensor_t
void acc_sensor_destroy(acc_sensor_t *sensor)
Destroy a sensor instance freeing any resources allocated.
acc_sensor_t * acc_sensor_create(acc_sensor_id_t sensor_id)
Create a sensor instance.