Beispiel #1
0
 def test_pwm_output(self):
     min = 10000
     max = 20000
     zero = (min + max)/2.0
     period = 100000
     p = Pwm("PWM99A", min, max, period) # Use round numbers to make things easier
     
     speed = p.set_speed(0)
     self.assertEqual(speed, zero)
     self.assertEqual(zero, float(open(self.PWM99A_dir + Pwm.DUTY).read()))
     speed = p.set_speed(0.5)
     self.assertEqual(speed, (max+zero)/2.0)
     self.assertEqual((max+zero)/2.0, float(open(self.PWM99A_dir + Pwm.DUTY).read()))
     speed = p.set_speed(-1.0)
     self.assertEqual(speed, min)
     self.assertEqual(min, float(open(self.PWM99A_dir + Pwm.DUTY).read()))
     speed = p.set_speed(1.0)
     self.assertEqual(speed, max)
     self.assertEqual(max, float(open(self.PWM99A_dir + Pwm.DUTY).read()))
from robot import Robot
from commands import Commands
from input import Input
from pwm import Pwm
import os

def main():
    pid = str(os.getpid())
    file("/var/run/rotacaster.pid", "w").write(pid)
    
    robot = Robot()
    input = Input(robot)
    commands = Commands(robot, input)
    
    # keep the daemonising threads alive
    while True:
        pass

if __name__ == "__main__":
    try:
        main()
    except Exception as e:
        print e
        pa = Pwm(Robot.MOTOR_A_PWM)
        pb = Pwm(Robot.MOTOR_B_PWM)
        pc = Pwm(Robot.MOTOR_C_PWM)
        pa.set_speed(0.0)
        pb.set_speed(0.0)
        pc.set_speed(0.0)
        print "Exception Thrown, all motors stopped"