問題タブ [plug-and-play]
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.
language-agnostic - ネットワーク上のデバイスを検出する方法は?
一部のプリンタには、IPアドレスが割り当てられていないデバイスまたはLANに無効なIPがあるデバイスを検出できるCDが含まれています。
私たちは、ユーザーが同じように行動できるようにしたいと考えているアプライアンスを開発しています。それらはネットワーク上でアプライアンスを接続し、クライアント側から小さなソフトウェアが構成を検出し、ウィザードを起動します...
これどうやってするの?ネットワーク上のデバイスを検出して構成するためのソフトウェアを作成するにはどうすればよいですか?ガイドラインはありますか?
ruby-on-rails - Ruby on Rails でプラグイン アーキテクチャを使用するにはどうすればよいですか?
Ruby on Rails でソーシャル ネットワーキング サイトを構築する必要があります。サイトの機能は随時変更される場合があります。そのため、機能を簡単に追加/削除する必要があります。さらに、別のソーシャル ネットワーキング サイトを構築している可能性もあります。これらの理由から、フレームワークへの拡張機能をインストールまたはアンインストールする機能を備えた、RoR でソーシャル ネットワーキング サイトの基本的なフレームワークを構築することを考えています。
以前は Joomla! で働いていました。拡張機能を追加/削除するための CMS とそのアーキテクチャは、私が見ているもののようなものです。Joomlaで!インストールには通常、拡張機能を追加/削除/カスタマイズできる管理者側があります。
私は RoR に不慣れで、これを行う方法を決定するのは少し難しいと感じています。どんな助けでも大歓迎です。
windows - フラッシュドライブの挿入を検出/インターフェースするためのプラグアンドプレイAPI?
プラグアンドプレイフラッシュドライブが挿入され、Windowsによって検出された後、ユーザー定義プログラムへの呼び出しを提供する方法はありますか?
file - プラグイン USB でファイルを開く
USBをラップトップに接続したときに.jarファイルを開く方法を誰か教えてもらえますか? バッチ ファイルを作成しますか? または何が必要ですか?
Windowsでのみ利用可能であると読んだことがあるので、MACでは不可能です。しかし、Mac でウィンドウを開いて「ここをクリックして開始」と言う方法はありませんか?
したがって、この質問には 2 つの部分があります。
- Windows で USB を接続したときにファイルを開くにはどうすればよいですか?
- Mac で利用できない場合 - 他にどのような可能性がありますか?
ありがとう!
windows - デバイスがシリアル マウスとして誤検出される
(仮想) シリアル ポートを介して PC と通信するデバイスに取り組んでいます。問題は、送信しているデータが Windows によって誤ってバス マウスとして認識されることがあるということです。その後、"Microsoft Serial Ballpoint" ドライバーが読み込まれ、マウス ポインターが画面上を飛び回り、ランダムにクリックし始めます。
少しグーグルで調べると、これはシリアル デバイスの古くてよく知られた問題であることがわかります。通常の回避策は、レジストリをハッキングして、問題のあるドライバーを無効にすることです。ただし、ユーザーからの要求は非常に多いため、アプリケーションがユーザーのレジストリをいじるのは避けたいと思っています。修正が Windows のバージョンに依存しており、ユーザーがバス マウスを使用している可能性がある場合は特にそうではありません。
代わりに、マウスとして誤認される可能性のあるデータを送信しないようにプロトコルを変更することで、問題を回避したいと考えています。唯一の問題は、避けるべきパターンがよくわからないことです。Microsoft のマウス プロトコルは、最初の MSB が設定され、最後の 3 つの MSB がクリアされている 4 バイトのパケットで構成されているようです。
7 ビット ASCII のみを送信するだけで十分でしょうか? として検出されることを心配する必要がある他のデバイスはありますか?
c# - オーディオ デバイスのプラグの抜き差しを検出する方法は?
C#を使用してオーディオデバイスがプラグインおよびアンプラグドされたことを検出する方法は?
dos - プラグアンドプレイ BIOS によるリソース割り当て
プラグ アンド プレイ BIOS 仕様によると、PnP BIOS を使用している場合、ハードウェアを構成できます。
これは、BIOS がすべてのデバイスのリソース要件を読み取り、それらを構成する (それらにバス リソースを割り当てる) ことを意味します。
PnP は、マザーボードに組み込まれている/統合されているデバイスに常にリソースを割り当てます (つまり、I/O またはメモリ アドレスと irq を割り当てます)?
PnP BIOS (つまり、$PnP 構造が存在する) は、mobo (つまり、mobo に組み込まれている/統合されている)およびPCI 拡張カードに存在するすべてのデバイスに常にリソース (I/O およびメモリ アドレス) を割り当てます。
BIOS は非組み込みデバイス (つまり、mobo に組み込まれていないデバイス) を「構成」する方法を知らない可能性があり、mobo 自体に組み込まれている/統合されているデバイスのみを構成しますが、アドレス (I/O およびメモリ) を割り当てる必要があります。 DOS のような非 PnP OS を使用する場合の競合を避けるための irq。
私の質問は:
PnP BIOS は、POST 中、つまり OS ブートローダーに制御をロードして転送する前に、I/O、メモリ アドレス、および irq をPCI 拡張カード デバイスに割り当てる必要がありますか? すべての PnP BIOS に当てはまりますか?
[プラグアンドプレイ OS] オプションが [いいえ] に設定されているとします。つまり、PnP OS はなく、DOS のような非 PnP OS があることを BIOS に伝えました。
一部の BIOS には、このオプションがありません。リソースは常にすべてのデバイス (つまり、組み込みデバイスと拡張スロット上のデバイスの両方) に割り当てられますか?
2012 年 8 月 1 日の更新:
PnP BIOS 仕様 v1a の「システム BIOS POST 要件」というタイトルのセクション 2.1 には、次のように記載されています。
(この投稿に関連する 3 つのポイントのみを説明しました。(*) でマークされた情報は、標準のステートメントの私の解釈です。)
プラグ アンド プレイの目標を達成するために、システム BIOS POST は、以下に示す要件を達成する責任があります。
システム BIOS に認識されているすべての「静的」デバイスの構成:
「最低限」、これにはシステム ボード デバイスが含まれます。また、「プラグ アンド プレイ ISA カード」と、EISA、ISA、PCI、または利用可能なその他のスタティック バス アーキテクチャのいずれかにあるデバイスも「含めることができます」 。
*事実上、上記のステートメントは、任意の静的バス (PCI、ISA、または EISA など) 上のシステム ボードに「組み込まれている/統合されている」デバイスは、BIOS によって「構成されなければならない」ということを示しています。 * システム BIOS プログラマーは、 moboに組み込まれたデバイスをシステム設計の一部として構成するための規定を組み込んでいる必要があります。
これには、「PCI/ISA/EISA カード スロットに取り付けられたカード」も含まれますか?
BIOS POST リソース アービトレーション: システム BIOS は、システム リソースの使用状況を認識する必要があります。ランタイム サービス (後のセクションで説明) を通じて提供される情報と、システム BIOS が認識しているリソース情報を使用することで、重大なリソースの競合を回避できます。「競合するデバイスを無効にしてオペレーティング システムをロードする方が、リソースの競合やシステム障害の可能性を引き起こすよりはましです。」
*これは、mobo または ISA/EISA 拡張カード スロットに組み込まれている/統合されている ISA/EISA デバイスのようです。 PCI デバイスのリソースは、I/O (またはメモリ) アドレス割り当ての両方に関して競合することはできないため(アドレスはPCI デバイス用に配線されていないため、競合しないアドレスを割り当てるために BIOS の「手」にかかっているため)。および irq 割り当て (becoz PCI 割り込みは設計により共有可能です。)、したがって、これは、「すべての」PCI デバイス (組み込みまたは非組み込み) が初期化/割り当てられたメモリまたは I/O アドレスと irq 割り当てであることを意味します。
プラグ アンド プレイおよび非プラグ アンド プレイ オペレーティング システムの両方のサポート: プラグ アンド プレイ システムの BIOS POSTは、「両方」のプラグ アンド プレイ対応および「非プラグ アンド プレイ」オペレーティング システムで動作するようにシステムを構成する必要があります。 system.* 非プラグ アンド プレイ環境では、「システム BIOS 」または適切なシステム ソフトウェア (デバイス ドライバ) の「いずれか」が「すべての」デバイス (プラグ アンド プレイ ISA カード、PCI デバイスなど) を構成する必要があります。これにより、すべての環境が「標準の PC 互換システムとまったく同じようにロード」できるようになります。ただし、プラグ アンド プレイ環境では、システム BIOS はオペレーティング システムを支援して、システム ボード デバイスのランタイム構成や、システム ボード デバイスが変更されたときのイベント認識などの機能を実行できるようになりました。
*仕様のこれら 3 つのステートメントはすべて、非 PnP OS (DOS など) を起動する場合、システム BIOS が「すべて」を構成する (または、少なくともアドレスと irq を割り当てる) 必要があることを示しているようです。マザーボード (mobo) に組み込まれている/統合されているかどうかにかかわらず、PCI デバイス。ISA および EISA デバイスの場合、BIOS はこれらの ISA/EISA デバイス (組み込みまたは非組み込みにかかわらず) のリソースを有効化/割り当ててはなりません。これにより、競合するリソース割り当てが発生します。
仕様の上記のステートメントから結論を下すのは正しいですか。つまり、「BIOS が非 PnP OS を起動する必要がある場合は、システム内の「すべての」PCI デバイス (mobo または PCI 拡張カードスロットに埋め込まれているかどうか) を有効にして (つまり、リソースを割り当てて) 、それらが利用できるようにする必要があります。 OSおよびアプリケーションプログラムで使用するために」?
2012 年 8 月 4 日の更新:
Linux Device Drivers 3rd ed の第 12 章をご覧ください。. 著者は、多くの箇所で、I/O またはメモリ アドレスと IRQ の割り当ては、Linux カーネルが実行を開始する時点で BIOS によって既に行われていることを明示的に言及しており、Linux カーネルは必要に応じて割り当てを調整する場合があります。
私たちが到達しようとしていることについて言及している別のリファレンスかもしれません。
bios - PCIパラレルポートのベースアドレスの特定
DOS用のアプリケーションを開発しています。パラレルポート経由で通信する必要があります。
現在、どの PCI 関数の BAR (ベース アドレス レジスタ) にそのパラレル ポートのベース アドレス (つまり、データ ポート アドレス) が含まれているかを判断する方法に行き詰まっています。:?
正確には、特定の BAR にそのパラレル ポートのベース アドレスが常に含まれるという業界の慣習、標準、またはデファクト スタンダードはありますか?
そうでない場合、その PCI パラレル ポートのベース アドレスを特定するにはどうすればよいですか (PCI 拡張カードまたは mobo に統合されているかどうか)。
実は、私はPCI 拡張カードのパラレル ポートに関心があります。私の知る限り、BIOSはこれらについて知りません。BIOS はリソースを PCI カードにのみ割り当てます。それだけです。そのため、BDA にそのようなパラレル ポートのエントリがない可能性があります。BIOS の製造元は、モボが持つすべてのデバイスについてしか知らないからです。
たとえば、PC では、pci 拡張カードに 4 つのパラレル ポートをインストールしましたが、mobo には 1 つのパラレル ポートが統合されています。他の 2 つのパラレル ポートのエントリはどこに行くのでしょうか?
そのため、BIOS には、チップセットまたはマザーボードに統合された3 つのパラレル ポートのみのエントリがあるようです。したがって、mobo にインストールされている PCI 拡張カードのパラレル ポートのベース アドレスを取得するには、PCI BAR を読み取る必要があると思います。
ありがとう
c# - c# プラグ アンド プレイ イベントを受け取る
Windows で使用されるプラグ アンド プレイ イベント メッセージの処理方法に関する例やドキュメントがあるかどうか疑問に思っていました。理想的には、私が達成しようとしているのは、すべての COM ポートをポーリングするタイマーを使用せずに、アプリケーションがマシンに接続されているデバイスを検出できるようにすることです。これを行うのは非常に非効率的であり、アプリケーションの CPU 使用率が 10 倍になることがわかりました。私のアプリケーションは C# で、現在 .NET 4.0 を利用しています。来月中に .NET 4.5 にアップグレードする予定です。そのため、これを行う方法に関する何らかの文献を見つけるために手を差し伸べています。これは、プラグ アンド プレイ デバイスのサポートを検討する最初の試みであるため、批判はお控えください。
編集: また、このアプリケーションは Windows 7 および Windows XP で実行されます。