diff --git a/src/cfclient/ui/dialogs/basestation_mode_dialog.py b/src/cfclient/ui/dialogs/basestation_mode_dialog.py index 3e0ed53d..0e56fa49 100644 --- a/src/cfclient/ui/dialogs/basestation_mode_dialog.py +++ b/src/cfclient/ui/dialogs/basestation_mode_dialog.py @@ -114,7 +114,18 @@ def _check_current_id(self): def _set_basestation_pressed(self): self._set_basestation_button.setEnabled(False) dev = self._device - ser = serial.Serial(dev, timeout=0.4) + try: + ser = serial.Serial(dev, timeout=0.4) + except serial.SerialException: + self._basestation_mode_status.setText( + 'Permission denied: cannot access serial port.\n' + 'Try running: \"sudo usermod -aG dialout [username]\" ' + 'and then restart your computer.' + ) + + self._set_basestation_button.setEnabled(True) + return + sio = io.TextIOWrapper(io.BufferedRWPair(ser, ser)) sio.write("\r\nmode " + str(self._channel) + "\r\n") sio.flush()