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"