def main(): cleanDirectories() testing = False bulk = False if (len(sys.argv) > 1): if (sys.argv[1] == '--test'): testing = True if (sys.argv[1] == '--bulk'): bulk = True else: testing = False variables = loadJSON() if bulk == True: csv_file = getCSVPath() data = bulkImport(csv_file) print() bulkBuild( data, variables, ) print() elif testing == True: data = populate() bulkBuild( data, variables, ) print() else: data = getData() instance = data[0] dirs = setupDirectories(instance) instance = uploadProfilePhoto(instance) buildTemplate(instance, variables, dirs) if testing == False: should_upload = getUpload() if (should_upload == 'Y'): uploadToServer(data) print() print('Operation completed successfully.')
def generateDTSFiles(gpioPins, states): # create all of the dts files for each pin. include all of the states. # returns the list of filenames created dtsFilenames = [] for pin in gpioPins: headerName, hardwareName, offset, kernelPin, gpioMuxMode = pin partNumber = "gpio-%s" % (headerName) version = "00A0" filename = "%s-%s" % (partNumber, version) # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".","_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": '"%s"' % hardwareName, } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates index = 0 for stateName, stateMuxBits in states: # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s" % (hex(offset), hex(gpioMuxMode | stateMuxBits )) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 bank, pin = getGpioBank(hardwareName) # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join(['"%s"' % stateName for stateName, stateMuxBits in states]), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), "gpio index": 32*bank + pin, } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) ## dts template dtsValues = { "fragments": "".join(fragmentList) } values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print "Writing", filename f = open("%s.dts" % filename, "w") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames
def generateDTSFilesDualPin(dualGpioPins, states): dtsFilenames = [] for pin in dualGpioPins: headerName, pins = pin pin1, pin2 = pins p1hardwareName, p1offset, p1kernelPin, p1gpioMuxMode = pin1 p2hardwareName, p2offset, p2kernelPin, p2gpioMuxMode = pin2 partNumber = "gpio-%s" % (headerName) version = "00A0" filename = "%s-%s" % (partNumber, version) # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".","_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": '"%s", "%s"' % (p1hardwareName, p2hardwareName), } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates index = 0 # default state is first, so grab it defaultP2MuxMode = None for stateName, stateMuxBits in states: if defaultP2MuxMode is None: defaultP2MuxMode = stateMuxBits | p2gpioMuxMode # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s\t%s %s" % (hex(p1offset), hex(p1gpioMuxMode | stateMuxBits ), hex(p2offset), defaultP2MuxMode) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 bank, pin = getGpioBank(p1hardwareName) # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join(['"%s"' % stateName for stateName, stateMuxBits in states]), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), "gpio index": 32*bank + pin, } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) ## dts template dtsValues = { "fragments": "".join(fragmentList) } values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print "Writing", filename f = open("%s.dts" % filename, "w") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames
def generateDTSFiles(gpioPins, states): # create all of the dts files for each pin. include all of the states. # returns the list of filenames created dtsFilenames = [] for pin in gpioPins: ( "P8.20", 0x084, ("pr1_pru1_pru_r31_13", "pr1_pru1_pru_r30_13"), (6, 5)), headerName, offset, (inputHardwareName, outputHardwareName), (inputMuxMode, outputMuxMode) = pin partNumber = "prugpio-%s" % (headerName) version = "00A0" filename = "%s-%s" % (partNumber, version) hardwareName = [] if inputHardwareName: hardwareName += ['"%s"' % inputHardwareName] if outputHardwareName: hardwareName += ['"%s"' % outputHardwareName] # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".","_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": ", ".join(hardwareName), "gpio index": getPruGpio(inputHardwareName), "type": "prugpio", } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates stateNames = [] index = 0 for stateName, stateMuxBits, isInput in states: if isInput: directionMux = inputMuxMode else: directionMux = outputMuxMode if directionMux is None: continue stateNames.append('"%s"' % stateName) # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s" % (hex(offset), hex(directionMux | stateMuxBits )) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join(stateNames), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) index += 1 # fragment to enable pruss stuffs statusValues = { "index": index, "status": "okay", } values.update(statusValues) fragmentList.append(templates.populate(templates.prussHelper, values)) ## dts template dtsValues = { "fragments": "".join(fragmentList) } values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print "Writing", filename f = open("%s.dts" % filename, "wb") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames
def generateDTSFiles(gpioPins, states): # create all of the dts files for each pin. include all of the states. # returns the list of filenames created dtsFilenames = [] for pin in gpioPins: ("P8.20", 0x084, ("pr1_pru1_pru_r31_13", "pr1_pru1_pru_r30_13"), (6, 5)), headerName, offset, (inputHardwareName, outputHardwareName), (inputMuxMode, outputMuxMode) = pin partNumber = "prugpio-%s" % (headerName) version = "00A0" filename = "%s-%s" % (partNumber, version) hardwareName = [] if inputHardwareName: hardwareName += ['"%s"' % inputHardwareName] if outputHardwareName: hardwareName += ['"%s"' % outputHardwareName] # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".", "_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": ", ".join(hardwareName), "gpio index": getPruGpio(inputHardwareName), "type": "prugpio", } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates stateNames = [] index = 0 for stateName, stateMuxBits, isInput in states: if isInput: directionMux = inputMuxMode else: directionMux = outputMuxMode if directionMux is None: continue stateNames.append('"%s"' % stateName) # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s" % (hex(offset), hex(directionMux | stateMuxBits)) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join(stateNames), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) index += 1 # fragment to enable pruss stuffs statusValues = { "index": index, "status": "okay", } values.update(statusValues) fragmentList.append(templates.populate(templates.prussHelper, values)) ## dts template dtsValues = {"fragments": "".join(fragmentList)} values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print "Writing", filename f = open("%s.dts" % filename, "wb") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames
def generateDTSFiles(gpioPins, states): # create all of the dts files for each pin. include all of the states. # returns the list of filenames created dtsFilenames = [] for pin in gpioPins: headerName, hardwareName, offset, kernelPin, gpioMuxMode = pin partNumber = "gimp-gpio-%s" % (headerName.replace(".", "_")) version = "00A0" filename = "%s-%s" % (partNumber, version) # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".", "_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": '"%s"' % hardwareName, } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates index = 0 for stateName, stateMuxBits in states: # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s" % (hex(offset), hex(gpioMuxMode | stateMuxBits)) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 bank, pin = getGpioBank(hardwareName) # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join( ['"%s"' % stateName for stateName, stateMuxBits in states]), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), "gpio index": 32 * bank + pin, } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) ## dts template dtsValues = {"fragments": "".join(fragmentList)} values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print("Writing", filename) f = open("%s.dts" % filename, "w") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames
def generateDTSFilesDualPin(dualGpioPins, states): dtsFilenames = [] for pin in dualGpioPins: headerName, pins = pin pin1, pin2 = pins p1hardwareName, p1offset, p1kernelPin, p1gpioMuxMode = pin1 p2hardwareName, p2offset, p2kernelPin, p2gpioMuxMode = pin2 partNumber = "gimp-gpio-%s" % (headerName.replace(".", "_")) version = "00A0" filename = "%s-%s" % (partNumber, version) # template values related to this pin values = { "header name": headerName, "clean header name": headerName.replace(".", "_"), "version": version, "part number": partNumber, "header names": '"%s"' % headerName, # put quotes around it "hardware names": '"%s", "%s"' % (p1hardwareName, p2hardwareName), } fragmentList = [] # list of all the processed fragment templates pinctrlList = [] # list of all the processed pinctrl templates ## fill out all of the fragment and pinctrl templates index = 0 # default state is first, so grab it defaultP2MuxMode = None for stateName, stateMuxBits in states: if defaultP2MuxMode is None: defaultP2MuxMode = stateMuxBits | p2gpioMuxMode # template values related to this state stateValues = { "index": index, "state name": stateName, "offset and mux list": "%s %s\t%s %s" % (hex(p1offset), hex(p1gpioMuxMode | stateMuxBits), hex(p2offset), defaultP2MuxMode) } values.update(stateValues) # make the fragment and pinctrl entry for these state values fragmentList.append(templates.populate(templates.fragment, values)) pinctrlList.append(templates.populate(templates.pinctrl, values)) index += 1 bank, pin = getGpioBank(p1hardwareName) # last fragment entry for pinmux helper helperValues = { "index": index, "state names list": ", ".join( ['"%s"' % stateName for stateName, stateMuxBits in states]), "pinctrl list": "\n\t\t\t\t".join(pinctrlList), "gpio index": 32 * bank + pin, } values.update(helperValues) fragmentList.append(templates.populate(templates.pinmuxHelper, values)) ## dts template dtsValues = {"fragments": "".join(fragmentList)} values.update(dtsValues) dtsFileContents = templates.populate(templates.dtsContents, values) ## write the dts file for this pin! print("Writing", filename) f = open("%s.dts" % filename, "w") try: f.write(dtsFileContents) finally: f.close() dtsFilenames.append(filename) return dtsFilenames