summaryrefslogtreecommitdiff
path: root/thermal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'thermal.cpp')
-rw-r--r--thermal.cpp52
1 files changed, 49 insertions, 3 deletions
diff --git a/thermal.cpp b/thermal.cpp
index cb379c8..c1211a6 100644
--- a/thermal.cpp
+++ b/thermal.cpp
@@ -26,6 +26,39 @@
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <ctype.h>
@@ -59,6 +92,13 @@ static const Temperature_1_0 dummy_temp_1_0 = {
.vrThrottlingThreshold = 40,
};
+static const Temperature dummy_temp_2_0 = {
+ .type = TemperatureType::SKIN,
+ .name = "test sensor",
+ .value = 25.0,
+ .throttlingStatus = ThrottlingSeverity::NONE,
+};
+
template <typename A, typename B>
Return<void> exit_hal(A _cb, hidl_vec<B> _data, std::string_view _msg) {
ThermalStatus _status;
@@ -169,9 +209,15 @@ Return<void> Thermal::getCurrentTemperatures(
return exit_hal(_hidl_cb, temperatures,
"ThermalHAL not initialized properly.");
- if (utils.readTemperatures(filterType, type, temperatures) <= 0)
- return exit_hal(_hidl_cb, temperatures,
- "Sensor Temperature read failure.");
+ if (utils.readTemperatures(filterType, type, temperatures) <= 0) {
+ if (filterType && type != dummy_temp_2_0.type) {
+ status.code = ThermalStatusCode::FAILURE;
+ status.debugMessage = "Failed to read dummy temperature value";
+ } else {
+ temperatures = {dummy_temp_2_0};
+ LOG(INFO) << "Returning Dummy Temperature Value" << std::endl;
+ }
+ }
_hidl_cb(status, temperatures);