2022年2月 この範囲を時系列順で読む この範囲をファイルに出力する
仮ですが、コマンド入力を作りました。
今回は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枚ですから、そう簡単には終わらない。
今日はここまで。
日中は切った貼った。
陽が暮れたらソースコードを書き書き。
アホですわ(笑
#ガチ工作
ANSIエスケープシーケンスを組んでて思ったのですが、大昔のN-BASICみたいだなと。書式こそ違いますが、COLOR命令やLOCATE命令を思い出す風味です。N-BASICリアル世代。
ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。
#RaspberryPi
ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。
#RaspberryPi
またしても現場にて長い待ち時間。
DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。
#[RaspberryPi] #[Python]
DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。
#[RaspberryPi] #[Python]
2つ目のNICも動作OKと思われます。
将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。
#[RaspberryPi]
将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。
#[RaspberryPi]
現場での長い待ち時間でArt-Netのアドレスを自動設定するスクリプトを書いてみました。動作確認は自宅でないと出来ませんが、設定ファイルには適切に書き込みがされていると思います。OEMコードは聞き馴染みがないメーカーさんのを拝借してテストを進めます。
RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。
追記
自宅で動作試験とバグ取り。問題なし。
Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。
#[RaspberryPi]
RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。
追記
自宅で動作試験とバグ取り。問題なし。
Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。
#[RaspberryPi]
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