2025-01-06 09:10:08 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
2025-02-21 11:10:37 +08:00
|
|
|
mode=$1
|
|
|
|
|
i2c_bus=$2
|
|
|
|
|
chip_slave=$3
|
|
|
|
|
server_platform=$4
|
|
|
|
|
|
|
|
|
|
path=`pwd`
|
|
|
|
|
fmt_print="${path}/format_print.sh"
|
|
|
|
|
i2c_script="${path}/i2c_${server_platform}.sh"
|
|
|
|
|
|
2025-01-06 09:10:08 +08:00
|
|
|
# process sensor data then print to console
|
|
|
|
|
# @Param 1 adc128 data high 8bit
|
|
|
|
|
# @Param 2 adc128 data low 8bit
|
|
|
|
|
# @Param 3 customization channel name
|
|
|
|
|
# @Param 4 division factor
|
|
|
|
|
convert_adc128_data(){
|
|
|
|
|
# remove data prefix '0x'
|
|
|
|
|
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 ""
|
|
|
|
|
}')
|
|
|
|
|
|
|
|
|
|
# calculate dec value then print it to console
|
|
|
|
|
dec_val=$(echo "ibase=16; $upper_hex_value" | bc)
|
|
|
|
|
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 }')
|
|
|
|
|
|
|
|
|
|
echo "$3 : $format_volt v, hex value: $upper_hex_value"
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-21 11:10:37 +08:00
|
|
|
read_adc128_data(){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "${mode}" in
|
|
|
|
|
"read")
|
|
|
|
|
read_adc128_data
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
$fmt_print "console" "Error" "[plugin_adc128]Unexpected Input Param : $mode"
|
|
|
|
|
;;
|
|
|
|
|
esac
|