From 1332c38f5e0de76f0b20f349080aabc9f6825d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=BA=E6=A2=B0=E5=B0=8F=E9=B8=BD?= <128568434+jixiexiaoge@users.noreply.github.com> Date: Sat, 29 Mar 2025 20:30:43 +0800 Subject: [PATCH] tmap --- .../frogpilot/fleetmanager/fleet_manager.py | 77 +++++- selfdrive/frogpilot/fleetmanager/helpers.py | 37 ++- .../fleetmanager/templates/index.html | 72 +++++ .../templates/tmap_addr_input.html | 253 ++++++++++++++++++ .../templates/tmap_key_input.html | 22 ++ 5 files changed, 446 insertions(+), 15 deletions(-) create mode 100644 selfdrive/frogpilot/fleetmanager/templates/tmap_addr_input.html create mode 100644 selfdrive/frogpilot/fleetmanager/templates/tmap_key_input.html diff --git a/selfdrive/frogpilot/fleetmanager/fleet_manager.py b/selfdrive/frogpilot/fleetmanager/fleet_manager.py index 3986dde..34578e4 100644 --- a/selfdrive/frogpilot/fleetmanager/fleet_manager.py +++ b/selfdrive/frogpilot/fleetmanager/fleet_manager.py @@ -380,23 +380,44 @@ def gmap_key_input(): @app.route("/amap_key_input", methods=['GET', 'POST']) def amap_key_input(): - if request.method == 'POST': - postvars = request.form.to_dict() - fleet.amap_key_input(postvars) - return redirect(url_for('amap_addr_input')) - else: - return render_template("amap_key_input.html") + if request.method == 'POST': + postvars = request.form.to_dict() + fleet.amap_key_input(postvars) + return redirect(url_for('amap_key_input')) + else: + amap_key, amap_key_2 = fleet.get_amap_key() + return render_template("amap_key_input.html", amap_key=amap_key, amap_key_2=amap_key_2) + +@app.route("/tmap_key_input", methods=['GET', 'POST']) +def tmap_key_input(): + if request.method == 'POST': + postvars = request.form.to_dict() + fleet.tmap_key_input(postvars) + return redirect(url_for('tmap_key_input')) + else: + tmap_key = fleet.get_tmap_key() + return render_template("tmap_key_input.html", tmap_key=tmap_key) @app.route("/amap_addr_input", methods=['GET', 'POST']) def amap_addr_input(): - if request.method == 'POST': - postvars = request.form.to_dict() - fleet.nav_confirmed(postvars) - return redirect(url_for('amap_addr_input')) - else: - lon, lat = fleet.get_last_lon_lat() - amap_key, amap_key_2 = fleet.get_amap_key() - return render_template("amap_addr_input.html", lon=lon, lat=lat, amap_key=amap_key, amap_key_2=amap_key_2) + if request.method == 'POST': + postvars = request.form.to_dict() + fleet.nav_confirmed(postvars) + return redirect(url_for('amap_addr_input')) + else: + lon, lat = fleet.get_last_lon_lat() + amap_key, amap_key_2 = fleet.get_amap_key() + return render_template("amap_addr_input.html", lon=lon, lat=lat, amap_key=amap_key, amap_key_2=amap_key_2) + +@app.route("/tmap_addr_input", methods=['GET', 'POST']) +def tmap_addr_input(): + if request.method == 'POST': + postvars = request.form.to_dict() + fleet.nav_confirmed(postvars) + return redirect(url_for('tmap_addr_input')) + else: + lon, lat = fleet.get_last_lon_lat() + return render_template("tmap_addr_input.html", lon=lon, lat=lat) @app.route("/CurrentStep.json", methods=['GET']) def find_CurrentStep(): @@ -453,6 +474,34 @@ def store_toggle_values_route(): except Exception as e: return jsonify({"error": "Failed to update values", "details": str(e)}), 400 +@app.route("/get_nav_status", methods=['GET']) +def get_nav_status(): + nav_active = fleet.get_nav_active() + return jsonify({ + "active": nav_active + }) + +@app.route("/get_system_status", methods=['GET']) +def get_system_status(): + nav_active = fleet.get_nav_active() + gps_status = fleet.get_gps_status() + network_status = fleet.check_network_status() + + return jsonify({ + "nav_status": { + "active": nav_active, + "state": "导航中" if nav_active else "待机" + }, + "gps_status": { + "active": gps_status["active"], + "signal": gps_status["signal"] + }, + "network_status": { + "connected": network_status["connected"], + "type": network_status["type"] + } + }) + @app.route("/carinfo") def carinfo(): try: diff --git a/selfdrive/frogpilot/fleetmanager/helpers.py b/selfdrive/frogpilot/fleetmanager/helpers.py index d466dd1..0626bee 100644 --- a/selfdrive/frogpilot/fleetmanager/helpers.py +++ b/selfdrive/frogpilot/fleetmanager/helpers.py @@ -410,7 +410,17 @@ def amap_key_input(postvars): token2 = postvars.get("amap_key_val_2").strip() params.put("AMapKey1", token) params.put("AMapKey2", token2) - return token + return True + except: + return False + +def tmap_key_input(postvars): + try: + token = postvars["tmap_key"] + params.put("TMapKey", token) + return True + except: + return False def gcj02towgs84(lng, lat): dlat = transform_lat(lng - 105.0, lat - 35.0) @@ -464,3 +474,28 @@ def store_toggle_values(updated_values): #params_memory.put_bool("FrogPilotTogglesUpdated", True) #time.sleep(1) #params_memory.put_bool("FrogPilotTogglesUpdated", False) + +def get_gps_status(): + try: + # 读取GPS状态 + with open('/data/params/d/LastGPSPosition', 'r') as f: + content = f.read().strip() + if not content: + return {"active": False, "signal": "无信号"} + return { + "active": True, + "signal": "正常" + } + except: + return {"active": False, "signal": "未知"} + +def check_network_status(): + try: + # 检查网络连接 + result = subprocess.run(['ping', '-c', '1', '-W', '1', '8.8.8.8'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return { + "connected": result.returncode == 0, + "type": "已连接" if result.returncode == 0 else "未连接" + } + except: + return {"connected": False, "type": "未知"} diff --git a/selfdrive/frogpilot/fleetmanager/templates/index.html b/selfdrive/frogpilot/fleetmanager/templates/index.html index 4dad0e7..ebbfe55 100644 --- a/selfdrive/frogpilot/fleetmanager/templates/index.html +++ b/selfdrive/frogpilot/fleetmanager/templates/index.html @@ -15,4 +15,76 @@
Access Error Logs

About Fleet Manager

高德导航
+
TMap导航
+
设置TMap API密钥
+ + +
+

系统状态

+
+
+
+

导航状态

+ +
+
+
+
+

GPS信号

+
+ 检测中 +
+
+
+
+
+

网络状态

+
+ 检测中 +
+
+
+
+
+ + {% endblock %} diff --git a/selfdrive/frogpilot/fleetmanager/templates/tmap_addr_input.html b/selfdrive/frogpilot/fleetmanager/templates/tmap_addr_input.html new file mode 100644 index 0000000..bb901f8 --- /dev/null +++ b/selfdrive/frogpilot/fleetmanager/templates/tmap_addr_input.html @@ -0,0 +1,253 @@ +{% extends "layout.html" %} + +{% block title %} + tmap_addr_input +{% endblock %} +{% block main %} + + + + + 输入提示后查询 + + + + + + + + + +
+
+
+ +
+
+ +
+
+ + +
+
+ + + +{% endblock %} \ No newline at end of file diff --git a/selfdrive/frogpilot/fleetmanager/templates/tmap_key_input.html b/selfdrive/frogpilot/fleetmanager/templates/tmap_key_input.html new file mode 100644 index 0000000..cd214e0 --- /dev/null +++ b/selfdrive/frogpilot/fleetmanager/templates/tmap_key_input.html @@ -0,0 +1,22 @@ +{% extends "layout.html" %} + +{% block title %} + TMap API 设置 +{% endblock %} + +{% block main %} +

TMap API 密钥设置


+
+
+ +
+ +
+
+ +
+
+
+

申请TMap API密钥请访问: 腾讯位置服务

+
+{% endblock %} \ No newline at end of file