in dev
This commit is contained in:
parent
246b2a485f
commit
0117e2ad82
|
|
@ -1,7 +1,7 @@
|
|||
from typing import List
|
||||
from agent.device import controller
|
||||
from agent.tools.base_tool import BaseTool, ToolResult
|
||||
|
||||
from core.uas_control.command import CommandResult
|
||||
|
||||
|
||||
class Tool(BaseTool):
|
||||
|
|
@ -30,13 +30,14 @@ class Tool(BaseTool):
|
|||
|
||||
|
||||
def execute(self, command: str, params: dict={}, actions: List[object]=()) -> ToolResult:
|
||||
if not controller.connect():
|
||||
return ToolResult(success=False, output="连接无人机失败")
|
||||
if not controller.is_connected:
|
||||
if not controller.connect():
|
||||
return ToolResult(success=False, output="连接无人机失败")
|
||||
command_handler = getattr(controller, command)
|
||||
try:
|
||||
command_handler = getattr(controller, command)
|
||||
try:
|
||||
return ToolResult(success=True, output=str(command_handler(**params)))
|
||||
except Exception as e:
|
||||
return ToolResult(success=False, output=str(e))
|
||||
finally:
|
||||
controller.disconnect()
|
||||
result = command_handler(**params)
|
||||
assert isinstance(result, CommandResult)
|
||||
|
||||
return ToolResult(success=result.success, output=result.message)
|
||||
except Exception as e:
|
||||
return ToolResult(success=False, output=str(e))
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ class Tool(BaseTool):
|
|||
}
|
||||
|
||||
def execute(self) -> ToolResult:
|
||||
if not controller.connect():
|
||||
return ToolResult(success=False, output="连接无人机失败")
|
||||
if not controller.is_connected:
|
||||
if not controller.connect():
|
||||
return ToolResult(success=False, output="连接无人机失败")
|
||||
try:
|
||||
telemetry = controller.get_telemetry()
|
||||
return ToolResult(success=True, output=json.dumps(telemetry.to_dict(), ensure_ascii=True))
|
||||
finally:
|
||||
controller.disconnect()
|
||||
|
||||
except Exception as e:
|
||||
return ToolResult(success=False, output=str(e))
|
||||
|
|
|
|||
|
|
@ -17,8 +17,10 @@ class Tool(BaseTool):
|
|||
解决:Arming denied: Resolve system health failures first
|
||||
"""
|
||||
# 等待健康数据
|
||||
if not controller.is_connected:
|
||||
if not controller.connect():
|
||||
return ToolResult(success=False, output="连接设备失败")
|
||||
|
||||
assert controller.connect(), "连接应成功"
|
||||
try:
|
||||
connection = controller.adapter.get_connection()
|
||||
check_list = []
|
||||
|
|
@ -118,6 +120,4 @@ class Tool(BaseTool):
|
|||
|
||||
return ToolResult(success=True, output="\n".join(check_list))
|
||||
except Exception as e:
|
||||
return ToolResult(success=False, output=str(e))
|
||||
finally:
|
||||
controller.disconnect()
|
||||
return ToolResult(success=False, output=str(e))
|
||||
Loading…
Reference in New Issue