2024年の投稿[199件](3ページ目)
2024年11月 この範囲を時系列順で読む この範囲をファイルに出力する
ArtNet-Patch で共有メモリの mmap を使うために セマフォ を勉強しています。mmap へのアクセスを排他的にするためです。
ただ、プロセス間のセマフォを使うような人は上級者が多いのか解説ページを見てもわかりにくい。
POSIX系のセマフォは物凄くシンプルな感じがしますが、とどのつまりがわからない。
man もわかっている人向けなのか引数の記述があるだけ。
もっと勉強です。
追記
なんて愚痴っていたらよい記事がありました。
開始が sem_init だったり sem_open だったりするけど、同じことみたいですからヘッダファイルのプロトタイプ記述を読めば良さそう。
「sem_overview - POSIX セマフォの概要」
「man-pages-ja sem_init(3)」
次の記事は、パーミッションにおける umask のことが主題ですが、セマフォの使い方がよくわかる。シンプルな記述を示してくれるこんな記事が嬉しい。
「sem_openで、Permission denied になる」
わかった気になった。
#[Art-net] #C言語
ただ、プロセス間のセマフォを使うような人は上級者が多いのか解説ページを見てもわかりにくい。
POSIX系のセマフォは物凄くシンプルな感じがしますが、とどのつまりがわからない。
man もわかっている人向けなのか引数の記述があるだけ。
もっと勉強です。
追記
なんて愚痴っていたらよい記事がありました。
開始が sem_init だったり sem_open だったりするけど、同じことみたいですからヘッダファイルのプロトタイプ記述を読めば良さそう。
「sem_overview - POSIX セマフォの概要」
「man-pages-ja sem_init(3)」
次の記事は、パーミッションにおける umask のことが主題ですが、セマフォの使い方がよくわかる。シンプルな記述を示してくれるこんな記事が嬉しい。
「sem_openで、Permission denied になる」
わかった気になった。
#[Art-net] #C言語
少し時間が空いたので ArtNet-Patch を考えていました。
部分はなんとなく出来ているので、全体の構造をどうするか。
まずプロセスを分けます。シングルプロセスではたぶんダメ。画面やキーボード操作を親プロセスにし、Art-Net の受信、パッチ処理、送信などを子プロセスとしようかと。子プロセスはタイムアウトする様にし、親プロセスからのリフレッシュが一定時間無ければ自動的に閉じることにします。こうしておけば親プロセスが飛んでも子プロセスがゾンビにならずいいかなと。操作が飛んでも Art-Net は生きている方がいいとする考え方もありますが、タイムアウト処理をコメントにすればそうなります。少なくとも開発中はタイムアウトした方がいいでしょう。
プロセス間は mmap や Pipe で繋ぎます。データには mmap を用い、コマンドには Pipe を用いるイメージです。
子プロセスの Art-Net 処理をイメージしながら表示画面やキーボード操作を考えてみましょう。
#[Art-net] #C言語
部分はなんとなく出来ているので、全体の構造をどうするか。
まずプロセスを分けます。シングルプロセスではたぶんダメ。画面やキーボード操作を親プロセスにし、Art-Net の受信、パッチ処理、送信などを子プロセスとしようかと。子プロセスはタイムアウトする様にし、親プロセスからのリフレッシュが一定時間無ければ自動的に閉じることにします。こうしておけば親プロセスが飛んでも子プロセスがゾンビにならずいいかなと。操作が飛んでも Art-Net は生きている方がいいとする考え方もありますが、タイムアウト処理をコメントにすればそうなります。少なくとも開発中はタイムアウトした方がいいでしょう。
プロセス間は mmap や Pipe で繋ぎます。データには mmap を用い、コマンドには Pipe を用いるイメージです。
子プロセスの Art-Net 処理をイメージしながら表示画面やキーボード操作を考えてみましょう。
#[Art-net] #C言語
PegasysG10 の修理・改造は先が見えてきました。
以前おかしな症状があったのは私のミスが原因でしたが、RS485のトランシーバーICを LT1785 にしたことで動作がとても安定しています。
まだまだ手を付けなければならない機体は多いですが、手順が決まれば無心で頑張るだけです。
さて、そんな PegasysG10 ですが、更に手を加えました。
お寺さんの本堂の大屋根を染める依頼があるのですが、仕込める位置から大屋根は30~50mあります。出力というより狭角なスポットライトが必要です。
ソースフォーのカラーミックスを使えたらいいのですが屋外に置くことは不可能に近い。かといって、全天候のLED-PARで狭角なモノは皆無。
ならば、PegasysG10 のレンズを狭角なモノに換えてしまえと。
以前、公称半減角5度のレンズを100個試し買いしたことがあります。ホットスポットは確かに5度くらいですが、ハレーションが酷すぎるし10m未満ですと出目がマーブルになってしまいます。ビームライトにならないなら使い物にならないとデッドストックになっていたのですが、改めて試したところ20m以上なら色が混ざり、ホットスポットもシッカリ見えます。ハレーションが酷すぎてステージのライトととしては使えませんが、投射距離が20~50mのライトアップには使えそう。ハレーションはハットを作れば軽減出来ます。
問題は同じレンズが手に入らないこと。中華電機で買いましたが、扱っていたショップが消えてました。他のショップに似たようなレンズはありますが、中華電機では使う側が必要とするスペックを書いていないことが多く、お試し買いをする時間もありませんので、今回は手持ちの100個の範囲でやりましょう。
#器具の修理 #照明器具
以前おかしな症状があったのは私のミスが原因でしたが、RS485のトランシーバーICを LT1785 にしたことで動作がとても安定しています。
まだまだ手を付けなければならない機体は多いですが、手順が決まれば無心で頑張るだけです。
さて、そんな PegasysG10 ですが、更に手を加えました。
お寺さんの本堂の大屋根を染める依頼があるのですが、仕込める位置から大屋根は30~50mあります。出力というより狭角なスポットライトが必要です。
ソースフォーのカラーミックスを使えたらいいのですが屋外に置くことは不可能に近い。かといって、全天候のLED-PARで狭角なモノは皆無。
ならば、PegasysG10 のレンズを狭角なモノに換えてしまえと。
以前、公称半減角5度のレンズを100個試し買いしたことがあります。ホットスポットは確かに5度くらいですが、ハレーションが酷すぎるし10m未満ですと出目がマーブルになってしまいます。ビームライトにならないなら使い物にならないとデッドストックになっていたのですが、改めて試したところ20m以上なら色が混ざり、ホットスポットもシッカリ見えます。ハレーションが酷すぎてステージのライトととしては使えませんが、投射距離が20~50mのライトアップには使えそう。ハレーションはハットを作れば軽減出来ます。
問題は同じレンズが手に入らないこと。中華電機で買いましたが、扱っていたショップが消えてました。他のショップに似たようなレンズはありますが、中華電機では使う側が必要とするスペックを書いていないことが多く、お試し買いをする時間もありませんので、今回は手持ちの100個の範囲でやりましょう。
#器具の修理 #照明器具
ncurses はウィンドウも定義出来ます。
今時のウィンドウとは違い、画面の中に子領域を作るイメージです。この領域内で文字位置が指定出来ます。子領域の左上を文字位置の 0,0 として扱えます。
ダイアログウィンドウを描くことも出来ますし、画面の区分けにも使えます。
今ネタになっている ArtNet-Patch では、すべてのレイアウトに共通する要素をメイン画面に描き、機能ごとの要素をウィンドウにして描こうかなと。表示位置のオフセット管理が楽になりますし、複数のレイアウトで共通する要素は使いまわしがしやすくなります。
ncurses はキー入力も受け取れますので、ユーザーの相手にする部分は ncurses で全て作れそうです。
後は string の使い方を頭に刷り込めば画面は作れるかなと。C言語の欠点は文字列の扱い難さですが、文字列は char の配列であることを頭に染み込ませてから string を勉強しなおしましょう。
アホかと思うくらいC言語について検索してきたので、これまで ncurses を知らなかったのは何故だろう。
#[Art-net] #C言語
今時のウィンドウとは違い、画面の中に子領域を作るイメージです。この領域内で文字位置が指定出来ます。子領域の左上を文字位置の 0,0 として扱えます。
ダイアログウィンドウを描くことも出来ますし、画面の区分けにも使えます。
今ネタになっている ArtNet-Patch では、すべてのレイアウトに共通する要素をメイン画面に描き、機能ごとの要素をウィンドウにして描こうかなと。表示位置のオフセット管理が楽になりますし、複数のレイアウトで共通する要素は使いまわしがしやすくなります。
ncurses はキー入力も受け取れますので、ユーザーの相手にする部分は ncurses で全て作れそうです。
後は string の使い方を頭に刷り込めば画面は作れるかなと。C言語の欠点は文字列の扱い難さですが、文字列は char の配列であることを頭に染み込ませてから string を勉強しなおしましょう。
アホかと思うくらいC言語について検索してきたので、これまで ncurses を知らなかったのは何故だろう。
#[Art-net] #C言語
C言語のライブラリである ncurses を勉強しています。ANSIエスケープシーケンスを簡単に使える様にしたライブラリです。
コマンドで全て描画するので今時の画面作りツールに比べたら面倒ですが、ANSIエスケープシーケンスを直接触ると思えば超簡単。歴史の長いライブラリのためか、奇妙な変化球がなくシンプルなのが私好み。
x-windowベースのグラフィカルな画面にしてもいいのですが、リソースの節約をしたいし、あえてレガシーな風味がいいかなと思っております。
Art-Netを受信して処理して送信する機能は一応出来ているので、まずは画面作りのお勉強をしましょう。データのモニターが出来ないと見えない部分の動作のチェックもし難いですしね。
#[Art-net] #C言語
コマンドで全て描画するので今時の画面作りツールに比べたら面倒ですが、ANSIエスケープシーケンスを直接触ると思えば超簡単。歴史の長いライブラリのためか、奇妙な変化球がなくシンプルなのが私好み。
x-windowベースのグラフィカルな画面にしてもいいのですが、リソースの節約をしたいし、あえてレガシーな風味がいいかなと思っております。
Art-Netを受信して処理して送信する機能は一応出来ているので、まずは画面作りのお勉強をしましょう。データのモニターが出来ないと見えない部分の動作のチェックもし難いですしね。
#[Art-net] #C言語
「TourZCAM/ETZ(初代)」を使っています。
かなり初期の LED-PAR です。明るさはボチボチですが全天候で消費電力が少ないので電源事情が厳しいライトアップで重宝しています。明るければイイとは限らないと思ったり。
購入して年数が経っていますので正常に動作しない機体も出ています。この製品は電源基板がNGになることがあり、部品交換で修理をするワケですが、メニュー画面もキー操作も正常なのに点灯しない機体を2台発見。開腹してチェックするも不良が見えない。基板がお亡くなりになったかと思いましたが、マニュアルを読み直したところ「RESET」メニューがある。工場出荷状態に戻す機能のようですが、ダメ元で試したところ2台とも復活してしまいました。
点灯しないモードに入ってしまった理由は不明ですが、サーマル・プロテクト(過熱保護)に入ると手動リセットしないといけないのかもしれません。
「不調ならまずリセットせい!」ってことにしました。
とりあえず全台復活です。
#器具の修理
かなり初期の LED-PAR です。明るさはボチボチですが全天候で消費電力が少ないので電源事情が厳しいライトアップで重宝しています。明るければイイとは限らないと思ったり。
購入して年数が経っていますので正常に動作しない機体も出ています。この製品は電源基板がNGになることがあり、部品交換で修理をするワケですが、メニュー画面もキー操作も正常なのに点灯しない機体を2台発見。開腹してチェックするも不良が見えない。基板がお亡くなりになったかと思いましたが、マニュアルを読み直したところ「RESET」メニューがある。工場出荷状態に戻す機能のようですが、ダメ元で試したところ2台とも復活してしまいました。
点灯しないモードに入ってしまった理由は不明ですが、サーマル・プロテクト(過熱保護)に入ると手動リセットしないといけないのかもしれません。
「不調ならまずリセットせい!」ってことにしました。
とりあえず全台復活です。
#器具の修理
こんなん欲しいなぁ~と思っていた RaspberryPiCM4 用のマザーボードを発見!

中華電機のサイト
EtherNet が2系統、RTC、電源入力がUSB-Cでなく裏側にある、etc.
PCI-Ex1 もあれば満点ですが、USB-3.0 が3系統あるので十分です。
これが入荷したら ArtNet-Patch の開発を再開しようかと。晩酌の肴ですけどね。
画面作りに ncurses を使えばと思っていましたが、ふと思いついて調べ直したらこれは便利。ネットにも man にもわかり易く整理された情報がないので、お試ししながらオレオレマニュアルを作成して本体ページにアップしましょう。自分の為にですけどね。
最近、RaspberryPi の価格も下がってきました。CM4 が 中華電機で1万円せずに買えます。
#RaspberryPi #C言語 #[Art-Net]

中華電機のサイト
EtherNet が2系統、RTC、電源入力がUSB-Cでなく裏側にある、etc.
PCI-Ex1 もあれば満点ですが、USB-3.0 が3系統あるので十分です。
これが入荷したら ArtNet-Patch の開発を再開しようかと。晩酌の肴ですけどね。
画面作りに ncurses を使えばと思っていましたが、ふと思いついて調べ直したらこれは便利。ネットにも man にもわかり易く整理された情報がないので、お試ししながらオレオレマニュアルを作成して本体ページにアップしましょう。自分の為にですけどね。
最近、RaspberryPi の価格も下がってきました。CM4 が 中華電機で1万円せずに買えます。
#RaspberryPi #C言語 #[Art-Net]
客席テーブルの天板を延長するための接着剤を考えていました。
屋内使用がメインだと想定していますが、屋外で使うなと言っても使う奴はいるでしょう。接着剤は耐水性を選ぶべきかと。
となれば我らの味方「スーパーX」でしょうか。
木ボンドとは接着の仕組みが違いますが、素材と接着面の処理を間違わなければ強力に接着され、硬化した後は弾性特性を持った耐水性です。自分は異種接着や、耐水目地止めと接着を兼ねたい場合にコレです。
塗装に水性のウレタン・ニスを使えばスーパXを犯すことはありません。表板の厚みが3mmのために接着面にシンナーが届いてしまう可能性があって考えていましたが、ベストはわからないけど、スーパーXでダメってことは無かろうと割り切ったところです。
#ガチ工作
屋内使用がメインだと想定していますが、屋外で使うなと言っても使う奴はいるでしょう。接着剤は耐水性を選ぶべきかと。
となれば我らの味方「スーパーX」でしょうか。
木ボンドとは接着の仕組みが違いますが、素材と接着面の処理を間違わなければ強力に接着され、硬化した後は弾性特性を持った耐水性です。自分は異種接着や、耐水目地止めと接着を兼ねたい場合にコレです。
塗装に水性のウレタン・ニスを使えばスーパXを犯すことはありません。表板の厚みが3mmのために接着面にシンナーが届いてしまう可能性があって考えていましたが、ベストはわからないけど、スーパーXでダメってことは無かろうと割り切ったところです。
#ガチ工作
持ち歩きパソコンがおかしい。
ストレージのアクセスが100%に張り付いたまま。動作が遅くて使いモノにならない。
管理者権限のコマンドプロンプトで次を実行。
> chkdsk c: /f /r
1回目の実行である程度改善したもののまだおかしい。
改善したってことはセクターエラーが起こっているのでしょう。
念のため2回目を実行中。あと2時間くらいかな?
改善しないようなら早めにSSDを交換しましょう。
#パソコン
ストレージのアクセスが100%に張り付いたまま。動作が遅くて使いモノにならない。
管理者権限のコマンドプロンプトで次を実行。
> chkdsk c: /f /r
1回目の実行である程度改善したもののまだおかしい。
改善したってことはセクターエラーが起こっているのでしょう。
念のため2回目を実行中。あと2時間くらいかな?
改善しないようなら早めにSSDを交換しましょう。
#パソコン
客席テーブルは懸念事項がクリアできたので治具を作っていきます。
仕上がりで一番大事なのはテーブル面の平滑さです。繋がりに僅かな段差があっても使い心地が悪いからです。延長部はニス仕上げにしようと思っていますので0.1~0.2mmくらい低くして塗膜で調整するつもりです。ニスはワシンの油性1液ウレタンにするか水性ウレタンにするか思案中です。木ボンドに悪さをしないのはどちら?ってのがポイントです。
なんでかんで、ワシンのニスは素晴らしいのです。
#ガチ工作
仕上がりで一番大事なのはテーブル面の平滑さです。繋がりに僅かな段差があっても使い心地が悪いからです。延長部はニス仕上げにしようと思っていますので0.1~0.2mmくらい低くして塗膜で調整するつもりです。ニスはワシンの油性1液ウレタンにするか水性ウレタンにするか思案中です。木ボンドに悪さをしないのはどちら?ってのがポイントです。
なんでかんで、ワシンのニスは素晴らしいのです。
#ガチ工作