0

Web-Bluetooth API 経由でデバイスに接続しました。これで、16 進文字列がデバイスに送信されました: 01113704B00000313233343132160506155001DB. この 16 進文字列をデバイスに正しく送信できません。この 16 進数をデバイスに送信するにはどうすればよいですか?

hex-to-array-buffer (NPM プラグイン) を使ってみて、自分でメソッドを書きました。それらは機能しません。

これが私のコードです:

import React from 'react';
import './App.css';
const hexToArrayBuffer = require('hex-to-array-buffer')


function App() {
  const openBLE = () => {
    navigator.bluetooth.requestDevice({
      filters: [{
        services: ['6e400001-b5a3-f393-e0a9-e50e24dcca9e']
      }]
    })
    .then(device => { 
      console.log('Begin to connect')
      return device.gatt.connect()
    })
    .then(server => {
      // Getting Battery Service...
      console.log('Connect to GATT server')
      return server.getPrimaryService('6e400001-b5a3-f393-e0a9-e50e24dcca9e');
    })
    .then(service => {
      console.log('Get characteristic')
      return service.getCharacteristic('6e400003-b5a3-f393-e0a9-e50e24dcca9e');
    })
    .then(characteristic => {
      console.log('Write characteristic')
      const buffer = hexToArrayBuffer('01113704B00000313233343132160506155001DB')
      return characteristic.writeValue(buffer); 
    })
    .catch(error => { console.log(error); });
  }
  return (
    <div className="App">
      <button onClick={ openBLE } >hello</button>
    </div>
  );
}

export default App;
4

1 に答える 1