battery_temp: initial commit.
Simple script to read battery temperature and return degrees Celsius if readable, 'error' if unreadable or 'unknown' otherwise. Signed-off-by: Todd Broch <tbroch@chromium.org> BRANCH=none BUG=chromium:816744 TEST=manual, run on following duts with return values of: elm: <degC> eve: <degC> expresso: <degC> heli: <degC> peppy: 'unknown' samus: <degC> squawks: <degC> | 'error' if battery removed. Change-Id: I3147ceb3ea0e0a22c08617e212c66d0c3e58b300 Reviewed-on: https://chromium-review.googlesource.com/982815 Commit-Ready: Todd Broch <tbroch@chromium.org> Tested-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Duncan Laurie <dlaurie@google.com>
This commit is contained in:
parent
415dba09fb
commit
e0b7137f47
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
# Copyright 2018 The Chromium OS Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
#
|
||||
# Description: Read and output temperature of device's primary battery in
|
||||
# degrees Celsius.
|
||||
#
|
||||
# TODO(tbroch) revisit for detachables with multiple batteries.
|
||||
|
||||
# Read battery temperature from sysfs power_supply and return in degC.
|
||||
batt_temp_sysfs() {
|
||||
local temp=""
|
||||
|
||||
for psdir in /sys/class/power_supply/* ; do
|
||||
if [[ -e "${psdir}/temp" ]] ; then
|
||||
pstype=$(cat $psdir/type)
|
||||
if [[ "${pstype}" -eq "Battery" ]] ; then
|
||||
temp=$(bc <<< "scale=2; $(cat ${psdir}/temp)/10")
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo ${temp}
|
||||
}
|
||||
|
||||
# Read battery temperature from EC and return in degC.
|
||||
batt_temp_ec() {
|
||||
local temp=""
|
||||
|
||||
local sensor_str=$(ectool tempsinfo all 2>/dev/null | grep Battery)
|
||||
if [[ $? -eq 0 ]] && [[ ! -z "${sensor_str}" ]] ; then
|
||||
local idx=$(echo ${sensor_str} | cut -d: -f1)
|
||||
# ectool temps <idx> looks like 'Reading temperature...298 K'
|
||||
temp_str=$(ectool temps ${idx})
|
||||
temp="${temp_str//[!0-9]/}"
|
||||
if [[ -z "${temp}" ]] ; then
|
||||
temp="error"
|
||||
else
|
||||
temp=$(bc <<< "scale=2; ${temp} - 273.15")
|
||||
fi
|
||||
fi
|
||||
echo $temp
|
||||
}
|
||||
|
||||
# Main
|
||||
TEMP_DEGC=$(batt_temp_sysfs)
|
||||
if [[ -z "${TEMP_DEGC}" ]] ; then
|
||||
TEMP_DEGC=$(batt_temp_ec)
|
||||
fi
|
||||
|
||||
if [[ -z "${TEMP_DEGC}" ]] ; then
|
||||
echo "unknown"
|
||||
else
|
||||
echo ${TEMP_DEGC}
|
||||
fi
|
Loading…
Reference in New Issue