問題タブ [l2cap]
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.
sockets - L2CAP ソケットでの再送信のキャンセル
C Bluetooth プログラミング (Linux Bluez) で私が抱えている問題について誰かが私を助けてくれるかどうか疑問に思っていました。Ubuntu 10.04、BlueZ 4.60 を使用しています。私の目標は、2 台のコンピューター間でデータを送信する際の遅延が最小限になる L2CAP ソケットを用意することです。これまでのところ、L2CAP ソケットを開くことができましたが、このソケットには無限の再送信があり、変更しようとしています。データを最小限の遅延で高速に転送する必要があり、データの信頼性は重要ではないため、再送信をまったく行いません。
ソケットのフラッシュタイムアウトの変更を扱うオンラインの例を見つけました。これにより、パケットが一定時間後に確認応答されない場合、パケットがドロップされ、バッファー内の次のデータが送信されます。問題は、この例が機能しないことです:-(
これが私のコードです。このメソッドは bind コマンドの後に呼び出されます。
int set_flush_timeout(bdaddr_t *ba, int timeout)
{
int err = 0, dd, dev_id;
struct hci_conn_info_req *cr = 0;
struct hci_request rq = { 0 };
私の間違いは何ですか?私の問題を解決する別のオプションを知っている人はいますか。コード例も素晴らしいでしょう!!
ありがとう!!
android - Android Bluetooth l2cap ソケット bind()
Android バージョン: 2.3.7
カーネル バージョン: 2.6.35-14-CyanogenMod-Arco-Kalim arco@tuxbox #1
Mod バージョン: CyanogenMod-7.1.0.1-クリック
デバイスは完全にルート化されています。
プロジェクトにコードを追加しました
これは、hidd.c の Bluez Utils から取得したものです。
コードは次のとおりです。
bind()
戻り続け-1
ます。
DisablePlugins = input
Android デバイスの Bluetooth 設定にline( ) を追加しました
/system/etc/bluetooth/main.conf
私が持っている情報は次のとおりです。
sk:37
(struct sockaddr *) &addr=0x44597e90
sizeof(addr)=12
errno:13
理由: 権限が拒否されました。
誰でも助けることができますか?さらに詳しく知りたい場合は、お気軽にお知らせください。
android - デスクトップPCからAndroidデバイスへのBluetooth接続のテスト方法
Bluetoothドングルを搭載したUbuntu11.10デスクトップPCと、Bluetoothを搭載したAndroid2.2を使用したAndroidタブレットを使用しています。(両方のデバイスのBluetoothはバージョン2.0または2.1である必要があります)
デスクトップPCとAndroidタブレットの両方がBluezStackを使用していることを確認しました。2つのデバイスをペアリングでき、次のコマンドを使用してデスクトップからAndroidタブレットにpingを実行できます(l2capプロトコルを使用)。
ただし、次のコマンドを使用してrfcommを使用してデスクトップをAndroidタブレットに接続しようとすると、エラーが発生します。
デスクトップPCのBluetoothはl2capとrfcommの両方をサポートし、AndroidタブレットのBluetoothは少なくともl2capをサポートする必要があると思います。
l2pingコマンドが正常に実行されたことは、Bluetoothを介してデスクトップPCとAndroidタブレットの間に有効な通信があることを示しているのでしょうか。2つのデバイス間のBluetooth通信をテストするために(l2capまたはrfcommのどちらを使用して)接続を確立するにはどうすればよいですか?
java-me - Bluetooth L2Cap を使用して HID デバイスに接続する
JAVA ME で L2CAP を使用して HID デバイスに接続するための回避策はありますか (BlueCove などではなく、モバイル デバイスにネイティブな JSR-82 仕様の実装を使用します)?
HID デバイスは通常、値が 0x0011 の PSM (Protocol Service Multiplexor) を使用することを知っています。残念ながら、私が見つけたように:
正当な PSM 値は範囲 (0x1001..0xFFFF) 内にあり、最下位バイトは奇数で、他のすべてのバイトは偶数でなければなりません。
javax.microedition.io.Connector connect()
上記は、次のコードを試したときにメソッドが例外をスローする理由を説明しています。
windows - WindowsからのBluetoothAVRCP制御
Androidフォンと車のPCの間にAVRCP/A2DP接続を実装しようとしています。A2DPビットは基本的に箱から出して動作するので問題はありません。PCをAVRCPCT(コントローラー)とA2DPシンクにしたい。電話はAVRCPTG(ターゲット)およびA2DPソースです。
私が問題を抱えているのは、使用できるあらゆる種類のAVRCP接続を取得することです。Windows 7には、少なくとも基本的な再生/一時停止/スキップ/停止タイプの機能を提供するツールバーアプリケーションが付属しています。したがって、追加のドライバなどを使用しなくても、私が持っているソフトウェアで確実に動作します。しかし、私の検索では、これを行う方法や、必要だと思うL2CAP接続の作成に関するドキュメントについてはほとんど結果が得られませんでした。
Broadcom / Widcommスタックを使用しない限り、32feet.NETライブラリはL2CAP接続をサポートしません。新しいBTUSBデバイスを購入することは実行可能な解決策かもしれませんが、現時点ではこれをすべてソフトウェアで実行しようとしています:)。つまり、このように、解決されなかった(または解決されたと報告された)問題がありますが、リンク:Widcomm SDKのL2CAPを使用して、Windows 7(コントローラー)から電話(ターゲット)へのAVRCP接続を確立するにはどうすればよいですか?
可能であればC#で実行したいのですが、コードとインターフェイスするための何らかのライブラリがあれば、それで問題ありません(32feet.NETライブラリは、動作するものに対して非常にうまく機能します)。
これは私が持っているものに最も近いものですが、私には少しギリシャ語であり、私を始めるには十分ではありません(私は埋め込まれた男です):http: //msdn.microsoft.com/en-us/library/ windows / hardware / ff536674(v = vs.85).aspx
Bluetoothは本当にWindowsで非常に混乱しているので、私の検索からのように見えますか?APIなどの点ですべてが大幅に異なるように見える複数の異なるスタックがあります。
誰かが私を正しい方向に向けることができますか?私はここや他の場所で他の投稿をたくさん検索/読んだことがありますが、実際には何の進歩もありませんでした。
ありがとう
キリスト教徒
android - L2CAP を使用して Bluetooth HID デバイス (マウス) に接続する
L2CAP を使用して HID デバイス (マウス) に接続する方法を探しています。これは Android アプリ用です。しかし、接続を受け入れるときにエラーが発生します。リフレクションを使用してソケットを作成しています。しかし、これには何か問題があります。この方法で L2CAP を使用して HID デバイスに接続する Android のサンプル コードを教えてください。
android - Android Bluetooth l2cap connectNative java.io.IOException: 無効な引数
私は Android 用の Bluetooth アプリを作成しています。リフレクションで Android l2cap API を使用しています。しかし、一部のデバイスでエラー レポートが表示されました (一部のデバイスでは正常に動作します)。
では、何が問題なのですか?
bluetooth - BlueZ で L2CAP ストリーミング モードを設定する
ストリーミング モードを有効にして、BlueZ で単純な L2CAP 接続を作成する必要があります。モードを切り替える方法を知っている人はいますか?現在、接続で再送信が有効になっているため、すべての再送信をキャンセルする必要があります。
bluetooth - HCIソケットを介したL2CAP接続?
L2CAP にアクセスする通常の方法は、L2CAP ソケットを作成し、connect()
それを呼び出して、アクセスしたい Bluetooth デバイスに接続することです。これは通常、完全に正常に機能します。ただし、Linux カーネル 3.0 を搭載した ARM デバイスでこれを実行しようとしていますが、最後に作成されたチャネルのすべてのデータがダウンしない限り、複数の L2CAP 接続を確立できないという厄介なバグがあるようです。(つまり、2 つの l2cap ソケットを備えた 2 つの Bluetooth センサーに接続すると、両方のデバイスのすべての通知は最後に開いたソケットを介して送信され、最初に開いたソケットには何も送信されません。)ただし、HCI ソケットにフィルターを正しく設定すると、次のことができます。 ACL データが適切な接続ハンドルを使用して送信されていることを確認してください。そのため、データを適切に取得できます。
だから... HCIソケットだけを利用するようにコードを変更したいと思います。
私の問題は、方法がわからないことです(または可能かどうかさえも)。L2CAP接続を作成するように見えるHCIの「論理リンク作成コマンド」がありますが、引数は私には意味がありません。LE 経由で HCI 接続を確立すると、2 オクテットの「Connection_Handle」を提供する「接続完了イベント」が返されます。ただし、「論理リンク コマンドの作成」は 1 オクテットの「Physical_Link_Handle」を使用します。