Hi!
I used the next code from ready JS example from Chrome WEB bluetooth API to send bytes to BLE app UART example.
Connection is established ok.
But I can't send data from function due to error: DOMException: GATT operation not permitted.
Please tell me how can I fix it? Thank you!
var myCharacteristic; var deviceName; function connect() { let serviceUuid = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"; let characteristicUuid = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"; let characteristicRx = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"; navigator.bluetooth.requestDevice({filters: [{services: [serviceUuid]}]}) .then(device => { log('Connecting...'); deviceName = device.name; return device.gatt.connect(); }) .then(server => { console.log('Getting Service...'); return server.getPrimaryService(serviceUuid); }) .then(service => { console.log('Getting Characteristic...'); return service.getCharacteristic(characteristicUuid); }) .then(characteristic => { myCharacteristic = characteristic; return myCharacteristic.startNotifications().then(_ => { console.log('> Notifications started'); log("Connected to: " + deviceName); myCharacteristic.addEventListener('characteristicvaluechanged', handleNotifications); }); }) .catch(error => { console.log('Argh! ' + error); }); } function disconnect() { if (myCharacteristic) { myCharacteristic.stopNotifications() .then(_ => { console.log('> Notifications stopped'); log("Disconnected") myCharacteristic.removeEventListener('characteristicvaluechanged', handleNotifications); }) .catch(error => { console.log('Argh! ' + error); }); } } function handleNotifications(event) { let value = event.target.value; log(deviceName + "> " + new TextDecoder().decode(value)); console.log('> Received: ' + new TextDecoder().decode(value)); } function send() { var data = document.getElementById("input").value; log("You> " + data); myCharacteristic.writeValue(str2ab(data+"\n")) document.getElementById("input").value = ""; }