| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- // === ENTER NRF.getAddress() results of the couple of
 - // === puck.js devices you want to identify each other
 - const his = "12:34:56:78:9a:bc", hers = "fe:dc:ba:98:76:54";
 - 
 - let me = NRF.getAddress(), other = me===hers ? his : hers;
 - let other_id = `${other} random`;
 - 
 - // heart-beat LED animation sequence
 - let seq = [1,1,0,1,1,0,0,0,0], seq_idx = 0;
 - let anim_interval_id = 0, main_interval_id = 0;
 - let active = false, grace_period = 0;
 - 
 - function anim_step() { // a single heart-beat animation step
 -   digitalWrite(LED1, seq[seq_idx]);
 -   seq_idx = (seq_idx+1)%seq.length;
 - }
 - 
 - // set interval (1/rate) of animation. 0 means stop animation
 - function animate(interval) {
 -   if (anim_interval_id) {
 -     clearInterval(anim_interval_id);
 -     digitalWrite(LED1, 0);
 -     anim_interval_id = 0;
 -   }
 -   if (interval) {
 -     anim_interval_id = setInterval(anim_step, interval);
 -   }
 - }
 - 
 - let main_event;
 - main_event = function() {
 -   if (grace_period) {
 -     grace_period--;
 -     if (!grace_period) {
 -       if (active) {
 -         active = false;
 -         if (main_interval_id) {
 -           clearInterval(main_interval_id);
 -           main_interval_id = 0;
 -         }
 -         console.log("Deactivated");
 -       } else {
 -         active = true;
 -         console.log("Activated");
 -       }
 -       animate(0);
 -     }
 -     return;
 -   }
 -   NRF.requestDevice(
 -     {filters: [{id: other_id}]}
 -   ).then(
 -     function(device) {
 -       let rssi = device.rssi, interval = Math.max(30, 120-3*(rssi+80));
 -       console.log(rssi, interval);
 -       animate(interval);
 -     },
 -     function(e) {
 -       console.log(e);
 -       animate(0);
 -     }
 -   );
 - };
 - 
 - // Button activates/deactivates
 - // Also animates for a grace period:
 - // Slow for activate, fast for deactivate
 - setWatch(function() {
 -   grace_period = 2;
 -   if (active) {
 -     console.log("Deactivating");
 -     animate(20);
 -   } else {
 -     console.log("Activating");
 -     animate(100);
 -     if (!main_interval_id) {
 -       main_interval_id = setInterval(main_event, 3000);
 -     }
 -   }
 - }, BTN, {edge:"rising", debounce:50, repeat:true});
 
 
  |