画像キャプチャー「LcLight」でも今ひとつ、ふたつ、が問題

LiveCapture2からLcLightに切り替えて運用してみた。

≪良いところ≫
・処理時刻の正確さ
 いったん処理時刻を設定すれば、あとは時間間隔に従って、かなり正確に、いつまでも、決まった時刻での観測記録を行ってくれる。

・処理の軽さ
 通常監視状態のときのCPU使用率もかなり低い。昔のPCでも4%程度。
 記録のときも軽くこなしているようだ。
 起動時刻と出来上がった画像のファイル作成時刻との差は2秒がほとんど。実際にはこの時刻の分解能は1秒であるので、実際には1〜3秒ということにはなるが、見ている感じではかなり早く処理されているので、実際の処理はほとんど1秒もかからずに処理されていて、その画像の書き込み完了までみたときに1秒くらい後になったということかも。
 この結果には満足。
 

≪不足のところ≫
・処理時刻の設定が難しい
 望む時刻の設定が簡単にできない。基本的に無いに等しい。
 時間間隔なので、問題はそれを設定するときの時刻なのである。
 例えば60分間隔にするとき、それを設定するのが60分前のジャストならOKなのだが。
 (ただ、そのとき、この設定を行ったそのときに観測記録をすることは出来ないようなのだ。)
 例えば、ジャスト正時のときに設定をしたら、まずそのときの観測記録を実施し、後は60分ごとに定期的に観測記録をしてくれるのがいいのだが。
 あとはやはり事前の起動時刻の予約設定を可能にして欲しいことだ。

※補足
 実はこれに相当すると思われる機能として「間欠」で時間範囲を指定するものがあるのだが、試してみたところ、時刻で作動してその後は指定間隔で動作するものの、初回だけは指定の間隔になっていないという不具合と見られる状況にあるのである。簡易版加工時のバグなのかと思うが。これがあれば問題は解決するのかも知れないが。→元のソフトListCamを使用した方が良いのかな。でもこの簡易版の方がシンプルで軽くて使いやすいような気がするのだが。


・異常停止の対応
 観測開始してから数日は順調に稼動していたのだが、いつの間にか観測記録がされていず、ソフトも起動してなかったような。(原因不明。多分他の起動制御やら自動処理でSendkeysとか動くので、それに巻き込まれたとか。
 それからUSBカメラが不調になったときが対応出来ないこともある。

・動作状況のモニタが変
 実際にリアルタイムでカメラを監視しているのかの確認方法に疑問。当初は「Preview」機能により画像をモニターできていたのが、いつのまにかリアルタイム追従のモニターではなくなってしまっている。「TestShoto」とか行わないとモニター画像が更新されないのだ。(理由不明)

・「SnapShot」が動作がわからない
 任意のときに画像記録を行うためのものと思うのだが、このボタンをクリックしても、画像が記録されるでもないし、先ほどのモニター画像の更新はされるのではあるが。それに対して、「TestShot」の場合はモニター画像の更新はされてかつ画像のファイルへの記録も行われるのでこれを使えばいいが、ボタンのデザインとかからみると、この「SnapShot」の方が使いやすくてわかりやすいと思うのだが。

・このソフトのウィンドウの操作
 他のウィンドウに隠されるとそれを前面に呼び出す方法が普通ではない。
 タスクバーにも表示されないし、Alt+Tabでの切り替えのときにも表示されないのでこの方法も使えない。(他のウィンドウを全部最小にしていくとやっと見えるようになってくる)
 「Config」ボタンで設定用のウィンドウを表示しているときにはタスクバーへの表示も行われていて切り替えも出来る。また「TaskTray」ボタンのクリックではタスクトレイにアイコンが表示されて、次回のウィンドウ呼び出しに使用できる。が、しかし、いつもその都度こうしないと表示されない。
 (これは、起動されていることをあまり気づかせないための配慮なのかも知れないと思ったりしている。その世界ではそれなりの異なった感覚があるものだから。)



以上、これまで使ってみての感想でもある。
このソフトは別のソフト「ListCam」の簡易版らしい。そちらを使ってみるともう少し様子がわかるのかもしれないが、しかしこのソフトが「定点観測」向きをうたっているので、それにもかかわらずこんな状態とは元の方も期待できないような気がしてる。
新しいソフトを使いこなすには時間と根気が必要なので今すぐにとりかかる気になれない。そのうち気持ちに余裕があれば試してみようと思うが、今思っているのは、やはり自分好みにするには自分で作成するしかないということ。

しかし、それには。
画像ソフトの取り扱いとUSBカメラの扱い方が知らないとできないと思う。これを調べたり学習したりするのはちょっと重い感じ。とりあえず簡単に自作する方法でもあればと思う。その辺りを当たってみることかな。
それは見通しは立つものでもないので実際には当面はどうするかだが、この「LcLight」を使いこなす方法を考えよう。

まず、指定時刻に記録するように設定する方法だが。
他のプログラム機能を使用して、ある時刻でこのソフトの起動を行う、という考えがひとつ。
VBとかで現在から直近でやってくる正時を目標としてウェイトし、その2秒前になったらそのソフトを起動する。
そうすれば起動に2秒かかるとしてちょうど正時に観測開始の設定になるかも。(そのソフトの設定はあらかじめ60分間隔での処理の設定を行っておくものとする。)
ソフトの起動コマンドを発行してからそのソフトが稼動状態になるのがどのくらいかは、パソコンの使用状況によるもので何とも言えないが、経験実測によるしかないだろう。
それでもこのときの開始時に記録を行わせることは別問題である。

もうひとつの考えは、あらかじめそのソフトを起動しておいて、正時になるときに、観測インターバルを60分に設定しなおしてあげること、だな。これ前記と同様にVBとかの別のソフトで制御する。
これはターゲットのソフト(LcLight)が制御を受け付けることが可能となっているかにかかるが。
本体のウィンドウのフォーカスは「SnapShot」ボタンにしか当たらないようなのでだめだし。
Configのウィンドウが期待だが。

今試してみたら、タブ動作はする。そして時間間隔の変更を矢印キーで変更することもできる。
ただ、タブの順序がばらばらの感じでつかみにくい。
そして基準となるタブ位置が設定できないと、フォーカスがどこにあるか把握できないと操作が出来ない。
→起動直後のタブ位置に期待しようか。これを基準としてどれだけタブを動かすかでプログラム操作による設定が出来るかもしれない。

おっと、その前に、そのソフトを起動した直後の状態だが、ウィンドウは表示されず、タスクトレイに入ったままだ。これをどうやって制御すればいいのか。
これは難しい。

その前にタブの動きだが。
起動直後は?
「番号リセット」ボタンにあるようだ。
そして、
1.最大
2.連番名
3.Date1,2,3
4.Header3
5.Time3
・・・

と取り止めない。ひょっとするとさらに前回の最終状態をひきずっていたりして。
→いやそんなことはないようだ。今、再起動してみたら、やはり同じ「番号リセット」にフォーカスだ。
では、タブの逆方向(Shiftを押して)を試してみよう。
ピンポーン!正解!
ひとつ前で「保存間隔」の設定のところにやってきた。これはイイ!

そしてそこには、「10分」、「30分」、「60分」、「任意」と並んでいる。
ここで矢印キーで設定を変更できる。しかし方向が右左逆である。注意!

あとは問題は画面の呼び出し方法だ。はて。

まずExcelVBAで動作確認から始めてみる。
Appactivate命令で。

AppActivate "Form3", False
これでOK!(LcLightのConfig画面は「Form3」となっているので、これで呼び出す)

でも、このCONFIGウィンドウを起動するのは??? アレッ! これは問題。

ましてや、タスクトレイにあるソフトをウィンドウ表示する方法なんて、知らない!

ややや、試してみたら問題、難関、続出だな。
これでは見込みなさそう。

でも、でも。
では、タスクトレイに入らないようにすれば!(これは設定できそう)
「Start On TaskTray」のチェックを外せば。→これはOK

となれば、CONFIG画面表示までは手動で実施か!
そして時刻になったら「保存間隔」の変更を実施、か。
とりあえずこれでいこう。

−−−−−−
まず部分的に動作の確認から。
AppActivate "Form3", False
の確認。
→半分OK!?!
基本的にOKのようであるのだが、EXCELとの画面の重なりなら呼び出すことは出来るのだが、これが他の画面(IEとかエクスプローラとか)では、この画面呼び出しが機能しないのだ!
ちょっと普通ではないようだ。そのソフトの作りの関係かも知れない。
結局この方法は、▼か×だな。

では次に、ExcelVBAからソフト自体の起動を行い、そのときのタスクIDを使用しての制御ではどうかを試す。
これでも動作は可能だが、状況は上と同じ。

※今わかったことだが、他のウィンドウだと呼び出しが出来ないのではなく、タスクバーのアイコンに何かサインを表示している、状態である。それをクリックしてあげると、当然のことながら、前面に呼び出すことができる。
これはどういうことなのだろう?

わからないが、わからないことばかりになってしまっているが、整理も収拾もつかないかな。
AppActivate "Form3", True
のように、最後のオペランドを「True」にすると、EXCEL自体がアクティブでないと動作しないモードのようで、ではそのEXCEL自身をアクティブにしてあげればいいかなと。

これはどうでもいいことだったかも。
要するに、どちらにしても、AppActivate命令は有効に機能しているはずなのだが、タスクバーの色と点滅でそれを表しているのだが、画面の切り替えまでの動作が行われないのである。
これはどう言った訳なのだろうか?わからない!

(ちょっと休憩)


どうしてだろう?
AppActivateで画面の呼び出しは難なく出来ていたのだが、これまでの他の処理で。
わからなくなってしまう。
Excelのアクティブ状態ではちゃんと動作する。
Excelをアクティブにすればとやってみたのだが、これもタスクバーの点滅となってしまう。
ネットでみると同じ状況はあるのだが、大体EXCELを先にアクティブにすることで解決しているようだが。