From 104da61427fa35974ac7ef7d4e46e1a15af965fd Mon Sep 17 00:00:00 2001 From: ALIHAN DIKEL Date: Tue, 29 Oct 2024 21:13:53 +0300 Subject: [PATCH] autocommit --- src/server/services/connections.py | 74 +++++++++++------------------- src/server/workers.py | 1 + 2 files changed, 28 insertions(+), 47 deletions(-) diff --git a/src/server/services/connections.py b/src/server/services/connections.py index bc5f841..76310d7 100644 --- a/src/server/services/connections.py +++ b/src/server/services/connections.py @@ -1,3 +1,5 @@ +import os +import subprocess import time from loguru import logger @@ -5,62 +7,40 @@ import re import nmcli from pythonping import ping - # nmcli connection show djituad2_plus -import os + tello_ssid = os.environ["TELLO_SSID_NAME"] conns = nmcli.connection() +def renew_ip_wlan1(timeout=15): + try: + # Release the IP address on wlan1 + release_cmd = ["sudo", "dhclient", "-r", "wlan1"] + release_process = subprocess.run(release_cmd, capture_output=True, text=True, timeout=timeout) + # Renew the IP address on wlan1 + renew_cmd = ["sudo", "timeout", str(timeout), "dhclient", "-v", "wlan1"] + renew_process = subprocess.run(renew_cmd, capture_output=True, text=True, timeout=timeout) + result_info = { + "release_stdout": release_process.stdout, + "release_stderr": release_process.stderr, + "renew_stdout": renew_process.stdout, + "renew_stderr": renew_process.stderr, + "renew_status": renew_process.returncode + } + return result_info + + except subprocess.TimeoutExpired: + return {"error": "timeout"} + + except Exception as e: + return {"error": str(e)} if __name__ == "__main__": - - - -""" SANDBOX - while True: - ping_resp = ping('192.168.10.1', count=1, timeout=5, size=1, verbose=True) - if ping_resp.packet_loss == 0: - logger.success("found tello") - else: - logger.warning("no tello exist") - -while True: - start_time = time.time() - print("###### start") - nmcli.device.wifi_rescan() - wifi_list = nmcli.device.wifi() - end_time = time.time() - duration = end_time - start_time - print(f"WiFi scan duration: {duration:.2f} seconds") - for wifi in wifi_list: - if re.search(r"djituad2", wifi.ssid): - print(wifi) - - -import pywifi -from pywifi import const -import time - - -nmcli.connection.up(name=tello_ssid, wait=10) - -wifi = pywifi.PyWiFi() -ifaces = wifi.interfaces() -for iface in ifaces: - if iface == "wlan1": - break -while True: - iface.scan() - time.sleep(2) - results = iface.scan_results() - for network in results: - if re.search(r"djituad2", network.ssid): - logger.success("tello network found") - #print(f"SSID: {network.ssid}, Signal: {network.signal}") -""" + info = renew_ip_wlan1() + print(info) diff --git a/src/server/workers.py b/src/server/workers.py index 4e3cb22..0055556 100644 --- a/src/server/workers.py +++ b/src/server/workers.py @@ -64,6 +64,7 @@ async def collect_flight_stats(state): logger.debug(f"Battery: {bat} - Temperature: {temp} - Barometer: {baro}") except TelloException as te: logger.error(te) + # search for any response if disconnected else: if counter % 10 == 0: logger.warning("missing connection, pinging tello")