diff options
Diffstat (limited to 'tools/generate-bacnet-vendors.py')
-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") |