From 98b794ade38ba771520e576f9147105cf8561072 Mon Sep 17 00:00:00 2001 From: jacek-kow <124920545+jacek-kow@users.noreply.github.com> Date: Mon, 23 Mar 2026 18:38:21 +0100 Subject: [PATCH 1/2] refactor: encapsulated the creation of a device pointer (using DEVICE_DT_GET_ANY) inside the sensor class to avoid passing this pointer through the sensor class constructor --- app/src/main.cpp | 6 +++--- app/src/sensors/bme280/bme280.cpp | 2 +- app/src/sensors/bme280/bme280.hpp | 3 +-- app/src/sensors/bq27441/bq27441.cpp | 2 +- app/src/sensors/bq27441/bq27441.hpp | 3 +-- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/src/main.cpp b/app/src/main.cpp index 75defa0..6a43c15 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -29,10 +29,10 @@ int main(void) { printk("%s\n", APP_ASCII_BANNER); LOG_INF("===== Buzzverse Node System Booting (Zephyr Log) ====="); - BME280 bme280(DEVICE_DT_GET_ANY(bosch_bme280)); + BME280 bme280; Analog analog(&soil_sensor_adc_spec); - // Array of available sensors + // Array of supported sensors etl::array, NUMBER_OF_SENSORS> sensors { etl::unique_ptr(etl::move(&bme280)), #ifdef CONFIG_ENABLE_ANALOG @@ -40,7 +40,7 @@ int main(void) { #endif }; - BQ27441 bq27441(DEVICE_DT_GET_ANY(ti_bq274xx)); + BQ27441 bq27441; LoRaWANHandler lorawan(bq27441); etl::unique_ptr p_sleep_manager(nullptr); diff --git a/app/src/sensors/bme280/bme280.cpp b/app/src/sensors/bme280/bme280.cpp index 309aa57..bd207f9 100644 --- a/app/src/sensors/bme280/bme280.cpp +++ b/app/src/sensors/bme280/bme280.cpp @@ -7,7 +7,7 @@ LOG_MODULE_REGISTER(bme280, LOG_LEVEL_DBG); -BME280::BME280(const device* dev) : bme280_dev(dev) {} +BME280::BME280() : bme280_dev(DEVICE_DT_GET_ANY(bosch_bme280)) {} using Status = Sensor::Status; diff --git a/app/src/sensors/bme280/bme280.hpp b/app/src/sensors/bme280/bme280.hpp index bb56768..4dddcc6 100644 --- a/app/src/sensors/bme280/bme280.hpp +++ b/app/src/sensors/bme280/bme280.hpp @@ -9,7 +9,7 @@ class BME280 : public Sensor { public: - explicit BME280(const device* dev); + explicit BME280(); Peripheral::Status init() override; @@ -24,7 +24,6 @@ class BME280 : public Sensor { Status get_packet(buzzverse_v1_Packet& packet) const override; void get_status(buzzverse_v1_Status& status_message) const override; - private: const device* bme280_dev; bool ready{false}; diff --git a/app/src/sensors/bq27441/bq27441.cpp b/app/src/sensors/bq27441/bq27441.cpp index 58ec639..50ca88a 100644 --- a/app/src/sensors/bq27441/bq27441.cpp +++ b/app/src/sensors/bq27441/bq27441.cpp @@ -7,7 +7,7 @@ LOG_MODULE_REGISTER(bq27441, LOG_LEVEL_DBG); -BQ27441::BQ27441(const device* dev) : bq27441_dev(dev) {} +BQ27441::BQ27441() : bq27441_dev(DEVICE_DT_GET_ANY(ti_bq274xx)) {} using Status = Sensor::Status; diff --git a/app/src/sensors/bq27441/bq27441.hpp b/app/src/sensors/bq27441/bq27441.hpp index 20149e9..52498e1 100644 --- a/app/src/sensors/bq27441/bq27441.hpp +++ b/app/src/sensors/bq27441/bq27441.hpp @@ -9,7 +9,7 @@ class BQ27441 : public Sensor { public: - explicit BQ27441(const device* dev); + explicit BQ27441(); Peripheral::Status init() override; @@ -24,7 +24,6 @@ class BQ27441 : public Sensor { Status get_packet(buzzverse_v1_Packet& packet) const override; void get_status(buzzverse_v1_Status& status_message) const override; - private: const device* bq27441_dev; bool ready{false}; From ebb39225059c398650c91eb4a1d838e77549d5e9 Mon Sep 17 00:00:00 2001 From: jacek-kow <124920545+jacek-kow@users.noreply.github.com> Date: Mon, 13 Apr 2026 17:49:55 +0200 Subject: [PATCH 2/2] refactor: sensor objects are now created as unique_ptrs, not as normal objects later moved inside unique_ptrs --- app/src/main.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main.cpp b/app/src/main.cpp index 6a43c15..5e8af94 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -29,14 +29,11 @@ int main(void) { printk("%s\n", APP_ASCII_BANNER); LOG_INF("===== Buzzverse Node System Booting (Zephyr Log) ====="); - BME280 bme280; - Analog analog(&soil_sensor_adc_spec); - // Array of supported sensors etl::array, NUMBER_OF_SENSORS> sensors { - etl::unique_ptr(etl::move(&bme280)), + etl::unique_ptr(new BME280()), #ifdef CONFIG_ENABLE_ANALOG - etl::unique_ptr(etl::move(&analog)), + etl::unique_ptr(new Analog(&soil_sensor_adc_spec)), #endif };