转发,因为我意识到这应该在API部分。
我有2台meca 500,我想在同一时间跑步。为此,我编写了一个同步的多线程函数,在每个线程上调用每个机器人的动作。当我在在线模式下运行时,机器人一次只能移动一个。
是否有可能与多线程和在线编程同步运动,或者我需要做后期处理?
我在下面附上了我的代码。机器人。SafeJM是一个自定义函数,使用MoveJ_test在运行前检查联合移动是否安全。
我有2台meca 500,我想在同一时间跑步。为此,我编写了一个同步的多线程函数,在每个线程上调用每个机器人的动作。当我在在线模式下运行时,机器人一次只能移动一个。
是否有可能与多线程和在线编程同步运动,或者我需要做后期处理?
我在下面附上了我的代码。机器人。SafeJM是一个自定义函数,使用MoveJ_test在运行前检查联合移动是否安全。
代码:
类MyThreads:
def __init__(自我、线程):
self.state =[0] *线程
self.threads = []
def RScan(自我,机器人,Rlist t):
我= 0
当i< len(Rlist):
time . sleep (0.001)
如果self.state [t] = = 0:
Robot.SafeJM (Robot.LEDT Rlist[我])
self.state [t] = 1
我+ = 1
如果self.state = = [1] * len (self.state):
self.state = [0] * len (self.state)
# elif self.state[t]==1:
# print('Race prevent ')
def GScan(自我,ESP Rlist t):
我= 0
当i< len(Rlist):
time . sleep (0.001)
如果self.state [t] = = 0:
ESP.patch(“goalposLED Rlist[我])
ESP.get(“zCurrent”)
self.state [t] = 1
我+ = 1
#打印(self.state)
如果self.state = = [1] * len (self.state):
self.state = [0] * len (self.state)
# elif self.state[t]==1:
# print('Race prevent ')
def SyncThreads(自我,有趣,args):
对于range(0,len(args))中的t:
thread = threading.Thread(target=fun[t],args=args[t])
线程。daemon = True
thread.start ()
self.threads.append(线程)
print(线程开始)
对于self.threads中的t:
t.join ()
打印(“做!”)