Fix jwt-token

This commit is contained in:
2025-09-07 11:24:40 +02:00
parent 2e17e4d1d4
commit 16a52ad6a7

View File

@@ -106,6 +106,9 @@ def haversine_distance(lat1, lon1, lat2, lon2):
def rssi_from_distance(distance_km): def rssi_from_distance(distance_km):
"""Calculate RSSI based on distance for Orlan drone""" """Calculate RSSI based on distance for Orlan drone"""
# Ensure distance_km is a float
distance_km = float(distance_km)
# Orlan drones have powerful military-grade transmission systems # Orlan drones have powerful military-grade transmission systems
# Base RSSI at 1km = -55 dBm (stronger than civilian drones) # Base RSSI at 1km = -55 dBm (stronger than civilian drones)
base_rssi = -55 base_rssi = -55
@@ -143,6 +146,8 @@ def fetch_devices():
def send_detection(device, drone_lat, drone_lon, distance_km, step, total_steps): def send_detection(device, drone_lat, drone_lon, distance_km, step, total_steps):
"""Send a detection to the API using EXACT standard payload format""" """Send a detection to the API using EXACT standard payload format"""
# Ensure distance_km is a float
distance_km = float(distance_km)
rssi = rssi_from_distance(distance_km) rssi = rssi_from_distance(distance_km)
# Use the EXACT standard payload format - NEVER change this! # Use the EXACT standard payload format - NEVER change this!
@@ -161,7 +166,7 @@ def send_detection(device, drone_lat, drone_lon, distance_km, step, total_steps)
response = requests.post(f"{API_BASE_URL}/detectors", json=detection_data, verify=False) response = requests.post(f"{API_BASE_URL}/detectors", json=detection_data, verify=False)
if response.status_code == 201: if response.status_code == 201:
status = "🚨 CRITICAL ALERT" if distance_km <= 5 else "⚠️ DETECTED" if is_detectable(distance_km) else "📡 MONITORING" status = "🚨 CRITICAL ALERT" if distance_km <= 5 else "⚠️ DETECTED" if is_detectable(distance_km) else "📡 MONITORING"
print(f"{status} - Step {step}/{total_steps}: Distance={distance_km:.1f}km, RSSI={rssi:.0f}dBm") print(f"{status} - Step {step}/{total_steps}: Distance={float(distance_km):.1f}km, RSSI={float(rssi):.0f}dBm")
return True return True
else: else:
print(f"❌ Failed to send detection: {response.status_code}") print(f"❌ Failed to send detection: {response.status_code}")
@@ -245,7 +250,7 @@ def run_orlan_detection_test():
start_lon = target_device['geo_lon'] # Same longitude start_lon = target_device['geo_lon'] # Same longitude
print(f"🛫 Orlan Starting Position: {start_lat:.6f}, {start_lon:.6f}") print(f"🛫 Orlan Starting Position: {start_lat:.6f}, {start_lon:.6f}")
print(f"📏 Initial Distance: {start_distance:.1f}km") print(f"📏 Initial Distance: {float(start_distance):.1f}km")
# Verify starting position is undetectable # Verify starting position is undetectable
if is_detectable(start_distance): if is_detectable(start_distance):
@@ -284,7 +289,7 @@ def run_orlan_detection_test():
# Send detection only if within detectable range # Send detection only if within detectable range
if detectable: if detectable:
if not detection_started: if not detection_started:
print(f"\n🔍 FIRST DETECTION at {distance_km:.1f}km - Orlan has entered detection range!") print(f"\n🔍 FIRST DETECTION at {float(distance_km):.1f}km - Orlan has entered detection range!")
detection_started = True detection_started = True
success = send_detection(target_device, current_lat, current_lon, distance_km, step, total_steps) success = send_detection(target_device, current_lat, current_lon, distance_km, step, total_steps)
@@ -295,15 +300,15 @@ def run_orlan_detection_test():
# Show escalation messages # Show escalation messages
if distance_km <= 5 and not critical_alerts_started: if distance_km <= 5 and not critical_alerts_started:
print(f"🚨 CRITICAL ALERT THRESHOLD REACHED at {distance_km:.1f}km!") print(f"🚨 CRITICAL ALERT THRESHOLD REACHED at {float(distance_km):.1f}km!")
critical_alerts_started = True critical_alerts_started = True
elif distance_km <= 1: elif distance_km <= 1:
print(f"🔥 IMMEDIATE THREAT: Orlan within {distance_km:.1f}km!") print(f"🔥 IMMEDIATE THREAT: Orlan within {float(distance_km):.1f}km!")
elif distance_km <= 0.1: elif distance_km <= 0.1:
print(f"💥 DIRECTLY OVERHEAD: Orlan at {distance_km*1000:.0f}m altitude!") print(f"💥 DIRECTLY OVERHEAD: Orlan at {float(distance_km)*1000:.0f}m altitude!")
else: else:
# Outside detection range # Outside detection range
print(f"📡 Step {step}/{total_steps}: Distance={distance_km:.1f}km (undetectable, RSSI={rssi_from_distance(distance_km):.0f}dBm)") print(f"📡 Step {step}/{total_steps}: Distance={float(distance_km):.1f}km (undetectable, RSSI={float(rssi_from_distance(distance_km)):.0f}dBm)")
# Variable delay based on distance # Variable delay based on distance
if distance_km > 30: if distance_km > 30:
@@ -321,8 +326,8 @@ def run_orlan_detection_test():
print("🚨 ORLAN DETECTION TEST COMPLETED") print("🚨 ORLAN DETECTION TEST COMPLETED")
print("=" * 70) print("=" * 70)
print("Test Summary:") print("Test Summary:")
print(f"• Starting distance: {start_distance:.1f}km (undetectable)") print(f"• Starting distance: {float(start_distance):.1f}km (undetectable)")
print(f"• Detection range entered: ~{MAX_DETECTION_RANGE_KM:.1f}km") print(f"• Detection range entered: ~{float(MAX_DETECTION_RANGE_KM):.1f}km")
print(f"• Critical alerts triggered: <5km") print(f"• Critical alerts triggered: <5km")
print(f"• Final position: Directly overhead") print(f"• Final position: Directly overhead")
print(f"• Target device: {target_device['name']}") print(f"• Target device: {target_device['name']}")