DEVS_loop.py 612 B

12345678910111213141516171819202122232425
  1. from pypdevs.simulator import Simulator
  2. import re
  3. def get_port(text):
  4. match = re.search(r'private_\d+_(\w+)', text)
  5. if match:
  6. result = match.group(1)
  7. return result
  8. else:
  9. return text
  10. class DEVSSimulator(Simulator):
  11. def __init__(self, model, inputs={}):
  12. super().__init__(model)
  13. self.setRealTimePorts(inputs)
  14. def addInput(self, event):
  15. port_name = get_port(event.port)
  16. event_string = f"Event(\"{event.name}\",\"{event.port}\",{event.parameters})"
  17. event_string = event_string.replace(" ", "")
  18. interrupt_string = f"{port_name} {event_string}"
  19. self.realtime_interrupt(interrupt_string)