From 31ba12eeaefa0d190d384eae346abca404194165 Mon Sep 17 00:00:00 2001 From: Aleksandr Zharov Date: Fri, 16 Oct 2026 11:07:06 +0500 Subject: [PATCH] [P056] Fix ReadAverage() output params passed by value, always returning 0 Regression from #5369: P056_data_struct::ReadAverage() took float pm25/pm10 by value, so the averaged values never reached the caller and the task values stayed 0. Pass them by reference like CjkSDS011::ReadAverage(). --- src/src/PluginStructs/P056_data_struct.cpp | 2 +- src/src/PluginStructs/P056_data_struct.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/src/PluginStructs/P056_data_struct.cpp b/src/src/PluginStructs/P056_data_struct.cpp index 3402a7432..d70911504 100644 --- a/src/src/PluginStructs/P056_data_struct.cpp +++ b/src/src/PluginStructs/P056_data_struct.cpp @@ -49,7 +49,7 @@ float P056_data_struct::GetPM10_() { } } -bool P056_data_struct::ReadAverage(float pm25, float pm10) { +bool P056_data_struct::ReadAverage(float& pm25, float& pm10) { if (isInitialized()) { return this->SDS->ReadAverage(pm25, pm10); } else { diff --git a/src/src/PluginStructs/P056_data_struct.h b/src/src/PluginStructs/P056_data_struct.h index 2d408ba16..ac1fa410d 100644 --- a/src/src/PluginStructs/P056_data_struct.h +++ b/src/src/PluginStructs/P056_data_struct.h @@ -17,8 +17,8 @@ struct P056_data_struct : public PluginTaskData_base { bool available(); float GetPM2_5(); float GetPM10_(); - bool ReadAverage(float pm25, - float pm10); + bool ReadAverage(float& pm25, + float& pm10); void SetWorkingPeriod(int minutes); private: