Example #1
0
        public static void Main(string[] cargs)
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("\nZWaveLib Test Program\n");
            Console.ForegroundColor = ConsoleColor.White;

            var controller = new ZWaveController(serialPortName);

            // Register controller event handlers
            controller.ControllerStatusChanged += Controller_ControllerStatusChanged;;
            controller.DiscoveryProgress       += Controller_DiscoveryProgress;
            controller.NodeOperationProgress   += Controller_NodeOperationProgress;
            controller.NodeUpdated             += Controller_NodeUpdated;

            // Main program loop
            var command = "";

            while (command != "!")
            {
                ShowMenu();
                // TODO: Allow issuing CommandClass commands on nodes from the console input
                // TODO: Add "Associate node to controller" option
                // TODO: Add "Query node parameters" based on implemented classes
                command = Console.ReadLine();
                switch (command)
                {
                case "0":
                    ToggleDebug(!showDebugOutput);
                    break;

                case "1":
                    ListNodes(controller);
                    break;

                case "2":
                    StartNodeAdd(controller);
                    break;

                case "3":
                    StopNodeAdd(controller);
                    break;

                case "4":
                    StartNodeRemove(controller);
                    break;

                case "5":
                    StopNodeRemove(controller);
                    break;

                case "6":
                    HealNetwork(controller);
                    break;

                case "7":
                    RunStressTest(controller);
                    break;

                case "8":
                    ShowZWaveLibApi();
                    break;

                case "9":
                    Discovery(controller);
                    break;

                case "?":
                    SetSerialPortName(controller);
                    break;

                case "+":
                    controller.Connect();
                    break;

                case "~":
                    RunCommandInteractive(controller);
                    break;
                }
            }
            Console.WriteLine("\nCiao!\n");
            controller.Dispose();
        }