[docs]classProtocol(QObject):""" Class for handling the different protocols of the MyoGestic application. Parameters ---------- parent : MyoGestic | None The parent object of the protocol object. Attributes ---------- main_window : MyoGestic The main window of the MyoGestic application. protocol_mode_stacked_widget : QStackedWidget Stacked widget for displaying the different protocol modes. protocol_record_radio_button : QRadioButton Radio button for the record protocol. protocol_training_radio_button : QRadioButton Radio button for the training protocol. protocol_online_radio_button : QRadioButton Radio button for the online protocol. current_protocol : RecordProtocol | TrainingProtocol | OnlineProtocol | None The current protocol object. available_protocols : list[RecordProtocol | TrainingProtocol | OnlineProtocol] """def__init__(self,parent:MyoGestic|None=...)->None:super().__init__(parent)self.main_window=parent# Initialize Protocol UIself._setup_protocol_ui()# Initialize Protocolself.current_protocol:Optional[Union[RecordProtocol,TrainingProtocol,OnlineProtocol]]=Noneself.available_protocols:list[Union[RecordProtocol,TrainingProtocol,OnlineProtocol]]=[RecordProtocol(self.main_window),TrainingProtocol(self.main_window),OnlineProtocol(self.main_window),]def_protocol_record_toggled(self,checked:bool)->None:ifchecked:self.protocol_mode_stacked_widget.setCurrentIndex(0)self.current_protocol=self.available_protocols[0]def_protocol_training_toggled(self,checked:bool)->None:ifchecked:self.protocol_mode_stacked_widget.setCurrentIndex(1)self.current_protocol=self.available_protocols[1]def_protocol_online_toggled(self,checked:bool)->None:ifchecked:self.protocol_mode_stacked_widget.setCurrentIndex(2)self.current_protocol=self.available_protocols[2]def_setup_protocol_ui(self):self.protocol_mode_stacked_widget=(self.main_window.ui.protocolModeStackedWidget)self.protocol_mode_stacked_widget.setCurrentIndex(0)self.protocol_record_radio_button=(self.main_window.ui.protocolRecordRadioButton)self.protocol_record_radio_button.setChecked(True)self.protocol_record_radio_button.toggled.connect(self._protocol_record_toggled)self.protocol_training_radio_button=(self.main_window.ui.protocolTrainingRadioButton)self.protocol_training_radio_button.toggled.connect(self._protocol_training_toggled)self.protocol_online_radio_button=(self.main_window.ui.protocolOnlineRadioButton)self.protocol_online_radio_button.toggled.connect(self._protocol_online_toggled)