問題タブ [dmx512]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
udp - Artnet パケット構造
プログラマーが Artnet/ArtnetDMX プロトコルを使用できるようにするライブラリをたくさん見つけましたが、Artnet をコードで (ソケットに) 送信するための正しい構造が見つかりませんでした。
構造は示されていますが、バイトを送信する順序がわかりません。バイトを 1 つずつユニバースに送信する必要がありますか?それともすべての値を含むバイト配列を送信する必要がありますか?
Artnet を UDP 経由で送信した経験のある人はいますか?
これはウィキペディアにある構造です: http://i.stack.imgur.com/wUjzd.png
timer - Arduinoタイマーがクラッシュしているようですか?
いくつかのインタラクティブなインスタレーションを伴う展示では、3 つの超音波 PING センサーからデータを読み取り、1 つの出力にDMX調光器が接続されたシステムを作成する必要があります。
そこで、Arduino Megaボードを使用して、その周りにいくつかのハードウェア (DMX 用の信号インバーター) を構築し、ライブラリDmXSimpleを使用して DMX 調光器をテストしました。それはうまくいきます!
次のステップ: PING センサーのテスト。ライブラリNewPingを使用し、センサーを接続しました。それはうまくいきます!
両方を 1 つのプログラムにまとめて: 同じコードを使用して両方のライブラリをインポートします。うまくいきません!
タイマー衝突?まあ...とにかく-それを解決する方法がわかりません。私は何をすべきか?それがタイマーの問題である場合 (つまり、両方のライブラリが同じタイマーを呼び出している場合)、ライブラリを変更して機能させる方法が本当にわかりません。
javascript - PHP/html を JavaScript ループに渡す方法
外部ソフトウェアを介して部屋の照明を制御する非常に堅牢な JavaScript スクリプトがあります。実行時に 1 または 0 のみを返す PHP があります。理想的には、数秒ごとに実行され、その 1 または 0 をプルし、1 の場合は何らかの作業を行う JavaScript ループが必要です。問題は、用語または処理/データ収集に関して、JavaScript で別のページを開く方法がわからないことです。
JavaScriptと同等の「ファイル取得コンテンツ」はありますか? PHP の値を JavaScript ページに記述したくありません。if ステートメントを少し実行するための値を保持するだけです。
if-statement - LabVIEW の複雑な If ステートメント
背景: LabVIEW で DMX ターンテーブルを構成しようとしています。回転には、粗い (255 ポイントで 360 度) と細かい (255 ポイントで 1 度) の 2 つの設定があります。最初にコマンドを実行して、使用可能な最も近い DMX 位置に粗モードで移動し、次に微モードで差を埋められるようにする必要があります。
たとえば、90 度に回転させたい場合、これは 63.75 の DMX 値に相当しますが、これは 63 に切り捨てられます。角度の実際の値は現在 88.94 であるため、細かい設定を使用して余分な 1.06 度を補う必要があります (私は 1 度しか補うことができませんが、89.94 は 90 に十分近いです)。
粗い設定は問題なく実行できますが、「実際の度数の値が入力値よりも小さい場合は、差を補う」という何らかの「if」ステートメントが必要です。Case Structures は、この複雑な "if" ステートメントを使用するための十分な制御を提供しません。代わりに何を使用できますか?
c++ - Arduino ISR - ベクトルの複数の定義
ここでは、4 つのユニバースの DMX ライブラリを使用しています。
他のライブラリなしでこのライブラリを使用すると、完全に正常に動作します。ただし、標準ライブラリも使用するSPI.h
と、次のコード行で ISR と競合します。
lib_dmx.ccp (3 行目)
HardwareSerial.cpp (2 行目)
今、私はarduinoの割り込みサービスに慣れていません。これHardwareSerial.cpp
は Arduino のコアなので、このファイルを実際に変更することはできないと思います。
前もって感謝します。
更新 1
ISR を削除してに置き換えるとserialEvent()
、エラーerror: invalid use of void expression が表示されます。voidserialEvent()
がないと、適切に宣言されません。特定のライブラリを含める必要がありますか?
lib_dmx.ccp
更新 2:
lib_dmx.cpp
lib_dmx.h
myfile.ino
このライブラリでは、DMX 用に複数のユニバースを使用できますが、現在は最初のユニバースのみを使用しています (これが、.h ファイルでそれらの一部がエスケープされている理由です)。myfile.ino では、UDP マルチキャスト ライブラリ (変更された標準イーサネット ライブラリ) も実装しているため、特定のものを削除しました。
c# - シリアルポートへの信号の書き込み
USB - RS485 ケーブル経由で DMX 受信機にデータを書き込もうとしています。正しいデータ フレームを確認できますが、パケットが DMX プロトコルに従うには、ブレークと MAB 信号が必要です。私の質問は、そのような信号を生成する方法はありますか? 私の考えでは、hi 信号と lo 信号を遅延させてシリアル ポートに書き込むことでしたが、VS C# でこれを行う方法が見つかりませんでした。
powershell - リモート PC でバッチ ファイルを実行し、ログオンしているユーザーに *見えるように*
呼び出されたときに VLC-Player を介してランダムなビデオ ファイルを再生するバッチ ファイル dmx2vlc があります。ローカルではうまく動作しますが、ネットワーク上の別のマシンでこれを行う必要があり (アドホックになります)、結果 (ビデオを再生する VLC-Player) がリモート画面に表示される必要があります。SSH、Powershell、PsExec を試しましたが、複数のログインを許可するパッチを適用しても、どちらもコマンド ラインのセッションでバッチ ファイルとプレーヤーを実行しているようです。
そのため、バッチ ファイルを実行しても画面には表示されません。私のdmxプログラムからプログラムでこれらすべてを呼び出すことができる必要があるため、Teamviewerなどを使用することはできません。
バッチを直接呼び出すことができるとは限りません。何らかの方法でバッチを実行するようにトリガーできれば十分です。
悲しいことに、ここではライティング (したがって dmx) 環境について話しているため、レイテンシが問題になります。
どんなヒントでも大歓迎です!