問題タブ [cbperipheral]
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.
ios - Swift で BLE のアドバタイズと検出に失敗しました
次のようにBLEを宣伝しようとしています
でペリフェラルを発見したい
ただし、didDiscoverPeripheral メソッドは呼び出されません。私は 2 つの IPhone5 でテストしています。誰が私が間違っているのか教えてもらえますか?
ios - didUpdateNotificationStateForCharacteristic で CBcharacteristics 値を取得できません
正常に接続されている BLE デバイスを使用しています。この場合、文字列「GET DATA」を BLE デバイスに送信すると、デバイスは特定の応答を返すことで応答します。didDiscoverCharacteristicsForService を使用して writeValue ("GET DATA") を実行しています。didUpdateNotificationStateForCharacteristic のデータを期待していますが、毎回応答があります。
ios - ペリフェラル:didUpdateValueForCharacteristic: 呼び出しが非常に高速であるため、UITextView がブロックされる
からのデータを追加して、UITextView にデータを表示しようとしていますperipheral:didUpdateValueForCharacteristic:error:。この場合peripheral:didUpdateValueForCharacteristic:error:、 が非常に頻繁に呼び出されるため、UITextView( self.responseTextView) はデータを出力できないか、UI をブロックします。
ios - 単一の iOS アプリから BLE マルチ広告を行うには?
私は、BLE のマルチアドバタイズメントを行う必要がある 1 つの iOS アプリに取り組んでいます。の 2 つのインスタンスを作成し、2CBPeripheralManagerつの異なるアドバタイズ パケットを同時にアドバタイズしようとしましたが、機能しません。
誰かがこのタスクを実行する方法を提案できますか? 別の中央 (スキャナー) アプリから、2 つの異なる広告を取得する必要があります。
ios - 接続後に iOS CoreBluetooth がローカルのperipheral.nameを失う
iOSでCoreBluetoothを使用してBluetoothアプリを構築しています。アプリが起動されるたびに、ユーザーは Peripheral の LocalNameKey に保存されている ID を受け取り、それを使用してアドバタイズを開始し、CentralManager を使用して他のユーザーの検索を開始します。すべてのユーザーはローカル名で識別され、それで問題ありません。
CentralManager を使用すると、すべてのユーザーが別のユーザーの Peripheral の特性に値を書き込み、変更について通知することができます。それも機能しています。ここで問題が発生します。接続が完了し、Peripheral が didRecieveWriteRequests メソッドを実行した後、CBPeripheralManager と CBCentralMange の両方がリセットされ、再初期化されます。その後、Peripheral の LocalNameKey は特定の ID ではなく、iPhone の指定された名前または (null) になります。それはアプリの全体的なアイデアを台無しにしますが、私はそれができると確信しています.
Bluetoothをオフにしてオンにすると、再び機能します。
これは、接続後にCentralをクリーンアップする方法です:
これは、ブルートゥースのセントラルとペリフェラルを再初期化する方法です:
ios - CBPeripheral デバイスにコマンドを書き込む方法は?
2 つのモジュールを持つ BLE デバイスがあります
1-Blue Tooth (BlueCreation BC127A) 2-MicroController が接続されており、LOGIN RESET VERSION などのコマンド セットがあります。
uCと通信するBLEにコマンドを書きたいです。
私の仕様/ドキュメントに従って、パケット構造は次のようになります。
BLE で正確なコマンドを書き込むと、「値の長さが無効です」というエラーが表示されます。
ドキュメントによると、そのパケット長は 17 ですが、sizeof(byte)/sizeof(char); を取得すると間違っていると思います。4 を取得します。両方の値を使用しましたが、肯定的な応答を得ることができませんでした。
コマンドを正常に記述してこの問題を克服するには、助けが必要です。これは、BlueTooth を統合した最初のプロジェクトです。
私のコード 次のパケット構造 私のコマンド LOGIN は次のようになります。
ありがとう。
ios - 初めて BLE ペリフェラル名を設定する方法と時期
ハードウェア上のペリフェラル名の変更:
- BLE ペリフェラル名はいつ、どのように変更できますか?
- これはファームウェアに書き込む必要があるものですか?もしそうなら、どのように?
私はいくつかの iOS クライアント コードを見て、CBPeripheralを使用して、CoreBluetooth ライブラリを使用して BLE 周辺機器を検出しています。名前フィールドに変更可能な名前「mm24 iPad」(iTunes から変更できます) が含まれている iPad の広告が表示されます。
各 BLE ペリフェラルは、製造時にデフォルト名で構成し、後で BLE API を使用して変更できるのではないかと思います。これは正しいです?
ios - CBCentralManager didFailToConnectPeripheral
OS X (10.10) および iOS 8 用のアプリを開発して、BLE 周辺機器とメッセージを交換しています。アプリが周辺機器を見つけて接続し、メッセージを送信し、最後に切断して、周辺機器が他のデバイスから自由にアクセスできるようにしたいと考えています。次の特定の重要な状況を除いて、すべて正常に動作します: BLE デバイスをスキャンし、デバイスを見つけましたが、送信するメッセージがないため、デバイスに接続しません。それから私は(範囲外に)立ち去るか、単に周辺機器の電源を切ります。私はまだ CBPeripheral を var に保存しており、それに接続しようとしています。もう一度スキャンを開始できるようにメソッド centralManager:didFailToConnectPeripheral:error: を呼び出したいのですが、何も起こりません。
centralManager:didConnectPeripheral が正常に動作しています。ドキュメントには、Bluetooth 接続要求がタイムアウトしないことが記載されているため、他にどのような問題が接続障害につながる可能性があるのか 疑問に思っていました