From bee762c6b2245a35529a685f3bad30950aa400ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Ates?= Date: Tue, 8 Oct 2013 13:02:02 +0200 Subject: [PATCH] Add parsing of get health parameters reader command. --- demo.py | 25 ++++++++++++++++++++++++- stid_readers/core.py | 21 +++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/demo.py b/demo.py index 1b942c2..155a09d 100755 --- a/demo.py +++ b/demo.py @@ -104,6 +104,24 @@ def reset_rf_settings(reader): except Exception, err: print str(err) +def get_health_parameters(reader): + print 'Get_HealthParameters' + try: + command = models.ReaderCommand(command_name='Get_HealthParameters', + reader=reader) + response = reader.send(command) + command.pretty_print() + response.pretty_print() + health_parameters = response.data + print "Antenna 0 connection quality : %d" % health_parameters['Tune0'] + print "Antenna 1 connection quality : %d" % health_parameters['Tune1'] + print "Antenna 2 connection quality : %d" % health_parameters['Tune2'] + print "Antenna 3 connection quality : %d" % health_parameters['Tune3'] + print "Reader core temperature: %d" % health_parameters['TempCore'] + print "Reader power amplificator temperature: %d" % health_parameters['PA'] + except Exception, err: + print str(err) + def test_1(reader): get_rf_settings(reader) inventory(reader) @@ -125,10 +143,13 @@ def test_4(reader): test_3(reader) reset_rf_settings(reader) +def test_5(reader): + get_health_parameters(reader) + if __name__ == '__main__': reader = models.RFIDReader() # Detect same tags before and after changing RF parameters - test_1(reader) +# test_1(reader) # Detect same tags before and after changing RF parameters and reader # reboot @@ -140,3 +161,5 @@ if __name__ == '__main__': # test_4(reader) # Do hard reader reboot # test_3(reader) + + test_5(reader) diff --git a/stid_readers/core.py b/stid_readers/core.py index 1f9a3ed..bf2e914 100644 --- a/stid_readers/core.py +++ b/stid_readers/core.py @@ -84,3 +84,24 @@ def set_rfsettings(command): def set_rfsettings_saved(command): return set_rfsettings(command) + + +def get_healthparameters(response): + ''' + Parse response content of 'Get_HealthParameters' command. + + Return a dict of values. + ''' + 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 + response.data = health_parameters