問題タブ [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.

0 投票する
1 に答える
954 参照

c# - System.Drawing.Color オブジェクトに基づく色の変化

現在、C# .NET 用の DMX ライブラリに取り組んでいます。現時点では、「開始色」と「終了色」に基づいて色の遷移を作成することに固執しています。

この関数は 3 つの引数を取ります。1 つ目は DMXController オブジェクト (基本的には拡張された SerialPort)、2 つ目は startColor、3 つ目は endColor です。

全体の処理は別のスレッドで処理されるため、アプリケーションがハングすることはありません。

DMX クライアントは単なる RGB LED コントローラーであるため、文字通り RGB 値 (例: 赤 = 255、0、0) を受け入れます。

固定色の例をいくつか見てきましたが、このプロジェクトでは任意の色を使用できます。

私が正しければ、最大ステップ数は 255 ステップになります。

これを行うための最も効率的な方法は何ですか? サイクルのすべてのステップは DMXController に送信されるため、ある種の for-next または while ループである必要があり、すべてのステップが送信されます。

これまでの私のコードは次のとおりです。

トランジションを開始する前に、カラー オブジェクトから r、g、および b の値を抽出する方が速い場合は、それを実装します。

0 投票する
1 に答える
222 参照

arduino - DMX Arduino - Martin Exterior 600 フィクスチャのランプをオフにする

Web ベースのライト コントローラーを作成しましたが、すべてが完全に機能しています。しかし、フィクスチャの1つをオフにするのに問題があります。

ランプをオフにするには、チャネル 17 で値 250 を少なくとも 5 秒間送信する必要があります。ここが難しいところですが、どうすればいいのでしょうか?

http://www.mathertel.de/Arduino/DMXSerial.aspxの DMXSerial ライブラリを使用していますが、ドキュメントがありません。

これはコードの一部です。

どんな助けでも大歓迎です。

0 投票する
1 に答える
1227 参照

c# - Enttec DMX USB PRO Mk2 - 単一の DMX パケットを送信

私は現在、エンジニアリング研修生として小さなプロジェクトに取り組んでおり、職場でのインテリジェント照明器具のテストに役立つ DMX ツールの開発を続けています。

このプロジェクトは C# で記述されており、 Ftdichip Web サイトFTD2XX_NET.dllから入手できるマネージ ラッパーを使用し、PC と照明器具間のインターフェイスとして Enttec DMX USB PRO Mk2 を使用します。

DMX ツールの要点は、さまざまなパラメーターで DMX パケットを送信できることです。たとえば、ユーザーが設定可能な開始コードまたはパケット サイズで DMX を送信したり、さまざまなボーレートなどのカスタマイズ可能なポート設定を送信したりして、特定の照明器具がどのように動作するかを確認できます。テスト目的で非標準設定で実行します。

上記の機能の実装に部分的に成功しましたが、今はレンガの壁にぶつかっています...

DMX ツールは、次の 2 つの異なるモードで実行できる必要があります。

連続モードとシングル パケット モード。

前述のように、指定された DMX パケットを正常に送信できますが、継続的にしか送信できません。Enttec DMX USB PRO Mk2 が実際に内部でどのように機能するか、およびこの一見連続的なデータ転送を停止する方法についての説明を見つけるために、Web の最も深く暗いコーナーを検索しましたが、どこにも行きませんでした.

そして、これは本当の質問につながります:

Enttec DMX USB PRO Mk2 は、USB-RS232 シリアル接続をどのように処理しますか? この継続的なデータ転送をプログラムでバイパスして、単一のDMX データ パケットを送信できるようにすることは可能ですか?

0 投票する
0 に答える
328 参照

c# - プランの X と Y から DMX スポットライトの PAN と TILT を取得する方法 (カメラ ビュー)

環境

床から 12 メートルの高さにある円形のプラットフォームに DMX スポット ライトを固定しています。カメラは、このプラットフォームの (ほぼ) 中央に固定されています。カメラは、いくつかのターゲットを見つけて追跡するために地面を撮影することになっています。このカメラは静的で、X/Y デカルト座標系を使用して 2D プランを提供してくれます。ターゲットを見つけたら、スポットライトを当てる必要があります。

シーンの上面図 上面図の 画像 http://img15.hostingpics.net/pics/635699691.png シーンの側面図 側面図の 画像 http://img15.hostingpics.net/pics/275272232.png

問題

スポットライトでターゲットを照らすには、このターゲットの X/Y 位置に対応するパン角度とチルト角度を見つける必要があります。これらのスポット ライトには特定の向きはありませんが、カメラを使用して地面にその X/Y 投影ポイントを見つけることができます。

一部のデータ

私はウェブ上でいくつかの式を見つけました:

また

しかし、決定的でないテストの後、それが正しいかどうかはわかりません..

対応する x、y、z の値があるかどうかわかりません。

ポイント、ベクトル、スポットライトの天頂点など、2D プランで必要なものをすべて見つけることができ、スポットライトを好きな場所に配置することもできます。特定の X/Y ポイント (カメラ ビューのターゲット) の対応するパンとチルトを見つけることができず、それを見つける方法もわかりません。

私はC#で開発しています。

0 投票する
3 に答える
1937 参照

c - RGB から RGB とアンバー

上位システムからDMXライトをコントロールしたい。RGB 値 0 ~ 255 しか受信しません。DMX ライトには、赤、緑、青、およびアンバーのライト (0-255) があります。RGB を RGB + Amber に変換するにはどうすればよいですか?

ライトを手動で調整しようとしましたが、メモリが限られているため、変換テーブルはオプションではありません。ありがとう。R

0 投票する
1 に答える
295 参照

c# - DMX コントローラで ArtNet3 パケットをどのようにプリバッファリングしますか?

UDP パケットをローカル ネットワーク経由で 100 個の ArtNet3 互換 DMX コントローラーの文字列に送信するように設計されたライブラリを作成しています。

ArtDmx パケットの送信とレンダリングが正常に行われました。現在、DMX コントローラーのデータを事前にバッファーして、ネットワークの遅延を解消しようとしています。ドキュメントには、ArtSync パケットを送信して、以前に受信した ArtDmx パケットをレンダリングするようにコントローラーに指示するように記載されています。これは私が実装したものです。また、ArtDmx パケットの前に 1 つの ArtSync パケットを送信して、コントローラにデータをレンダリングする代わりにバッファリングするように指示します。これらの ArtDmx パケットには、1 から始まるユニバース/コントローラーごとにインクリメントされた値で埋められたシーケンス プロパティがあります。

問題は、OpCode が認識されていないことだと思います。Wireshark でトラフィックを監視すると、ArtDmx パケットの OpCode が「ArtDmx (0x5000)」として認識されます。一方、値がドキュメントと一致していても、ArtSync パケットは「不明 (0x5200)」として表示されます。足りないものはありますか?これがドキュメントです。

0 投票する
1 に答える
1006 参照

c - DMXSerial Arduino Library を使用した DMX-512 の送受信

現在、arduino 用に作成された DMXSerial ライブラリを使用しています。このライブラリは、送信機または送信機として初期化する方法に応じて使用できます。

送信機は次のように初期化する必要があります: DMXSerial.init(DMXController);

一方、レシーバーの初期化は次のとおりです。 DMXSerial.init(DMXReceiver);

受信して制御する実装を作成したいと思います。特定の重要な割り込みやタイミングの制約を逃さずにこれを行う方法を知っている人はいますか?

0 投票する
1 に答える
8156 参照

parsing - Arduino シリアル読み取りと解析 HEX

DMXソフトウェア用のArduinoインターフェイスを作成しようとしていますが、Freestyler受信したデータのエンコーディングを知っているため、受信したデータの解析に苦労しています。

次の画像は、受信データを表示するために接続したシリアル モニターです。Freestylerフォーマットは非常に単純で、チャネルあたり 3 バイトです。1 バイト目はstartOfMessage、2 バイト目はチャンネル番号、3 バイト目はチャンネル値で​​す。

シリアル モニタは、16 進数と 10 進数で表示されます。

テストのために、startOfmessage (定数) が正しく解析されたときに LED をオンにしようとしています。

誰かが私を正しい方向に向けることができますか?

シリアルモニターのスナップショット