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
Exemple #2
0
    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)
Exemple #5
0
    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)