nicsensor/nicsensor_v2/plugin_tmp468.sh

124 lines
4.2 KiB
Bash
Raw Normal View History

2025-01-06 14:00:14 +08:00
#!/bin/sh
2025-02-21 11:10:37 +08:00
mode=$1
i2c_bus=$2
chip_slave=$3
server_platform=$4
2025-03-13 16:34:05 +08:00
test_data1=$2
test_data2=$3
2025-02-21 11:10:37 +08:00
path=`pwd`
fmt_print="${path}/format_print.sh"
i2c_script="${path}/i2c_${server_platform}.sh"
2025-03-13 16:34:05 +08:00
REG_tmp468="0x80"
# TMP468 channel name
TMP468_Channel0_name="Local"
TMP468_Channel1_name="Remote1"
TMP468_Channel2_name="Remote2"
TMP468_Channel3_name="Remote3"
TMP468_Channel4_name="Remote4"
TMP468_Channel5_name="Remote5"
TMP468_Channel6_name="Remote6"
TMP468_Channel7_name="Remote7"
TMP468_Channel8_name="Remote8"
print_help(){
echo "---------------------------------------------------------"
echo "<option> read"
echo " Format : ./plugin_tmp468.sh read [i2c-bus] [slave] [platform]"
echo " Example: ./plugin_tmp468.sh read 13 0x48 m7"
echo "---------------------------------------------------------"
echo "<option> test"
echo " Format : ./plugin_tmp468.sh test [data1] [data2]"
echo " Example: ./plugin_tmp468.sh test 0x24 0x00"
echo "---------------------------------------------------------"
echo "<option> help"
echo " Format : ./plugin_tmp468.sh help"
echo " Example: ./plugin_tmp468.sh help"
echo "---------------------------------------------------------"
}
2025-01-06 14:00:14 +08:00
# @Param1 tmp468 data high 8bit
# @Param2 tmp468 data high 8bit
# @Param3 customization channel name
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}"
# 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 ""
}')
# change data from hex to dec
dec_val=$(echo "ibase=16; $upper_hex_value" | bc)
temp=$(echo "scale=4; $dec_val / 8 * 0.0625" | bc)
echo "$3 : $temp "
}
2025-02-21 11:10:37 +08:00
read_tmp468_data(){
2025-03-13 16:34:05 +08:00
res_tmp468=`$i2c_script $i2c_bus 1 $chip_slave $REG_tmp468 18`
$fmt_print "log" "Info" "[plugin_tmp468] Read Raw Data : $res_tmp468"
2025-02-21 11:10:37 +08:00
2025-03-13 16:34:05 +08:00
tmp468_res1_h=`echo $res_tmp468 | awk '{print $1}'`
tmp468_res1_l=`echo $res_tmp468 | awk '{print $2}'`
tmp468_res2_h=`echo $res_tmp468 | awk '{print $3}'`
tmp468_res2_l=`echo $res_tmp468 | awk '{print $4}'`
tmp468_res3_h=`echo $res_tmp468 | awk '{print $5}'`
tmp468_res3_l=`echo $res_tmp468 | awk '{print $6}'`
tmp468_res4_h=`echo $res_tmp468 | awk '{print $7}'`
tmp468_res4_l=`echo $res_tmp468 | awk '{print $8}'`
tmp468_res5_h=`echo $res_tmp468 | awk '{print $9}'`
tmp468_res5_l=`echo $res_tmp468 | awk '{print $10}'`
tmp468_res6_h=`echo $res_tmp468 | awk '{print $11}'`
tmp468_res6_l=`echo $res_tmp468 | awk '{print $12}'`
tmp468_res7_h=`echo $res_tmp468 | awk '{print $13}'`
tmp468_res7_l=`echo $res_tmp468 | awk '{print $14}'`
tmp468_res8_h=`echo $res_tmp468 | awk '{print $15}'`
tmp468_res8_l=`echo $res_tmp468 | awk '{print $16}'`
tmp468_res9_h=`echo $res_tmp468 | awk '{print $17}'`
tmp468_res9_l=`echo $res_tmp468 | awk '{print $18}'`
$fmt_print "console" "Info" "Tmp468 read result:"
convert_tmp468_data $tmp468_res1_h $tmp468_res1_l "$TMP468_Channel0_name"
convert_tmp468_data $tmp468_res2_h $tmp468_res2_l "$TMP468_Channel1_name"
convert_tmp468_data $tmp468_res3_h $tmp468_res3_l "$TMP468_Channel2_name"
convert_tmp468_data $tmp468_res4_h $tmp468_res4_l "$TMP468_Channel3_name"
convert_tmp468_data $tmp468_res5_h $tmp468_res5_l "$TMP468_Channel4_name"
convert_tmp468_data $tmp468_res6_h $tmp468_res6_l "$TMP468_Channel5_name"
convert_tmp468_data $tmp468_res7_h $tmp468_res7_l "$TMP468_Channel6_name"
convert_tmp468_data $tmp468_res8_h $tmp468_res8_l "$TMP468_Channel7_name"
convert_tmp468_data $tmp468_res9_h $tmp468_res9_l "$TMP468_Channel8_name"
}
test_tmp468_data(){
convert_tmp468_data $test_data1 $test_data2 "Temp"
2025-02-21 11:10:37 +08:00
}
case "${mode}" in
"read")
read_tmp468_data
;;
2025-03-13 16:34:05 +08:00
"test")
test_tmp468_data
;;
"help")
print_help
;;
2025-02-21 11:10:37 +08:00
*)
2025-03-13 16:34:05 +08:00
$fmt_print "console" "Error" "[plugin_tmp468] Unexpected Input Param : $mode"
print_help
2025-02-21 11:10:37 +08:00
;;
esac