主要修复外部通信相关问题,以及使调用方式和其他功能相同

This commit is contained in:
gitea 2024-09-20 15:47:07 +08:00
parent 35884b2247
commit 57d9da7bc7

View File

@ -765,7 +765,7 @@ class HmiRequest(object):
case "off":
self.execution("state.switch_motor_off")
case _:
clibs.logger.error(f"switch_motor_state 参数错误\n{state}: 非法参数,只接受 on/off")
clibs.logger.error(f"switch_motor_state 参数错误 {state}: 非法参数,只接受 on/off")
def switch_operation_mode(self, mode: str):
"""
@ -779,7 +779,7 @@ class HmiRequest(object):
case "manual":
self.execution("state.switch_manual")
case _:
clibs.logger.error("switch_operation_mode 参数错误\n非法参数,只接受 auto/manual")
clibs.logger.error("switch_operation_mode 参数错误 非法参数,只接受 auto/manual")
def reload_project(self, prj_name: str, tasks: list):
"""
@ -1482,7 +1482,7 @@ class HmiRequest(object):
case "without":
self.execution("state.set_tp_mode", tp_mode="without")
case _:
clibs.logger.error("switch_tp_mode 参数错误\n非法参数,只接受 with/without")
clibs.logger.error("switch_tp_mode 参数错误 非法参数,只接受 with/without")
def get_tp_mode(self):
"""
@ -1719,15 +1719,16 @@ class ExternalCommunication(object):
def __init__(self):
self.__c = None
self.suffix = "\r"
self.socket_client()
def socket_client(self):
self.__c = socket(AF_INET, SOCK_STREAM)
try:
self.__c.connect((clibs.ip_addr, clibs.socket_port))
self.__c.connect((clibs.ip_addr, clibs.external_port))
clibs.logger.success(f"外部通信连接成功...")
return self.__c
except Exception as Err:
clibs.logger.error(f"外部通信连接失败...\n{Err}")
clibs.logger.error(f"外部通信连接失败... {Err}")
def s_string(self, directive):
order = "".join([directive, self.suffix])
@ -1797,19 +1798,19 @@ class ExternalCommunication(object):
def pause_motoroff(self):
return self.__exec_cmd("pause_motoroff", "暂停程序并下电")
def set_program_speed(self, speed):
def set_program_speed(self, speed: int):
return self.__exec_cmd(f"set_program_speed:{speed}", "设置程序运行速率")
def trigger_soft_estop(self):
return self.__exec_cmd("soft_estop", "触发机器人软急停")
def set_soft_estop(self, enable: str):
return self.__exec_cmd(f"set_soft_estop:{enable}", "触发(true)/解除(false)机器人软急停")
def switch_auto_motoron(self):
return self.__exec_cmd("switch_auto_motoron", "切换自动模式并上电")
def open_safe_region(self, number):
def open_safe_region(self, number: int):
return self.__exec_cmd(f"open_safe_region:{number}", f"打开第 {number} 个安全区域")
def close_safe_region(self, number):
def close_safe_region(self, number: int):
return self.__exec_cmd(f"close_safe_region:{number}", f"打开第 {number} 个安全区域")
def open_reduced_mode(self):
@ -1818,8 +1819,8 @@ class ExternalCommunication(object):
def close_reduced_mode(self):
return self.__exec_cmd("close_reduced_mode", "关闭缩减模式")
def setDO_value(self, DO, value):
return self.__exec_cmd(f"setdo:{DO}, {value}", f"设置 {DO} 的值为 {value}")
def setdo_value(self, do_name, do_value):
return self.__exec_cmd(f"setdo:{do_name}, {do_value}", f"设置 {do_name} 的值为 {do_value}")
def modify_system_time(self, robot_time):
return self.__exec_cmd(f"set_robot_time:{robot_time}", f"修改控制器和示教器的时间为 {robot_time}")
@ -1847,25 +1848,25 @@ class ExternalCommunication(object):
return self.__exec_cmd("collision_state", "碰撞检测状态")
def task_state(self):
return self.__exec_cmd("collision_state", "获取机器人运行任务状态")
return self.__exec_cmd("task_state", "获取机器人运行任务状态")
def get_cart_pos(self): # TBD
return self.__exec_cmd("cart_pos/cart_pos_name", "获取笛卡尔位置")
def get_cart_pos(self): # cart_pos/cart_pos_name 都可以正常返回,区别在返回的前缀,可测试辨别
return self.__exec_cmd("cart_pos", "获取笛卡尔位置")
def get_joint_pos(self): # TBD
return self.__exec_cmd("jnt_pos/jnt_pos_name", "获取轴位置")
def get_joint_pos(self): # jnt_pos/jnt_pos_name 都可以正常返回,区别在返回的前缀,可测试辨别
return self.__exec_cmd("jnt_pos", "获取轴位置")
def get_axis_vel(self): # TBD
return self.__exec_cmd("jnt_vel/jnt_vel_name", "获取轴速度")
def get_axis_vel(self): # jnt_vel/jnt_vel_name 都可以正常返回,区别在返回的前缀,可测试辨别
return self.__exec_cmd("jnt_vel", "获取轴速度")
def get_axis_trq(self): # TBD
return self.__exec_cmd("jnt_trq/jnt_trq_name", "获取轴力矩")
def get_axis_trq(self): # jnt_trq/jnt_trq_name 都可以正常返回,区别在返回的前缀,可测试辨别
return self.__exec_cmd("jnt_trq", "获取轴力矩")
def reduced_mode_state(self):
return self.__exec_cmd("reduced_mode_state", "获取缩减模式状态")
def get_io_state(self, io_list):
return self.__exec_cmd(f"io_state:{io_list}", "获取 IO 状态")
def get_io_state(self, io_list: str): # DO0_0,DI1_3,DO2_5不能有空格
return self.__exec_cmd(f"io_state:{io_list}", "获取 IO 状态")
def alarm_state(self):
return self.__exec_cmd("alarm_state", "获取报警状态")
@ -1946,7 +1947,7 @@ class PreDos(object):
self.__ssh.connect(clibs.ip_addr, clibs.ssh_port, username=clibs.username, password=clibs.password)
self.__sftp = self.__ssh.open_sftp()
except Exception as Err:
clibs.logger.error(f"SSH 无法连接到 {clibs.ip_addr}:{clibs.ssh_port},需检查网络连通性或者登录信息是否正确\n{Err}")
clibs.logger.error(f"SSH 无法连接到 {clibs.ip_addr}:{clibs.ssh_port},需检查网络连通性或者登录信息是否正确 {Err}")
exit(110)
def push_prj_to_server(self, prj_file):