我遇到的问题是,当我将2个变量从一个类返回到另一个函数导致它运行时,它似乎无法正常运行。我认为问题在于我的if语句,但我无法让它发挥作用。当我在if语句之前打印变量时,它们会显示正确的内容。但是当我将打印部分移动到声明中时,它表明每次只有其他部分正在运行。它是我所指的MotorControl功能,我将其余部分包括在内,以防问题出在其他地方。
这些功能控制用于选择电机方向的引脚输入。
def clockwise():
io.output(in1_pin, True)
io.output(in2_pin, False)
def counter_clockwise():
io.output(in1_pin, False)
io.output(in2-pin, True)
def stop():
io.output(in1_pin, False)
io.output(in2_pin, False)
此类是套接字服务器的服务器部分,它从我的笔记本电脑上运行的另一个程序接收控制命令。
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.DriveSend = self.request.recv(1024).strip()
self.SteeringSend = self.request.recv(1024).strip()
#print("{} wrote:".format(self.client_address[0]))
self.SteeringSend = self.request.recv(1024).strip()
#print("{} wrote:".format(self.client_address[0]))
#print(self.DriveSend)
#print(self.SteeringSend)
#self.request.sendall(self.DriveSend.upper())
#self.request.sendall(self.SteeringSend.upper())
MotorControl(self)
return (self.DriveSend,self.SteeringSend)
此函数从服务器类获取返回输出,并且意味着使顺时针和逆时针功能使电机转向“正向”和“反向”。
def MotorControl(motor_var):
speed = 1
#print(motor_var.SteeringSend)
#print(motor_var.DriveSend)
print('test')
Drive = str(motor_var.DriveSend)
if Drive == "reverse":
speed = 99
print(Drive)
counter_clockwise()
elif Drive == "forward":
speed = 99
print(Drive)
clockwise()
else:
stop()
set("duty", str(speed))