Add quality checking of antenna in health parameters.
This commit is contained in:
parent
a8b662fcb1
commit
0d7192bed7
|
@ -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
|
||||
|
|
Reference in New Issue