Beispiel #1
0
def main():
    parser = argparse.ArgumentParser(description="Generate a family of Eagle Devices")
    parser.add_argument("--db", required=True,  type=str, nargs=1, dest='db', help="Spec for device list to build")
    parser.add_argument("--lbrin", required=True,  type=str, nargs=1, dest='lbrin', help="Library containing the symbol and the package.")
    parser.add_argument("--lbrout", required=True,  type=str, nargs=1, dest='lbrout', help="Output Library.")
    args = parser.parse_args()

    db = ET.parse(args.db[0])
    v = gcomVisitor()
    v.visit(db.getroot())

    lbrIn = EagleLibrary(args.lbrin[0])
#    ET.dump(db.getroot())
       
    for j in v.getVariants():
        #ET.dump(j)
        devset = lbrIn.findDeviceSet(j.find("devset").text.upper())
#        ET.dump(devset)
#        sys.exit(0)
        assert(devset is not None)
        for a in j.findall("attr"):
            j.set(a.get("key"), a.get("value"))
       
        device = ET.SubElement(devset.find("devices"), 
                               "device",
                               name=(j.find("format").text % j.attrib).upper(),
                               package=j.find("package").text.upper())
        connects = ET.SubElement(device,
                                 "connects");
        connections = eval(j.find("pinmapping").text)
        for c in connections:
            ET.SubElement(connects,
                          "connect",
                          gate="G$1",
                          pin=c,
                          pad=connections[c])

        t = ET.SubElement(device,"technologies")
        tech =ET.SubElement(t,"technology",name="")
        
        for a in j.attrib:
            ET.SubElement(tech,
                          "attribute",
                          name=a.upper(),
                          value=j.attrib[a])