|
|
当サイトは、玄箱PRO (KURO-BOX/Pro)を中心とした組み込み、Linuxと電子工作を扱っています。
会社案内
情報セキュリティおよび個人情報の取り扱いについて コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。コメントはそれぞれ投稿した人のものです。 |
coffee_check.bsh
----------------------------------------------------------------------
#! /bin/sh
# echo "0" > ./count.dat
# chmod 666 ./count.dat
flag=1
cnt=0
dir="."
file=$dir/count.dat
theflag=$dir/flag
theswitch=$dir/switch
# オン時間設定
ON_CNT=5
SW="OFF"
data=`cat $file`
while [ 1 ]
do
flag=`cat $theflag`
if [ $flag -eq 1 ]
then
# 1秒カウントアップ
cnt=`expr $cnt + 1`
# オン時間チェック
if [ $cnt -gt $ON_CNT -a "$SW" = "OFF" ]
then
# オンと判定
data=`cat $file`
data=`expr $data + 1`
echo $data > $file
SW="ON"
touch $theswitch
fi
# オンならカウントアップ中止
if [ "$SW" = "ON" ]
then
cnt=0
fi
else
SW="OFF"
cnt=0
fi
sleep 1
echo -n "CNT="$cnt" "
echo -n $SW " "
echo "DATA="$data
done
* 管理ファイルの意味
1. count.dat ..... 抽出回数上記にプログラムでの管理ファイルの意味を書いておきました。なお、これらは、適当なディレクトリに用意しておけばよいのですが、現時点ではプログラムと同じディレクトリに置いています。それゆえ、dir なる変数を用意して、そこに現在のディレクトリの位置(".")を代入しています。管理ファイルの格納場所を変更する場合は、dir= "/var/coffee"とかすればよいでしょう。
2. flag ..... オンオフのステータス
3. switch ..... 電源スイッチの状態
dir="."
file=$dir/count.dat そして、このディレクトリは Web サーバ(apache2 を想定)が書き込めるパーミッションにしておく必要があります。例えば、Web サーバのユーザID、グループID が www-data だとして、
(現ディレクトリの指定)のように設定します。また、
chmod www-data:www-data .
(/var/coffee というディレクトリの指定)
chmod www-data:www-data /var/coffee
echo "0" > ./count.datとして、抽出回数記憶用のファイルを用意しておきます。 このプログラムは起動されると1秒ごとに電源のステータスを監視にいって、所定の時間の経過を確認すると"電源オンステータス"として記憶します。今はチェックしやすいように「所定時間=5秒」となってますから、後々に皆さんが観測した設定値に書き直してください。
chmod 666 ./count.dat (または、chwon www-data ./count.dat)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta http-equiv="Refresh" content="10;URL=debug.php">
</head>
<body>
<?php
// touch switch
// chmod 666 switch
$self = $_SERVER['PHP_SELF'];
$submit = $_GET['submit'];
$switchflag=file("flag");
if ($switchflag[0] == 1){
$cmg="#ff3333";
$cm="ON";
} else {
$cmg="#888888";
$cm="OFF";
}
if($submit == "ON") {
$cm="ON";
$cmg="#ff3333";
system('echo "1" > flag');
}
if($submit == "OFF") {
$cm="OFF";
$cmg="#888888";
system('echo "0" > flag');
}
if($submit == "SET") {
$cm="OFF";
$cmg="#888888";
system('echo "0" > switch');
}
?>
<form method=GET action=<?php echo $self; ?>>
<table>
<tr><td></td><td align=center bgcolor=<?php echo $cmg.">".$cm ?></td><td></td></tr>
<tr><td><input type=submit name=submit value="ON"></td>
<td><input type=submit name=submit value="OFF"></td>
<td><input type=submit name=submit value="SET"></td>
</tr>
</table>
</form>
<?php
// カウント値をファイルから呼び出す
$count=file("count.dat");
$mtime = filemtime("switch");
$fdate = getdate($mtime);
$fh12 = date('h', $mtime);
$fy = $fdate["year"];
$fm = $fdate["mon"];
$fd = $fdate["mday"];
$fh = $fdate["hours"];
$fi = $fdate["minutes"];
$fs = $fdate["seconds"];
$date=getdate();
$y=$date["year"];
$m=$date["mon"];
$d=$date["mday"];
$h=$date["hours"];
$i=$date["minutes"];
$s=$date["seconds"];
$p="p";
// 四捨五入
$pass = round((mktime($h,$i,$s,$m,$d,$y) - mktime($fh,$fi,$fs,$fm,$fd,$fy))/60);
?>
<table border=1 cellpadding=0>
<tr><td valign=middle colspan=3><?php echo "<img src=/cgi-bin/Count.cgi?dd=A&ft=0&lit=$p$fh12:$fi>" ?>に抽出しました。</td></tr>
<tr><td valign=middle colspan=3><?php echo "<img src=/cgi-bin/Count.cgi?dd=A&ft=0&lit=$pass>" ?>分経過しています。</td></tr>
<tr><td valign=middle>コーヒーの合計抽出回数は</td><td><?php echo "<img src=/cgi-bin/Count.cgi?dd=glass&ft=0&lit=$count[0]>" ?></td><td>です。</td></tr>
</table>
</body>
</html>
このブログ記事を参照しているブログ一覧: コーヒーの有無をオンラインでチェックしたい(その5)
このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/1146
おすすめ書籍 |
![]() |
コメントする