From c7730923a120d1e7f0e40535116531c04096ccbe Mon Sep 17 00:00:00 2001 From: leimingsheng Date: Tue, 10 Mar 2026 15:57:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(master=20:=20nicsensor)=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=201.9.4=20=E5=BC=95=E5=85=A5=E7=9A=84=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=97=B6=E8=AF=AD=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nicsensor.sh | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/nicsensor.sh b/nicsensor.sh index 31ae222..174d7df 100755 --- a/nicsensor.sh +++ b/nicsensor.sh @@ -1,6 +1,5 @@ #!/bin/sh -set -euo pipefail -trap 'echo "Script terminated as line $LINENO , Please Check with command: cat /tmp/nicsensor.log"' ERR +set -eo pipefail SCRIPT_VERSION="1.9.6" # --------------------------------------------------------- # Project Feature Varible (Change if need) @@ -160,7 +159,7 @@ log="/tmp/nicsensor_debug.log" pmbus_op="get" hex_pmbus_cmd=0xff hex_pmbus_size=0 -CONFIG_DIR="/tmp/ns/" +CONFIG_DIR="/tmp/nicsensor_config/" # --------------------------------------------------------- # Script Function Defination # --------------------------------------------------------- @@ -954,7 +953,7 @@ convert_adc128_data(){ volt=$(echo "scale=4; $dec_val / 16 / 4096 * 2.65 / $4" | bc) format_volt=$(echo "$volt" | awk '{ if ($0 ~ /^\./) print "0" $0; else print $0 }') - fmt_print "log" $INFO "$3 - Hex data: $upper_hex_value" + fmt_print "log" $INFO "$3 - Hex data: 0x$merge_value" echo "$3 : $format_volt V" } @@ -1015,6 +1014,17 @@ convert_ina3221_data(){ merge_value="${hex_value1}${hex_value2}" dec_val=$(hex_to_dec $merge_value) + # bc calculator recognized upper case only, change data to upper case + upper_hex_value=$(echo "$merge_value" | awk '{ + for(i=1; i<=length($0); i++){ + if(tolower(substr($0,i,1)) ~ /^[a-f]$/) + printf toupper(substr($0,i,1)); + else + printf substr($0,i,1); + } + print "" + }') + if [ $4 -eq $INA3221_BUS_VOLT ];then volt=$(echo "scale=4; $dec_val / 8 * 40 / 10000 * 2" | bc) format_volt=$(echo "$volt" | awk '{ if ($0 ~ /^\./) print "0" $0; else print $0 }') @@ -1167,6 +1177,16 @@ convert_tmp112_data(){ merge_value="${hex_value1}${hex_value2}" dec_val=$(hex_to_dec $merge_value) + upper_hex_value=$(echo "$merge_value" | awk '{ + for(i=1; i<=length($0); i++){ + if(tolower(substr($0,i,1)) ~ /^[a-f]$/) + printf toupper(substr($0,i,1)); + else + printf substr($0,i,1); + } + print "" + }') + binary_number=$(echo "ibase=16;obase=2;$upper_hex_value" | bc) bin_length=$(echo $binary_number | awk '{print length($0)}') last_digit=$(echo $binary_number | cut -c $bin_length)