From 37d328c7f3ab68199f49f5521927592974338cc7 Mon Sep 17 00:00:00 2001 From: leimingsheng Date: Tue, 10 Feb 2026 14:35:11 +0800 Subject: [PATCH] =?UTF-8?q?refactor(master=20:=20nicsensor)=20update=20to?= =?UTF-8?q?=201.9.4=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=9A?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=B0=86=E5=8D=81=E5=85=AD=E8=BF=9B=E5=88=B6?= =?UTF-8?q?=E8=BD=AC=E5=8C=96=E4=B8=BA=E5=8D=81=E8=BF=9B=E5=88=B6=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E4=BE=BF=E4=BA=8E=E9=98=85=E8=AF=BB?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nicsensor.sh | 133 +++++++++++---------------------------------------- 1 file changed, 29 insertions(+), 104 deletions(-) diff --git a/nicsensor.sh b/nicsensor.sh index c038b2f..7c27dd0 100755 --- a/nicsensor.sh +++ b/nicsensor.sh @@ -1,5 +1,5 @@ #!/bin/sh -SCRIPT_VERSION="1.9.3" +SCRIPT_VERSION="1.9.4" # --------------------------------------------------------- # Project Feature Varible (Change if need) # --------------------------------------------------------- @@ -254,6 +254,22 @@ print_usage(){ fi } +# Convert a hexadecimal number to a decimal number +# @Param1 hex data +hex_to_dec(){ + upper_hex_value=$(echo "$1" | 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 "" + }') + dec_val=$(echo "ibase=16; $upper_hex_value" | bc) + echo $dec_val +} + # print format message to console|debuglog # @Param1 direction [console|log], default record to log if invalid # @Param2 message level [Info Warning Error] @@ -507,7 +523,6 @@ pre_exec_hook(){ # if in debug mode, skip this check if [ "$server_type" = "auto" ] && [ $DEBUG_MODE -eq 0 ];then try_get_server_type - exit 0 fi # is param legel? @@ -836,26 +851,9 @@ convert_emc1413_data(){ # remove data prefix '0x' hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') - upper_hex_value1=$(echo "$hex_value1" | 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 "" - }') - upper_hex_value2=$(echo "$hex_value2" | 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 "" - }') - dec_value1=$(echo "ibase=16; $upper_hex_value1" | bc) - dec_value2=$(echo "ibase=16; $upper_hex_value2" | bc) + dec_value1=$(hex_to_dec $hex_value1) + dec_value2=$(hex_to_dec $hex_value2) + temp=$(echo "scale=4; $dec_value1 + ($dec_value2 / 32 * 0.125 )" | bc) format_temp=$(echo "$temp" | awk '{ if ($0 ~ /^\./) print "0" $0; else print $0 }') @@ -920,16 +918,8 @@ convert_adc128_data(){ hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') merge_value="${hex_value1}${hex_value2}" - 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 "" - }') - dec_val=$(echo "ibase=16; $upper_hex_value" | bc) + dec_val=$(hex_to_dec $merge_value) + 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" @@ -991,16 +981,7 @@ convert_ina3221_data(){ hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') merge_value="${hex_value1}${hex_value2}" - 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 "" - }') - dec_val=$(echo "ibase=16; $upper_hex_value" | bc) + dec_val=$(hex_to_dec $merge_value) if [ $4 -eq $INA3221_BUS_VOLT ];then volt=$(echo "scale=4; $dec_val / 8 * 40 / 10000 * 2" | bc) @@ -1091,16 +1072,7 @@ convert_tmp468_data(){ hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') merge_value="${hex_value1}${hex_value2}" - 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 "" - }') - dec_val=$(echo "ibase=16; $upper_hex_value" | bc) + dec_val=$(hex_to_dec $merge_value) temp=$(echo "scale=4; $dec_val / 8 * 0.0625" | bc) echo "$3 : $temp " @@ -1161,16 +1133,7 @@ convert_tmp112_data(){ hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') merge_value="${hex_value1}${hex_value2}" - 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 "" - }') - dec_val=$(echo "ibase=16; $upper_hex_value" | bc) + dec_val=$(hex_to_dec $merge_value) binary_number=$(echo "ibase=16;obase=2;$upper_hex_value" | bc) bin_length=$(echo $binary_number | awk '{print length($0)}') @@ -1221,27 +1184,8 @@ convert_ina226_data(){ merge_voltage_value="${hex_voltage_value1}${hex_voltage_value2}" merge_current_value="${hex_current_value1}${hex_current_value2}" - upper_hex_voltage_value=$(echo "$merge_voltage_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 "" - }') - dec_voltage_val=$(echo "ibase=16; $upper_hex_voltage_value" | bc) - - upper_hex_current_value=$(echo "$merge_current_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 "" - }') - dec_current_val=$(echo "ibase=16; $upper_hex_current_value" | bc) + dec_voltage_val=$(hex_to_dec $merge_voltage_value) + dec_current_val=$(hex_to_dec $merge_current_value) real_voltage=$(echo "scale=4; $dec_voltage_val * 1.25 / 1000 " | bc) real_current=$(echo "scale=4; $dec_current_val * 2.5 * 0.167 / 1000 " | bc) @@ -1284,27 +1228,8 @@ convert_lms95241_data(){ hex_value1=$(echo "$1" | awk '{sub(/^0x/,""); print}') hex_value2=$(echo "$2" | awk '{sub(/^0x/,""); print}') - upper_hex_value1=$(echo "$hex_value1" | 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 "" - }') - dec_val1=$(echo "ibase=16; $upper_hex_value1" | bc) - - upper_hex_value2=$(echo "$hex_value2" | 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 "" - }') - dec_val2=$(echo "ibase=16; $upper_hex_value2" | bc) + dec_val1=$(hex_to_dec $hex_value1) + dec_val2=$(hex_to_dec $hex_value2) temp=$(echo "scale=4; $dec_val1 + $dec_val2 / 32 * 0.125 " | bc)