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]