#!/bin/bash
#
#FilterMonitorMeasure ver1.1.0
#
# usage: 
#	 FilterMonitorMeasure callfunc detectairflowflg tracelevel
#
#Copyright (C) 2012 NEC Corporation.
#If you tamper with the source, the behavior of the FilterMonitor is not guaranteed.
############################################################################################################

. $PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorUsage
. $PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorCommonFunc

funcname=FilterMonitorMeasure
FM_IPMI_GetAirFlow180=4

callfunc=$1
DetectAirFlowFLG=$2
tracelevel=$3
SetPath=/etc/FilterMonitor

ShowAlert()
{
    echo "Internal error occurs. Please contact to customer service for the support."
    $PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorLog syslog $funcname ERR $tracelevel $callfunc "failed to access file"
    $PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorLog tracelog $funcname ERR $tracelevel $callfunc "$failed to access file"
}

Finalize()
{
    $PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorLog tracelog $funcname INFO $tracelevel $callfunc "$funcname end"

    exit $1
}

$PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorLog tracelog $funcname INFO $tracelevel $callfunc "$funcname start"

if [ $# -lt 3 ]
then
    FilterMonitorUsage
    Finalize 1
fi

#get Previous status
IFS=$'\n'$'\t'" "
#get sensor info files names
filenames=(`ls $PATHPREFIX/$SetPath/*_Setting 2>/dev/null`)
for (( i = 0 ; i < ${#filenames[*]} ; i++ ))
{	status="normal"
	AbnormalStatusFlg=0
	AbnormalStatusFlg=0
	Ref=0
	filename="`basename ${filenames[i]}`"
	export IFS=","
	read -a Sensorinfo < $PATHPREFIX/$SetPath/$filename
	AbnormalStatusFlg=${Sensorinfo[0]}
	AirFlowStatusFlg=${Sensorinfo[1]}
	if [ $AirFlowStatusFlg -eq 1 ]
	then
		status="clogged"
	else
		if [ $AbnormalStatusFlg -eq 1 ]
		then
			status="abnormal"
		fi

	fi
	sensornum=(`echo $filename | cut -d "_" -f2`)
	export IFS=","
	read -a CalibValue < $PATHPREFIX/$SetPath/$sensornum
	Ref=${CalibValue[0]}
	echo "$Ref,$status"> $PATHPREFIX/$SetPath/$sensornum
}

$PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorIPMI $callfunc $tracelevel $FM_IPMI_GetAirFlow180 0 0 0 0 0 0
Result=$?

$PATHPREFIX/usr/bin/FilterMonitor/FilterMonitorLog tracelog $funcname INFO $tracelevel $callfunc "$funcname end"

Finalize $Result
