air_sensor: Move common reading code to function
I erased 2 that were the same. And I copied it in another place called
a function. I used the function to read the sensor.
- Tali
Change-Id: I4e4a97b03891e2455839ca302040b3dc3f504a10
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/showcase/sense/+/229291
Reviewed-by: Taylor Cramer <cramertj@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Yuval Peress <peress@google.com>
diff --git a/modules/air_sensor/service.cc b/modules/air_sensor/service.cc
index f12e931..2426393 100644
--- a/modules/air_sensor/service.cc
+++ b/modules/air_sensor/service.cc
@@ -24,14 +24,19 @@
air_sensor_ = &air_sensor;
}
-pw::Status AirSensorService::Measure(const pw_protobuf_Empty&,
- air_sensor_Measurement& response) {
- PW_TRY(air_sensor_->Measure(notification_));
- notification_.acquire();
+void AirSensorService::FillMeasurement(air_sensor_Measurement& response) {
response.temperature = air_sensor_->temperature();
response.pressure = air_sensor_->pressure();
response.humidity = air_sensor_->humidity();
response.gas_resistance = air_sensor_->gas_resistance();
+ response.score = air_sensor_->score();
+}
+
+pw::Status AirSensorService::Measure(const pw_protobuf_Empty&,
+ air_sensor_Measurement& response) {
+ PW_TRY(air_sensor_->Measure(notification_));
+ notification_.acquire();
+ FillMeasurement(response);
return pw::OkStatus();
}
@@ -60,19 +65,11 @@
}
void AirSensorService::SampleCallback(pw::chrono::SystemClock::time_point) {
- float temperature = air_sensor_->temperature();
- float pressure = air_sensor_->pressure();
- float humidity = air_sensor_->humidity();
- float gas_resistance = air_sensor_->gas_resistance();
- uint16_t score = air_sensor_->score();
+ air_sensor_Measurement response;
- pw::Status status = sample_writer_.Write({
- .temperature = temperature,
- .pressure = pressure,
- .humidity = humidity,
- .gas_resistance = gas_resistance,
- .score = score,
- });
+ FillMeasurement(response);
+
+ pw::Status status = sample_writer_.Write(response);
if (status.ok()) {
ScheduleSample();
} else {
diff --git a/modules/air_sensor/service.h b/modules/air_sensor/service.h
index 18e0093..6331075 100644
--- a/modules/air_sensor/service.h
+++ b/modules/air_sensor/service.h
@@ -47,6 +47,8 @@
void ScheduleSample();
+ void FillMeasurement(air_sensor_Measurement& response);
+
Worker* worker_ = nullptr;
AirSensor* air_sensor_ = nullptr;
pw::sync::ThreadNotification notification_;