0

我遇到一个问题,当我将 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))
4

0 回答 0