<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ タグ「Python」を含む投稿［119件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Sun, 05 Apr 2026 09:59:54 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　FT232RL の Windows ドライバである FTD… ]]></title>
	<description><![CDATA[ 　FT232RL の Windows ドライバである FTD2XX.DLL について解説している本家の資料を読めるようになってきました。<br /><a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">「D2XX Programmer&apos;s Guide」</a><br />　Ｃ言語の勉強をした成果だと思われます。<br /><br />　私が求めているのは FT232RL がすべてのデータを送信しきってアイドル状態にあるかどうかです。<br />　先の getstatus( ) は、パソコン側のドライバにデータが残っているかを得るものらしく違うようです。<br />　私が使わせて頂いている ftd2xx.py は ftd2xx.dll のラッパーですので ftd2xx.dll の解説を読んで ftd2xx.py の本文を読めば何がどうなっているかおおよそ検討はついてきました。<br />　けれど、FT232RL のセッティングや受信状況を読み取る方法はあっても送信状況を読み取る方法が見つかりません。<br /><br />　Open DMX USB の 仕様書を見つけるしかないのかなぁ。<br />　本家の ENTTEC を探しても見当たらないないんですよね・・・。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔475文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=728</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=728</guid>
	<category>tegalog</category>
	<pubDate>Tue, 19 Sep 2023 17:46:47 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　先のテストプログラムでは送信終了を経過時間で見ています。大… ]]></title>
	<description><![CDATA[ 　先のテストプログラムでは送信終了を経過時間で見ています。大丈夫なハズですが、本来ならデータを送りきってバッファが空になったのを確認して送信終了としたい。<br />　データシートを読み直したところ、getstatus( ) で バッファの Queue の残りデータ数と実行中のイベントが読めるらしい。ただ、残りデータ数の意味がパソコン側なのか FT232RL側なのかがわからない。パソコン側なら欲しい情報ではない。イベントの意味も不明。この辺りは試すしかなさそう。<br /><br />追記<br />　getstatus( ) では求める物を得られない様子。戻り値は ( 0, 0, 0 ) だけである。<br />　テストプログラムでは送信を開始してから 23msec 弱の待ち時間で送信が完了しているとしています。理屈では十分なハズですが、送信が終わってアイドル状態なことを確認する方法を見つけたいところです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔394文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=727</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=727</guid>
	<category>tegalog</category>
	<pubDate>Sun, 17 Sep 2023 14:23:29 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　共有メモリを使う場合、読み書きが衝突しないように配慮しなけ… ]]></title>
	<description><![CDATA[ 　共有メモリを使う場合、読み書きが衝突しないように配慮しなければなりません。<br />　今回は情報が一方向ですから比較的簡単ですが、よく考えないとトラブルのもとです。<br />　一番簡単なのは、DMX512 の値の配列の共有メモリと読み書きフラグの共有メモリを使う方法です。読み書きフラグは送り側がセットし受け側がクリアします。送り側はフラグがクリアならば共有メモリに書き込んでフラグをセットし、受け側はフラグがセットしてあれば共有メモリから読み込んでフラグをクリアします。<br />　双方の待ちを考慮しないとといけませんが、送り側が受け側のフェーズ時間の数倍でチェックをすれば遅延は１フレームです。何よりも Queue に比べ処理時間が短く情報の渋滞も起き難いことを優先しましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔346文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=726</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=726</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 19:01:17 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python での Open DMX USB の制御は８時… ]]></title>
	<description><![CDATA[ 　Python での Open DMX USB の制御は８時間経過でも正常に動いている様子。<br />　不定期に一瞬の不整合が起きているとしても確認の方法がありません。とりあえずこんなもんでいいのかな？<br />　この後は Class 化と Thread 化をします。Thread 間通信は Queue ではなく 共有メモリを使いましょう。共有メモリは Tuple を FIFO で使うような便利なことは出来ませんが、今回は数値の配列を一方向で渡すだけですので、速度が期待できる共有メモリがいいでしょう。<br />　下記は Thread ではなく Prosess の例題ですが、共有メモリのさわりが分かりやすい。<br /><a class="url" href="https&#58;//qiita.com/t_okkan/items/4127a87177ed2b2db148" target="_blank" title="https&#58;//qiita.com/t_okkan/items/4127a87177ed2b2db148">「Pythonでプロセス間の値の共有」</a> <br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔331文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=725</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=725</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 12:08:13 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python で Open DMX USB を動かすことに… ]]></title>
	<description><![CDATA[ 　Python で Open DMX USB を動かすことに成功しました。<br />　setbreakon と setbreakoff の挙動は予想の通りでした。<br />　以下がテストソースです。<br />　slot1 と slot512 を 0 から255 までカウントして終了します。<br /><small class="decorationS"><span class="decorationF deco-code">### Open DMX USB test ###<br />import ftd2xx as ftd<br />import time<br /><br />if __name__ == &apos;__main__&apos; &#58;<br />　baudrate = 250000<br />　word_length = 8<br />　stop_bit = 2<br />　parity = 0<br />　purge_tx = 2<br />　try &#58;<br />　　d = ftd.open( 0 )    # Open first FTDI device<br />　　d.setBaudRate( baudrate )<br />　　d.setDataCharacteristics( word_length, stop_bit, parity )<br />　　d.purge( purge_tx )<br />　　channelVals = bytearray( &#91; 0 &#93; * 513 )<br />　　channelVals&#91; 0 &#93; = 0 # start code<br />　　for i in range( 256 ) &#58;<br />　　　try &#58;<br />　　　　channelVals&#91; 1 &#93; = i<br />　　　　channelVals&#91; 512 &#93; = i<br />　　　　channelbytes = bytes( channelVals )<br />　　　　# Send Slot<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　d.write( channelbytes )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 22800000 &#58;<br />　　　　　pass<br />　　　　# Break Time<br />　　　　d.setBreakOn( )<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 192000 &#58;<br />　　　　　pass<br />　　　　# Mark After Break<br />　　　　d.setBreakOff( )<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 12000 &#58;<br />　　　　　pass<br />　　　# Press Ctl+C to Exit<br />　　　except KeyboardInterrupt &#58;<br />　　　　break<br />　　d.close( )<br />　except &#58;<br />　　print( &apos;No Device&apos; )</span></small><br />　time.sleep() は求める精度に足りないので time.perf_counter_ns() を用いています。<br />　0 から 255 のカウントが5.9秒強で終わるので 43fps くらい。ほぼ規格最大値です。<br />　本当にコレでいいのかわからんけど、モヤモヤしてたのがスッキリした。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔1366文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=724</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=724</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 02:47:01 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　オレメモです。 ]]></title>
	<description><![CDATA[ 　オレメモです。<br />　Open DMX USB が期待通りに動かないのは BreakTime が正しく出ていないのが原因かと予想しています。<br />　FTD2xx には setbreakon と setbreakoff がありますのでこれを使うのが肝だと思われますが、これらのコマンドを実行するだけでは求める BreakTime に至らないのだろうと思われます。<br />　違うライブラリを用いたソースコードでは Break を有効化するコマンドが２回と Break 無効化するコマンドが続きで書いてありましたので FTD2xx では Break に関するコマンドを発行すると１バイト分の送信が行われるのかな？と思っていました。２バイト分ですと BreakTime の最小時間と等しいですからね。<br />　検証しないとわかりませんが、setbreakon と setbreakoff は FT232RL の動作モードを変える( setbreakon を実行すると待機状態が L となる / setbreakoff を実行すると待機状態が H に戻る)だけで Break の時間を確保するものではないってのが現在の予想です。テストプログラムでは setbreakon を２回、setbreakoff を１回実行していましたが、setbreakon と setbreakoff の間に空送信か待ち時間を入れてみようと思います。まずは time.sleep( 0.001 ) (Windowsだと15msec前後になる)を差し込むことから始めて setbreakon の状態で空送信をしたらどうなるかです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔705文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=722</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=722</guid>
	<category>tegalog</category>
	<pubDate>Fri, 15 Sep 2023 12:44:25 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「ftd2xx.py」を使って Open DMX USB … ]]></title>
	<description><![CDATA[ 　<a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a>を使って Open DMX USB から DMX512 が出るか試してみました。<br />　うまくいかない・・・。<br />　値は表示されますが、テストプログラムでは値を変化させているのにそれが出ません。Break Time あたりに問題があるように思いますが、オシロスコープかロジアナで信号波形を見ないとわかりません。<br />　波形を見るにはテスト環境を整えないといけませんので空き時間にちょっとお試しってワケにはいきません。しばらくお預けです。<br />　そんでも、値は一応表示されるのであまり遠くないところにいるような気がします。<br /><br />　頑張って読み解くしかない本家の資料<br /><a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">「D2XX Programmer&apos;s Guide」</a><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔327文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=721</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=721</guid>
	<category>tegalog</category>
	<pubDate>Fri, 15 Sep 2023 10:21:09 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「ftd2xx.py」ですが、Open DMX USB を… ]]></title>
	<description><![CDATA[ 　<a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a>ですが、Open DMX USB を認識しました。<br />　テストで使ったのは次のコード<br /><small class="decorationS"><span class="decorationF deco-code">### ftd2xx test ###<br />import ftd2xx as ftd<br /><br />if __name__ == &apos;__main__&apos; &#58;<br />　try &#58;<br />　　d = ftd.open( 0 )    # Open first FTDI device<br />　　d.setDataCharacteristics<br />　　print( d.getDeviceInfo( ) )<br />　　d.close( )<br />　except &#58;<br />　　print( &apos;No Device&apos; )<br />　　exit( )<br /><br />### 実行結果 ###<br />{&apos;type&apos;&#58; 5, &apos;id&apos;&#58; 67330049, &apos;description&apos;&#58; b&apos;FT232R USB UART&apos;, &apos;serial&apos;&#58; b&apos;B000T33S&apos;}</span></small><br />　実行結果は期待値を得ています。「ftd2xx.dll」を通じて FT232RL とやり取りが出来ていると思われますので、Open DMX USB として動かせそうな気がします。<br />　今後は<a class="url" href="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf" target="_blank" title="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf">「ftd2xx.dll」の解説書</a>とソースコード読みながら解明していきましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a><br /> -- Posted by 電装工芸 〔542文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=720</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=720</guid>
	<category>tegalog</category>
	<pubDate>Wed, 13 Sep 2023 16:04:52 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　以下を参考に少し試してみました。 ]]></title>
	<description><![CDATA[ 　以下を参考に少し試してみました。<br /><a class="url" href="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/" target="_blank" title="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/">「Programming FTDI devices in Python&#58; Part 1」</a> <br /><br />　Open DMX USB や FT232RL が実装されたデバイスが手元にありませんので何ともですが、pip で ftd2xx をインストールするとVSCode ではそれらしい関数の候補が出ます。候補が出るということはアクセスできる可能性が高いという事です。<br />＞ pip install ftd2xx<br />　pywin32 もインストールされます。<br /><br />　「ftd2xx」のサイト見ますと、「ftd2xx は、ctypes を使用した FTDI の D2XX DLL の単純な Python ラッパーです。」とあります。<br />　システムコールを直球で使えるってことだと思われます。<br /><br /><a class="url" href="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py" target="_blank" title="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py">「jlbrogdon/dmx_controller」</a><br />　ここで使われている関数とは呼び出す文言が違いますが、VSCode で表示される関数の候補にはそれと思われる関数が存在しています。<br /><br />　明日以降になりますが FT232RL が実装されたデバイスを繋げた状態で色々テストしてみましょう。<br />　今考えているアイデアでいけるなら Open DMX USB の制御が Python で完結します。<br /><br />　これはいいかも<br /><a class="url" href="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf" target="_blank" title="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf">「Ftd2xxドライバー説明」</a> <br />　本家の資料では理解出来なかったことが分かりやすく書いてあります。欲しかった資料そのものです。<br /><a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a> <br /><a class="url" href="https&#58;//github.com/xiangruili/RTBox_py/blob/master/serFTDI.py" target="_blank" title="https&#58;//github.com/xiangruili/RTBox_py/blob/master/serFTDI.py">「xiangruili/RTBox_py」</a> <br /><br />　これらの資料で行けそうな予感がムクムク。<br />　ENTTEC 純正の Open DMX USB と DMXチェッカーを事務所に置いてきたことを後悔。<br />　すでに帰宅して呑んでいるので取りに行けませんので明日以降ですね。<br /><br />　それにしても、敷居が高いと思っていた DLL をここまで簡単に使えるとは予想外です。<br />　ドライバに対する DLL があれば、少なくともＣ/Ｃ＋＋なら簡単にアクセスが可能で、それを単純なラッパーにしてしまえば Python からストレスなくアクセス出来てしまうのです。<br />　この辺りの手段は手にしたいですねぇ～。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔941文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=719</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=719</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 19:35:49 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Open DMX USB を扱うには FTD2XX.dll… ]]></title>
	<description><![CDATA[ 　Open DMX USB を扱うには FTD2XX.dll をコールするのが肝らしい。<br />　チンプンカンプンな領域なのでこれから勉強ですが、次のサイトがヒントになりそう。<br /><a class="url" href="https&#58;//qiita.com/satoysan/items/890b542a28e163a96e0d" target="_blank" title="https&#58;//qiita.com/satoysan/items/890b542a28e163a96e0d">「PythonからDLLを使う」</a> <br /><a class="url" href="https&#58;//zenn.dev/qt6hy/articles/e89d862cc41a16" target="_blank" title="https&#58;//zenn.dev/qt6hy/articles/e89d862cc41a16">「Python から DLL を利用する」</a> <br /><a class="url" href="https&#58;//zenn.dev/t_ibe/articles/400aa60a12434d" target="_blank" title="https&#58;//zenn.dev/t_ibe/articles/400aa60a12434d">「C++で書いたコードをPythonで動かすには【pybind11】」</a> <br /><br />　以下も参考になりそう。<br /><a class="url" href="http&#58;//mikibicycle.blogspot.com/2019/07/usbpython.html" target="_blank" title="http&#58;//mikibicycle.blogspot.com/2019/07/usbpython.html">「USBを使って制御できるリレーモジュールをpythonで動かしてみる」</a> <br /><a class="url" href="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/" target="_blank" title="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/">「Programming FTDI devices in Python&#58; Part 1」</a> <br /><br />　上記の記事と以下を合わせるといけるのかな？<br /><a class="url" href="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py" target="_blank" title="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py">「jlbrogdon/dmx_controller」</a><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔321文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=718</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=718</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 19:03:13 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「PyOpenDmxUsb」の「DMXServer.cs」… ]]></title>
	<description><![CDATA[ 　「PyOpenDmxUsb」の「DMXServer.cs」を読むと「FTD2XX.dll」をコールしているがわかります。<br />　ならば、Ｃ＋＋ 化することは可能っぽいです。先日書き込みした Ｃ/Ｃ＋＋ による Python ライブラリ化を参考にすれば作れるかも。<br />　Ｃ＃のコードを Python ライブラリ化してもいいのでしょうけど。<br /><br />　ちなみに DoctorMX については Ｃ/Ｃ＋＋ の世代変わりの壁で対策がわかりません。<br />　kuwatecさんが公開されているのは VC6 世代のコードようですが、Ｃ＋＋はその後の時代に多くの改変がされているらしいのです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔302文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=717</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=717</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 18:23:31 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　VSCode でＣ言語の Python ライブラリを作る際… ]]></title>
	<description><![CDATA[ 　VSCode でＣ言語の Python ライブラリを作る際、ラッパーには Python.h が必須です。<br />　ですが、<br /><span class="decorationF deco-code">＃include ＜Python.h＞</span><br />　と書くと「Python.h なんて無いよ」と言われてしまいます。<br />　フルパスで指定すれば通りますがこれは避けたい。<br />　VSCode の拡張機能 Ｃ/Ｃ＋＋ の設定に追加をします。「C/Cpp ＞ Default：Include Path」の「項目の追加」から Python.h がある階層のパスを追加します。Python のインストールによってパスが違うのでそれに合わせて指定します。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔287文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=715</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=715</guid>
	<category>tegalog</category>
	<pubDate>Mon, 11 Sep 2023 08:45:57 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「error&#58; Unable to find vc… ]]></title>
	<description><![CDATA[ 　「error&#58; Unable to find vcvarsall.bat」とのエラーで困ったものの解決しました。<br />　以下、オレメモであります。<br />　あえて gcc を使うのは Linux で標準だからです。<br /><br /><small class="decorationS"><span class="decorationF deco-code">VSCode で gcc を使う<br /><br />2023年9月10日実施<br /><br />● OS<br />エディション&#58; Windows11 Pro x64<br />バージョン&#58; 21H2<br /><br />● Visual Studio Code<br />バージョン&#58; 1.74.2 (user setup)<br /><br />※ ダウンロード量が 1.8GB くらいあるのでネット回線が良好な環境での作業を推奨します。<br /><br />● gcc をインストールする<br />・gcc を GitHub からダウンロード<br />　<a class="url" href="https&#58;//github.com/niXman/mingw-builds-binaries/releases" target="_blank" title="https&#58;//github.com/niXman/mingw-builds-binaries/releases">https&#58;//github.com/niXman/mingw-builds-b...</a><br />　「Release of 13.1.0-rt_v11-rev1」の項から Windows64bit版<br />　ダウンロード項目&#58; x86_64-13.1.0-release-win32-seh-msvcrt-rt_v11-rev1.7z<br />・圧縮ファイルなので解凍する。.7z ファイルは CubeICE で解凍可能。「mingw64」フォルダが出来る。<br />・「mingw64」フォルダごと任意の位置に配置する。&quot;C&#58;\Program Files&quot;が適当？」<br />・PATH を通しておく。環境変数のPATHに「mingw64\bin」を追加する。今回は&quot;C&#58;\Program Files\mingw64\bin&quot;とする。<br />　「Windowsメニュー」→「設定」→「システム」→「バージョン情報」<br />　→「関連リンク」の行の「システムの詳細設定」をクリック。<br />　→ ウィンドウ下の方の「環境変数」をクリック。<br />　→ 上段のリスト、PATHの行をクリックし、「編集」をクリック。<br />　→ 表示されたリストに&quot;C&#58;\Program Files\mingw64\bin&quot;を追記する。<br />　→ 追記したら閉じる。<br />・確認<br />　コマンドプロンプトか Power Shell で次を実行<br />&gt; gcc -v<br />　もろもろ表示された最後に以下が表示されればOK。<br />gcc version 13.1.0 (x86_64-win32-seh-rev1, Built by MinGW-Builds project)<br /><br />● Microsoft C++ Build Tools をインストールする<br />・microsoft のサイトよりインストーラーをダウンロード<br />　<a class="url" href="https&#58;//visualstudio.microsoft.com/ja/visual-cpp-build-tools/" target="_blank" title="https&#58;//visualstudio.microsoft.com/ja/visual-cpp-build-tools/">https&#58;//visualstudio.microsoft.com/ja/vi...</a><br />　※「Microsoft C++ Build Tools」で検索しても上記 URL に行きつかない。試行錯誤中、偶然行きついた。<br />・ブラウザの「Build Tools のダウンロード」をクリックすると「vs_BuildTools.exe」がダウンロードされる<br />・ダウンロードしたインストーラーを起動する。<br />・「Visual Studio Installer」と画面が出てファイルのダウンロードが始まる。<br />・画面が切り替わり、右項目「インストールの詳細」に「MSBuild Tools」が表示されているの確認。<br />・左項目「C++によるデスクトップ開発」をクリック。右項目「インストールの詳細」に追加されているのを確認。オプションはデフォストのまま。<br />・右下の「インストール」をクリック。終わるまで待つ。ダウンロード量が 1.7GB ある。かなり時間がかかる。<br />・終了したら Windows を再起動する。<br /><br />● VSCode の設定・・・拡張機能をインストール<br />・C/C++ Extension Pack<br />・Code Runner<br /><br />● VSCode の設定・・・拡張機能の設定<br />・Code Runner<br />　Code-runner&#58; Run In Terminal<br />　 → チェックを入れる<br />　Code-runner&#58; Executor Map<br />　 → settings.json をクリック<br />　 → &quot;c&quot; に -fexec-charset=CP932 を書き加える<br />　- &quot;c&quot; &#58; &quot;cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt&quot;,<br />　+ &quot;c&quot; &#58; &quot;cd $dir && gcc -fexec-charset=CP932 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt&quot;,</span> </small><br /><br />　次のサイトの例題がコンパイル出来、Python からの呼び出しで動作しました。<br /><a class="url" href="https&#58;//daeudaeu.com/python-c-call/" target="_blank" title="https&#58;//daeudaeu.com/python-c-call/">「PythonからC言語の関数を呼び出す（基本編）」</a> <br /><br />　Ｃ/Ｃ＋＋のライブラリを Python で呼び出せると製作の幅が広がります。<br />　手始めにしては難しい課題ですが、DoctorMX を Python から使えるようにしてみたいですね。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔2121文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=714</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=714</guid>
	<category>tegalog</category>
	<pubDate>Sun, 10 Sep 2023 12:24:04 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「Open DMX USB」をオリジナルのアプリで使うこと… ]]></title>
	<description><![CDATA[ 　「Open DMX USB」をオリジナルのアプリで使うことを考えていきますと「DoctorMX」も使えたらなと思ってしまいます。<br />　開発・販売元のクワテックさんでは DoctorMX を使うためのライブラリとサンプルコードを公開してくださってます。C/Ｃ＋＋ 向けですが、サンプルコードは私でも読めるので扱えるかもしれません(その昔は全く理解出来ませんでした。ちょっと感動。)。<br />　小屋卓のPC版を作るかはともかく、DoctorMX と Open DMX USB の扱い方を習得しておくのはいいかもしれません。<br /><br />　2023年9月現在、クワテックさんから DoctorMX の Python ライブラリの提供はありません。リクエストしたら作ってくれそうな気もしますが、まずは自力で解決を目指しましょう。工夫や努力もせずに安易なリクエストをされるのは私も嫌ですしね。<br /><br /><a class="url" href="https&#58;//daeudaeu.com/python-c-call/" target="_blank" title="https&#58;//daeudaeu.com/python-c-call/">「PythonからC言語の関数を呼び出す（基本編）」</a><br /><br />追記<br />　上記がコンパイル出来るか試みましたがエラーを吐いて終わらない。<br />　「error&#58; Unable to find vcvarsall.bat」とのこと。<br />　なんじゃこりゃ！？<br />　環境は VSCode の上で gcc です。<br />　日本語サイトには直球な解決策は見つかりませんでしたが、某英語サイトに「Microsoft Visual C++ Build Tools」を入れたら解決するとの書き込み。<br /><br /><small class="decorationS"><span class="decorationF deco-code">Microsoft Visual C++ ビルド ツールをインストールする<br /><br />システムに Microsoft Visual C++ がインストールされていない場合、または古いバージョンがインストールされている場合は、Microsoft Visual C++ Build Tools をダウンロードしてインストールできます。Microsoft Visual C++ Build Tools には、Windows 上で C++ コードをビルドするために必要な環境変数とツールが含まれています。<br /><br />Microsoft Visual C++ Build Tools をインストールする手順は次のとおりです。<br /><br />1&#58;Visual Studio Build Tools Web サイトに移動します。<br />2&#58;インストーラーをダウンロードして実行します。<br />3&#58;「C++ ビルド ツール」ワークロードを選択します。<br />4&#58;「インストール」をクリックします。</span></small><br /><br />　開演時間になったのでお試しはお預けですが、２時間ほど悩んでいたので期待感大。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔1089文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=713</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=713</guid>
	<category>tegalog</category>
	<pubDate>Sat, 09 Sep 2023 11:14:38 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　VLC が入っていて Python を入れていないパソコン… ]]></title>
	<description><![CDATA[ 　VLC が入っていて Python を入れていないパソコンが一台あったので exeファイルを試してみました。<br />　問題なく動きます。<br />　python-vlc は VLC を入れていなくても動くハズですが、入れておいた方がいいのかもしれません。<br /><br />　VLC をアンインストールして試す手もありますが、DLL などが残る可能性もあるので、一度 VLC に触れたパソコンはインストール済みと思うしかありません。<br />　いずれにしても、VLC のインストールを推奨することにしましょう。<br /><a class="url" href="https&#58;//www.videolan.org/vlc/index.ja.html" target="_blank" title="https&#58;//www.videolan.org/vlc/index.ja.html">「VLC media player」</a> <br />　とても便利なアプリです。特にこだわりがなければ、デフォルトアプリとしてもお勧めする一品です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔322文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=707</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=707</guid>
	<category>tegalog</category>
	<pubDate>Mon, 04 Sep 2023 11:38:36 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　pyinstaller でexeファイルを作ってみましたが… ]]></title>
	<description><![CDATA[ 　pyinstaller でexeファイルを作ってみましたが環境によって微妙な不具合が出ます。原因は不明ですが、pyinstaller の操作手順かもしれません。<br /><a class="url" href="https&#58;//qiita.com/nal_dal_dere/items/95e173068af399e61981" target="_blank" title="https&#58;//qiita.com/nal_dal_dere/items/95e173068af399e61981">「PyinstallerでPythonプログラムをexe化する手順書（Windows編）」</a> <br />　上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。<br />　仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。<br /><a class="url" href="https&#58;//qiita.com/TakamiChie/items/8dba8459343db898b335" target="_blank" title="https&#58;//qiita.com/TakamiChie/items/8dba8459343db898b335">「PyInstallerを使ってみた」</a> <br /><br />追記<br />　作業手順のオレメモ。<br />　仮想環境に pyinstaller を入れての実行の方が良いようです。<br /><small class="decorationS"><span class="decorationF deco-code">作業ディレクトリに移動<br />&gt; cd &lt;作業ディレクトリ&gt;<br />pipenv をインストール<br />&gt; pip install pipenv<br />pipenv で使う python のバージョンを指定<br />&gt; pipenv --python 3.9<br />pipenv(仮想環境)を開始<br />&gt; pipenv shell<br />仮想環境にpyinstaller をインストール<br />&gt; pipenv install -d pyinstaller<br />必要なライブラリをインストール<br />&gt; pipenv install pyserial<br />&gt; pipenv install PySimpleGUI<br />&gt; pipenv install python-vlc<br />・・・etc<br />ビルドする<br />&gt; pyinstaller ltcplayer.py --clean --noconcole --onefile<br />・・・数分で終わる。<br />作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。<br /><br />終了なら仮想環境のshellから抜ける<br />&gt; exit<br />仮想環境を削除<br />&gt; pipenv --rm<br /><br />作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、<br />ゴチャゴチャするので私は一つ下の階層で作業をしています。<br />ソースコードがある階層で<br />&gt; mkdir env<br />&gt; cd env<br />&gt; pyinstaller ..\ltcplayer.py --clean --noconcole --onefile<br />相対パスでソースコードを一つ上の階層として呼びます。<br />お好みですけど。</span></small><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔1039文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=706</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=706</guid>
	<category>tegalog</category>
	<pubDate>Sat, 02 Sep 2023 17:34:54 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　実行ファイル化した LTC Player 0.2.0β の… ]]></title>
	<description><![CDATA[ 　実行ファイル化した LTC Player 0.2.0β の処理負荷は５～７％です。十分に軽いと言えます。<br />　しばらくは本業を頑張らないといけませんが、その本業で使って細かいバグを見つけていきましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔118文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=704</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=704</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 13:06:09 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python でファイル保存するには次の方法がお手軽みたい… ]]></title>
	<description><![CDATA[ 　Python でファイル保存するには次の方法がお手軽みたい。<br /><a class="url" href="https&#58;//www.robotech-note.com/entry/2016/10/01/180840" target="_blank" title="https&#58;//www.robotech-note.com/entry/2016/10/01/180840">「pythonでlistをファイルに保存し、読み込む方法(numpyも同様！)」</a> <br />　上記内の「pickleを使用する方法（おすすめ！）」です。<br />　ここでは list を保存する方法として書かれていますが tuple でもＯＫ。もちろん、list や dict を含む異なる型をテキトウに突っ込んだ tuple でもＯＫ。Python で一つの変数として扱える状態にしてから pickle.dump でファイルに入れれば何でもいいみたい。読出しは load すれば pickle.dump する直前の状態で変数に格納されます。変数のまんま保存し変数のまんま読み出せるイメージです。<br />　やりたいことは list 型のセットリストと諸々のステータスの保存/読出しです。これらを tuple にまとめれば一括で扱えるみたいです。<br />　ファイル保存は手続きが面倒ってイメージがありましたが、これは楽チンです。<br /><br />　追加オレメモ。<br /><a class="url" href="https&#58;//note.nkmk.me/python-os-exists-isfile-isdir/" target="_blank" title="https&#58;//note.nkmk.me/python-os-exists-isfile-isdir/">「Pythonでファイル、ディレクトリ（フォルダ）の存在確認」</a> <br /><a class="url" href="https&#58;//note.nkmk.me/python-os-mkdir-makedirs/" target="_blank" title="https&#58;//note.nkmk.me/python-os-mkdir-makedirs/">「Pythonでディレクトリ（フォルダ）を作成するmkdir, makedirs」</a> <br /><a class="url" href="https&#58;//python.softmoco.com/basics/python-file-copy-move.php" target="_blank" title="https&#58;//python.softmoco.com/basics/python-file-copy-move.php">「Python ファイルのコピーと移動」</a> <br />　こういった基本的なことが凄く簡単なのは Python のすばらしさ。<br />　この様な操作を整理しているのは、データを他のパソコンに持って行く前提で、音源ファイルをセットリストファイルと同じフォルダに置きたいからです。<br /><br />　pyinstaller を使って実行ファイル化(.exe化)してみました。この状態にすると Python をインストールしていないパソコンでも動きます。操作は簡単ですし中身を隠せていいかも。<br />　モノは試しにアップしてみました。Windows11の64bitでしか試していませんが、64bitならWindows10でも動くと思われます。<br />　<a class="url" href="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1" target="_blank" title="https&#58;//owncloud.densokogei.jp&#58;8080/index.php/s/Isu9B9QxC6vY2b1">LtcPlayer</a><br />　セットリストの保存機能が未実装のβ版です。モノ好き大好き自己責任でお楽しみください。<br />　LTC の出力には専用インターフェースが必要です。これが無ければ単なる音楽プレーヤーです。<br />　専用インターフェースのことを LTC Generator と呼んでいますが販売するかは検討中です。ノンクレーム返品可で少数販売でしょうか？手作りなので数を作れませんしサポートしきれませんし。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔1033文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=703</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=703</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 10:56:35 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player は「オイラ、最初からこうだよ」と言わ… ]]></title>
	<description><![CDATA[ 　LTC Player は「オイラ、最初からこうだよ」と言わんばかりの顔で動いています。嬉しいようなちょっとムカつくような。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔79文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=702</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=702</guid>
	<category>tegalog</category>
	<pubDate>Wed, 30 Aug 2023 09:46:32 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player はセットリストの保存以外は完成した様… ]]></title>
	<description><![CDATA[ 　LTC Player はセットリストの保存以外は完成した様子です。0.2.0βとしました。<br />　バグや設計ミスはあると思うのですが、これ以上は使ってみないと分からないような気がします。<br />　LTCについて、MAdot2の場合ですが、無信号から受信開始まで0.3-0.5秒かることへの対策として停止タイムの数フレーム前を数フレームリピートしていますが、他の卓の挙動の検証も必要です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔206文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=700</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=700</guid>
	<category>tegalog</category>
	<pubDate>Tue, 29 Aug 2023 13:34:53 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　とある中堅企業さんの労働組合さんの納涼祭でした。お盆もとう… ]]></title>
	<description><![CDATA[ 　とある中堅企業さんの労働組合さんの納涼祭でした。お盆もとうに過ぎているのに納涼祭？とか思ったりしますが、中堅の工場はお盆前後が忙しいので時期をずらすのはアリアリでしょう。勤務日数が少ない８月を乗り切ったぞー！ってヤツも含まれていそうです。<br />　そんな現場でしたが、MAdot2 を使ったので LTC Player のランニングテストも同時に実施。本番でこんなことをするのは不謹慎ちゃ不謹慎ですが、LTC が途切れることなく受信されるかを確認するには丁度よい。普段なら卓をずっと眺めていることは難しいですが、目の前の卓を操作するのが仕事なら無理はありません。LTC で卓を動かすのでははく長時間の認識のテストですから時計を表示するのと同じ。LTC のデータが間違っていたり途切れたりして卓が止まることはまずありません。なんでかんで MA の製品ですから。<br />　８時間ほど実施しましたが問題は発生セズ。バグではなく設計(デザイン)のミスを見つけたので今後対策しますが、音源に沿った LTC で止まることなく卓がカウントを刻むのは気持ちがイイ。<br />　プレイリストの保存機能も構成しなければなりませんし、修正もまだまだありますが、間違いなく β版 に昇格しています。この達成感と安堵感は暑さという調味料以上にビールを美味しくしてくれています。オタク冥利とはこのことでしょうか。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔599文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=698</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=698</guid>
	<category>tegalog</category>
	<pubDate>Sun, 27 Aug 2023 00:44:56 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player & LTC Generator を … ]]></title>
	<description><![CDATA[ 　LTC Player & LTC Generator を α版 から β版 に昇格しました。主要な機能が搭載されたって意味です。<br />　プレイリストの保存やバグ潰し、細かい調整はこれからですが、音の再生に沿った LTC が出力され、それを拾って卓が動きます。音のポジションを飛ばしてもそれに沿った LTC が出ます。フレーム値が飛んだ時の挙動は卓次第ですが、一時停止も先送りもしなければとても素直に動きます。何度再生しても同じ結果が出ます。そうでないと困るのですが、これぞ期待した機能であります。<br />　ただしmp3などの圧縮データではパソコンによって再生のクセが違い、音アタマとオシリの挙動が一定しません。メロディ続きでトラックが分かれている音源では問題になりそうです。圧縮データだからでしょうが、VLC のライブラリに頼り切っている私にはどうすることも出来ません。非圧縮のデータ形式の wav では正常なので音源のデータ形式を制限した方がいいですね。Windowsならwav、MacintoshならAIFFってことです。<br />　なんでかんで5,000行もあるソースコードになりました。本業を後回しに書いていたのは間を空けると細かいことを忘れてしまうからです。自分なりに読みやすく書きましたので正常に動くところまでやっておけば読み返して戻ることも出来ますが、障害を残したまま間を空けると次の作業で障害を思い出すのに時間がかかるのです。<br />　一応の区切りが付きましたので、一旦お休みというか本業にアタマを戻してプレイリストの保存方法などを検討していこうと思います。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔693文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=697</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=697</guid>
	<category>tegalog</category>
	<pubDate>Fri, 25 Aug 2023 18:43:39 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　初期構成の段階ですが、LTC Player & LTC G… ]]></title>
	<description><![CDATA[ 　初期構成の段階ですが、LTC Player & LTC Generator の融合が出来ました。<br />　PLAYボタンを押すと曲と共に LTC がカウントされ、卓(MAdot2)が認識します。まだまだ課題と見えない問題は多いと思いますが、峠を越えた心持ちです。<br />　処理負荷はWindows7世代のミドルレンジパソコンで20%前後です。まぁまぁでしょう。<br /><br />　ここ２日間はEoCとコレばっかりやっていたので本業がヤバイですけど、祝杯を上げてもいいかもしれません。<br />　この後は考えをまとめて構造を整理します。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔268文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=696</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=696</guid>
	<category>tegalog</category>
	<pubDate>Wed, 23 Aug 2023 19:34:15 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Player から LTC Generator を… ]]></title>
	<description><![CDATA[ 　LTC Player から LTC Generator を制御するモジュールを本格的に書き始めました。<br />　ハードウェアを作った３ヶ月前の自分が何を考えていたか整理しつつ、bytes と bytearray を用いてシリアル通信の再構築です。<br />　USB-Serial 変換の FT232RL には LTC Generator であるとマークを埋め込みたいのですが、FT Prog では書き換わっていても、Python で読むとシリアルナンバーくらいしか書き換えが反映しません。排他処理が出来ればいいのでコレでもいいのですが腑に落ちません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔286文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=692</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=692</guid>
	<category>tegalog</category>
	<pubDate>Tue, 22 Aug 2023 09:00:27 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　先週末、LTC Generator の関数を書いてました。… ]]></title>
	<description><![CDATA[ 　先週末、LTC Generator の関数を書いてました。モード値とタイムコード値から送信のバイナリを起こす関数です。<br />　この作業で Python の変数の型である bytes と bytearray の違いようやくわかりました。<br />　突き詰めたらどちらもバイトデータの羅列ってのが第一条件なんですが、コマンドで数値を処理するなら bytearray にしといた方が楽で、デバイスが送受信で扱うのは最終的に bytes ってだけでした。<br />　とかく serial、socket を扱うなら bytes と bytearray がわかってないと不便。bytes にしなくても送信は出来るのですが文字コードの悪魔がちょっかいを出してくるので便利機能に頼るにしても自力で bytes まで持っていくつもりで書いた方がいいし、受信はどこまで行っても bytes なので避けて通れません。アセンブラに慣れきってしまった自分にとって「バイナリのデータが読めるとホッコリするよねぇ～」なんです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔456文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=688</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=688</guid>
	<category>tegalog</category>
	<pubDate>Fri, 18 Aug 2023 01:13:26 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

