jiaru recv
This commit is contained in:
parent
be25ee8e74
commit
5461a09eee
@ -545,6 +545,7 @@ class MassageRobot:
|
|||||||
def arm_command_loop(self):
|
def arm_command_loop(self):
|
||||||
self.logger.log_info("机械臂控制线程启动")
|
self.logger.log_info("机械臂控制线程启动")
|
||||||
self.arm.filter_matirx = np.zeros((1,7)) # 位姿伺服用
|
self.arm.filter_matirx = np.zeros((1,7)) # 位姿伺服用
|
||||||
|
recv_time = 0
|
||||||
# self.arm.filter_matrix = np.zeros((1,6)) # 角度伺服用
|
# self.arm.filter_matrix = np.zeros((1,6)) # 角度伺服用
|
||||||
while (not self.arm.is_exit) and (not self.exit_event.is_set()):
|
while (not self.arm.is_exit) and (not self.exit_event.is_set()):
|
||||||
try:
|
try:
|
||||||
@ -581,7 +582,7 @@ class MassageRobot:
|
|||||||
).encode()
|
).encode()
|
||||||
|
|
||||||
run_time = time.time() - process_start_time
|
run_time = time.time() - process_start_time
|
||||||
sleep_duration = self.control_rate.to_sec() - run_time
|
sleep_duration = self.control_rate.to_sec() - run_time - recv_time
|
||||||
b2 =time.time()
|
b2 =time.time()
|
||||||
if sleep_duration > 0:
|
if sleep_duration > 0:
|
||||||
time.sleep(sleep_duration)
|
time.sleep(sleep_duration)
|
||||||
@ -594,6 +595,9 @@ class MassageRobot:
|
|||||||
break
|
break
|
||||||
try:
|
try:
|
||||||
self.arm.dashboard.socket_dobot.sendall(tcp_command)
|
self.arm.dashboard.socket_dobot.sendall(tcp_command)
|
||||||
|
recv_start_time = time.time()
|
||||||
|
self.arm.dashboard.socket_dobot.recv(1024)
|
||||||
|
recv_time = time.time() - recv_start_time
|
||||||
break
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"发送指令错误:{e}")
|
print(f"发送指令错误:{e}")
|
||||||
|
@ -178,21 +178,33 @@ class DobotApi:
|
|||||||
# self.log(f'Receive from {self.ip}:{self.port}: {data_str}')
|
# self.log(f'Receive from {self.ip}:{self.port}: {data_str}')
|
||||||
return data_str
|
return data_str
|
||||||
|
|
||||||
|
# def flush_recv_buffer(self):
|
||||||
|
# """非阻塞清空接收缓冲区"""
|
||||||
|
# self.socket_dobot.setblocking(0)
|
||||||
|
# try:
|
||||||
|
# while True:
|
||||||
|
# ready = select.select([self.socket_dobot], [], [], 0.01)
|
||||||
|
# if ready[0]:
|
||||||
|
# try:
|
||||||
|
# self.socket_dobot.recv(1024)
|
||||||
|
# except:
|
||||||
|
# break
|
||||||
|
# else:
|
||||||
|
# break
|
||||||
|
# finally:
|
||||||
|
# self.socket_dobot.setblocking(1)
|
||||||
|
|
||||||
def flush_recv_buffer(self):
|
def flush_recv_buffer(self):
|
||||||
"""非阻塞清空接收缓冲区"""
|
"""极速清空接收缓冲区"""
|
||||||
self.socket_dobot.setblocking(0)
|
self.socket_dobot.setblocking(False)
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
ready = select.select([self.socket_dobot], [], [], 0.01)
|
try:
|
||||||
if ready[0]:
|
self.socket_dobot.recv(4096) # 一次最多清64KB
|
||||||
try:
|
except BlockingIOError:
|
||||||
self.socket_dobot.recv(1024)
|
|
||||||
except:
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
break
|
break
|
||||||
finally:
|
finally:
|
||||||
self.socket_dobot.setblocking(1)
|
self.socket_dobot.setblocking(True)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""
|
"""
|
||||||
@ -1947,7 +1959,9 @@ class DobotApiDashboard(DobotApi):
|
|||||||
for ii in params:
|
for ii in params:
|
||||||
string = string + ','+ii
|
string = string + ','+ii
|
||||||
string = string + ')'
|
string = string + ')'
|
||||||
|
start_time = time.time()
|
||||||
self.flush_recv_buffer()
|
self.flush_recv_buffer()
|
||||||
|
print(f"+++++++{time.time()-start_time}s++++++")
|
||||||
return self.sendRecvMsg(string)
|
return self.sendRecvMsg(string)
|
||||||
|
|
||||||
def MovL(self, a1, b1, c1, d1, e1, f1, coordinateMode, user=-1, tool=-1, a=-1, v=-1, speed=-1, cp=-1, r=-1):
|
def MovL(self, a1, b1, c1, d1, e1, f1, coordinateMode, user=-1, tool=-1, a=-1, v=-1, speed=-1, cp=-1, r=-1):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user