Saturday, 22 February 2020

TreeVNC on Wifi 動いた


なんと一年かかったよ〜 いや、実働2ヶ月か。Wifi 上のMulticastで画面を zlib で圧縮して配信します。

ただ、Root が Core i5 だと辛いっぽいな。Core i7 ならノートPCで問題なく動く。まだ、いろいろバグって言うか変なところがあるけど。

どうかなと思ってたけど、こんなにばっちり動くとは。

4MByteくらいの画面を圧縮しながら64kbyteずつに blocking しながら送るわけですが、zlib が垂れ流し仕様。結局、margin 取ってやる方式で。

ところが、Blocking のバグが取れなくて... 一つは、

  TightVNC が singleton buffer を使っていた

いや、それはちょっと無理だから。5年くらい前にもやろうとしたんですが、その時はPCの能力が低すぎた。

で、Blocking の様子を Perl/Tk で視覚化してやって、ようやっと様子がわかった。64x64 のtile単位で処理して、それをつなげて Block にする。

それが重なったり、はみ出たりしたらアウト。で、ばっちり重なってる。でも、

  視覚化はどこがバグかは教えくれない

でも、視覚化楽しいのでモチベが上がるし、視覚化の情報を取るのにコードが整理されたりする利点があるみたい。

バグはいつものように簡単なバグで書込幅のresetを忘れてたとかそんなのでしたが。

いやでも、Perl/Tk ってのはなぁ。golang の fyne も悪くはないんだが、やっぱり、なれてるものがな。

No comments: