🗐 電装工芸日記 - 舞台照明機器の製作とか -

今年は開発案件を進めたい

or 管理画面へ

2022年2月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 ANSIエスケープシーケンスは何とかモノになりました。
 画面の試作段階ですから受信データを表示することは出来ませんので、仮のnumpy.arrayを加算し続ける処理で動きを確認しています。インクリメントした値の256の剰余(割った余り)です。
 チラつくことなく求める動作をしていますし、画面処理の負荷は(topにて)7%くらい。いいんでないか?
 ちなみにpi4のCPUは4coreなので、topコマンドでの最大値は400%です。

 この後はArt-Netの受信とキー操作です。

 Art-Netはsocket通信で受信したパケット(バイナリ)を適切に変換してデータ化するだけです。通信の難しいことはライブラリがやってくれるので、たぶん、それ程難しくはないと思います。
 キー入力は最終的なコマンド実行までどう持っていくかです。様々な手順が考えられますが、どうやるのがいいかよく考えてみましょう。

#RaspberryPi #Python
Icon of admin
 ANSIエスケープシーケンスのチラつきの原因がわかりました。
 行削除です。コードは'\033[2K'。
 上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
 いやはや。

#RaspberryPi #Python
Icon of admin
 ANSIエスケープシーケンスですが、RaspberryPi上のPythonでは期待する動画が出来ないかもしれません。形にはなるのですがチラつきます。
 開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
 細かいことはともかく、これではダメです。

 動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
 基本的な動作だけに余裕を持って動いてくれないと困ります。

 RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。

#RaspberryPi #Python
Icon of admin
 ANSIエスケープシーケンスを研究中ですが表示がおかしい。
 コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
 さて・・・

 どうやらバッファの挙動によるものでした。
 printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。

 単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。

 pythonのprintですと、

 print('表示したい文字列', end='')

 とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
 表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。

 print('表示したい文字列', end='', flush=True)

 最後に flush=True を加えるのです。
 こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。

 自由度が広がりました。

#Python
Icon of admin
 LED-BARのケースで使う受けを作っています。
 3x6の合板を2枚使い切りの切り出し。
 接着中で写真に入っていないのもありますが、切っても切っても終わらない。

20220204204537-admin.jpg

 上に乗っているようなのを12個作ります。

 一見少なく感じますが、この量で合板1枚分。
 切ってはバリ取り、切ってはバリ取りの繰り返し。
 小さい短冊でも60枚ですから、そう簡単には終わらない。
 今日はここまで。

 日中は切った貼った。
 陽が暮れたらソースコードを書き書き。
 アホですわ(笑

#ガチ工作
Icon of admin
 ANSIエスケープシーケンスを組んでて思ったのですが、大昔のN-BASICみたいだなと。書式こそ違いますが、COLOR命令やLOCATE命令を思い出す風味です。N-BASICリアル世代。
 ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。

#RaspberryPi
Icon of admin
 またしても現場にて長い待ち時間。
 DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
 試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。

#[RaspberryPi] #[Python]
Icon of admin
 2つ目のNICも動作OKと思われます。
 将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
 wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
 Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。

#[RaspberryPi]
Icon of admin
 現場での長い待ち時間でArt-Netのアドレスを自動設定するスクリプトを書いてみました。動作確認は自宅でないと出来ませんが、設定ファイルには適切に書き込みがされていると思います。OEMコードは聞き馴染みがないメーカーさんのを拝借してテストを進めます。
 RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。

追記
 自宅で動作試験とバグ取り。問題なし。
 Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。

#[RaspberryPi]

2022年1月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 Art-Netを扱うためにはNICのアドレスを設定しなければなりません。
 手計算した値をOSに手打ち設定をしてもいいのですが、どうせなら自動設定にしたい。NICのMACアドレスとArt-NetのOEMコードがわかれば人が判断する要素は無く計算も単純なのですから。
 アプリケーションはPythonで書くつもりですが、OSの自動設定はbashスクリプトで書くのが自分流です。なぜなら、PythonでOS設定を変更すると結局はbashコマンドを発行するのですから同じ事です。なんでもかんでも高級言語を使えばいいってもんでもないんです。
 やることは、MACアドレスを文字列で取得し、必要な部分を切り出し、一部の文字列を数値に変換して計算し、IPアドレス起こしてコマンド文字列を作って実行するだけです。Linux(UNIX)は標準コマンドだけでこういったスクリプトを簡単に作れます。
 わたしはググってコピペするだけですけどね。

#[Art-Net] #[RaspberryPi]

■思ってみた

稲刈りが終わったと思ったら夜のBGMは秋の虫の音です。

編集

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2022年2月
12345
6789101112
13141516171819
20212223242526
2728

■カテゴリ:

■最近の投稿:

最終更新日時:
2025年10月21日(火) 07時10分40秒