修复获取机器人位置块BUG
This commit is contained in:
parent
516f9bd825
commit
1f0e46e987
@ -609,61 +609,38 @@ class VehicleStationBlockHandler(RobotBlockHandler):
|
||||
# 调用AMR信息接口获取机器人位置
|
||||
amr_info_result = await get_amr_info(token=context.token)
|
||||
|
||||
if amr_info_result and amr_info_result.get("success", False):
|
||||
# 获取AMR列表
|
||||
amr_list = amr_info_result.get("result", [])
|
||||
|
||||
# 根据机器人名称查找对应的AMR信息
|
||||
target_amr = None
|
||||
for amr in amr_list:
|
||||
if amr.get("name") == vehicle:
|
||||
target_amr = amr
|
||||
break
|
||||
|
||||
if target_amr:
|
||||
# 获取机器人位置信息
|
||||
last_node_name = target_amr.get("lastNodeName", "")
|
||||
last_node_id = target_amr.get("lastNodeId", "")
|
||||
|
||||
# 设置上下文变量
|
||||
context.set_variable("station", last_node_name)
|
||||
context.set_variable("lastStation", last_node_name)
|
||||
context.set_block_output(block.get("name"), {
|
||||
"station": last_node_id,
|
||||
"lastStation": last_node_id
|
||||
})
|
||||
|
||||
result = {
|
||||
"success": True,
|
||||
"message": f"获取机器人 {vehicle} 位置成功,当前位置: {last_node_name}"
|
||||
}
|
||||
else:
|
||||
result = {
|
||||
"success": False,
|
||||
"message": f"未找到名称为 {vehicle} 的机器人"
|
||||
}
|
||||
# 获取AMR列表
|
||||
amr_list = amr_info_result.get("result", [])
|
||||
|
||||
# 根据机器人名称查找对应的AMR信息
|
||||
target_amr = None
|
||||
for amr in amr_list:
|
||||
if amr.get("name") == vehicle:
|
||||
target_amr = amr
|
||||
break
|
||||
|
||||
if target_amr:
|
||||
# 获取机器人位置信息
|
||||
last_node_id = target_amr.get("lastNodeId", "")
|
||||
|
||||
# 设置上下文变量
|
||||
context.set_variable("station", last_node_id)
|
||||
context.set_variable("lastStation", last_node_id)
|
||||
context.set_block_output(block.get("name"), {
|
||||
"station": last_node_id,
|
||||
"lastStation": last_node_id
|
||||
})
|
||||
|
||||
result = {
|
||||
"success": True,
|
||||
"message": f"获取机器人 {vehicle} 位置成功,当前位置: {last_node_id}"
|
||||
}
|
||||
else:
|
||||
# 如果AMR信息接口调用失败,回退到原有的外部API方式
|
||||
logger.warning(f"获取AMR信息失败,回退到外部API方式")
|
||||
result = await self._call_external_api("vehicle_station", input_params)
|
||||
|
||||
if result.get("success", False):
|
||||
# 获取站点信息
|
||||
station = result.get("data", {}).get("station", "")
|
||||
last_station = result.get("data", {}).get("lastStation", "")
|
||||
|
||||
# 设置上下文变量
|
||||
context.set_variable("station", station)
|
||||
context.set_variable("lastStation", last_station)
|
||||
context.set_block_output(block.get("name"), {
|
||||
"station": station,
|
||||
"lastStation": last_station
|
||||
})
|
||||
|
||||
result["message"] = f"获取机器人 {vehicle} 位置成功,当前位置: {station}, 上次位置: {last_station}"
|
||||
else:
|
||||
result["message"] = f"获取机器人位置失败: {result.get('message', '未知错误')}"
|
||||
|
||||
result = {
|
||||
"success": False,
|
||||
"message": f"未找到名称为 {vehicle} 的机器人"
|
||||
}
|
||||
|
||||
# 记录执行结果
|
||||
await self._record_task_log(block, result, context)
|
||||
return result
|
||||
|
Loading…
x
Reference in New Issue
Block a user