---
source: src/program/graph.rs
expression: "ProgramDebugWrapper { program: &scheduled_program }"
---
digraph {
	entry [label="Entry Point"]
	entry -> "measure_start"
	subgraph "cluster_measure" {
		label="measure"
		node [ style="filled" ]
		"measure_start" [ label=start, shape=circle ]
		"measure_start" -> "measure_0" [ label="frame" ]
		"measure_start" -> "measure_1" [ label="frame" ]
		"measure_start" -> "measure_end" [ label="ordering" ]
		"measure_0" [label="NONBLOCKING PULSE 0 \"ro_tx\" test(duration: 1000000.0)"]
		"measure_0" -> "measure_end" [ label="frame" ]
		"measure_1" [label="NONBLOCKING CAPTURE 0 \"ro_rx\" test(duration: 1000000.0) ro[0]"]
		"measure_1" -> "measure_end" [ label="await capture
frame" ]
		"measure_end" [ label=end, shape=circle ]
	}
"measure_end" -> "end_start" [label="if ro[0] == 0"]
"measure_end" -> "feedback_start" [label="if ro[0] != 0"]
	subgraph "cluster_feedback" {
		label="feedback"
		node [ style="filled" ]
		"feedback_start" [ label=start, shape=circle ]
		"feedback_start" -> "feedback_0" [ label="frame" ]
		"feedback_start" -> "feedback_end" [ label="ordering" ]
		"feedback_0" [label="PULSE 0 \"rf\" test(duration: 1000000.0)"]
		"feedback_0" -> "feedback_end" [ label="frame" ]
		"feedback_end" [ label=end, shape=circle ]
	}
"feedback_end" -> "measure_start" [label="always"]
	subgraph "cluster_end" {
		label="end"
		node [ style="filled" ]
		"end_start" [ label=start, shape=circle ]
		"end_start" -> "end_end" [ label="ordering" ]
		"end_end" [ label=end, shape=circle ]
	}
}

