我遇到一个问题,当我将 2 个变量从一个类返回到另一个函数导致它运行时,它似乎无法正常运行。我认为问题出在我的 if 语句上,但我无法让它工作。当我在 if 语句之前打印变量时,它们会显示正确的内容。但是,当我将打印部分移到语句中时,它显示每次只有 else 部分在运行。这是我指的 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))