Esempio n. 1
0
 def test_positive_protocol_format_validate_read_action(self):
     self.assertEqual(ProtocolFormatValidator.validate_read_action('RD1'),
                      True)
     self.assertEqual(ProtocolFormatValidator.validate_read_action('RA1'),
                      True)
     self.assertEqual(ProtocolFormatValidator.validate_read_action('WA12'),
                      True)
Esempio n. 2
0
 def test_positive_protocol_format_validate_pin_mode(self):
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('MO5'),
                      True)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('MO71'),
                      True)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('AZ59'),
                      True)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('GI9'),
                      True)
Esempio n. 3
0
 def test_positive_protocol_format_validate_write_action(self):
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('WA1:1'), True)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('WD1:1'), True)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('AG11:1'), True)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('HE1:11'), True)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('MT11:11'), True)
Esempio n. 4
0
    def digital_write(self, pin_number, digital_value):
        """
        Digital write to a pin with data

        :param pin_number: int
        :param digital_value: int
        :return: boolean
        """

        if not ParameterValidator.validate_pin_number(pin_number):
            return False

        if not ParameterValidator.validate_digital_range(digital_value):
            return False

        print_verbose('Controller.digital_write.writing.to')

        try:
            command = ProtocolStringFormatter.format_digital_write(
                pin_number, digital_value)
            if not ProtocolFormatValidator.validate_write_action(command):
                return False

            print_verbose('Controller.digital_write.writing.to.with',
                          digital_value,
                          pin_number,
                          indent=1)
            self.conn.write(command.encode())
            return True
        except Exception as e:
            print('\t[-]', e)
            return False
Esempio n. 5
0
    def analog_read(self, pin_number):
        """
        Analog read on a pin. Arduino can only return from 0 to 1023

        :param pin_number: int
        :return: boolean
        """
        if not ParameterValidator.validate_pin_number(pin_number):
            return False

        print_verbose('Controller.analog_read.reading.from')

        try:
            command = ProtocolStringFormatter.format_analog_read(pin_number)
            if not ProtocolFormatValidator.validate_read_action(command):
                return False

            self.conn.write(command.encode())
            print_verbose('Controller.analog_read.reading.from.pin',
                          pin_number)
            line_received = self.conn.readline().decode().strip()
            header, value = line_received.split(':')
        except Exception as e:
            print('\t[-]', e)
            return -1

        if header == ('A' + str(pin_number)):
            return int(value)
        return -1
Esempio n. 6
0
    def digital_read(self, pin_number):
        """
        Digital read on a pin

        :param pin_number: int
        :return: int
        """
        if not ParameterValidator.validate_pin_number(pin_number):
            return False

        print_verbose('Controller.digital_read.reading.from')

        try:
            command = ProtocolStringFormatter.format_digital_read(pin_number)
            if not ProtocolFormatValidator.validate_read_action(command):
                return False

            self.conn.write(command.encode())
            print_verbose('Controller.digital_read.reading.from.pin',
                          pin_number,
                          indent=1)
            line_received = self.conn.readline().decode().strip()
            header, value = line_received.split(':')
        except Exception as e:
            print('\t[-]', e)
            return -1

        if header and header == ('D' + str(pin_number)):
            return int(value)
        return -1
Esempio n. 7
0
 def test_negative_protocol_format_validate_read_action(self):
     self.assertEqual(ProtocolFormatValidator.validate_read_action('RD123'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action('R12'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action('12AS'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action('A1'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action(''),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action([]),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action({}),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action(()),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action(True),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_read_action(False),
                      False)
Esempio n. 8
0
    def set_pin_mode(self, pin_number, mode='OUTPUT'):
        """
        Sets a pin with a mode

        :param pin_number:  int
        :param mode: string specified in self.pin_modes
        :return: boolean
        """
        if not ParameterValidator.validate_pin_number(pin_number):
            return False

        if not ParameterValidator.validate_pin_modes(mode):
            return False

        print_verbose('Controller.set_pin_mode.pin.mode')

        try:
            command = ProtocolStringFormatter.format_single_pin_mode(
                pin_number, mode)
            if not ProtocolFormatValidator.validate_pin_mode(command):
                return False

            print_verbose('Controller.set_pin_mode.pin.mode.as',
                          pin_number,
                          mode,
                          indent=1)
            self.conn.write(command.encode())
            print_verbose('Controller.set_pin_mode.saving.as',
                          pin_number,
                          mode,
                          indent=1)
            self.currentActivePins.append({'pin': pin_number, 'mode': mode})
            return True
        except Exception as e:
            print('\t[-]', e)
            return False
Esempio n. 9
0
 def test_negative_protocol_format_validate_write_action(self):
     self.assertEqual(ProtocolFormatValidator.validate_write_action('W1:1'),
                      False)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('Wa1~1'), False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action('1:1'),
                      False)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('QWE1:1'), False)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('QWE1:'), False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action('QWE1'),
                      False)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('as1:1'), False)
     self.assertEqual(
         ProtocolFormatValidator.validate_write_action('AW1:a'), False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action(''),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action([]),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action({}),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action(()),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action(True),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_write_action(False),
                      False)
Esempio n. 10
0
 def test_negative_protocol_format_validate_pin_mode(self):
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('M5'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('M51'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('GA511'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('ga11'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode('ok'),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode(''), False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode([]), False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode({}), False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode(()), False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode(True),
                      False)
     self.assertEqual(ProtocolFormatValidator.validate_pin_mode(False),
                      False)