/// <summary> /// Main execution method /// </summary> /// <param name="programGraph"> Visual program to execute </param> /// <param name="writeToConsole"> Method to writing to console </param> public void Execute(IModel programGraph, Action<string> writeToConsole) { var curNode = this.GetInitNode(programGraph, writeToConsole); if (curNode == null) { return; } writeToConsole("Running your code"); var client = new MultirotorClient(); while (recursionLevel >= 0) { Execution.Exec.ExecuteNode(ref curNode, client, programGraph, writeToConsole); curNode = Execution.Exec.GetNextNode(curNode, client, programGraph, writeToConsole); if (curNode == null) { return; } writeToConsole($"Node {curNode.Name} done"); } client.Land(); client.Dispose(); writeToConsole("Program done"); }
public override void ExecuteNode(INode node, MultirotorClient client) => client.Land();