summaryrefslogtreecommitdiff
path: root/parse_datasheet/parse_320066.py
diff options
context:
space:
mode:
authorGuillaume Knispel <gknispel@proformatique.com>2012-03-29 16:50:28 +0200
committerGuillaume Knispel <gknispel@proformatique.com>2012-03-29 16:50:28 +0200
commitb6fab912b3c98d4cb9d381fde656c7aad0e45b24 (patch)
tree2fd1f623c068d4dba4ca5eaddda9796d260547ab /parse_datasheet/parse_320066.py
parent988a70325443162da997608a0764b3b978b825fe (diff)
parse datasheet and dimms
Diffstat (limited to 'parse_datasheet/parse_320066.py')
-rwxr-xr-xparse_datasheet/parse_320066.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/parse_datasheet/parse_320066.py b/parse_datasheet/parse_320066.py
new file mode 100755
index 0000000..6e4c002
--- /dev/null
+++ b/parse_datasheet/parse_320066.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+
+import cPickle as pickle
+import sys
+
+from datasheet_tables import load_datasheet_pages, \
+ abs_tables_from_pages, \
+ profile_factory
+
+# register profiles:
+import smrbase
+import imch_conf
+import gbe
+
+
+def print_stuff(a_t, options):
+ for t in a_t.tables:
+ if options.warning_only and t.check_ranges():
+ continue
+ print '============================================================'
+ print '%xh' % t.offset, t.reg_name
+ for h, fmt in t.HeaderAttr:
+ print " %-15s %s" % (h, fmt(t, getattr(t, h)))
+ print
+ for l in t.lines:
+ print " ----------------"
+ l.simple_print()
+ print
+ print
+
+
+def main():
+ from optparse import OptionParser
+ parser = OptionParser(usage="usage: %prog [options] <tables_group> datasheet.xml")
+ parser.add_option("-p", "--pickle", dest="pickle_filename",
+ help="save parsed data to PICKLE", metavar="PICKLE")
+ parser.add_option("-W", "--Warning-only", action="store_true",
+ dest="warning_only", default=False,
+ help="only display tables for which a problem "
+ "has been detected")
+ (options, args) = parser.parse_args()
+ if len(args) < 1:
+ parser.print_help()
+ return 1
+ try:
+ datasheet = args[1]
+ except IndexError:
+ datasheet = "/home/xilun/hard/cooked/datasheet_320066.xml"
+ tables_group = args[0]
+
+ profile = profile_factory(tables_group)
+
+ pages = load_datasheet_pages(datasheet, profile.min_page, profile.max_page)
+ a_t = abs_tables_from_pages(pages, profile)
+
+ print_stuff(a_t, options)
+
+ if options.pickle_filename:
+ f = open(options.pickle_filename, "wb")
+ pickle.dump(a_t, f, -1)
+ f.close()
+
+
+sys.exit(main())