チューナ側の起動処理やら、チャンネル切り換えがあるので、
録画開始1分前にチューナの電源を入れ、
録画終了時刻にチューナーの電源を切りたい。
あたた。。。。。
ハック de 録!! では、DbAcRap に時間の計算をまかせ、
平気で開始時刻=25:30 とか渡している(汗)。
ところが at は
yasunari@sil:/usr/local/sbin$ echo ls | at 25:00 Problem in hours specification. Last token seen: 25:00 Garbled time yasunari@sil:/usr/local/sbin$と、ちゃんと24時までの時刻を渡してやる必要がある。
・時刻の正規化(24時を過ぎたら次の日にする)
・「一分前」の計算
が必要であるが、、、、
時間の計算って面倒(藁)
大の月/小の月があったり、うるう年があったり、、、、
どーしようか悩んでいたとき、 date コマンドの目次(笑)に日付計算機能があることを思い出した。
例えば、うるう年の 2008/2/28 25:23 でも以下のように date コマンドで 正規化できる。
sil:/usr/local/sbin# date --date="2008/2/28 15:00 -`expr 25 - 24`:23" Fri Feb 29 01:23:00 JST 2008 sil:/usr/local/sbin#例えば、うるう年の 2008/3/1 00:00 の一分前は、 以下のように date コマンドで求められる。
sil:/usr/local/sbin# date --date="2008/3/1 00:00 +9:01" Fri Feb 29 23:59:00 JST 2008 sil:/usr/local/sbin#いろいろマジックな数字が出てくるが、
# 開始時刻の正規化 YYYY=`echo "$STARTTIME" | cut -d'/' -f1` MM=`echo "$STARTTIME" | cut -d'/' -f2` DD=`echo "$STARTTIME" | cut -d'/' -f3` HH=`echo "$STARTTIME" | cut -d'/' -f4` MI=`echo "$STARTTIME" | cut -d'/' -f5` if [ $HH -ge 24 ] then NEWH=`expr $HH - 24` STARTTIME=`date --date="$YYYY/$MM/$DD 15:00 -$NEWH:$MI" +%Y/%m/%d/%H/%M` fi # 終了時刻の正規化 YYYY=`echo "$ENDTIME" | cut -d'/' -f1` MM=`echo "$ENDTIME" | cut -d'/' -f2` DD=`echo "$ENDTIME" | cut -d'/' -f3` HH=`echo "$ENDTIME" | cut -d'/' -f4` MI=`echo "$ENDTIME" | cut -d'/' -f5` if [ $HH -ge 24 ] then NEWH=`expr $HH - 24` ENDTIME=`date --date="$YYYY/$MM/$DD 15:00 -$NEWH:$MI" +%Y/%m/%d/%H/%M` fi
# 開始時制御 YYYY=`echo "$STARTTIME" | cut -d'/' -f1` MM=`echo "$STARTTIME" | cut -d'/' -f2` DD=`echo "$STARTTIME" | cut -d'/' -f3` HH=`echo "$STARTTIME" | cut -d'/' -f4` MI=`echo "$STARTTIME" | cut -d'/' -f5` STARTAT=`date --date="$YYYY/$MM/$DD $HH:$MI +9:01" +"%H:%M %m/%d/%y"` echo "/usr/local/bin/infrared_remocon $BUTTON_START | at $STARTAT" echo "/usr/local/bin/infrared_remocon $BUTTON_START" | at $STARTAT
とりあえず、ハック de 録の外部チューナ対応完了。
まあ、どっかバグってるだろう。
|
|
← ハック de 録 !!の修正(2)ビデオもしくはS端子入力の録画 |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ ftpd のインストール |