im totally new with Puck.js and Javascript at all but I'm trying to advertise a own private Characteristic with 2 Services.
One service to controll the LEDs from the Puck from a external device and the other service for button state from Puck.
First Service is writable from external device, the second one is just readable but with notifications.
var timeout;
function flag() {
if (timeout) clearTimeout();
LED1.set();
timeout = setTimeout(function() {
timeout = undefined;
LED2.set();
},2000);
}
//setWatch(flag, BTN, {repeat:true});
// New code to define services
NRF.setServices({
"3e440001-f5bb-357d-719d-179272e4d4d9": {
"3e440002-f5bb-357d-719d-179272e4d4d9": {
value : [0],
maxLen : 1,
writable : true,
onWrite : function(evt) {
// When the characteristic is written, raise flag
flag();
}
}
}
}, { uart : false });
// Change the name that's advertised
NRF.setAdvertising({}, {name:"BTN"});
console.log("CONTROL BUTTON");
That code works, if I'm writing into the service the LED1 rises. But i want to check what value is transmitted. But I cant find any documentation about NRF.setServices so I dont know how to read out the value.
How do I make the second service with button state?
A bit off topic question: As I saw the Puck only can connect with one device at once, thats ok but later I want that the code is execute during boot, is it still possible to access from Espruino IDE then?
EDIT: Okay, I found that code:
digitalWrite([LED3,LED2,LED1], evt.data[0]); which reads the value and works fine. But how to do the second task?
Also: I need to restart iPhone (use BLE Scanner) after changing the Services. Otherwise it will not displayed. Very irritating. Is there a workaround?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Hi,
im totally new with Puck.js and Javascript at all but I'm trying to advertise a own private Characteristic with 2 Services.
One service to controll the LEDs from the Puck from a external device and the other service for button state from Puck.
First Service is writable from external device, the second one is just readable but with notifications.
That code works, if I'm writing into the service the LED1 rises. But i want to check what value is transmitted. But I cant find any documentation about NRF.setServices so I dont know how to read out the value.
How do I make the second service with button state?
A bit off topic question: As I saw the Puck only can connect with one device at once, thats ok but later I want that the code is execute during boot, is it still possible to access from Espruino IDE then?
EDIT: Okay, I found that code:
digitalWrite([LED3,LED2,LED1], evt.data[0]); which reads the value and works fine. But how to do the second task?
Also: I need to restart iPhone (use BLE Scanner) after changing the Services. Otherwise it will not displayed. Very irritating. Is there a workaround?