Newer
Older
tac2grc / src / defaultBlockTypes.py
@lukas lukas on 14 Aug 2022 1 KB initial commit
from tacsrc.blockType import BlockType

class VariablePorts:
    def __init__(self, ioDescriptionName, sizeFunction):
        self.ioDescriptionName = ioDescriptionName
        self.sizeFunction = sizeFunction

    def mapName(self, position, name, index):
        return

    def getRealPort(self, originalPort):
        return 0

    def ensureLength(self, length):
        return

    def getIODescription(self, block):
        return "\\\\n0:%s[%s]" % (self.ioDescriptionName, self.sizeFunction(block))

    def getRealCount(self):
        return 1

def inParameters(block):
    return block.parameters[1]

def parameterSize(block):
    return len(block.parameters)

monitor = BlockType("Monitor")
monitor.inputs = VariablePorts("input", inParameters)

monitorState = BlockType("MonitorState")
monitorState.inputs = VariablePorts("input", inParameters)

probe = BlockType("Probe")
probe.inputs = VariablePorts("input", inParameters)

readRfm = BlockType("ReadRfm")
readRfm.outputs = VariablePorts("output", parameterSize)

rms = BlockType("RMS")
rms.inputs.mapName(0, "input", 0)
rms.outputs.mapName(0, "output", 0)

constant = BlockType("Constant")
constant.outputs.mapName(0, "CONST", 0)

manual = BlockType("ManualSwitch")
manual.inputs.mapName(0, "input", 0)
manual.outputs.mapName(0, "output", 0)

noise = BlockType("NormalNoise")
noise.outputs.mapName(0, "output", 0)

writeRMNNoTim = BlockType("WriteRmNoTim")
writeRMNNoTim.inputs = VariablePorts("input", parameterSize)

defaultBlockTypes = {
        "Monitor": monitor,
        "MonitorState": monitorState,
        "Probe": probe,
        "ReadRfm": readRfm,
        "TIM": BlockType("TIM"),
        "WAIT_RFM_INTERRUPT": BlockType("WAIT_RFM_INTERRUPT"),
        "RMS": rms,
        "Constant": constant,
    "ManualSwitch": manual,
    "NormalNoise": noise,
    "WriteRmNoTim": writeRMNNoTim
}

def addDefaultBlockTypes(blockTypes):
    for key in defaultBlockTypes:
        blockTypes[key] = defaultBlockTypes[key]