1

件名はそれをすべて言います:

JavaScript アプリは、Leap Motion デバイスが接続されているかどうかをどのように検出できますか。

Leap Motion デバイスをあるコンピューターから別のコンピューターに移動するのはとても簡単ですが、現在コンピューターに接続されているデバイスがあるかどうかを JavaScript アプリがどのように検出できるのでしょうか?

2013-08-08 更新

Dmitry の研究が示しているように、この記事の執筆時点では、JavaScript アプリが Leap Motion デバイスがアプリの読み込み時に接続されているかどうかを知る簡単な方法がないため、この質問に回答済みのマークを付けました。

4

2 に答える 2

2

これは、使用可能なオペレーティング システム API とドライバーによって異なります。デバイスがコンピュータに接続されている場合、オペレーティング システムはそのソケットの 1 つに接続されているデバイスを検出できます (IRQ、ポーリングなどを使用)。その後、ドライバーまたは OS API (この種のデバイスをネイティブにサポートしている場合) を使用して、デバイスの状態を確認できます。これは通常、C++、C、またはアセンブリ言語などのより低レベルのプログラミング言語を使用して行われるため (javascript はいくつかの理由で適していません)、javascript API リファレンスを確認する必要があります (ブラウザ API、Win8 API、または何か他のもの)、関連する機能があるかどうかを確認します。

更新: あなたが送信した API リンクは、それについてかなり曖昧なようです。ただし、フードの下でローカルホストへの WebSocket 接続を確立することがわかりました。関数は実際には手続きです(Controller.connect()何も返さない)。しかし、より便利なリンクを見つけました (開始: http://js.leapmotion.com/start )。次のようなさまざまなイベントの説明があります。

  • deviceConnected - Leap デバイスが接続されました
  • deviceDisconnected - Leap デバイスが切断されました

この場合、述語の代わりにコールバックを使用できます。

function doMyOwnStuff()
{
      console.log( "O_o" );
}

var controller = new Leap.Controller();

controller.on('deviceConnected', function() {
  console.log("A Leap device has been connected.");
  doMyOwnStuff();
});

controller.on('deviceDisconnected', function() {
  console.log("A Leap device has been disconnected.");
});

//should probably fire a 'deviceConnected'
controller.connect();

テストするハードウェアがないため、お役に立てば幸いです。

于 2013-07-27T07:36:22.360 に答える