#!/bin/bash

count=1
index=1
sleeptime=1
usage="Usage: $0 [-n count] [-d second]"

while getopts "n:d:h" opt
do
	case $opt in
	n)
		count=$OPTARG
		;;
	d)
		sleeptime=$OPTARG
		;;
	h)
		echo $usage
		exit 0
		;;
	\?)
		echo $usage
		exit 1
		;;
	esac
done

if [ -d "/sys/devices/system/bpu/profiler_enable" ];then
echo 250 > /sys/devices/system/bpu/profiler_frequency
echo 1   > /sys/devices/system/bpu/profiler_enable
fi

if [ -f "/sys/class/boardinfo/soc_name" ]; then
	soc_name="$(cat /sys/class/boardinfo/soc_name)"
fi

temp_div=1000.0

while [ 1 -gt 0 ]
do
	if [ $count -gt 0 ] 2>/dev/null;then
		echo "=====================$index====================="
		index=$(($index+1))
		count=$(($count-1))
	else
		break
	fi

	echo "temperature-->"
	for temp in `find /sys/devices/virtual/thermal/* -name "thermal_zone[0-9]*"`
	do
		name=`cat $temp/type`
		value=`cat $temp/temp`
		value=`awk 'BEGIN {print "'${value}'"/'${temp_div}'}'`
		printf "\t%-8s : %-3.3f (C)\n" $name $value
	done
	echo "voltage-->"
	for hwmon in /sys/class/hwmon/hwmon*; do
		for label in "$hwmon"/in*_label; do
			input="${label%_label}_input"

			# 检查对应的 label 和 input 是否存在
			if [ -f "$label" ] && [ -f "$input" ]; then
				label_value=$(cat "$label")
				input_value=$(cat "$input")
				if [[ "$label_value" == "NULL" ]]; then
					continue
				fi
				printf "\t%-8s : %-3.1f (mV)\n" $label_value $input_value
			fi
		done
	done

	echo "cpu frequency-->"
	echo -e "\t\t\tmin\tcur\tmax"
	for temp in `find /sys/devices/system/cpu/cpufreq/* -name "policy[0-9]*"`
	do
		min=`cat $temp/cpuinfo_min_freq`
		cur=`cat $temp/cpuinfo_cur_freq`
		max=`cat $temp/cpuinfo_max_freq`
		echo -e "\t${temp##*/}:\t$min\t$cur\t$max"
	done

	echo "bpu status information---->"
#	echo -e "\t	 min\tcur		 \tmax		 \tratio"
	echo -e "\t	ratio"
	for temp in `find /sys/devices/system/bpu/bpu* -name "bpu[0-9]*"`
	do
#				if [ -d "$temp/bpufreq" ];then
#						min=`cat $temp/bpufreq/min_freq`
#						cur=`cat $temp/bpufreq/cur_freq`
#						max=`cat $temp/bpufreq/max_freq`
#				else
#						min=`cat $temp/devfreq/*/min_freq`
#						cur=`cat $temp/devfreq/*/cur_freq`
#						max=`cat $temp/devfreq/*/max_freq`
#				fi
				ratio=`cat $temp/ratio`
#		echo -e "\t${temp##*/}: $min\t$cur\t$max\t$ratio"
		echo -e "\t${temp##*/}: \t$ratio"
	done


	if [ $count -gt 0 ];then
		sleep $sleeptime
	fi
done
