Add quality checking of antenna in health parameters.

This commit is contained in:
Mikaël Ates 2016-01-08 12:22:47 +01:00
parent a8b662fcb1
commit 0d7192bed7
1 changed files with 19 additions and 13 deletions

View File

@ -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