def test_transfer_multiple_bytes(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [
         0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
         1, 1
     ]
     result = device.transfer([0xF8, 0x1F, 0xF8])
     # Verify clock
     self.assertListEqual(gpio.pin_written[1], [
         0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
         0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
         0, 1, 0, 1, 0
     ])
     # Verify MOSI
     self.assertListEqual(gpio.pin_written[2], [
         1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
         0, 0
     ])
     # Verify MISO
     self.assertNotIn(3, gpio.pin_written)
     # Verify SS
     self.assertListEqual(gpio.pin_written[4], [1, 0, 1])
     # Verify result
     self.assertEqual(result, bytearray([0x1F, 0xF8, 0x1F]))
Example #2
0
 def test_mode_0_read(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [0, 0, 0, 1, 1, 1, 1, 1]
     result = device.read(1)
     # Verify clock
     self.assertListEqual(gpio.pin_written[1], [0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1, 0])
     # Verify MOSI
     self.assertNotIn(2, gpio.pin_written)
     # Verify MISO
     self.assertNotIn(3, gpio.pin_written)
     # Verify SS
     self.assertListEqual(gpio.pin_written[4], [1, 0, 1])
     # Verify result
     self.assertEqual(result, bytearray([0x1F]))
Example #3
0
 def test_mode_0_read(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [0, 0, 0, 1, 1, 1, 1, 1]
     result = device.read(1)
     # Verify clock
     self.assertListEqual(gpio.pin_written[1], [0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1, 0])
     # Verify MOSI
     self.assertNotIn(2, gpio.pin_written)
     # Verify MISO
     self.assertNotIn(3, gpio.pin_written)
     # Verify SS
     self.assertListEqual(gpio.pin_written[4], [1, 0, 1])
     # Verify result
     self.assertEqual(result, bytearray([0x1F]))
Example #4
0
 def test_pin_modes_set_correctly(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     self.assertDictEqual(gpio.pin_mode, {1: GPIO.OUT,
                                          2: GPIO.OUT,
                                          3: GPIO.IN,
                                          4: GPIO.OUT})
 def test_is_high_and_is_low(self):
     gpio = MockGPIO()
     gpio.pin_read[1] = [0, 0, 1, 1]
     self.assertTrue(gpio.is_low(1))
     self.assertFalse(gpio.is_high(1))
     self.assertFalse(gpio.is_low(1))
     self.assertTrue(gpio.is_high(1))
	def test_is_high_and_is_low(self):
		gpio = MockGPIO()
		gpio.pin_read[1] = [0, 0, 1, 1]
		self.assertTrue(gpio.is_low(1))
		self.assertFalse(gpio.is_high(1))
		self.assertFalse(gpio.is_low(1))
		self.assertTrue(gpio.is_high(1))
Example #7
0
 def test_mode_0_write(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     device.write([0x1F])
     # Verify clock
     self.assertListEqual(gpio.pin_written[1], [0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1, 0])
     # Verify MOSI
     self.assertListEqual(gpio.pin_written[2], [0, 0, 0, 1, 1, 1, 1, 1])
     # Verify MISO
     self.assertNotIn(3, gpio.pin_written)
     # Verify SS
     self.assertListEqual(gpio.pin_written[4], [1, 0, 1])
Example #8
0
 def test_transfer_multiple_bytes(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
                         0, 0, 0, 1, 1, 1, 1, 1]
     result = device.transfer([0xF8, 0x1F, 0xF8])
     # Verify clock
     self.assertListEqual(gpio.pin_written[1], [0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1,
                                                0, 1, 0, 1, 0, 1, 0, 1, 0])
     # Verify MOSI
     self.assertListEqual(gpio.pin_written[2], [1, 1, 1, 1, 1, 0, 0, 0,
                                                0, 0, 0, 1, 1, 1, 1, 1,
                                                1, 1, 1, 1, 1, 0, 0, 0])
     # Verify MISO
     self.assertNotIn(3, gpio.pin_written)
     # Verify SS
     self.assertListEqual(gpio.pin_written[4], [1, 0, 1])
     # Verify result
     self.assertEqual(result, bytearray([0x1F, 0xF8, 0x1F]))
 def test_set_high_and_set_low(self):
     gpio = MockGPIO()
     gpio.set_high(1)
     gpio.set_low(1)
     self.assertDictEqual(gpio.pin_written, {1: [1, 0]})
Example #10
0
 def test_read_assert_deassert_ss_false(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [0, 0, 0, 1, 1, 1, 1, 1]
     result = device.read(1, assert_ss=False, deassert_ss=False)
     self.assertListEqual(gpio.pin_written[4], [1])
	def test_output_pins(self):
		gpio = MockGPIO()
		gpio.output_pins({0: True, 1: False, 7: True})
		self.assertDictEqual(gpio.pin_written, {0: [1], 1: [0], 7: [1]})
 def test_invalid_bit_order_fails(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     self.assertRaises(ValueError, device.set_bit_order, -1)
     self.assertRaises(ValueError, device.set_bit_order, 2)
 def test_write_lsbfirst(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     device.set_bit_order(SPI.LSBFIRST)
     device.write([0x1F])
     self.assertListEqual(gpio.pin_written[2], [1, 1, 1, 1, 1, 0, 0, 0])
 def test_write_assert_deassert_ss_false(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     device.write([0x1F], assert_ss=False, deassert_ss=False)
     self.assertListEqual(gpio.pin_written[4], [1])
 def test_ss_set_high_after_initialization(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     self.assertListEqual(gpio.pin_written[4], [1])
 def test_read_assert_deassert_ss_false(self):
     gpio = MockGPIO()
     device = SPI.BitBang(gpio, 1, 2, 3, 4)
     gpio.pin_read[3] = [0, 0, 0, 1, 1, 1, 1, 1]
     result = device.read(1, assert_ss=False, deassert_ss=False)
     self.assertListEqual(gpio.pin_written[4], [1])
 def test_output_pins(self):
     gpio = MockGPIO()
     gpio.output_pins({0: True, 1: False, 7: True})
     self.assertDictEqual(gpio.pin_written, {0: [1], 1: [0], 7: [1]})
	def test_set_high_and_set_low(self):
		gpio = MockGPIO()
		gpio.set_high(1)
		gpio.set_low(1)
		self.assertDictEqual(gpio.pin_written, {1: [1, 0]})