diff --git a/stid_readers/core.py b/stid_readers/core.py index bf2e914..e2f5ebb 100644 --- a/stid_readers/core.py +++ b/stid_readers/core.py @@ -28,7 +28,7 @@ from _exceptions import MalformedDataError, BadParameterException -from utils import get_integer_on_two_bytes +from utils import get_integer_on_two_bytes, hex_to_int def get_rfsettings(response): @@ -44,10 +44,10 @@ def get_rfsettings(response): logic_ports = list() for i in range(0, 16): logic_port = dict() - logic_port['ScanDelay'] = int(response.raw_data[i * 4:(i * 4) + 2] - .encode('hex'), 16) * 10 # 0 ms ≤ ScanDelay ≤ 655350 ms () - power_ant_nb = int(response.raw_data[(i * 4) + 2:(i * 4) + 4] - .encode('hex'), 16) + # 0 ms ≤ ScanDelay ≤ 655350 ms () + logic_port['ScanDelay'] = \ + hex_to_int(response.raw_data[i * 4:(i * 4) + 2]) * 10 + power_ant_nb = hex_to_int(response.raw_data[(i * 4) + 2:(i * 4) + 4]) logic_port['AntNb'] = power_ant_nb & 0x000f logic_port['PowerAnt'] = (power_ant_nb >> 4) / 10 #[0E6h ≤ PowerAnt ≤ 136h] soit [23 dBm ≤ PowerAnt ≤ 31 dBm] (URF) @@ -92,16 +92,22 @@ def get_healthparameters(response): Return a dict of values. ''' + def antenna_quality(value): + if value <= 100: + return 0 + elif value > 160: + return 2 + else: + return 1 if not response.raw_data: raise MalformedDataError('Data content is malformed.') if len(response.raw_data) != 6: raise MalformedDataError('Data content is malformed.') - health_parameters = dict() - health_parameters['Tune0'] = int(response.raw_data[0].encode('hex'), 16) - health_parameters['Tune1'] = int(response.raw_data[1].encode('hex'), 16) - health_parameters['Tune2'] = int(response.raw_data[2].encode('hex'), 16) - health_parameters['Tune3'] = int(response.raw_data[3].encode('hex'), 16) - health_parameters['TempCore'] = int(response.raw_data[4].encode('hex'), 16) - health_parameters['PA'] = int(response.raw_data[5].encode('hex'), 16) - print health_parameters + health_parameters = { + 'Tune{}'.format(i): (hex_to_int(response.raw_data[i]), + antenna_quality(hex_to_int(response.raw_data[i]))) + for i in range(4) + } + health_parameters['TempCore'] = hex_to_int(response.raw_data[4]) + health_parameters['PA'] = hex_to_int(response.raw_data[5]) response.data = health_parameters