#!/bin/bash
# WiFi Performance Diagnostics for Dell XPS 13 9350

echo "🔍 WiFi Performance Diagnostic Report"
echo "======================================"

# Basic WiFi info
echo "📶 WiFi Interface Information:"
WIFI_INTERFACE=$(ip link show | grep -o 'wl[^:]*\|wlan[0-9]' | head -1)
echo "Interface: $WIFI_INTERFACE"

if [ -n "$WIFI_INTERFACE" ]; then
    echo ""
    echo "📡 Connection Details:"
    iw dev $WIFI_INTERFACE link
    
    echo ""
    echo "📊 Station Statistics:"
    iw dev $WIFI_INTERFACE station dump | head -20
    
    echo ""  
    echo "⚡ Signal Analysis:"
    SIGNAL=$(iw dev $WIFI_INTERFACE station dump | grep "signal:" | head -1 | awk '{print $2}')
    echo "Current Signal: $SIGNAL dBm"
    
    if [[ ${SIGNAL//-} -lt 50 ]]; then
        echo "✅ EXCELLENT signal (>-50 dBm)"
    elif [[ ${SIGNAL//-} -lt 70 ]]; then
        echo "✅ GOOD signal (-50 to -70 dBm)" 
    elif [[ ${SIGNAL//-} -lt 80 ]]; then
        echo "⚠️  MODERATE signal (-70 to -80 dBm)"
    elif [[ ${SIGNAL//-} -lt 90 ]]; then
        echo "❌ POOR signal (-80 to -90 dBm) - MAJOR ISSUE"
    else
        echo "🚨 CRITICAL: Signal <-90 dBm - UNUSABLE FOR HFT"
    fi
    
    echo ""
    echo "🌐 Network Environment Scan:"
    echo "Scanning for nearby networks on same channel..."
    CURRENT_FREQ=$(iw dev $WIFI_INTERFACE info | grep freq | awk '{print $2}')
    echo "Current frequency: $CURRENT_FREQ MHz"
    
    # Scan for interference
    NEARBY_COUNT=$(sudo iw dev $WIFI_INTERFACE scan | grep -c "freq: $CURRENT_FREQ")
    echo "Networks on same frequency: $NEARBY_COUNT"
    
    if [ "$NEARBY_COUNT" -gt 5 ]; then
        echo "❌ HIGH INTERFERENCE: $NEARBY_COUNT networks detected"
        echo "   Recommendation: Change WiFi channel on router"
    elif [ "$NEARBY_COUNT" -gt 2 ]; then
        echo "⚠️  MODERATE INTERFERENCE: $NEARBY_COUNT networks"
    else
        echo "✅ LOW INTERFERENCE: $NEARBY_COUNT networks"
    fi
    
    echo ""
    echo "🎯 HFT Performance Assessment:"
    
    # Latency test
    ROUTER_IP=$(ip route | grep default | awk '{print $3}')
    if [ -n "$ROUTER_IP" ]; then
        echo "Testing latency to router ($ROUTER_IP)..."
        LATENCY_RESULT=$(ping -c 10 -q $ROUTER_IP 2>/dev/null)
        if [ $? -eq 0 ]; then
            AVG_LATENCY=$(echo "$LATENCY_RESULT" | grep "rtt" | cut -d'/' -f5)
            echo "Average latency: ${AVG_LATENCY}ms"
            
            if (( $(echo "$AVG_LATENCY < 1.0" | bc -l 2>/dev/null || echo "0") )); then
                echo "🏆 EXCEPTIONAL: <1ms (HFT ready)"
            elif (( $(echo "$AVG_LATENCY < 2.0" | bc -l 2>/dev/null || echo "0") )); then
                echo "✅ EXCELLENT: 1-2ms (HFT capable)"
            elif (( $(echo "$AVG_LATENCY < 5.0" | bc -l 2>/dev/null || echo "0") )); then
                echo "⚠️  MODERATE: 2-5ms (optimization needed)"
            else
                echo "❌ POOR: >5ms (major optimization required)"
            fi
        fi
    fi
    
    echo ""
    echo "💡 Optimization Recommendations:"
    
    # Signal strength recommendations
    if [[ ${SIGNAL//-} -gt 85 ]]; then
        echo "🚨 CRITICAL: Signal too weak for HFT"
        echo "   1. Move laptop closer to router (<2m)"
        echo "   2. Remove obstacles between laptop and router"
        echo "   3. Consider USB-C Ethernet adapter for reliability"
        echo "   4. Upgrade to WiFi 6E router"
    elif [[ ${SIGNAL//-} -gt 75 ]]; then
        echo "⚠️  Signal improvement needed:"
        echo "   1. Optimize laptop position relative to router"
        echo "   2. Check for interference sources"
        echo "   3. Consider router antenna upgrade"
    fi
    
    # Driver optimization check
    echo ""
    echo "🔧 Driver Optimization Status:"
    POWER_SAVE=$(cat /sys/module/iwlwifi/parameters/power_save 2>/dev/null || echo "unknown")
    echo "iwlwifi power_save: $POWER_SAVE (should be N/false)"
    
    IW_POWER_SAVE=$(iw dev $WIFI_INTERFACE get power_save 2>/dev/null || echo "unknown")
    echo "Interface power_save: $IW_POWER_SAVE (should be off)"
    
else
    echo "❌ No WiFi interface found"
fi

echo ""
echo "🎯 SUMMARY FOR HFT READINESS:"
echo "Signal Strength: ${SIGNAL:-unknown} dBm"
echo "Latency: ${AVG_LATENCY:-unknown}ms" 
echo "Power Save: ${IW_POWER_SAVE:-unknown}"
echo ""
echo "For serious HFT: Consider wired Ethernet if WiFi signal <-70dBm or latency >2ms"
