summaryrefslogtreecommitdiff
path: root/firmware/os/algos/calibration/nano_calibration/nano_calibration.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/os/algos/calibration/nano_calibration/nano_calibration.h')
-rw-r--r--firmware/os/algos/calibration/nano_calibration/nano_calibration.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/firmware/os/algos/calibration/nano_calibration/nano_calibration.h b/firmware/os/algos/calibration/nano_calibration/nano_calibration.h
index 5dad0f68..82a8396d 100644
--- a/firmware/os/algos/calibration/nano_calibration/nano_calibration.h
+++ b/firmware/os/algos/calibration/nano_calibration/nano_calibration.h
@@ -42,16 +42,17 @@
#ifndef LOCATION_LBS_CONTEXTHUB_NANOAPPS_CALIBRATION_NANO_CALIBRATION_NANO_CALIBRATION_H_
#define LOCATION_LBS_CONTEXTHUB_NANOAPPS_CALIBRATION_NANO_CALIBRATION_NANO_CALIBRATION_H_
+#include <ash.h>
+#include <chre.h>
#include <stdbool.h>
#include <stdint.h>
-#include <ash.h>
-#include <chre.h>
#include <cstdint>
#include "calibration/online_calibration/common_data/calibration_callback.h"
#include "calibration/online_calibration/common_data/calibration_data.h"
#include "calibration/online_calibration/common_data/online_calibration.h"
+#include "calibration/online_calibration/common_data/result_callback_interface.h"
#include "calibration/online_calibration/common_data/sensor_data.h"
#include "common/math/macros.h"
@@ -88,6 +89,11 @@ class NanoSensorCal {
void HandleTemperatureSamples(uint16_t event_type,
const chreSensorFloatData *event_data);
+ void set_result_callback(
+ online_calibration::ResultCallbackInterface *result_callback) {
+ result_callback_ = result_callback;
+ }
+
private:
// Passes sensor data to the runtime calibration algorithms.
void ProcessSample(const online_calibration::SensorData &sample);
@@ -99,7 +105,7 @@ class NanoSensorCal {
// which runtime calibration parameters were recalled.
bool LoadAshCalibration(uint8_t chreSensorType,
OnlineCalibrationThreeAxis *online_cal,
- online_calibration::CalibrationTypeFlags* flags,
+ online_calibration::CalibrationTypeFlags *flags,
const char *sensor_tag);
// Provides sensor calibration updates using the ASH API for the specified
@@ -126,7 +132,7 @@ class NanoSensorCal {
const online_calibration::CalibrationDataThreeAxis &cal_data,
online_calibration::CalibrationTypeFlags flags, const char *sensor_tag);
- void HandleGyroLogMessage(uint64_t timestamp_nanos);
+ bool HandleGyroLogMessage(uint64_t timestamp_nanos);
// Pointer to the accelerometer runtime calibration object.
OnlineCalibrationThreeAxis *accel_cal_ = nullptr;
@@ -154,6 +160,9 @@ class NanoSensorCal {
online_calibration::CalibrationTypeFlags::NONE;
online_calibration::CalibrationTypeFlags mag_cal_update_flags_ =
online_calibration::CalibrationTypeFlags::NONE;
+
+ // Pointer to telemetry logger.
+ online_calibration::ResultCallbackInterface *result_callback_ = nullptr;
};
} // namespace nano_calibration