Do stations scan/retrieval

This commit is contained in:
nemunaire 2025-07-17 16:05:04 +02:00
commit b3da6774ac
2 changed files with 8 additions and 30 deletions

26
main.go
View file

@ -324,7 +324,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
// Déclencher un scan
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 {
return nil, fmt.Errorf("erreur lors du scan: %v", call.Err)
}
@ -333,8 +333,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
time.Sleep(2 * time.Second)
// Récupérer la liste des BSS
var bssePaths []dbus.ObjectPath
err = wifiInterface.Call(WPA_INTERFACE_IFACE+".Get", 0, WPA_INTERFACE_IFACE, "BSSs").Store(&bssePaths)
bssePaths, err := wifiInterface.GetProperty(WPA_INTERFACE_IFACE + ".BSSs")
if err != nil {
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
seenSSIDs := make(map[string]bool)
for _, bssPath := range bssePaths {
for _, bssPath := range bssePaths.Value().([]dbus.ObjectPath) {
bss := dbusConn.Object(WPA_SUPPLICANT_SERVICE, bssPath)
// Récupérer les propriétés du BSS
@ -472,26 +471,13 @@ func disconnectWiFiDBus() error {
}
func getWiFiInterfacePath() (dbus.ObjectPath, error) {
var interfaces []dbus.ObjectPath
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".Get", 0, WPA_SUPPLICANT_IFACE, "Interfaces").Store(&interfaces)
var interfacePath dbus.ObjectPath
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".GetInterface", 0, WLAN_INTERFACE).Store(&interfacePath)
if err != nil {
return "", fmt.Errorf("erreur lors de la récupération des interfaces: %v", err)
}
for _, interfacePath := range interfaces {
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)
return interfacePath, nil
}
func isConnectedDBus() bool {

View file

@ -9,14 +9,6 @@ let appState = {
};
// 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 = [
{ 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" },
@ -36,11 +28,11 @@ function initializeApp() {
addLog("Système", "Interface web initialisée");
}
function updateWifiList() {
async function updateWifiList() {
const wifiList = document.getElementById('wifiList');
wifiList.innerHTML = '';
mockWifiNetworks.forEach((network, index) => {
(await (await fetch('/api/wifi/scan')).json()).forEach((network, index) => {
const wifiItem = document.createElement('div');
wifiItem.className = 'wifi-item';
wifiItem.onclick = () => selectWifi(network, wifiItem);