def main(name, output_dir, parsed_grc, grc_input, docker_image, docker_volumes): implementation = "python" generator = "python.component.gr_flowgraph" dir_path = os.path.dirname(os.path.realpath(__file__)) spd_xml = dir_path + '/templates/resourceTemplate.spd.xml' prf_xml = dir_path + '/templates/resourceTemplate.prf.xml' scd_xml = dir_path + '/templates/resourceTemplate.scd.xml' rp = ResourcePackage(name, implementation, output_dir, generator, spdTemplateFile=spd_xml, scdTemplateFile=scd_xml, prfTemplateFile=prf_xml) formatSPD(rp=rp, grc_input=grc_input, parsed_grc=parsed_grc, docker_image=docker_image, docker_volumes=docker_volumes) formatPRF(rp=rp, props=parsed_grc.properties_array, docker_image=docker_image, docker_volumes=docker_volumes) formatSCD(rp=rp, ports=parsed_grc.ports_array) rp.writeXML() return rp
def __init__(self, bFile, compName=None, cmdArgs=None, inputFile=None, outputFile=None, inputFmt='8o', outputFmt='8o', outputDir=".", sharedLibraries=[], bufferingEnabled=False, loggingConfigUri=None): ''' Create an binary component ''' self.bufferingEnabled = bufferingEnabled self.bFile = bFile if compName == None: compName = bFile ResourcePackage.__init__(self, name=compName, implementation="python", outputDir=outputDir, generator="python.component.binary", loggingConfigUri=loggingConfigUri) self._addDefaultProps(inputfile=inputFile, outputfile=outputFile, inputFmt=inputFmt, outputFmt=outputFmt) # Add input ports self.addProvidesPort('dataDouble_in', "IDL:BULKIO/dataDouble:1.0") self.addProvidesPort('dataFloat_in', "IDL:BULKIO/dataFloat:1.0") self.addProvidesPort('dataShort_in', "IDL:BULKIO/dataShort:1.0") self.addProvidesPort('dataUshort_in', "IDL:BULKIO/dataUshort:1.0") self.addProvidesPort('dataLong_in', "IDL:BULKIO/dataLong:1.0") self.addProvidesPort('dataUlong_in', "IDL:BULKIO/dataUlong:1.0") self.addProvidesPort('datadataOctet_in', "IDL:BULKIO/dataOctet:1.0") # Add output ports self.addUsesPort('dataDouble_out', "IDL:BULKIO/dataDouble:1.0") self.addUsesPort('dataFloat_out', "IDL:BULKIO/dataFloat:1.0") self.addUsesPort('dataShort_out', "IDL:BULKIO/dataShort:1.0") self.addUsesPort('dataUshort_out', "IDL:BULKIO/dataUshort:1.0") self.addUsesPort('dataLong_out', "IDL:BULKIO/dataLong:1.0") self.addUsesPort('dataUlong_out', "IDL:BULKIO/dataUlong:1.0") self.addUsesPort('datadataOctet_out', "IDL:BULKIO/dataOctet:1.0") for sharedLibrary in sharedLibraries: self.addSoftPackageDependency(sharedLibrary, resolve_implref=True)
def __init__( self, bFile, compName=None, cmdArgs=None, inputFile=None, outputFile=None, inputFmt='8o', outputFmt='8o', outputDir = ".", sharedLibraries = [], bufferingEnabled = False, loggingConfigUri = None): ''' Create an binary component ''' self.bufferingEnabled = bufferingEnabled self.bFile = bFile if compName == None: compName = bFile ResourcePackage.__init__( self, name = compName, implementation = "python", outputDir = outputDir, generator = "python.component.binary", loggingConfigUri = loggingConfigUri) self._addDefaultProps(inputfile=inputFile,outputfile=outputFile,inputFmt=inputFmt,outputFmt=outputFmt) # Add input ports self.addProvidesPort('dataDouble_in', "IDL:BULKIO/dataDouble:1.0") self.addProvidesPort('dataFloat_in', "IDL:BULKIO/dataFloat:1.0") self.addProvidesPort('dataShort_in', "IDL:BULKIO/dataShort:1.0") self.addProvidesPort('dataUshort_in', "IDL:BULKIO/dataUshort:1.0") self.addProvidesPort('dataLong_in', "IDL:BULKIO/dataLong:1.0") self.addProvidesPort('dataUlong_in', "IDL:BULKIO/dataUlong:1.0") self.addProvidesPort('datadataOctet_in', "IDL:BULKIO/dataOctet:1.0") # Add output ports self.addUsesPort('dataDouble_out', "IDL:BULKIO/dataDouble:1.0") self.addUsesPort('dataFloat_out', "IDL:BULKIO/dataFloat:1.0") self.addUsesPort('dataShort_out', "IDL:BULKIO/dataShort:1.0") self.addUsesPort('dataUshort_out', "IDL:BULKIO/dataUshort:1.0") self.addUsesPort('dataLong_out', "IDL:BULKIO/dataLong:1.0") self.addUsesPort('dataUlong_out', "IDL:BULKIO/dataUlong:1.0") self.addUsesPort('datadataOctet_out', "IDL:BULKIO/dataOctet:1.0") for sharedLibrary in sharedLibraries: self.addSoftPackageDependency(sharedLibrary)
def __init__( self, mFiles, function, outputDir = ".", sharedLibraries = [], diaryEnabled = False, bufferingEnabled = False, loggingConfigUri = None): ''' Create an octave component using tags in the function arguments. All Octave components will have the following properties: bufferingEnabled diaryOnOrOff ''' ResourcePackage.__init__( self, name = function, implementation = "cpp", outputDir = outputDir, generator = "cpp.component.octave", loggingConfigUri = loggingConfigUri) self.mFiles = mFiles mFunctionParameters = _getMFunctionParameters(function, mFiles) self.diaryEnabled = diaryEnabled self.bufferingEnabled = bufferingEnabled self._addDefaultProps() propArgs = ["__sampleRate"] # Add properties for propName in mFunctionParameters.defaults.keys(): value = mFunctionParameters.defaults[propName] if type(value) == type([]): # simple sequence if _isStringProp(value): # string for index in range(len(value)): value[index]=_cleanQuotes(value[index]) self.addSimpleSequencProperty( id=propName, values=value, type="string", complex=False) else: # double self.addSimpleSequencProperty( id=propName, values=value) else: # simple if _isStringProp(value): # string value=_cleanQuotes(value) self.addSimpleProperty( id=propName, value=value, type="string", complex=False) else: # double self.addSimpleProperty( id=propName, value=value) propArgs.append(propName) # Add input ports for input in mFunctionParameters.inputs: if propArgs.count(input) == 0: self.addProvidesPort(input, "IDL:BULKIO/dataDouble:1.0") # Add output ports for output in mFunctionParameters.outputs: if propArgs.count(output) == 0: self.addUsesPort(output, "IDL:BULKIO/dataDouble:1.0") for sharedLibrary in sharedLibraries: self.addSoftPackageDependency(sharedLibrary)
def __init__(self, mFiles, function, outputDir=".", sharedLibraries=[], diaryEnabled=False, bufferingEnabled=False, loggingConfigUri=None): ''' Create an octave component using tags in the function arguments. All Octave components will have the following properties: bufferingEnabled diaryOnOrOff ''' ResourcePackage.__init__(self, name=function, implementation="cpp", outputDir=outputDir, generator="cpp.component.octave", loggingConfigUri=loggingConfigUri) self.mFiles = mFiles mFunctionParameters = _getMFunctionParameters(function, mFiles) self.diaryEnabled = diaryEnabled self.bufferingEnabled = bufferingEnabled self._addDefaultProps() propArgs = ["__sampleRate"] # Add properties for propName in mFunctionParameters.defaults.keys(): value = mFunctionParameters.defaults[propName] if type(value) == type([]): # simple sequence if _isStringProp(value): # string for index in range(len(value)): value[index] = _cleanQuotes(value[index]) self.addSimpleSequencProperty(id=propName, values=value, type="string", complex=False) else: # double self.addSimpleSequencProperty(id=propName, values=value) else: # simple if _isStringProp(value): # string value = _cleanQuotes(value) self.addSimpleProperty(id=propName, value=value, type="string", complex=False) else: # double self.addSimpleProperty(id=propName, value=value) propArgs.append(propName) # Add input ports for input in mFunctionParameters.inputs: if propArgs.count(input) == 0: self.addProvidesPort(input, "IDL:BULKIO/dataDouble:1.0") # Add output ports for output in mFunctionParameters.outputs: if propArgs.count(output) == 0: self.addUsesPort(output, "IDL:BULKIO/dataDouble:1.0") for sharedLibrary in sharedLibraries: self.addSoftPackageDependency(sharedLibrary)