Update CSV metrics to include client counts and signal averages while reordering fields

This commit is contained in:
Yaro Kasear 2025-05-02 10:49:01 -05:00
parent f95945883c
commit 5c55276ef3

View file

@ -152,24 +152,24 @@ def write_csv(outfile):
timestamp = datetime.utcnow().isoformat()
row = {
"Timestamp": timestamp,
"ClientsOnAP": len([mac for mac, count in ap_clients[target_ap_bssid].items() if count > 3]),
"ClientsOnChannel": len([mac for mac, count in clients.items() if count > 3]),
"APsOnChannel": len(aps),
"PacketCount": packet_count,
"AvgAPSignal": round(sum([sum(v)/len(v) for v in ap_signals.values() if v]) / len(ap_signals) if ap_signals else 0, 2),
"StrongestAPSignal": max([max(v) for v in ap_signals.values() if v], default=0),
"AvgSSIDSignal": round(sum([sum(v)/len(v) for v in ssid_signals.values() if v]) / len(ssid_signals) if ssid_signals else 0, 2),
"MaxSSIDSignal": max([max(v) for v in ssid_signals.values() if v], default=0),
"ClientsOnAP": len([mac for mac, count in ap_clients[target_ap_bssid].items() if count > 3]),
"UnlinkedDevices": len(unlinked_candidates),
"NumberofBSSIDsOnSSID": len([
bssid for bssid, ssid in ssid_map.items()
if target_ap_bssid in ssid_map and ssid == ssid_map.get(target_ap_bssid)
]) if target_ap_bssid and target_ap_bssid in ssid_map else 0,
"AvgSSIDSignal": round(sum([sum(v)/len(v) for v in ssid_signals.values() if v]) / len(ssid_signals) if ssid_signals else 0, 2),
"MaxSSIDSignal": max([max(v) for v in ssid_signals.values() if v], default=0),
"NumberofChannelsOnSSID": len(set([
bssid_channels.get(bssid)
for bssid, ssid in ssid_map.items()
if target_ap_bssid in ssid_map and ssid == ssid_map.get(target_ap_bssid)
])) if target_ap_bssid and target_ap_bssid in ssid_map else 0,
"UnlinkedDevices": len(unlinked_candidates),
"PacketCount": packet_count,
"Deadpoints": len([ap for ap in aps if is_deadpoint(ap)])
}