Exemple #1
0
    def test_control_mode_1_read_write(self):
        """Registers read/written  when using control mode 1 methods."""
        rpm_value = 500
        for motor_port_registers in MotorControlRegisters:
            motor_port_name = motor_port_registers.name
            motor_registers = motor_port_registers.value

            mode_1_register = motor_registers[MotorRegisterTypes.MODE_1_RPM]

            # create instance
            controller = EncoderMotorController(port=motor_port_name)
            controller.set_control_mode = Mock()
            controller.control_mode = Mock()
            controller.control_mode.return_value = MotorControlModes.MODE_1

            # setup r/w mocks
            write_word_mock = controller._mcu_device.write_word = Mock()
            read_signed_word_mock = controller._mcu_device.read_signed_word = Mock(
            )
            read_signed_word_mock.return_value = rpm_value

            # test
            controller.set_rpm_control(rpm_value)
            write_word_mock.assert_called_with(mode_1_register,
                                               rpm_value,
                                               little_endian=True,
                                               signed=True)

            self.assertEquals(controller.rpm_control(), rpm_value)
            read_signed_word_mock.assert_called_with(mode_1_register,
                                                     little_endian=True)
Exemple #2
0
    def test_rpm_control_returns_none_if_not_on_mode_1(self):
        """rpm_control() returns None if not on Mode 1."""
        controller = EncoderMotorController(port="M1")
        mode_mock = controller.control_mode = Mock()

        for mode in (MotorControlModes.MODE_0, MotorControlModes.MODE_2):
            mode_mock.return_value = mode
            self.assertEquals(controller.rpm_control(), None)