Ejemplo n.º 1
0
 def setUp(self):
     from Arduino.arduino import Arduino
     self.mock_serial = MockSerial(9600, '/dev/ttyACM0')
     self.board = Arduino(sr=self.mock_serial)
 def setUp(self):
     from Arduino.arduino import Arduino
     self.mock_serial = MockSerial(9600, '/dev/ttyACM0')
     self.board = Arduino(sr=self.mock_serial)
Ejemplo n.º 3
0
class TestArduino(unittest.TestCase):
    def parse_cmd_sr(self, cmd_str):
        assert cmd_str[0] == '@'
        first_index = cmd_str.find('%')
        assert first_index != -1
        assert cmd_str[-2:] == '$!'
        # Skip over the @ and read up to but not including the %.
        cmd = cmd_str[1:first_index]
        # Skip over the first % and ignore the trailing $!.
        args_str = cmd_str[first_index + 1:-2]
        args = args_str.split('%')
        return cmd, args

    def setUp(self):
        from Arduino.arduino import Arduino
        self.mock_serial = MockSerial(9600, '/dev/ttyACM0')
        self.board = Arduino(sr=self.mock_serial)

    def test_version(self):
        from Arduino.arduino import build_cmd_str
        expected_version = "version"
        self.mock_serial.push_line(expected_version)
        self.assertEquals(self.board.version(), expected_version)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('version'))

    def test_pinMode_input(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.pinMode(pin, INPUT)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('pm', (-pin, )))

    def test_pinMode_output(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.pinMode(pin, OUTPUT)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('pm', (pin, )))

    def test_pulseIn_low(self):
        from Arduino.arduino import build_cmd_str
        expected_duration = 230
        self.mock_serial.push_line(expected_duration)
        pin = 9
        self.assertEquals(self.board.pulseIn(pin, LOW), expected_duration)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('pi', (-pin, )))

    def test_pulseIn_high(self):
        from Arduino.arduino import build_cmd_str
        expected_duration = 230
        pin = 9
        self.mock_serial.push_line(expected_duration)
        self.assertEquals(self.board.pulseIn(pin, HIGH), expected_duration)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('pi', (pin, )))

    def test_digitalRead(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.mock_serial.push_line(READ_LOW)
        self.assertEquals(self.board.digitalRead(pin), READ_LOW)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('dr', (pin, )))

    def test_digitalWrite_low(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.digitalWrite(pin, LOW)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('dw', (-pin, )))

    def test_digitalWrite_high(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.digitalWrite(pin, HIGH)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('dw', (pin, )))

    def test_melody(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        notes = ["C4"]
        duration = 4
        C4_NOTE = 262
        self.board.Melody(pin, notes, [duration])
        self.assertEquals(
            self.mock_serial.output[0],
            build_cmd_str('to', (len(notes), pin, C4_NOTE, duration)))
        self.assertEquals(self.mock_serial.output[1],
                          build_cmd_str('nto', (pin, )))

    def test_shiftIn(self):
        from Arduino.arduino import build_cmd_str
        dataPin = 2
        clockPin = 3
        pinOrder = MSBFIRST
        expected = 0xff
        self.mock_serial.push_line(expected)
        self.assertEquals(self.board.shiftIn(dataPin, clockPin, pinOrder),
                          expected)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('si', (
                              dataPin,
                              clockPin,
                              pinOrder,
                          )))

    def test_shiftOut(self):
        from Arduino.arduino import build_cmd_str
        dataPin = 2
        clockPin = 3
        pinOrder = MSBFIRST
        value = 0xff
        self.board.shiftOut(dataPin, clockPin, pinOrder, value)
        self.assertEquals(
            self.mock_serial.output[0],
            build_cmd_str('so', (dataPin, clockPin, pinOrder, value)))

    def test_analogRead(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        expected = 1023
        self.mock_serial.push_line(expected)
        self.assertEquals(self.board.analogRead(pin), expected)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('ar', (pin, )))

    def test_analogWrite(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        value = 255
        self.board.analogWrite(pin, value)
        self.assertEquals(self.mock_serial.output[0],
                          build_cmd_str('aw', (pin, value)))
class TestArduino(unittest.TestCase):

    def parse_cmd_sr(self, cmd_str):
        assert cmd_str[0] == '@'
        first_index = cmd_str.find('%')
        assert first_index != -1
        assert cmd_str[-2:] == '$!'
        # Skip over the @ and read up to but not including the %.
        cmd = cmd_str[1:first_index]
        # Skip over the first % and ignore the trailing $!.
        args_str = cmd_str[first_index+1:-2]
        args = args_str.split('%')
        return cmd, args

    def setUp(self):
        from Arduino.arduino import Arduino
        self.mock_serial = MockSerial(9600, '/dev/ttyACM0')
        self.board = Arduino(sr=self.mock_serial)

    def test_version(self):
        from Arduino.arduino import build_cmd_str
        expected_version = "version"
        self.mock_serial.push_line(expected_version)
        self.assertEquals(self.board.version(), expected_version)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('version'))

    def test_pinMode_input(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.pinMode(pin, INPUT)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('pm', (-pin,)))

    def test_pinMode_output(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.pinMode(pin, OUTPUT)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('pm', (pin,)))

    def test_pulseIn_low(self):
        from Arduino.arduino import build_cmd_str
        expected_duration = 230
        self.mock_serial.push_line(expected_duration)
        pin = 9
        self.assertEquals(self.board.pulseIn(pin, LOW), expected_duration)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('pi', (-pin,)))

    def test_pulseIn_high(self):
        from Arduino.arduino import build_cmd_str
        expected_duration = 230
        pin = 9
        self.mock_serial.push_line(expected_duration)
        self.assertEquals(self.board.pulseIn(pin, HIGH), expected_duration)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('pi', (pin,)))

    def test_digitalRead(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.mock_serial.push_line(READ_LOW)
        self.assertEquals(self.board.digitalRead(pin), READ_LOW)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('dr', (pin,)))

    def test_digitalWrite_low(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.digitalWrite(pin, LOW)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('dw', (-pin,)))

    def test_digitalWrite_high(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        self.board.digitalWrite(pin, HIGH)
        self.assertEquals(self.mock_serial.output[0], build_cmd_str('dw', (pin,)))

    def test_melody(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        notes = ["C4"]
        duration = 4
        C4_NOTE = 262
        self.board.Melody(pin, notes, [duration])
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('to', (len(notes), pin, C4_NOTE, duration)))
        self.assertEquals(self.mock_serial.output[1],
            build_cmd_str('nto', (pin,)))

    def test_shiftIn(self):
        from Arduino.arduino import build_cmd_str
        dataPin = 2
        clockPin = 3
        pinOrder = MSBFIRST
        expected = 0xff
        self.mock_serial.push_line(expected)
        self.assertEquals(self.board.shiftIn(dataPin, clockPin, pinOrder),
            expected)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('si', (dataPin, clockPin, pinOrder,)))

    def test_shiftOut(self):
        from Arduino.arduino import build_cmd_str
        dataPin = 2
        clockPin = 3
        pinOrder = MSBFIRST
        value = 0xff
        self.board.shiftOut(dataPin, clockPin, pinOrder, value)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('so', (dataPin, clockPin, pinOrder, value)))

    def test_analogRead(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        expected = 1023
        self.mock_serial.push_line(expected)
        self.assertEquals(self.board.analogRead(pin), expected)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('ar', (pin,)))

    def test_analogWrite(self):
        from Arduino.arduino import build_cmd_str
        pin = 9
        value = 255
        self.board.analogWrite(pin, value)
        self.assertEquals(self.mock_serial.output[0],
            build_cmd_str('aw', (pin, value)))