def main(): delay = 0.5 pi = PiDevice() try: pi.set_mode_board() pins = [11, 13, 15, 16] for pin in pins: pi.setup_output(pin, value=PinValue.High) for pin in pins: time.sleep(delay) pi.set_output_low(pin) time.sleep(delay) pi.set_output_high(pin) for i in xrange(4): time.sleep(delay) for pin in pins: pi.set_output_low(pin) time.sleep(delay) for pin in pins: pi.set_output_high(pin) finally: pi.cleanup()
pi = None def init_device(): global pi if pi is not None: return try: from pi_control.pi_device import PiDevice except Exception, e: print e from pi_control.pi_imitator import PiImitator as PiDevice pi = PiDevice() pi.set_mode_board() pi.setup_output(11, value=PinValue.High) pi.setup_output(13, value=PinValue.High) pi.setup_output(15, value=PinValue.High) pi.setup_output(16, value=PinValue.High) def index(): user = current_user radio_info = radio_tools.get_radio_info() radio_stations = radio_info.get('icestats', {}).get('source', []) if isinstance(radio_stations, dict): radio_stations = [radio_stations] context = dict(user=user, radio_host=radio_tools.get_radio_host(), radio_stations=radio_stations)
class TestPiDevice(unittest.TestCase): pi = PiDevice() def test_get_numbers(self): self.assertEqual(range(1, 41), PiDevice().get_numbers()) def test_to_pi_device_mode(self): self.assertEqual(GPIO.BOARD, PiDevice.to_pi_device_mode(DeviceMode.Board)) self.assertEqual(GPIO.BCM, PiDevice.to_pi_device_mode(DeviceMode.Bcm)) with self.assertRaises(ValueError): PiDevice.to_pi_device_mode('NO EXISTS') def test_to_pi_pin_mode(self): self.assertEqual(GPIO.OUT, PiDevice.to_pi_pin_mode(PinMode.Output)) self.assertEqual(GPIO.IN, PiDevice.to_pi_pin_mode(PinMode.Input)) with self.assertRaises(ValueError): PiDevice.to_pi_pin_mode('NO EXISTS') def test_to_pi_pin_value(self): self.assertEqual(GPIO.LOW, PiDevice.to_pi_pin_value(PinValue.Low)) self.assertEqual(GPIO.HIGH, PiDevice.to_pi_pin_value(PinValue.High)) with self.assertRaises(ValueError): PiDevice.to_pi_pin_value('NO EXISTS') def test_to_pi_pull(self): self.assertEqual(GPIO.PUD_OFF, PiDevice.to_pi_pull(Pull.Off)) self.assertEqual(GPIO.PUD_UP, PiDevice.to_pi_pull(Pull.Up)) self.assertEqual(GPIO.PUD_DOWN, PiDevice.to_pi_pull(Pull.Down)) with self.assertRaises(ValueError): PiDevice.to_pi_pull('NO EXISTS') def test_to_pin_value(self): self.assertEqual(PinValue.High, PiDevice.to_pin_value(1)) self.assertEqual(PinValue.High, PiDevice.to_pin_value(True)) self.assertEqual(PinValue.High, PiDevice.to_pin_value(GPIO.HIGH)) self.assertEqual(PinValue.Low, PiDevice.to_pin_value(0)) self.assertEqual(PinValue.Low, PiDevice.to_pin_value(False)) self.assertEqual(PinValue.Low, PiDevice.to_pin_value(GPIO.LOW)) with self.assertRaises(ValueError): PiDevice.to_pin_value('NO EXISTS') def test_setup_output_high(self): self.pi.setup_output(11, value=PinValue.High) self.assertEqual(PinValue.High, self.pi.get_output(11)) def test_setup_output_low(self): self.pi.setup_output(11, value=PinValue.Low) self.assertEqual(PinValue.Low, self.pi.get_output(11)) def test_setup_output(self): self.pi.setup_output(11) self.assertEqual(None, self.pi.get_output(11)) def test_set_output_low(self): self.pi.setup_output(11) self.pi.set_output_low(11) self.assertEqual(PinValue.Low, self.pi.get_output(11)) def test_set_output_high(self): self.pi.setup_output(11) self.pi.set_output_high(11) self.assertEqual(PinValue.High, self.pi.get_output(11)) def setUp(self): self.pi = PiDevice() self.pi.set_mode_board() def tearDown(self): self.pi.cleanup()