2013年07月14日

ライブカメラの設定を自動的に元に戻す

livecamera01.jpg


 私がこのブログを書いているのは、自分自身の備忘録としての機能と、ひょっとして世間のどなたかに多少なりとも有用な情報を提供することができるかもしれないから、と2つの理由があります。
 今日の記事は、どうも前者のみになりそうです。

 私の職場はWANを使っていますが、ネットワークの管理は本社の管理下にあるので、自分の職場のネットワークに関して勝手なことはできません。そのため、せっかくPanasonicのライブカメラがありますが、カメラにもプライベートIPアドレスが割り振られ、外部からコントロールできるという機能が発揮出来ないという問題がありました。画像は静止画を外部のサーバーにFTPで送ります。外部からWAN内には入れないようにしてあるわけです。
 内部からならば仕様通り自由にコントロールできるのでその点は問題ありませんが、誰かがカメラの向きやズームを変えてしまうと、外部から防犯などのために設定をしておいた角度やズームの状態に戻せません。
 カメラの仕様として、一定時間後にある設定状態に戻すという機能はありません。(新しいカメラならあるかも知れませんが、私の職場で使っているものにはないのです。)
 そこで、簡易的な対処方法を考えてみました。

 ブラウザからカメラをコントロールする命令を送れるのだから、HTMLファイル中にその命令を書いておいて、一定時間毎にデフォルト状態に戻せれば、誰かが戻し忘れても、防犯に役立ちます。

 冒頭の、閲覧・コントロールパネルの画面で、Dの8つのボタンに向きや角度、ズームなどをプリセットしておけます。このボタンの1つをクリックすると次のようなリクエスト(というのでしょうか?)がブラウザに対して行われます。(aa.bbb.cc.ddはライブカメラのプライベートIPアドレス。)

http://aa.bbb.cc.dd/nphControlCamera?Direction=Preset&PresetOperation=Move&Data=7&Mode=Motion&Resolution=640x480&Quality=Clarity&Interval=10&Size=STD&Language=1"

 最初、これをHTMLファイルの冒頭に
<META HTTP-EQUIV="Refresh" CONTENT="600;URL=http://aa.bbb.cc.dd/nphControlCamera?....">
という記述で入れました。
 でもその考え方は、半分正しくて、半分は間違っていました。

 これを含むHTMLファイルをブラウザで開くと600秒後に「URL=」で書かれたURLをブラウザは開こうとします。従って、ライブカメラにそのリクエストが送られます。そして、他のブラウザで開くと、今まで別の向きを向いていたり、一部しか見えないようなズーム状態だったものが、決められたプリセット(ここでは、Data=7で示される)7のボタンを押した状態になります。

 こまでは成功でした。

 しかし…それで終わってしまうのです。
 考えてみれば、
<META HTTP-EQUIV="Refresh" ・・・
は、他のページにジャンプするか、あるいは自分自身(HTMLファイル)を再度読み込むのが目的ですから、このような記述では、リクエストが実行されるものの、そのページが開かれるわけでもなく、また自分自身が再度読み込まれるわけでもないので、1回だけ実行されて終わってしまうのです。

 そこでしばし考えました。
1 他のページを読み込むような振りをして、ライブカメラへリクエストを送る。
2 自分自身を再度読み込み、決められた一定時間が経過したら、またリクエストを送らせる。
の2つを同時に実現する簡単な(笑)方法はないものか・・・。

 思いつきました。フレームを使うのです。久しぶりのフレームです。

livecamera01.gif
(↑かなり雑な図になってしまいました。)


 この図で、上のピンクのフレームでは、ライブカメラのリクエストが書かれています。本来は、HTMLファイルを書くべきなのですが、実態のないページ=リクエストが書かれています。
 下のフレームはダミーです。ライブカメラへのリクエスト以外に読み込む必要はないので、ダミーページを読み込ませる事にしました。今考えて見ると、フレームの中に1つのHTMLだけでも良かったかも知れません。
 さて、それら2つを含む外側のフレーム(水色)には、

が書かれていますから、自分自身を600秒ごとに読み込むことになります。そして、上のフレームでそのたびにライブカメラへのリクエスト(=プリセット7に戻す)が行われます。

 先に書くのを忘れていましたが、このHTMLファイルはWAN内にあって常に起動しているパソコンに置いてあります。

 さて結果ですが、意図したとおりになりました。防犯に使われないといいのですが・・・。(笑)

----
追記
 一応、フレーム指定ファイルの内容をここに書いておくことにします。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<META HTTP-EQUIV="Refresh" CONTENT="600">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>ライブカメラ・リフレッシュ</title>
</head>

<frameset rows="80,*" frameborder="no" border="0" framespacing="0">
<frame
src="http://aa.bbb.cc.dd/nphControlCamera?Direction=Preset&PresetOperation=Move&Data=7&Mode=Motion&Resolution=640x480&Quality=Clarity&Interval=10&Size=STD&Language=1"
name="topFrame" scrolling="No" noresize="noresize" id="topFrame"
title="topFrame" />

<frame src="dummy.html" name="mainFrame" id="mainFrame"
title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>></html>

posted by kewpie at 23:23| Comment(0) | TrackBack(0) | ファイル作成
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/70927920
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
コメントの投稿について
○お名前とコメント欄の記入は必須です。
○メールアドレスは任意です。記入されても公開はされません。管理人のみに知らされます。
○スパム防止のため、
・ホームページアドレス欄への記入はできません。
・コメント欄にURLは記入できません。
・スパムと思われる語を記入できません。
 これらをしようとすると、最終的に投稿完了できません。
○投稿完了後に、管理人の判断でスパムと判断した投稿は削除させていただきます。