Do stations scan/retrieval
This commit is contained in:
parent
5f1d7adaa4
commit
b3da6774ac
2 changed files with 8 additions and 30 deletions
26
main.go
26
main.go
|
|
@ -324,7 +324,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
||||||
|
|
||||||
// Déclencher un scan
|
// Déclencher un scan
|
||||||
wifiInterface := dbusConn.Object(WPA_SUPPLICANT_SERVICE, interfacePath)
|
wifiInterface := dbusConn.Object(WPA_SUPPLICANT_SERVICE, interfacePath)
|
||||||
call := wifiInterface.Call(WPA_INTERFACE_IFACE+".Scan", 0, map[string]dbus.Variant{})
|
call := wifiInterface.Call(WPA_INTERFACE_IFACE+".Scan", 0, map[string]dbus.Variant{"Type": dbus.MakeVariant("active")})
|
||||||
if call.Err != nil {
|
if call.Err != nil {
|
||||||
return nil, fmt.Errorf("erreur lors du scan: %v", call.Err)
|
return nil, fmt.Errorf("erreur lors du scan: %v", call.Err)
|
||||||
}
|
}
|
||||||
|
|
@ -333,8 +333,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
||||||
time.Sleep(2 * time.Second)
|
time.Sleep(2 * time.Second)
|
||||||
|
|
||||||
// Récupérer la liste des BSS
|
// Récupérer la liste des BSS
|
||||||
var bssePaths []dbus.ObjectPath
|
bssePaths, err := wifiInterface.GetProperty(WPA_INTERFACE_IFACE + ".BSSs")
|
||||||
err = wifiInterface.Call(WPA_INTERFACE_IFACE+".Get", 0, WPA_INTERFACE_IFACE, "BSSs").Store(&bssePaths)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("erreur lors de la récupération des BSS: %v", err)
|
return nil, fmt.Errorf("erreur lors de la récupération des BSS: %v", err)
|
||||||
}
|
}
|
||||||
|
|
@ -342,7 +341,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
||||||
var networks []WiFiNetwork
|
var networks []WiFiNetwork
|
||||||
seenSSIDs := make(map[string]bool)
|
seenSSIDs := make(map[string]bool)
|
||||||
|
|
||||||
for _, bssPath := range bssePaths {
|
for _, bssPath := range bssePaths.Value().([]dbus.ObjectPath) {
|
||||||
bss := dbusConn.Object(WPA_SUPPLICANT_SERVICE, bssPath)
|
bss := dbusConn.Object(WPA_SUPPLICANT_SERVICE, bssPath)
|
||||||
|
|
||||||
// Récupérer les propriétés du BSS
|
// Récupérer les propriétés du BSS
|
||||||
|
|
@ -472,26 +471,13 @@ func disconnectWiFiDBus() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getWiFiInterfacePath() (dbus.ObjectPath, error) {
|
func getWiFiInterfacePath() (dbus.ObjectPath, error) {
|
||||||
var interfaces []dbus.ObjectPath
|
var interfacePath dbus.ObjectPath
|
||||||
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".Get", 0, WPA_SUPPLICANT_IFACE, "Interfaces").Store(&interfaces)
|
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".GetInterface", 0, WLAN_INTERFACE).Store(&interfacePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("erreur lors de la récupération des interfaces: %v", err)
|
return "", fmt.Errorf("erreur lors de la récupération des interfaces: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, interfacePath := range interfaces {
|
return interfacePath, nil
|
||||||
wifiInterface := dbusConn.Object(WPA_SUPPLICANT_SERVICE, interfacePath)
|
|
||||||
var ifname string
|
|
||||||
err = wifiInterface.Call(WPA_INTERFACE_IFACE+".Get", 0, WPA_INTERFACE_IFACE, "Ifname").Store(&ifname)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if ifname == WLAN_INTERFACE {
|
|
||||||
return interfacePath, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "", fmt.Errorf("interface %s non trouvée", WLAN_INTERFACE)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func isConnectedDBus() bool {
|
func isConnectedDBus() bool {
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,6 @@ let appState = {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Simulation de données
|
// Simulation de données
|
||||||
const mockWifiNetworks = [
|
|
||||||
{ ssid: "Hotel_WiFi", signal: 4, security: "WPA2", channel: 6 },
|
|
||||||
{ ssid: "Starbucks_Free", signal: 3, security: "Open", channel: 11 },
|
|
||||||
{ ssid: "AndroidAP", signal: 2, security: "WPA2", channel: 1 },
|
|
||||||
{ ssid: "iPhone_Hotspot", signal: 5, security: "WPA2", channel: 6 },
|
|
||||||
{ ssid: "Guest_Network", signal: 1, security: "WPA", channel: 11 }
|
|
||||||
];
|
|
||||||
|
|
||||||
const mockDevices = [
|
const mockDevices = [
|
||||||
{ name: "iPhone 13", type: "mobile", mac: "AA:BB:CC:DD:EE:FF", ip: "192.168.1.101" },
|
{ name: "iPhone 13", type: "mobile", mac: "AA:BB:CC:DD:EE:FF", ip: "192.168.1.101" },
|
||||||
{ name: "MacBook Pro", type: "laptop", mac: "11:22:33:44:55:66", ip: "192.168.1.102" },
|
{ name: "MacBook Pro", type: "laptop", mac: "11:22:33:44:55:66", ip: "192.168.1.102" },
|
||||||
|
|
@ -36,11 +28,11 @@ function initializeApp() {
|
||||||
addLog("Système", "Interface web initialisée");
|
addLog("Système", "Interface web initialisée");
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateWifiList() {
|
async function updateWifiList() {
|
||||||
const wifiList = document.getElementById('wifiList');
|
const wifiList = document.getElementById('wifiList');
|
||||||
wifiList.innerHTML = '';
|
wifiList.innerHTML = '';
|
||||||
|
|
||||||
mockWifiNetworks.forEach((network, index) => {
|
(await (await fetch('/api/wifi/scan')).json()).forEach((network, index) => {
|
||||||
const wifiItem = document.createElement('div');
|
const wifiItem = document.createElement('div');
|
||||||
wifiItem.className = 'wifi-item';
|
wifiItem.className = 'wifi-item';
|
||||||
wifiItem.onclick = () => selectWifi(network, wifiItem);
|
wifiItem.onclick = () => selectWifi(network, wifiItem);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue