fixes wifi

This commit is contained in:
Sebastian Hildebrandt 2021-02-10 17:13:26 +01:00
parent 14b4892feb
commit c39f52c54f

View File

@ -33,83 +33,94 @@ function wifiQualityFromDB(db) {
return result <= 100 ? result : 100; return result <= 100 ? result : 100;
} }
const _wifi_frequencies = {
1: 2412,
2: 2417,
3: 2422,
4: 2427,
5: 2432,
6: 2437,
7: 2442,
8: 2447,
9: 2452,
10: 2457,
11: 2462,
12: 2467,
13: 2472,
14: 2484,
32: 5160,
34: 5170,
36: 5180,
38: 5190,
40: 5200,
42: 5210,
44: 5220,
46: 5230,
48: 5240,
50: 5250,
52: 5260,
54: 5270,
56: 5280,
58: 5290,
60: 5300,
62: 5310,
64: 5320,
68: 5340,
96: 5480,
100: 5500,
102: 5510,
104: 5520,
106: 5530,
108: 5540,
110: 5550,
112: 5560,
114: 5570,
116: 5580,
118: 5590,
120: 5600,
122: 5610,
124: 5620,
126: 5630,
128: 5640,
132: 5660,
134: 5670,
136: 5680,
138: 5690,
140: 5700,
142: 5710,
144: 5720,
149: 5745,
151: 5755,
153: 5765,
155: 5775,
157: 5785,
159: 5795,
161: 5805,
165: 5825,
169: 5845,
173: 5865,
183: 4915,
184: 4920,
185: 4925,
187: 4935,
188: 4940,
189: 4945,
192: 4960,
196: 4980
};
function wifiFrequencyFromChannel(channel) { function wifiFrequencyFromChannel(channel) {
const frequencies = { return {}.hasOwnProperty.call(_wifi_frequencies, channel) ? _wifi_frequencies[channel] : null;
1: 2412, }
2: 2417,
3: 2422, function wifiChannelFromFrequencs(frequency) {
4: 2427, let channel = 0;
5: 2432, for (let key in _wifi_frequencies) {
6: 2437, if ({}.hasOwnProperty.call(_wifi_frequencies, key)) {
7: 2442, if (_wifi_frequencies[key] === frequency) { channel = key; }
8: 2447, }
9: 2452, }
10: 2457, return channel;
11: 2462,
12: 2467,
13: 2472,
14: 2484,
32: 5160,
34: 5170,
36: 5180,
38: 5190,
40: 5200,
42: 5210,
44: 5220,
46: 5230,
48: 5240,
50: 5250,
52: 5260,
54: 5270,
56: 5280,
58: 5290,
60: 5300,
62: 5310,
64: 5320,
68: 5340,
96: 5480,
100: 5500,
102: 5510,
104: 5520,
106: 5530,
108: 5540,
110: 5550,
112: 5560,
114: 5570,
116: 5580,
118: 5590,
120: 5600,
122: 5610,
124: 5620,
126: 5630,
128: 5640,
132: 5660,
134: 5670,
136: 5680,
138: 5690,
140: 5700,
142: 5710,
144: 5720,
149: 5745,
151: 5755,
153: 5765,
155: 5775,
157: 5785,
159: 5795,
161: 5805,
165: 5825,
169: 5845,
173: 5865,
183: 4915,
184: 4920,
185: 4925,
187: 4935,
188: 4940,
189: 4945,
192: 4960,
196: 4980
};
return {}.hasOwnProperty.call(frequencies, channel) ? frequencies[channel] : null;
} }
function ifaceListLinux() { function ifaceListLinux() {
@ -178,11 +189,13 @@ function wpaConnectionLinux(iface) {
const cmd = `wpa_cli -i ${iface} status 2>&1`; const cmd = `wpa_cli -i ${iface} status 2>&1`;
try { try {
const lines = execSync(cmd).toString().split('\n'); const lines = execSync(cmd).toString().split('\n');
const freq = util.toInt(util.getValue(lines, 'freq', '='));
return { return {
ssid: util.getValue(lines, 'ssid', '='), ssid: util.getValue(lines, 'ssid', '='),
uuid: util.getValue(lines, 'uuid', '='), uuid: util.getValue(lines, 'uuid', '='),
security: util.getValue(lines, 'key_mgmt', '='), security: util.getValue(lines, 'key_mgmt', '='),
freq: util.getValue(lines, 'freq', '='), freq,
channel: wifiChannelFromFrequencs(freq),
bssid: util.getValue(lines, 'bssid', '=').toLowerCase() bssid: util.getValue(lines, 'bssid', '=').toLowerCase()
}; };
} catch (e) { } catch (e) {
@ -481,7 +494,7 @@ function wifiConnections(callback) {
const ssid = nmiDetails.ssid || wpaDetails.ssid; const ssid = nmiDetails.ssid || wpaDetails.ssid;
const network = networkList.filter(nw => nw.ssid === ssid); const network = networkList.filter(nw => nw.ssid === ssid);
const nmiConnection = nmiConnectionLinux(ssid); const nmiConnection = nmiConnectionLinux(ssid);
const channel = network && network.length && network[0].channel ? network[0].channel : null; const channel = network && network.length && network[0].channel ? network[0].channel : (wpaDetails && wpaDetails.channel ? wpaDetails.channel : null);
const bssid = network && network.length && network[0].bssid ? network[0].bssid : (wpaDetails && wpaDetails.bssid ? wpaDetails.bssid : null); const bssid = network && network.length && network[0].bssid ? network[0].bssid : (wpaDetails && wpaDetails.bssid ? wpaDetails.bssid : null);
if (ssid && bssid) { if (ssid && bssid) {
result.push({ result.push({