diff --git a/SportiduinoPQ.py b/SportiduinoPQ.py index 596b53d..9dfd0dc 100755 --- a/SportiduinoPQ.py +++ b/SportiduinoPQ.py @@ -12,7 +12,7 @@ import design from serial import Serial -from sportiduino import Sportiduino, SportiduinoException, SportiduinoTimeout +from sportiduino import Sportiduino, SportiduinoException, SportiduinoTimeout, SportiduinoNoCardPresentException from basestation import BaseStation from datetime import datetime, timedelta, timezone from PyQt5 import uic, QtWidgets, QtPrintSupport, QtCore, sip @@ -177,7 +177,10 @@ def ReadCard_clicked(self): self._show_card_data(data, card_type) self._save_card_data_to_file(data) - + + except SportiduinoNoCardPresentException as err: + self.log(self.tr("Card not found. Place card near reader and try again")) + except Exception as err: self._process_error(err) raise err diff --git a/sportiduino.py b/sportiduino.py index 49eb1f6..4ebafc1 100644 --- a/sportiduino.py +++ b/sportiduino.py @@ -603,6 +603,7 @@ def _connect_master_station(self, port): def _send_command(self, code, parameters=None, wait_response=True, timeout=None): resp_code, data = self._serialproto.send_command(self._serial, code, parameters, wait_response, timeout) + return Sportiduino._preprocess_response(resp_code, data, self._log_debug) @@ -659,7 +660,7 @@ def _preprocess_response(func, data, log_debug): raise SportiduinoException(Sportiduino._translate("sportiduino","Can't read EEPROM")) elif err_code == Sportiduino.ERR_CARD_NOT_FOUND: if card_type == 0 or card_type == 0xff: - raise SportiduinoException(Sportiduino._translate("sportiduino","Card is not found")) + raise SportiduinoNoCardPresentException(Sportiduino._translate("sportiduino","Card is not found")) else : raise SportiduinoException(Sportiduino._translate("sportiduino","Unsupported card type = {}").format(card_type)) elif err_code == Sportiduino.ERR_UNKNOWN_CMD: @@ -781,6 +782,10 @@ class SportiduinoException(Exception): pass +class SportiduinoNoCardPresentException(Exception): + pass + + class SportiduinoTimeout(SportiduinoException): pass