diff --git a/mbed_lstools/lstools_base.py b/mbed_lstools/lstools_base.py index 5e3238a..c8180d5 100644 --- a/mbed_lstools/lstools_base.py +++ b/mbed_lstools/lstools_base.py @@ -483,22 +483,40 @@ 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 im mbed.htm file + @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'^ + 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): # 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..2967d78 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,38 @@ 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) + + 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