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密钥
+
+
+
申请TMap API密钥请访问: 腾讯位置服务
+