def main(argv): #Parse out the commandline arguments s = status.Status() s.set_level(status.StatusLevel.INFO) parser = argparse.ArgumentParser( formatter_class = argparse.RawDescriptionHelpFormatter, description = DESCRIPTION, epilog = EPILOG ) debug = False parser.add_argument("-d", "--debug", action = "store_true", help = "Enable Debug Messages") parser.add_argument("-l", "--list", action = "store_true", help = "List the available devices from a platform scan") parser.add_argument("platform", type = str, nargs='?', default=["first"], help="Specify the platform to use") args = parser.parse_args() plat = ["", None, None] if args.debug: s.set_level(status.StatusLevel.VERBOSE) s.Debug("Debug Enabled") debug = True pscanner = PlatformScanner() platform_dict = pscanner.get_platforms() platform_names = platform_dict.keys() if "sim" in platform_names: #If sim is in the platforms, move it to the end platform_names.remove("sim") platform_names.append("sim") dev_index = None for platform_name in platform_dict: s.Verbose("Platform: %s" % str(platform_name)) s.Verbose("Type: %s" % str(platform_dict[platform_name])) platform_instance = platform_dict[platform_name](s) s.Verbose("Platform Instance: %s" % str(platform_instance)) instances_dict = platform_instance.scan() if plat[1] is not None: break for name in instances_dict: #s.Verbose("Found Platform Item: %s" % str(platform_item)) n = instances_dict[name] plat = ["", None, None] if n is not None: s.Verbose("Found a nysa instance: %s" % name) n.read_sdb() dev_index = n.find_device(Nysa.get_id_from_name("LCD")) if dev_index is not None: s.Important("Found a device at %d" % dev_index) plat = [platform_name, name, n] break continue if platform_name == args.platform and plat[0] != args.platform: #Found a match for a platfom to use plat = [platform_name, name, n] continue s.Verbose("\t%s" % psi) if args.list: s.Verbose("Listed all platforms, exiting") sys.exit(0) if plat is not None: s.Important("Using: %s" % plat) else: s.Fatal("Didn't find a platform to use!") c = Controller() if dev_index is None: sys.exit("Failed to find an LCD Device") c.start_standalone_app(plat, dev_index, status, debug)