''
def MoveServo(servoId, pos, time):
global uart
buf = bytearray(b'\x55\x55\x08\x03\x01')
buf.append(0xff & actNum)
buf.append(0xff & time)
buf.append(0xff & (time >> 8))
buf.append((0xff & servoId))
buf.append(0xff & pos)
buf.append(0xff & (pos >> 8))
uart.write(buf)
'''
def RunActionGroup(actNum, num):
global uart
buf = bytearray(b'\x55\x55\x05\x06') #帧头, 长度, 命令 6
buf.append(0xff & actNum) #追加动作组号数
buf.append(0xff & num) #运行次数
buf.append(0xff & (num >> 8))
uart.write(buf)
def StopActionGroup():
uart.write(b'\x55\x55\x02\x07') #发送停止指令
'''
def WaitForFinish(timeout):
buf = bytearray()
timeout = utime.time() + timeout #计算超时时间到达后的系统时间
while True:
if utime.time() > timeout: #如果系统时间达到就返回False,即动作组没在指定时间内停止
return False
try:
rcv = uart.readline() #接收数据
if rcv is not None:
buf = rcv
while True:
try:
index = buf.index(b'\x55\x55') #查找帧头
if len(buf) >= buf[index + 2]:
buf = buf[index:] #将帧头前面不符合的部分剔除
if (buf[2] + 2) <= len(buf): #缓存中的数据数据是否完整
cmd = buf[0: (buf[2]+2)] #将命令取出 print("OK")
buf = buf[buf[2]+2:]
print(cmd[3])
if cmd[3] == 0x08 or cmd[3] == 0x07: #接受到的数据的命令号为8或7就是动作已停止
return True
except:
break
except:
continue
MoveServo(19, 1500, 1000)
MoveServo(20, 1500, 1000)
'''