base_agent/tools/uav_get_state.py

28 lines
809 B
Python

import json
from device import controller
from tools.base_tool import BaseTool, ToolResult
class Tool(BaseTool):
name = "uav_get_state"
description = (
"获取无人系统当前状态, 例如当前位置等信息"
)
parameters = {
"type": "object",
"properties": {
},
"required": [""],
}
def execute(self) -> ToolResult:
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))
except Exception as e:
return ToolResult(success=False, output=str(e))