diff options
Diffstat (limited to 'thermal.cpp')
-rw-r--r-- | thermal.cpp | 52 |
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); |