如果声明不像预期那样控制电机

时间:2013-08-24 20:48:17

标签: python if-statement

我遇到的问题是,当我将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))

0 个答案:

没有答案