問題タブ [wiimote]

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

python - Python スクリプトによって消費されるために、Wii ボードのフロント ボタンが送信する信号は何ですか?

Wii ボードからの受信メッセージをリッスンし、それらを重みに変換する (さらに既存のダッシュボードに送信する) デーモンを作成しようとしています。これにより、一部の既存の実装が大幅に再利用されます。

上記の実装のコードは、Wii ボードの赤い同期ボタンを押すと正常に動作します (体重が表示されます)。(赤いボタンの代わりに)フロントボタンを使用して同期したいと思います。

Wii ボードはペアリングされ、信頼されています。Wii ボードのアドレスでプログラムを起動し、フロント ボタンを押すと、タイムアウトbluetooth.btcommon.BluetoothError: (112, 'Host is down')が発生します。

何も押さなくても同じ結果が得られます。繰り返しますが、赤いボタンを押すと問題なく動作します。

赤いボタンはペアリング用で、それ以降使わないという印象でした(これはWiiの挙動です)。フロントボタンは、接続を開始するために使用されます。

上記の失敗した呼び出しは、Wii ボードがフロント ボタンを介して送信できるものを期待していますか? 言い換えれば、このボタンは赤い同期ボタンを置き換えることができますか? また、どのような条件下で?

注: この質問は境界 SO と互換性があることを認識しています。Pythonデーモンを作成/改善しようとしていますが、Bluetoothの知識が不足しているため、ここに記載しました。どこかに移動した方がよいと思われる場合は (SU? RPi?)、お知らせください。

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

python - サブプロセスを使用していない場合、Python で stderr を読み取るにはどうすればよいですか?

私は cwiid ライブラリを使用しています。これは C で記述されたライブラリですが、Python で使用されています。このライブラリを使用すると、Wiiリモコンを使用してロボットのモーターを制御できます。コードは、モニター、キーボード、またはマウスのない組み込みデバイスでデーモンとして実行されます。

オブジェクトを初期化しようとすると:

99% の確率ですべてが機能しますが、ときどき、ライブラリが何らかの奇妙な状態になり、 への呼び出しによって、ライブラリが「ソケット接続エラー (制御チャネル)」cwiid.Wiimote()を stderr に書き込み、python が例外をスローします。 . これが発生すると、後続のすべての呼び出しで同じことが stderr に書き込まれ、デバイスを再起動するまで同じ例外がスローされます。cwiid.Wiimote()

私がやりたいことは、この問題を検出し、Python にデバイスを自動的に再起動させることです。

cwiid ライブラリが奇妙な状態にある場合にスローする例外の種類もRuntimeErrorです。これは、接続タイムアウト例外 (非常に一般的です) と変わらないため、そのように区別することはできないようです。やりたいことは、実行直後に stderr を読み込んで、 「Socket connect error (control channel)」cwiid.Wiimote()というメッセージが表示されるかどうかを確認し、表示されている場合は再起動することです。

これまでのところ、stderr をリダイレクトして、いくつかのメソッドos.dup()os.dup2()メソッドを使用してメッセージが表示されないようにすることができますが、stderr の読み取りには役立たないようです。

オンラインの例のほとんどは、サブプロセスで何かを実行している場合の stderr の読み取りを扱っていますが、この場合は当てはまりません。

stderr を読み取って、書き込まれているメッセージを検出するにはどうすればよいですか?

私が探しているのは次のようなものだと思います:

しかし、これは私が思うようには機能しないようです。

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

uwp - HidDevice.FromIdAsync は readwrite で null を返します

ライブラリをクラシック デスクトップから UWP に移植しようとしています。1つのことを除いて、すべてが計画どおりに機能します。デバイス (Wiimote) への HID 接続を開こうとすると、アクセス許可が読み取り書き込みになっていると接続できません。読み取り専用権限で機能します。

何が問題になる可能性があります。マニフェストのアクセス許可が正しい値に設定されています。

編集: DeviceAccessStatus をチェックして、アクセス許可が適切でないかどうかを確認しましたが、返されますDeviceAccessStatus.Allowed

マニフェスト コード

接続コード