Track the local ip address of the wlan0 interface and report information to the BLE service.
This commit is contained in:
parent
7d5f6c6601
commit
3af05e442d
|
@ -22,6 +22,7 @@ const bleno = require('bleno')
|
||||||
|
|
||||||
|
|
||||||
let currentWifi = 'disconnected'
|
let currentWifi = 'disconnected'
|
||||||
|
let currentAddr = null
|
||||||
let getState
|
let getState
|
||||||
|
|
||||||
const chars = []
|
const chars = []
|
||||||
|
@ -78,6 +79,7 @@ function onWifiWrite (data, offset, withoutResponse, callback) {
|
||||||
return callback(result)
|
return callback(result)
|
||||||
}
|
}
|
||||||
currentWifi = ssid
|
currentWifi = ssid
|
||||||
|
currentAddr = getIp()
|
||||||
log.info(`Connected to AP`, { ssid : ssid })
|
log.info(`Connected to AP`, { ssid : ssid })
|
||||||
result = bleno.Characteristic.RESULT_SUCCESS
|
result = bleno.Characteristic.RESULT_SUCCESS
|
||||||
return callback(result)
|
return callback(result)
|
||||||
|
@ -96,6 +98,7 @@ function onWifiRead (offset, callback) {
|
||||||
}
|
}
|
||||||
wifiRes.available = list
|
wifiRes.available = list
|
||||||
wifiRes.current = currentWifi
|
wifiRes.current = currentWifi
|
||||||
|
wifiRes.ip = currentAddr
|
||||||
log.info('Discovered available APs', { found : list.length })
|
log.info('Discovered available APs', { found : list.length })
|
||||||
data = new Buffer(JSON.stringify(wifiRes))
|
data = new Buffer(JSON.stringify(wifiRes))
|
||||||
callback(result, data.slice(offset, data.length))
|
callback(result, data.slice(offset, data.length))
|
||||||
|
@ -133,6 +136,23 @@ function spoofMac () {
|
||||||
return MACTMP
|
return MACTMP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getIp () {
|
||||||
|
let addr = null
|
||||||
|
let ipv4
|
||||||
|
const ifaces = os.networkInterfaces()
|
||||||
|
if (ifaces && ifaces.wlan0) {
|
||||||
|
ipv4 = ifaces.wlan0.filter(iface => {
|
||||||
|
if (iface.family === 'IPv4') {
|
||||||
|
return iface
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (ipv4.length === 1) {
|
||||||
|
addr = ipv4.address
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return addr
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function capitalize (s) {
|
function capitalize (s) {
|
||||||
return s[0].toUpperCase() + s.slice(1)
|
return s[0].toUpperCase() + s.slice(1)
|
||||||
|
@ -186,6 +206,7 @@ class BLE {
|
||||||
return log.error('wifi.getNetwork', err)
|
return log.error('wifi.getNetwork', err)
|
||||||
}
|
}
|
||||||
currentWifi = ssid
|
currentWifi = ssid
|
||||||
|
currentAddr = getIp()
|
||||||
log.info('wifi.getNetwork', {ssid : ssid})
|
log.info('wifi.getNetwork', {ssid : ssid})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue