diff options
author | Guillaume Knispel <gknispel@proformatique.com> | 2012-03-29 16:50:28 +0200 |
---|---|---|
committer | Guillaume Knispel <gknispel@proformatique.com> | 2012-03-29 16:50:28 +0200 |
commit | b6fab912b3c98d4cb9d381fde656c7aad0e45b24 (patch) | |
tree | 2fd1f623c068d4dba4ca5eaddda9796d260547ab /parse_datasheet/parse_320066.py | |
parent | 988a70325443162da997608a0764b3b978b825fe (diff) |
parse datasheet and dimms
Diffstat (limited to 'parse_datasheet/parse_320066.py')
-rwxr-xr-x | parse_datasheet/parse_320066.py | 64 |
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()) |