From d67a32ec58d9026d5278ba17a2b0ea6576ba6652 Mon Sep 17 00:00:00 2001 From: Przemek Wirkus Date: Wed, 22 Jun 2016 14:52:48 +0100 Subject: [PATCH 1/2] Add support for custom DAPlink version when reading mbed.htm --- mbed_lstools/lstools_base.py | 26 +++++++++++++++++++++----- test/mbed_htm.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/mbed_lstools/lstools_base.py b/mbed_lstools/lstools_base.py index 5e3238a..872e191 100644 --- a/mbed_lstools/lstools_base.py +++ b/mbed_lstools/lstools_base.py @@ -483,6 +483,24 @@ def get_mbed_htm_target_id(self, mount_point): return target_id return result + def get_mbed_htm_comment_section_ver_build(self, line): + """! Check for Version and Build date of interface chip firmware + @return (version, build) tuple if successful, None if no info found + """ + # + m = re.search(r'^', line) + if m: + version_str, build_str = m.groups() + return (version_str.strip(), build_str.strip()) + + # + m = re.search(r'^ @@ -494,11 +512,9 @@ def get_mbed_htm(self, mount_point): result = {} for line in self.get_mbed_htm_lines(mount_point): # Check for Version and Build date of interface chip firmware - m = re.search(r'^', line) - if m: - version_str, build_str = m.groups() - result['Version'] = version_str.strip() - result['Build'] = build_str.strip() + ver_bld = self.get_mbed_htm_comment_section_ver_build(line) + if ver_bld: + result['version'], result['build'] = ver_bld # Check for mbed URL m = re.search(r'url=([\w\d\:/\\\?\.=-_]+)', line) diff --git a/test/mbed_htm.py b/test/mbed_htm.py index 7907a2a..80bf5cc 100644 --- a/test/mbed_htm.py +++ b/test/mbed_htm.py @@ -35,6 +35,7 @@ class ParseMbedHTMTestCase(unittest.TestCase): test_mbed_htm_l152re_url_str = '' test_mbed_htm_lpc1768_url_str = '' test_mbed_htm_nucleo_l031k6_str = '' + test_mbed_htm_nrf51_url_str = '' # DAPLink 0240 test_daplink_240_mbed_html_str = 'window.location.replace("https://mbed.org/device/?code=0240000029164e45002f0012706e0006f301000097969900?version=0240?target_id=0007ffffffffffff4e45315450090023");' @@ -65,6 +66,34 @@ def test_daplink_240_mbed_html(self): target_id = self.mbeds.scan_html_line_for_target_id(self.test_daplink_240_mbed_html_str) self.assertEqual('0240000029164e45002f0012706e0006f301000097969900', target_id) + def test_mbed_htm_nrf51_url(self): + target_id = self.mbeds.scan_html_line_for_target_id(self.test_mbed_htm_nrf51_url_str) + self.assertEqual('1100021952333120353935373130313232323032AFD5DFD8', target_id) + + def get_mbed_htm_comment_section_ver_build(self): + # Incorrect data + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNone(ver_bld) + + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNone(ver_bld) + + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNone(ver_bld) + + # Correct data + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNotNone(ver_bld) + self.assertEqual(('0200', 'Mar 26 2014 13:22:20'), ver_bld) + + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNotNone(ver_bld) + self.assertEqual(('0200', 'Aug 27 2014 13:29:28'), ver_bld) + + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNotNone(ver_bld) + self.assertEqual(('0219', 'Feb 2 2016 15:20:54'), ver_bld) + def test_(self): pass From 8e630f43283a39f4ce901a2cb858553bd35ad36c Mon Sep 17 00:00:00 2001 From: Przemek Wirkus Date: Wed, 22 Jun 2016 15:04:05 +0100 Subject: [PATCH 2/2] Add SiliconLabs specific mbed.htm parsing --- mbed_lstools/lstools_base.py | 16 +++++++++------- test/mbed_htm.py | 4 ++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/mbed_lstools/lstools_base.py b/mbed_lstools/lstools_base.py index 872e191..c8180d5 100644 --- a/mbed_lstools/lstools_base.py +++ b/mbed_lstools/lstools_base.py @@ -484,7 +484,7 @@ def get_mbed_htm_target_id(self, mount_point): return result def get_mbed_htm_comment_section_ver_build(self, line): - """! Check for Version and Build date of interface chip firmware + """! Check for Version and Build date of interface chip firmware im mbed.htm file @return (version, build) tuple if successful, None if no info found """ # @@ -499,15 +499,17 @@ def get_mbed_htm_comment_section_ver_build(self, line): version_str, build_str = m.groups() return (version_str.strip(), build_str.strip()) + # + m = re.search(r'^', line) + if m: + version_str, build_str = m.groups() + return (version_str.strip(), build_str.strip()) return None def get_mbed_htm(self, mount_point): - """! - - - - ... - + """! Check for version, build date/timestamp, URL in mbed.htm file + @param mount_point Where to look for mbed.htm file + @return Dictoionary with additional DAPlink names """ result = {} for line in self.get_mbed_htm_lines(mount_point): diff --git a/test/mbed_htm.py b/test/mbed_htm.py index 80bf5cc..2967d78 100644 --- a/test/mbed_htm.py +++ b/test/mbed_htm.py @@ -94,6 +94,10 @@ def get_mbed_htm_comment_section_ver_build(self): self.assertIsNotNone(ver_bld) self.assertEqual(('0219', 'Feb 2 2016 15:20:54'), ver_bld) + ver_bld = self.mbeds.get_mbed_htm_comment_section_ver_build('') + self.assertIsNotNone(ver_bld) + self.assertEqual(('0.14.3', '471'), ver_bld) + def test_(self): pass