Dartを利用します。
型があるので、保管機能を利用することができます。Crt+Space するだけで、何ができるのかが判断できて便利です。
欠点としては、Dartium のWebBluetoothへの対応が微妙なの事です。dart:jsで変換しないと、動作確認ができません。しかし、Dart DDC対応が完了すれば、この問題もなくなります。なので、今だけの問題といえるでしょう。
# Batteryサービスから、残量を取得してみる
とりあえず、Web Bluetooth x Dart で、HelloWorldをしてみる。BLE Peripheral Simulator(https://github.com/WebBluetoothCG/ble-test-peripheral-android) は、Web Bluetooth の通信の実験相手をしてくれます。
とっても便利です。
ソースも公開されていますから、中身を見ながら、理解を深める事ができます。
BLE Peripheral Simulator の Batteryサービスから、バッテリー残量を取得して見ましょう。
※ BLE Peripheral Simulator は、GooglePlay からダウンロードできます。
https://play.google.com/store/apps/details?id=io.github.webbluetoothcg.bletestperipheral
※ chrome://flags よりWeb Bluetoothを有効にしてください。
===
Source
https://github.com/firefirestyle/ebook_webbluetooth_with_dart/tree/master/memo/test/hello
import 'package:angular2/core.dart'; import 'dart:html' as html; import 'bt.dart' as b; import 'dart:typed_data'; @Component(selector: 'my-app', template: """ <h1>Hello {{name}}</h1> <div> <div *ngFor='let v of logs'>{{v}}</div> </div> <button (click)='onClick()'>Click</button> """ ) class AppComponent { var name = 'Angular'; List<String> logs = []; log(String l) { print(l); logs.add(l); } onClick() async { b.Bluetooth bluetooth = b.getBluetooth(); b.BluetoothDevice device = await bluetooth.requestDevice({ "filters": [{ "services": ['battery_service']}]}); log("name : ${device.name}"); log("id : ${device.id}"); b.BluetoothRemoteGATTServer server = await device.gatt.connect(); log("server.connected : ${server.connected}"); b.BluetoothRemoteGATTService service = await server.getPrimaryService('battery_service'); log("service.isPrimary : ${service.isPrimary}"); log("service.uuid : ${service.uuid}"); b.BluetoothRemoteGATTCharacteristic chara = await service.getCharacteristic('battery_level'); log("service.uuid : ${chara.uuid}"); ByteData buffer = await chara.readValue(); log("service.value : ${buffer}"); log("service.value : ${buffer.lengthInBytes}"); log("service.value : ${buffer.buffer.asUint8List()}"); } }
===
参考
Web Bluetooth Draft Community Group Report, 27 January 2017
Implementation Status
https://github.com/WebBluetoothCG/web-bluetooth/pull/239
https://webbluetoothcg.github.io/web-bluetooth/scanning.html
PS
個人的に、ネタを集めて、WebBluetoothについて、まとめる予定
たぶん以下で
0 件のコメント:
コメントを投稿