EvenNumberGen.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/python3
  2. # This file was automatically generated from drawio2cbd with the command:
  3. # /home/red/git/DrawioConvert/__main__.py EvenNumberGen.xml -Svarg -F CBD -e EvenNumberGen
  4. from CBD.CBD import *
  5. from CBD.lib.std import *
  6. from CBD.lib.interface.plotting import SignalPlotBlock
  7. class Counter(CBD):
  8. def __init__(self, block_name):
  9. super().__init__(block_name, input_ports=[], output_ports=['OutCount'])
  10. # Create the Blocks
  11. self.addBlock(ConstantBlock("zero", value=(0.0)))
  12. self.addBlock(DelayBlock("delay"))
  13. self.addBlock(ConstantBlock("one", value=(1.0)))
  14. self.addBlock(AdderBlock("sum"))
  15. # Create the Connections
  16. self.addConnection("zero", "delay", output_port_name='OUT1', input_port_name='IC')
  17. self.addConnection("delay", "sum", output_port_name='OUT1', input_port_name='IN1')
  18. self.addConnection("delay", "OutCount", output_port_name='OUT1')
  19. self.addConnection("one", "sum", output_port_name='OUT1', input_port_name='IN2')
  20. self.addConnection("sum", "delay", output_port_name='OUT1', input_port_name='IN1')
  21. class Double(CBD):
  22. def __init__(self, block_name):
  23. super().__init__(block_name, input_ports=['InNumber'], output_ports=['OutDouble'])
  24. # Create the Blocks
  25. self.addBlock(ConstantBlock("two", value=(2.0)))
  26. self.addBlock(ProductBlock("mult"))
  27. # Create the Connections
  28. self.addConnection("InNumber", "mult", input_port_name='IN1')
  29. self.addConnection("two", "mult", output_port_name='OUT1', input_port_name='IN2')
  30. self.addConnection("mult", "OutDouble", output_port_name='OUT1')
  31. class EvenNumberGen(CBD):
  32. def __init__(self, block_name, axes=(None)):
  33. super().__init__(block_name, input_ports=[], output_ports=[])
  34. # Create the Blocks
  35. self.addBlock(Counter("counter"))
  36. self.addBlock(Double("double"))
  37. self.addBlock(SignalPlotBlock("plot", axes=(axes), type=("plot"), xlim=(SignalPlotBlock.full_domain), ylim=(SignalPlotBlock.full_domain), ls='--', c='r'))
  38. # Create the Connections
  39. self.addConnection("counter", "double", output_port_name='OutCount', input_port_name='InNumber')
  40. self.addConnection("double", "plot", output_port_name='OutDouble', input_port_name='IN1')