2023年1月17日の投稿[2件]
Art-Netを受信する準備を進めています。
思った以上に面倒だったのはデータの比較です。受信値と期待値を比較して処理を分岐する処理は重要です。文字列ならstrcmp、バイナリならmemcmpを使います。どちらもstring.hの関数です。
どちらにしてもバイナリな感覚を持ち合わせていないと使えませんが、アセンブラに慣れた体にとって違和感はありませんし、ある意味とても明確な処理になるので悪い気はしません。Pythonが如何に簡単に書けるかを感じたりはしましたけどね。
あとはエンディアンの処理です。RaspberryPiはARM系なのでリトルエンディアンです。受信したArt-Netを仕分けて情報にするには2-4バイトのバイナリを数値化しないといけませんが、エンディアンを気にしながらバイナリを並べて処理します。並べたバイナリを数値化するにはカッコとアンパサンドを使った不思議な記述をしますが、理解不能なので定型句と思って使っています。
こんな底辺処理が整理出来たら受信テストですが、これらを先にやっておかないと受信値を人が読める形で表示することが出来ないのです。
#[Art-Net] #C言語
思った以上に面倒だったのはデータの比較です。受信値と期待値を比較して処理を分岐する処理は重要です。文字列ならstrcmp、バイナリならmemcmpを使います。どちらもstring.hの関数です。
どちらにしてもバイナリな感覚を持ち合わせていないと使えませんが、アセンブラに慣れた体にとって違和感はありませんし、ある意味とても明確な処理になるので悪い気はしません。Pythonが如何に簡単に書けるかを感じたりはしましたけどね。
あとはエンディアンの処理です。RaspberryPiはARM系なのでリトルエンディアンです。受信したArt-Netを仕分けて情報にするには2-4バイトのバイナリを数値化しないといけませんが、エンディアンを気にしながらバイナリを並べて処理します。並べたバイナリを数値化するにはカッコとアンパサンドを使った不思議な記述をしますが、理解不能なので定型句と思って使っています。
こんな底辺処理が整理出来たら受信テストですが、これらを先にやっておかないと受信値を人が読める形で表示することが出来ないのです。
#[Art-Net] #C言語
RaspberryPiをアップデートしたらネットワーク関連が動かなくなった。
起動パレードを見ると「Failed to start DHCP Client Daemon.」と出る。
このサイトの通り手直ししたら治った。
抜粋すると次の通り。
$ sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
Change from:
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
To:
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpcd -q -w
wait.confを訂正するってことです。
#RaspberryPi
起動パレードを見ると「Failed to start DHCP Client Daemon.」と出る。
このサイトの通り手直ししたら治った。
抜粋すると次の通り。
$ sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
Change from:
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
To:
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpcd -q -w
wait.confを訂正するってことです。
#RaspberryPi