ActorSimulation.OMNeTPPGenerator (GenServerVirtualTime v0.6.0)

Copy Markdown View Source

Generates OMNeT++ C++ simulation code from ActorSimulation DSL.

This module translates ActorSimulation definitions into complete, buildable OMNeT++ projects with:

  • NED network topology files
  • C++ simple module implementations
  • CMake build configuration
  • Conan package management
  • Simulation configuration (INI files)

Example

simulation = ActorSimulation.new()
  |> ActorSimulation.add_actor(:sender,
      send_pattern: {:periodic, 100, :msg},
      targets: [:receiver])
  |> ActorSimulation.add_actor(:receiver)

{:ok, files} = OMNeTPPGenerator.generate(simulation,
  network_name: "SimpleNetwork",
  sim_time_limit: 10)

OMNeTPPGenerator.write_to_directory(files, "omnetpp_output/")

Summary

Functions

Generates complete OMNeT++ project files from an ActorSimulation.

Writes generated files to a directory.

Functions

generate(simulation, opts \\ [])

Generates complete OMNeT++ project files from an ActorSimulation.

Options

  • :network_name (required) - Name of the OMNeT++ network
  • :sim_time_limit (default: 10.0) - Simulation duration in seconds
  • :high_frequency (default: false) - Use 1ms delays for high-frequency sims
  • :expected_messages (optional) - Number of messages to receive before termination
  • :suppress_output (default: false) - Disable EV logging during simulation

Returns

{:ok, files} where files is a list of {filename, content} tuples

write_to_directory(files, output_dir)

Writes generated files to a directory.

Creates the directory if it doesn't exist.