2022年2月 この範囲を時系列順で読む この範囲をファイルに出力する
オレメモです。
socket受信の待ち受けで処理が一時停止するなら、threading用いた並列処理でsocket受信を実行し、メイン側へはqueueを使って通信する。
socketから受信したデータはqueue.putでメイン側に送る。block=True,time_out=Noneとし、block要因はメイン側での取り出し作業だけなので終了を待つ。
メイン側はqueue.getをtry:配下で実行する。block=Falseとし、queueにデータがあれば取り出し、データが無いかsocket受信側がアクセス中でデータが取り出せないと例外:Emptyになるのでtry:でスルーする。
queueでやりとりするデータはintのNet,SubNet,Universeとレベルデータのnumpy.arrayをタプルにした物とする。タプルに入れ込んだnumpy.arrayをqueueで扱えるかは今後の実験で確認する。
受信したArt-NetのUniverseが対象かどうかはメイン側で判別する。
これならsocketの受信待ちで全体を止めることなく動かせる、といいな。
#Python
socket受信の待ち受けで処理が一時停止するなら、threading用いた並列処理でsocket受信を実行し、メイン側へはqueueを使って通信する。
socketから受信したデータはqueue.putでメイン側に送る。block=True,time_out=Noneとし、block要因はメイン側での取り出し作業だけなので終了を待つ。
メイン側はqueue.getをtry:配下で実行する。block=Falseとし、queueにデータがあれば取り出し、データが無いかsocket受信側がアクセス中でデータが取り出せないと例外:Emptyになるのでtry:でスルーする。
queueでやりとりするデータはintのNet,SubNet,Universeとレベルデータのnumpy.arrayをタプルにした物とする。タプルに入れ込んだnumpy.arrayをqueueで扱えるかは今後の実験で確認する。
受信したArt-NetのUniverseが対象かどうかはメイン側で判別する。
これならsocketの受信待ちで全体を止めることなく動かせる、といいな。
#Python
客席テーブルに塗布したポリエステル樹脂は硬化していました。一安心。
ただ、アセトンが抜けるのに時間がかかりそうです。急がず焦らず今日は手を付けず、1日なのか2日なのか、アセトンが抜けたのを確認出来てから2層目にかかりましょう。
2層目は濃い目で肉付けをします。原液ままでは硬いのでアセトンを入れて少し柔らかくするつもりですが、塗り伸ばせる範囲で固めが望みです。熟練者なら室温で判断がつくのでしょうけど。
3層目は顔料を入れて色付けです。
単に1層目だからかもしれませんが、アセトンを多めに入れると硬化した表面が半艶になるようです。顔料を入れた3層目がツヤツヤ過ぎるなら、トップコートを兼ねてサラサラを塗ってみましょう。
小学生の頃、シンナーで溶かした発砲スチロールで紙を固められないか?と実験したのを思い出しました。
表面が固まっても中が固まらなくてガッカリした思い出ですけど、約半世紀後もやってることに大差がない。「三つ子の魂百まで」という格言がありますがその通りかもしれません。
ひょっとすると、発砲スチロールはアセトンで溶けるので、ポリエステル樹脂を半艶にする添加剤代わりになるかもしれません。ポリエステル樹脂は不純物を入れると艶が落ちるような気がするのです。
#ガチ工作
ただ、アセトンが抜けるのに時間がかかりそうです。急がず焦らず今日は手を付けず、1日なのか2日なのか、アセトンが抜けたのを確認出来てから2層目にかかりましょう。
2層目は濃い目で肉付けをします。原液ままでは硬いのでアセトンを入れて少し柔らかくするつもりですが、塗り伸ばせる範囲で固めが望みです。熟練者なら室温で判断がつくのでしょうけど。
3層目は顔料を入れて色付けです。
単に1層目だからかもしれませんが、アセトンを多めに入れると硬化した表面が半艶になるようです。顔料を入れた3層目がツヤツヤ過ぎるなら、トップコートを兼ねてサラサラを塗ってみましょう。
小学生の頃、シンナーで溶かした発砲スチロールで紙を固められないか?と実験したのを思い出しました。
表面が固まっても中が固まらなくてガッカリした思い出ですけど、約半世紀後もやってることに大差がない。「三つ子の魂百まで」という格言がありますがその通りかもしれません。
ひょっとすると、発砲スチロールはアセトンで溶けるので、ポリエステル樹脂を半艶にする添加剤代わりになるかもしれません。ポリエステル樹脂は不純物を入れると艶が落ちるような気がするのです。
#ガチ工作
socketの送受信は簡単ですが、受信は待ち受けになり、タイムアウトはあるものの、有効な受信があるまで全体の動作が一時停止になります。待ち受けをしながら他の処理を止めずに動かす方法の確立が当面の課題になります。
ネットを探すとそれらしい方法がいくつかあります。たぶんこの中に望んでいる方法があるのだと思いますが、それがどれかをこれから検討するワケです。
#Python
ネットを探すとそれらしい方法がいくつかあります。たぶんこの中に望んでいる方法があるのだと思いますが、それがどれかをこれから検討するワケです。
#Python
今週来週はコロナ騒動で現場が飛びまくり、急ぎの要件はありませんので工作を徹底的に進めます。
客席テーブルが現場から帰ってきたので天板表面の再塗装です。
先日も書きましたが、問題はウレタン塗料の柔らかさです。私の施工が間違っていたのかもしれませんが、ゴム脚の当たっていたところが凹んでしまったのです。硬さを増さないといけません。オービタルサンダーで前の塗装を削り落とし、FRPで使うポリウレタン樹脂を塗ります。
一層目は表面に塗るというよりポリウレタン樹脂を木の繊維に染み込ませるイメージです。気温が低いので硬化剤を重量比1.2%(夏季の2.0倍強)加え、アセトンを重量比40%加えてシャバシャバというかサラサラにし、塗ったというより濡らした感じにしています。
アセトンの量は変質しないギリギリかと思います。硬化しなかったら笑うしかありませんが、モノ作りの神様に見放されないことを祈りつつジックリ取り組みましょう。
#ガチ工作
客席テーブルが現場から帰ってきたので天板表面の再塗装です。
先日も書きましたが、問題はウレタン塗料の柔らかさです。私の施工が間違っていたのかもしれませんが、ゴム脚の当たっていたところが凹んでしまったのです。硬さを増さないといけません。オービタルサンダーで前の塗装を削り落とし、FRPで使うポリウレタン樹脂を塗ります。
一層目は表面に塗るというよりポリウレタン樹脂を木の繊維に染み込ませるイメージです。気温が低いので硬化剤を重量比1.2%(夏季の2.0倍強)加え、アセトンを重量比40%加えてシャバシャバというかサラサラにし、塗ったというより濡らした感じにしています。
アセトンの量は変質しないギリギリかと思います。硬化しなかったら笑うしかありませんが、モノ作りの神様に見放されないことを祈りつつジックリ取り組みましょう。
#ガチ工作
仮ですが、コマンド入力を作りました。
今回はArt-Netの受信データを表示することが目的なので、対象ユニバースを指示するだけの[ニーモニック-数値]のシンプルな物にしました。
Net,Subnet,Universeなどのニーモニックを[N][S][U]のキーで呼び出し、数値を打って[Enter]で確定です。それぞれのコマンドには設定数値の範囲がありますので、範囲外であればエラーというか「このコマンドの数値範囲はこうだよん」と表示する様にもしています。
#RaspberryPi #Python
今回はArt-Netの受信データを表示することが目的なので、対象ユニバースを指示するだけの[ニーモニック-数値]のシンプルな物にしました。
Net,Subnet,Universeなどのニーモニックを[N][S][U]のキーで呼び出し、数値を打って[Enter]で確定です。それぞれのコマンドには設定数値の範囲がありますので、範囲外であればエラーというか「このコマンドの数値範囲はこうだよん」と表示する様にもしています。
#RaspberryPi #Python
ANSIエスケープシーケンスは何とかモノになりました。
画面の試作段階ですから受信データを表示することは出来ませんので、仮のnumpy.arrayを加算し続ける処理で動きを確認しています。インクリメントした値の256の剰余(割った余り)です。
チラつくことなく求める動作をしていますし、画面処理の負荷は(topにて)7%くらい。いいんでないか?
ちなみにpi4のCPUは4coreなので、topコマンドでの最大値は400%です。
この後はArt-Netの受信とキー操作です。
Art-Netはsocket通信で受信したパケット(バイナリ)を適切に変換してデータ化するだけです。通信の難しいことはライブラリがやってくれるので、たぶん、それ程難しくはないと思います。
キー入力は最終的なコマンド実行までどう持っていくかです。様々な手順が考えられますが、どうやるのがいいかよく考えてみましょう。
#RaspberryPi #Python
画面の試作段階ですから受信データを表示することは出来ませんので、仮のnumpy.arrayを加算し続ける処理で動きを確認しています。インクリメントした値の256の剰余(割った余り)です。
チラつくことなく求める動作をしていますし、画面処理の負荷は(topにて)7%くらい。いいんでないか?
ちなみにpi4のCPUは4coreなので、topコマンドでの最大値は400%です。
この後はArt-Netの受信とキー操作です。
Art-Netはsocket通信で受信したパケット(バイナリ)を適切に変換してデータ化するだけです。通信の難しいことはライブラリがやってくれるので、たぶん、それ程難しくはないと思います。
キー入力は最終的なコマンド実行までどう持っていくかです。様々な手順が考えられますが、どうやるのがいいかよく考えてみましょう。
#RaspberryPi #Python
ANSIエスケープシーケンスのチラつきの原因がわかりました。
行削除です。コードは'\033[2K'。
上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
いやはや。
#RaspberryPi #Python
行削除です。コードは'\033[2K'。
上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
いやはや。
#RaspberryPi #Python
ANSIエスケープシーケンスですが、RaspberryPi上のPythonでは期待する動画が出来ないかもしれません。形にはなるのですがチラつきます。
開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
細かいことはともかく、これではダメです。
動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
基本的な動作だけに余裕を持って動いてくれないと困ります。
RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。
#RaspberryPi #Python
開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
細かいことはともかく、これではダメです。
動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
基本的な動作だけに余裕を持って動いてくれないと困ります。
RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。
#RaspberryPi #Python
ANSIエスケープシーケンスを研究中ですが表示がおかしい。
コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
さて・・・
どうやらバッファの挙動によるものでした。
printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。
単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。
pythonのprintですと、
print('表示したい文字列', end='')
とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。
print('表示したい文字列', end='', flush=True)
最後に flush=True を加えるのです。
こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。
自由度が広がりました。
#Python
コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
さて・・・
どうやらバッファの挙動によるものでした。
printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。
単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。
pythonのprintですと、
print('表示したい文字列', end='')
とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。
print('表示したい文字列', end='', flush=True)
最後に flush=True を加えるのです。
こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。
自由度が広がりました。
#Python
LED-BARのケースで使う受けを作っています。
3x6の合板を2枚使い切りの切り出し。
接着中で写真に入っていないのもありますが、切っても切っても終わらない。

上に乗っているようなのを12個作ります。
一見少なく感じますが、この量で合板1枚分。
切ってはバリ取り、切ってはバリ取りの繰り返し。
小さい短冊でも60枚ですから、そう簡単には終わらない。
今日はここまで。
日中は切った貼った。
陽が暮れたらソースコードを書き書き。
アホですわ(笑
#ガチ工作
3x6の合板を2枚使い切りの切り出し。
接着中で写真に入っていないのもありますが、切っても切っても終わらない。

上に乗っているようなのを12個作ります。
一見少なく感じますが、この量で合板1枚分。
切ってはバリ取り、切ってはバリ取りの繰り返し。
小さい短冊でも60枚ですから、そう簡単には終わらない。
今日はここまで。
日中は切った貼った。
陽が暮れたらソースコードを書き書き。
アホですわ(笑
#ガチ工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131