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
Example #5
0
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