問題タブ [multiplexing]

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 投票する
4 に答える
4155 参照

python - マルチプレックス オン キュー.キュー?

queue.Queue複数の を同時に「選択」するにはどうすればよいですか?

Golang には、そのチャネルに必要な機能があります。

ブロックを解除する最初のチャネルは、対応するブロックを実行します。Pythonでこれをどのように達成しますか?

Update0

tux21b 's answerに記載されているリンクによると、目的のキュー タイプには次のプロパティがあります。

  • マルチ プロデューサー/マルチ コンシューマー キュー (MPMC)
  • プロデューサーごとの FIFO/LIFO を提供
  • キューが空/満杯の場合、コンシューマー/プロデューサーはブロックされます

さらに、チャネルがブロックされる可能性があり、プロデューサーはコンシューマーがアイテムを取得するまでブロックします。Python の Queue でこれができるかどうかはわかりません。

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

gps - 組み込み Linux での GPRS と GPS

組み込み Linux と Telit gprs/gps モジュール (USB ポートの「GM862-GPS」) を持っています。私の現在のプロジェクトでは、データを送信するために gprs を介して接続する必要がありますが、モジュールに gps の位置を継続的に要求します。ppp-daemon と chatsripts で gprs に接続していますが、接続が確立されると、モジュールがロックされているようです (minicom を介した AT コマンドに反応しません)。

「AT+CMUX」はこのデバイスによって提供される 1 つのソリューションである可能性があると読みましたが、Telit の「CMUX ユーザー ガイド」はあまり役に立たないため、その使用方法がわかりません (およびプログラム自動セットアップ用は Windows でのみ提供されます)。

このコマンドを処理する方法、またはこの問題を処理するためのより良い選択を知っている人はいますか?

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

serial-port - Arduinoを使ったCharlieplexing

Arduino にCharlieplexingを実装しようとしています。現在、3 つの出力を使用して 6 つの LED を制御していますが、問題なく動作しています。問題は、関数の 1 つに遅延を設定すると、このバグが再発することです。このバグにより、多かれ少なかれ関係のない関数に遅延を加えると、(Arduino USB ケーブルを介した) シリアル入力が台無しになります。シリアル ポート経由で 1 ~ 6 の数値を送信して、Charlieplexing アレイを制御しています。

これは整数に変換され、関数によって解釈され、3 つの入力/出力ポートのそれぞれの適切なポート状態に変換されます。

上記は非常にうまく機能しますが、一度に 1 つの LED しか点灯しません。さらにオンにするには、Arduino を LED 間でシフトさせて、一度により多くのものがオンになっているように見せる必要があります。このために、新しい関数を作成しました。

ここで問題が発生します。Charlie() 関数を呼び出した後に delay() を含めないと、Serial INPUT が壊れます。本当に奇妙なことは、遅延は何もする必要がないということです。別名遅延(0)は私の問題を解決します。

シリアル インターフェイスを介して何らかの入力を送信すると、Arduino はそれを再び吐き出します。したがって、1 から 6 までの数字を送信すると、シリアル コンソールでは次のように表示されます。

1 2 3 4 5 6

それが期待されていることです。適切な遅延なしで Range() 関数を導入すると、出力は次のようになります。

15 25 35 45 55 65

これはプログラムを壊します。

これが漠然としていることはわかっていますが、説明するのは本当に難しいと思います。うまくいけば、それはあなたにとって理にかなっています。

完全なコードはここにあります: http://pastebin.com/t7tdtfid

アップデート

AVR Studio 5 でプログラムを実行してみましたが、問題の影響を受けませんでした。

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

operating-system - select syscall がファイル記述子の上限のみを持ち、下限を持たないのはなぜですか?

の中に

syscallnfdsは、ビットマップに設定されているすべてのファイル記述子の中で、関心のある最大のファイル記述子です。これは、実装がシステム内のすべてのファイル記述子をスキャンする必要がないように効率化するためのものだと思います。その場合、この syscall で引数を渡して、関心のある最小のファイル記述子も指定できないのはなぜですか?

0 投票する
2 に答える
645 参照

c - I/O 多重化でのブロックの書き込みはどのように行われますか?

私は、epoll、poll などを使用してノンブロッキング サーバーおよびクライアント アプリケーションを作成することを学んでおり、次のイベント フラグに出会いました。

POLLOUT: 今書いてもブロックされません。

ブロック読み取りの概念を理解しています。しかし、何が書き込みをブロックしているのでしょうか?

0 投票する
2 に答える
1145 参照

python - パラレルポート用のPythonでの数値の多重化文字列

私はこのようなことをしようとしています。問題は、それを行うループを構築できないことです。 回路:

これが私のコードです:

誰かが私を助けることができれば、それは満足のいくものになるでしょう

numBinにある最上位ビットは、オンにするディスプレイを定義します。そして、それほど重要ではないものが数を定義します。例えば:

文字列は{'7'、 '1'、 '5'、 '4'、'8'}です。したがって、最後の表示に表示される最初の数字は「7」です。したがって、「0111」であるバイナリ7を取得し、そのバイナリ文字列を「0001」である最初の表示位置に結合します。したがって、2進数「00010111」を作成します。その数値を10進数に変換し、パラレルポートに送信します。パラレルポートはlasディスプレイをオンにし、番号7を表示します。2回目は、2番目と1番目の位置に「7」と「1」を表示する必要があります。

「X」はディスプレイがオフであることを表し、数字は回路でわかるようにディスプレイ位置にあることを表します。

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

c++ - x264 ストリームと ogg vorbis ストリームがある場合、mplayer/VLC が読み取れる多重化ストリームを作成するにはどうすればよいですか?

私は混乱していて、この質問に少し行き詰まっています。Googleで見つけることができるのは、質問とは関係のないトランスコーディングソフトウェアの基本的な使用法だけです。

私はゲームを作成しており、ビデオをストリーミングするためのネイティブ キャプチャ機能を含めたいと考えています。これを VLC などの標準的なクライアントにストリーミングしたいと思います。これを機能させるには、認識できる形式である必要があり、多重化する必要があります。

したがって、私の質問は、生のビデオ フレームから x264 にエンコードする方法を知っていることです ( x264 C API を使用して一連の画像を H264 にエンコードする方法も参照してください)。生のオーディオ サンプルを ogg/vorbis にエンコードする方法を知っています。では、VLC 用に 1 対 1 を組み合わせるにはどうすればよいでしょうか。

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

python - パラレルポートを介して文字列を表示するためのアドレスとデータの多重化

1か月前、私は4つの7セグメントディスプレイで数値の文字列を多重化することについてこれを尋ねました。しかし今、私はPythonで7つの7セグメントディスプレイを使用して文字列を多重化するようにコードを更新しようとしています。

これが新しい回路です。パラレルポートを使用してデータを送信すると、ラッチイネーブルが最上位ビット(ピン9)を受信します。2番目のラッチでは、ラッチイネーブルもそれを受け取りますが、否定されます。これが7404の理由です。

つまり、アドレスが設定されているか(/ LE == False)、データが設定されています(/ LE = True)。

これが私がやろうとしていることです。「X」は、7セグメントディスプレイがオフになっていることを表します。しかし、それをアーカイブすることはできません。

これは、文字列「STACK0V3RFL0W」の出力になります。

また、過去のコード:

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

private - PubNub のベスト プラクティス: プライベート ルームを管理するには?

私は pubnub を学んでおり、そのドキュメントを読んでいますが、マルチルーム チャット ボックスを管理する方法が見つかりません。

デフォルトでは、チャンネルは誰でも聞くことができます。購読して公開するのは簡単です。

私が望んでいるのは、メインのパブリック ルーム (これまでのところ非常に良い) を持つことですが、他のユーザーに読まれるリスクなしに、誰でも他の誰とでもプライベートに話すことができる必要があります。

これらの動的な部屋にはタブが付けられ、ユーザーはある部屋から別の部屋に移動できる必要があります。

もう 1 つの要件は、誰かとプライベートに話しても、サブスクライブしている他のルームから追い出されないことです (チャット中に別のルームに新しいメッセージが投稿されたことを通知することはできます)。

これを達成するためのベストプラクティスは何ですか?

  • 別のチャネル (動的に作成) を使用しますか?
  • 1 つのチャネルを使用して、ステータス、疑似ルーム ID、または主人公に従ってメッセージをフィルタリングしますか?
  • 多重化 (1 つのソケットのみ) を使用しますか?

ドキュメントは単一の部屋での基本的なシナリオのみを説明しており、これについてはインターネット上には何もないため、これを達成するための最良の方法を知る必要があります.

ありがとうございました。

PS: PubNub が一度に 2 つ以上のチャネルを推奨していないことは知っています (これについての説明を見つけるのに苦労していますが)。

PPS: 私は socket.io で punbub を使用しています

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

http - HTTPパイピングとSPDYを使用したHTTP多重化の違い

GoogleとStackOverflowのおかげで、通常のHTTPパイプラインとHTTP多重化(SPDYなど)の違いを理解できたと思います。次の図を作成して、3つの通常のHTTPリクエストに基づくパイプラインと多重化の違いを示します。

ここに画像の説明を入力してください

私の2つの質問は次のとおりです。

  1. 画像は正しいですか?
  2. パイプラインにヘッドオブラインブロッキングの問題がなければ、HTTP多重化と同じくらい高速になるというのは本当ですか?それとも私は追加の違いを逃しましたか?