ライブカメラの設置(その2)

IGU

2009年03月21日 22:01


「何も見えん、真っ黒だぞ〜!」
前回いただいたコメント。確かに、夜中見たら真っ黒だし…。

そこで今回は、写真を表示するCGI(簡単なプログラムの一種)にもう少し手を加えて、毎正時の写真を残しておくようにしてみた。
…今回もマニアックなネタです。

 



このカメラ、再起動の際にタイムサーバーとの同期が取れないと、約6時間、写真が表示されない癖があるみたい。(原因調査中。日によっては、上記の毎正時ファイルが取得できない場合があります)

それと、カメラを買ったけど、FTPでアップロードした写真を見ることができなくて困っている人がいること(その1参照)から、画像表示のみの単機能版をフリーCGIとして公開しておきます。(上記のCGIから毎正時画像保存などの機能を取ったもの。困っている人たちの目に止まればいいのですが…)

コレガの「CG-WLNCMNGL」というネットワークカメラ専用。
FTPで定期アップロードされる写真のフォルダーを調べて、最新の画像を表示する仕組み。

各行毎に説明を付けておいたので、ネットで調べてちょっと加工すれば、他の機種でも使えるはず。 → ダウンロード
使用方法は、「CGIの設置」等で検索すれば大丈夫。


#! /usr/bin/perl

##################################
$setumei = <<"EOL";
 コレガのネットワークカメラ「CG-WLNCMNGL」専用

 ★このCGIのやってること
   1、指定フォルダーの画像から最新を選んで表示。
   2、古いファイルを削除

  http://making.ti-da.net/ つくるんちゅブログ 090321
EOL
####### 初期設定 ################
$MyDir = './' ;  #リスト化するディレクトリー名
####### 設定終わり --------------
  my(@flist) = glob("$MyDir/*"); #指定フォルダー内のリストを取得
@flist = sort { $b <=> $a } @flist; #並べ替え
foreach (@flist) {   #CG-WLNCMNGLは「20090321」等、日付のフォルダーを作るので、20から始まる最新のフォルダー名を取得
$_ =~ s/\.\/\///g;
if($_ =~ /^20/){$tmp = $_; last;}
}
  my(@flist2) = glob("$tmp/*");  #最新フォルダー内のリストを取得
$tmp = pop (@flist2);   #一番新しいファイル名を選択 ※1
print "Location: $tmp\n\n";  #画像を表示

foreach (@flist2) {unlink "$_";} #他のファイルを消去
exit; #※1を2回入れると、転送中の切れた画像が表示されるのを防げます。

一日以上前の写真を消すのは、FTPで接続して操作してください。
または、「20から始まる最新のフォルダー名を取得…」 あたりで、もし昨日以前のフォルダーがあったら消去するという指示を加えてください。

関連記事