Exemplo n.º 1
0
        /// <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");
        }
Exemplo n.º 2
0
 public override void ExecuteNode(INode node, MultirotorClient client)
     => client.Land();