diff options
author | Anish Bhatt <anish@chelsio.com> | 2014-10-07 00:55:33 -0700 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-10-07 21:28:00 +0000 |
commit | 515f09fef06e04c616f3d37df531e7d3cecb84c0 (patch) | |
tree | 962da55f19ce2ea0b3b58ec07b832df510c17bc9 /tools | |
parent | cf4fc5796664beec172f1b1d6fd4591eda11da39 (diff) |
[tools] add script to automatically generate bacnet vendors
Requires beautifulsoup4 for parsing, translitcodec for converting accents/diaeresis etc to regular text
Change-Id: I4d400f15916ee3ab07fa14b09fca12beac2010f3
Reviewed-on: https://code.wireshark.org/review/4518
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/generate-bacnet-vendors.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/generate-bacnet-vendors.py b/tools/generate-bacnet-vendors.py new file mode 100755 index 0000000000..66263cfcd1 --- /dev/null +++ b/tools/generate-bacnet-vendors.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python2 + +from bs4 import BeautifulSoup +import urllib +import sys +import string +# Required to convert accents/diaeresis etc. +import translitcodec + +f = urllib.urlopen("http://www.bacnet.org/VendorID/BACnet%20Vendor%20IDs.htm") +html = f.read() +soup = BeautifulSoup(''.join(html)) + +entry = "static const value_string\nBACnetVendorIdentifiers [] = {" +table = soup.find('table') + +rows = table.findAll('tr') + +for tr in rows: + cols = tr.findAll('td') + for index,td in enumerate(cols[0:2]): + text = ''.join(td.find(text=True)) + if index == 0: + entry = " { %3s" % text + else: + entry += ", \"%s\" }," % text.rstrip() + # Required specially for "Dorsette's Inc." due to malformed html + entry = entry.replace(u'\u0092', u'\'') + # Required to convert accents/diaeresis etc. + entry = entry.encode('translit/long') + # Encode to ascii so we can out to file + entry = entry.encode("ascii",'ignore') + print entry + +entry = " { 0, NULL }\n};" +print entry.encode("ascii") |