This commit is contained in:
jopohl
2016-04-28 18:29:37 +02:00
parent eccc3c7a4f
commit dfd760303c
4 changed files with 30309 additions and 30267 deletions

View File

@@ -369,6 +369,6 @@ class VirtualDevice(QObject):
if self.backend == Backends.grc:
return self.__dev.read_errors()
elif self.backend == Backends.native:
errors = "\n".join(self.__dev.errors)
self.__dev.errors[:] = []
errors = "\n\n".join(self.__dev.errors)
self.__dev.errors.clear()
return errors

View File

@@ -9,6 +9,7 @@ import time
from PyQt5.QtCore import QObject, pyqtSignal
from urh.util.Formatter import Formatter
from urh.util.Logger import logger
class Device(QObject):
@@ -25,9 +26,14 @@ class Device(QObject):
self.is_open = False
self._max_bandwidth = 1
self._max_frequency = 1
self._max_sample_rate = 1
self._max_gain = 1
self.success = 0
self.error_codes = {}
self.errors = []
self.errors = set()
self.queue = Queue()
self.send_buffer = None
@@ -84,7 +90,7 @@ class Device(QObject):
err = "{0}-{1} ({4}): {2} ({3})".format(type(self).__name__, action, self.error_codes[retcode], retcode, msg)
else:
err = "{0}-{1}: {2} ({3})".format(type(self).__name__, action, self.error_codes[retcode], retcode)
self.errors.append(err)
self.errors.add(err)
logger.error(err)
@@ -107,6 +113,14 @@ class Device(QObject):
@bandwidth.setter
def bandwidth(self, value):
if value > self._max_bandwidth:
err = "{0} bandwidth {1}Hz too high. Correcting to {2}Hz".format(type(self).__name__,
Formatter.big_value_with_suffix(value),
Formatter.big_value_with_suffix(self._max_bandwidth))
self.errors.add(err)
logger.warning(err)
value = self._max_bandwidth
if value != self.__bandwidth:
self.__bandwidth = value
if self.is_open:
@@ -122,6 +136,14 @@ class Device(QObject):
@frequency.setter
def frequency(self, value):
if value > self._max_frequency:
err = "{0} frequency {1}Hz too high. Correcting to {2}Hz".format(type(self).__name__,
Formatter.big_value_with_suffix(value),
Formatter.big_value_with_suffix(self._max_frequency))
self.errors.add(err)
logger.warning(err)
value = self._max_frequency
if value != self.__frequency:
self.__frequency = value
if self.is_open:
@@ -137,6 +159,12 @@ class Device(QObject):
@gain.setter
def gain(self, value):
if value > self._max_gain:
err = "{0} gain {1} too high. Correcting to {2}".format(type(self).__name__, value, self._max_gain)
self.errors.add(err)
logger.warning(err)
value = self._max_gain
if value != self.__gain:
self.__gain = value
if self.is_open:
@@ -152,6 +180,14 @@ class Device(QObject):
@sample_rate.setter
def sample_rate(self, value):
if value > self._max_sample_rate:
err = "{0} sample rate {1}Sps too high. Correcting to {2}Sps".format(type(self).__name__,
Formatter.big_value_with_suffix(value),
Formatter.big_value_with_suffix(self._max_sample_rate))
self.errors.add(err)
logger.warning(err)
value = self._max_sample_rate
if value != self.__sample_rate:
self.__sample_rate = value
if self.is_open:

View File

@@ -14,6 +14,12 @@ class HackRF(Device):
self.success = 0
self.error_not_open = -4242
self._max_bandwidth = 28e6
self._max_frequency = 6e9
self._max_sample_rate = 20e6
self._max_gain = 40
self.error_codes = {
0: "HACKRF_SUCCESS",
1: "HACKRF_TRUE",

File diff suppressed because it is too large Load Diff