No.722
オレメモです。
Open DMX USB が期待通りに動かないのは BreakTime が正しく出ていないのが原因かと予想しています。
FTD2xx には setbreakon と setbreakoff がありますのでこれを使うのが肝だと思われますが、これらのコマンドを実行するだけでは求める BreakTime に至らないのだろうと思われます。
違うライブラリを用いたソースコードでは Break を有効化するコマンドが2回と Break 無効化するコマンドが続きで書いてありましたので FTD2xx では Break に関するコマンドを発行すると1バイト分の送信が行われるのかな?と思っていました。2バイト分ですと BreakTime の最小時間と等しいですからね。
検証しないとわかりませんが、setbreakon と setbreakoff は FT232RL の動作モードを変える( setbreakon を実行すると待機状態が L となる / setbreakoff を実行すると待機状態が H に戻る)だけで Break の時間を確保するものではないってのが現在の予想です。テストプログラムでは setbreakon を2回、setbreakoff を1回実行していましたが、setbreakon と setbreakoff の間に空送信か待ち時間を入れてみようと思います。まずは time.sleep( 0.001 ) (Windowsだと15msec前後になる)を差し込むことから始めて setbreakon の状態で空送信をしたらどうなるかです。
#Python #器具の製作
Open DMX USB が期待通りに動かないのは BreakTime が正しく出ていないのが原因かと予想しています。
FTD2xx には setbreakon と setbreakoff がありますのでこれを使うのが肝だと思われますが、これらのコマンドを実行するだけでは求める BreakTime に至らないのだろうと思われます。
違うライブラリを用いたソースコードでは Break を有効化するコマンドが2回と Break 無効化するコマンドが続きで書いてありましたので FTD2xx では Break に関するコマンドを発行すると1バイト分の送信が行われるのかな?と思っていました。2バイト分ですと BreakTime の最小時間と等しいですからね。
検証しないとわかりませんが、setbreakon と setbreakoff は FT232RL の動作モードを変える( setbreakon を実行すると待機状態が L となる / setbreakoff を実行すると待機状態が H に戻る)だけで Break の時間を確保するものではないってのが現在の予想です。テストプログラムでは setbreakon を2回、setbreakoff を1回実行していましたが、setbreakon と setbreakoff の間に空送信か待ち時間を入れてみようと思います。まずは time.sleep( 0.001 ) (Windowsだと15msec前後になる)を差し込むことから始めて setbreakon の状態で空送信をしたらどうなるかです。
#Python #器具の製作