-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathwifimanager.js
More file actions
88 lines (75 loc) · 1.68 KB
/
wifimanager.js
File metadata and controls
88 lines (75 loc) · 1.68 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
'use strict';
let wifi = require('Wifi');
let credentials;
let availableSSIDS = [];
let onConnect;
export function init(options) {
//Initialization
credentials = options.credentials;
onConnect = options.onConnect;
connect();
}
function reset() {
wifi.reset(handleReset);
}
function callCallback(){
if(onConnect) {
onConnect();
}
}
function connect() {
var ssid = nextSSID();
var passphrase = credentials[ssid];
while(passphrase === undefined) {
ssid = nextSSID();
passphrase = credentials[ssid];
if(ssid === undefined) {
break;
}
}
if(ssid === undefined) {
getAPs();
} else {
console.log("Connecting to..", ssid);
wifi.connect(
ssid,
{password: passphrase},
handleConnect);
}
}
function handleReset(error){
if(error){
console.log("handleReset(): ", error);
} else {
console.log("WiFi Reset...");
getAPs();
}
}
function getAPs(){
console.log("Getting List of Access Points...");
wifi.scan(handleGetAPs);
}
function handleGetAPs(aps){
availableSSIDS = aps.map(function(ap){ return ap.ssid; });
connect();
}
function handleConnect(error) {
if(error) {
console.log("handleConnect(): ", error);
connect();
} else {
console.log("Connected to WiFi...");
wifi.getIP(handleGetIP);
callCallback();
}
}
function handleGetIP(error, ipAddress) {
if(error) {
console.log("handleGetIP(): ", error);
} else {
console.log("Current IP Address: ", ipAddress);
}
}
function nextSSID(){
return availableSSIDS.shift();
}