-
Notifications
You must be signed in to change notification settings - Fork 1
/
listen-notification.js
58 lines (55 loc) · 1.65 KB
/
listen-notification.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
'use strict'
const noble = require('noble')
noble.on('stateChange', state => {
console.log('state change', state)
if (state === 'poweredOn') {
noble.startScanning()
} else {
noble.stopScanning()
}
})
noble.on('discover', peri => {
noble.stopScanning()
const ad = peri.advertisement
console.log("ad name: ", ad.localName)
if (ad.localName == "ESP_GATTS_SWITCH") {
console.log("found target esp")
peri.connect(error => {
console.log("conected")
if (error) {
console.log("connection error:", error)
}
peri.discoverServices([], (error, services) => {
if (error) {
console.log("discover service error", error)
}
services.forEach(service => {
console.log("service uuid: ", service.uuid)
if (service.uuid == "ff") {
console.log("ff")
service.discoverCharacteristics([], (error, charas) => {
if (error) {
console.log("discover characteristics error", error)
}
charas.forEach(chara => {
console.log("found chara: ", chara.uuid)
if (chara.uuid == "ff01") {
chara.notify(true, (error) => {
if (error) {
console.log('listen notif error', error)
} else {
console.log('listen notif')
}
})
chara.on('data', (data, isNotif) => {
console.log('receoved notif', data, isNotif)
})
}
})
})
}
})
})
})
}
})