tcl/tkは楽しい

今日も良い天気。空が青い。朝から tcl/tkの imageコマンドを試す。Tcl/tkは楽しい。jpegファイルを見るにはimgをつかえばいいのかな?Tk-8.3に対応しているか、ちょっと心配。自分で作ってもいいんだけどね。

帰宅後 imgをインストール。ちゃんと tk-8.3にも対応していて、スムーズにインストールできた。あと tcllibなどもインストールし、trevaの画像をhttp経由で更新するプログラムの tcl/tk版完成。わずか19行。 tcl/tkはいいねぇ。

画像監視プログラム:watch.tcl


package require Imgpackage 
require http 2.4
package require base64
image create photo img1 label .img -image img1 -bd 2
button .exit -text exit -command exit
pack .img .exit -fill x
set t 0
proc reload {} {
global tset token [::http::geturl http://192.168.0.206/cgi-bin/trejpg.cgi]
set data [base64::encode [::http::data $token]]
::http::cleanup $token
img1 put $data -format jpeg
.exit configure -text [expr $t?{exit -*-}:{exit -w-}]
set t [expr !$t]after 100 reload}
reload 

watch.tclの画面動作中の画面。RedHat7.2 on vmwareのfvwm2上で、 NoTitleとNoHandleを指定している。この画面が更新しつづけられるわけだが、実際の動きと比べると1秒ぐらい遅れている。これは、cgiプログラムが呼び出されてから trevaの画像を読み込んでいるので仕方ない。現状では画像読み込みにCPUパワーを消費するので、常時読み込みを行う気にはならない。将来的には、FPGA等で 常時読み込めるようにしたい。

しかし、tcl/tkでこれだけ簡単に 画像やhttpを扱えると、いろいろ応用が効きそうだ。


Leave a Reply

メールアドレスが公開されることはありません。