def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)

        self.ui = Ui_PIDTuningPanel()
        self.ui.setupUi(self)

        self._current_roll_pid = PIDData(100, 150, -300)
        self._current_pitch_pid = PIDData(100, 150, -300)
        self._current_stick_scaling = 1

        self._is_starting = False
        self._user_update_mode = PIDUpdateMode.BEGINNER_MODE

        self._roll_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._roll_pid_controller)
        self._roll_pid_controller.set_title('PID tuning')
        self._roll_pid_controller.set_default(PIDData(100, 150, -350))
        self._roll_pid_controller.set_p_bounds(50, 200)
        self._roll_pid_controller.set_p_title('Pitch Gain')
        self._roll_pid_controller.set_i_bounds(100, 300)
        self._roll_pid_controller.set_i_title('Error correction')
        self._roll_pid_controller.set_d_bounds(-1000, -100)
        self._roll_pid_controller.set_d_title('Set Point')

        self._pitch_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._pitch_pid_controller)
        self._pitch_pid_controller.set_title('PID tuning')
        self._pitch_pid_controller.set_default(PIDData(100, 150, -350))
        self._pitch_pid_controller.set_p_bounds(50, 200)
        self._pitch_pid_controller.set_p_title('Pitch Gain')
        self._pitch_pid_controller.set_i_bounds(100, 300)
        self._pitch_pid_controller.set_i_title('Error correction')
        self._pitch_pid_controller.set_d_bounds(-1000, -100)
        self._pitch_pid_controller.set_d_title('Set Point')

        self._stick_scaling_controller = ConfigSingleLinePanelController()
        self._stick_scaling_controller.set_title('Stick Scaling')
        self._stick_scaling_controller.set_line_description('Stick Scaling')
        self._stick_scaling_controller.set_bounds(1, 6)
        self._stick_scaling_controller.set_default('1')
        self.ui.main_layout.addWidget(self._stick_scaling_controller)

        ui_event_dispatcher.register(self._protocol_handler_changed_event,
                                     UIEventDispatcher.PROTOCOL_HANDLER_EVENT)
        vehicle_event_dispatcher.register(
            self._roll_pid_received, VehicleEventDispatcher.PID_ACCRO_ROLL)
        vehicle_event_dispatcher.register(
            self._pitch_pid_received, VehicleEventDispatcher.PID_ACCRO_PITCH)
        vehicle_event_dispatcher.register(
            self._accro_stick_scaling_received,
            VehicleEventDispatcher.PID_ACCRO_STICK_SCALING)

        self._cpt_before_send = 5
        self.set_beginner_mode()
Esempio n. 2
0
    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):

        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)

        self.ui = Ui_PIDTuningPanel()
        self.ui.setupUi(self)

        self._accel_roll_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._accel_roll_pid_controller)
        self._accel_roll_pid_controller.hide_i_line()
        self._accel_roll_pid_controller.hide_d_line()
        self._accel_roll_pid_controller.p_line.ui.label.setText(
            'Accel Roll Gain')
        self._accel_roll_pid_controller.i_line.ui.label.setText(
            'Accel Roll Error Correction')
        self._accel_roll_pid_controller.d_line.ui.label.setText(
            'Accel Roll Set Point Adjustment')

        self._gyro_roll_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._gyro_roll_pid_controller)
        self._gyro_roll_pid_controller.hide_i_line()
        self._gyro_roll_pid_controller.p_line.ui.label.setText(
            'Gyro Roll Gain')
        self._gyro_roll_pid_controller.i_line.ui.label.setText(
            'Gyro Roll Error Correction')
        self._gyro_roll_pid_controller.d_line.ui.label.setText(
            'Gyro Roll Set Point Adjustment')

        self._accel_pitch_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._accel_pitch_pid_controller)
        self._accel_pitch_pid_controller.hide_i_line()
        self._accel_pitch_pid_controller.hide_d_line()
        self._accel_pitch_pid_controller.p_line.ui.label.setText(
            'Accel Pitch Gain')
        self._accel_pitch_pid_controller.i_line.ui.label.setText(
            'Accel Pitch Error Correction')
        self._accel_pitch_pid_controller.d_line.ui.label.setText(
            'Accel Pitch Set Point Adjustment')

        self._gyro_pitch_pid_controller = PIDWidgetController()
        self.ui.main_layout.addWidget(self._gyro_pitch_pid_controller)
        self._gyro_pitch_pid_controller.p_line.ui.label.setText(
            'Gyro Pitch Gain')
        self._gyro_pitch_pid_controller.i_line.ui.label.setText(
            'Gyro Pitch Error Correction')
        self._gyro_pitch_pid_controller.d_line.ui.label.setText(
            'Gyro Pitch Set Point Adjustment')

        self.setBeginnerMode()
        self.ui.linked_check_box.clicked.connect(self._linked_checkbox_pressed)
        self._linked_checkbox_pressed()