gpt4 book ai didi

node.js - 在node.js中获取wpa_supplicant接口(interface)列表

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:05 26 4
gpt4 key购买 nike

我的最终目标是创建一个模块,可以告诉我无线连接设置失败的原因。

目前我正在尝试使用 node-dbus 访问 wlan0 接口(interface)模块。目前 wpa_supplicant 告诉我它不知道 wlan0

'wpa_supplicant knows nothing about this interface.'

非常感谢任何帮助或建议。

代码:

var dbus = require('dbus-native');
var util = require('util');

var bus = dbus.systemBus();
var wpas = bus.getService('fi.w1.wpa_supplicant1');

var wpai = wpas.getInterface('/fi/w1/wpa_supplicant1'
, 'fi.w1.wpa_supplicant1', function (err, iface) {
//console.log(err, iface);

iface.on('PropertiesChanged', function(dict) {
console.log('interface properties have changed!');
console.log(dict);
});

iface.on('InterfaceAdded', function(path, dict) {
console.log('interface has been added!');
console.log(path, dict);
});

iface.on('InterfaceRemoved', function(path) {
console.log('interface has been removed!');
console.log(path);
});

iface.GetInterface('wlan0', function (err, iface2) {
console.log(err, iface2);
});

console.log(util.inspect(iface, true, 3));

});

更新1:

我使用 DBus 属性 API 来调查 Interfaces 属性,发现该属性本身为 null。

wpas.getInterface('/fi/w1/wpa_supplicant1', 'org.freedesktop.DBus.Properties', function(err, device) {
device.GetAll('fi.w1.wpa_supplicant1', function(err, prop) {
var props = arrToMap(prop);
console.log(err,props);
});
});

function arrToMap(arr) {
var output = {};
for (var i = 0; i < arr.length; i++) {
output[arr[i][0]] = arr[i][1][1][0];
}
return output;
}

我唯一的结论是 wpa_supplicant 从未向 dbus 注册任何新接口(interface)。

(我已确保使用终端命令使用 wpa_supplicant 设置了 wlan0)

最佳答案

我设法通过使用 Promise 重写上面的代码来解决我的问题。还需要注意的是,上面的 GetInterface 仅返回 wpa_supplicant 适配器。

需要使用 GetInterface 对此对象进行额外调用才能获取实际的 wlan0 接口(interface)。

如果有人遇到错误“wpa_supplicant 无法获取此接口(interface)”,请尝试删除以下位置的 wlan0 文件:/run/wpa_supplicant/wlan0(如果有)

关于node.js - 在node.js中获取wpa_supplicant接口(interface)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com