static void SandBoxTilt2U(JMDM_PortControl ChairPort, int DropedPist)
        {
            int C1 = Max;
            int C2 = Max;
            int C3 = Max;

            switch (DropedPist)
            {
            case 1:
                C1 = Min;
                break;

            case 2:
                C2 = Min;
                break;

            case 3:
                C3 = Min;
                break;
            }

            ChairPort.Send_Data(1, C1);
            ChairPort.Send_Data(2, C2);
            ChairPort.Send_Data(3, C3);
        }
        static void Loop(JMDM_PortControl ChairPort)
        {
            const int timing = 1000;
            bool      Cont   = true;

            while (Cont)
            {
                if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.E)
                {
                    Cont = false;
                }
                ChairPort.Send_Data(0, Max);
                ChairPort.Send_Data(1, Max);
                ChairPort.Send_Data(2, Max);
                ChairPort.Send_Data(3, Max);
                ChairPort.Send_Data(4, Max);
                ChairPort.Send_Data(5, Max);
                Thread.Sleep(timing);
                ChairPort.Send_Data(0, Max);
                ChairPort.Send_Data(1, Min);
                ChairPort.Send_Data(2, Min);
                ChairPort.Send_Data(3, Min);
                ChairPort.Send_Data(4, Min);
                ChairPort.Send_Data(5, Min);
                Thread.Sleep(timing);
            }
        }
        static void WildLoop(JMDM_PortControl ChairPort)
        {
            Random    R      = new Random();
            const int timing = 800;
            bool      Cont   = true;
            int       RN     = 0;

            while (Cont)
            {
                int RNN;
                do
                {
                    RNN = R.Next(0, 30);
                }while (!(RNN - RN > 10 || RNN - RN < -10));
                RN = RNN;
                if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.E)
                {
                    Cont = false;
                }
                if (RN >= 0 && RN <= 10)
                {
                    ChairPort.Send_Data(1, Max);
                    ChairPort.Send_Data(2, Min);
                    ChairPort.Send_Data(3, Min);
                    Thread.Sleep(timing);
                }
                else if (RN >= 10 && RN <= 20)
                {
                    ChairPort.Send_Data(1, Min);
                    ChairPort.Send_Data(2, Max);
                    ChairPort.Send_Data(3, Min);
                    Thread.Sleep(timing);
                }
                else if (RN >= 20 && RN <= 30)
                {
                    ChairPort.Send_Data(1, Min);
                    ChairPort.Send_Data(2, Min);
                    ChairPort.Send_Data(3, Max);
                    Thread.Sleep(timing);
                }
            }
        }
        //const int Max = 240;
        //const int Min = 20;
        static void Main(string[] args)
        {
            string[] Ports = SerialPort.GetPortNames();
            Console.WriteLine("Avalible Ports:");
            foreach (string Port in Ports)
            {
                Console.WriteLine(Port);
            }
            int  PortSelect = 0;
            bool success    = false;

            do
            {
                Console.WriteLine("Please Select a valid port.");
                success = int.TryParse(Console.ReadLine(), out PortSelect);
            }while (!(success && PortSelect <= Ports.Count() && PortSelect > 0));

            JMDM_PortControl ChairPort = new JMDM_PortControl();

            Console.WriteLine("Hello to angelo's Chair Test program.\nPlease use the arrow keys.\nPress up to put chair up.\nPress down to put chair down.\nPress right to put the chair on a right tilt.\nPress left to put the chair on a left tilt.\nAdditionaly, Press R to reset and E to exit.");
            ChairPort.Open_Port(SerialPort.GetPortNames()[PortSelect]);
            ChairPort.Reset_Zerp();
            Thread.Sleep(2000);
            ConsoleKey Key = Console.ReadKey().Key;

            while (Key != ConsoleKey.E)
            {
                switch (Key)
                {
                case ConsoleKey.UpArrow:
                    ChairPort.Send_Data(1, Max);
                    ChairPort.Send_Data(2, Max);
                    ChairPort.Send_Data(3, Max);
                    break;

                case ConsoleKey.DownArrow:
                    ChairPort.Send_Data(1, Min);
                    ChairPort.Send_Data(2, Min);
                    ChairPort.Send_Data(3, Min);
                    break;

                case ConsoleKey.LeftArrow:
                    ChairPort.Send_Data(1, Min);
                    ChairPort.Send_Data(2, Max);
                    ChairPort.Send_Data(3, 175);
                    break;

                case ConsoleKey.RightArrow:
                    ChairPort.Send_Data(2, Min);
                    ChairPort.Send_Data(1, Max);
                    ChairPort.Send_Data(3, 175);
                    break;

                case ConsoleKey.W:
                    //ChairPort.Rotate_Control(250);
                    ChairPort.Send_Data(0, Max);
                    ChairPort.Send_Data(4, Max);
                    ChairPort.Send_Data(5, Max);
                    ChairPort.Send_Data(6, Max);
                    break;

                case ConsoleKey.Q:
                    //ChairPort.Rotate_Control(10);
                    ChairPort.Send_Data(0, Min);
                    ChairPort.Send_Data(4, Min);
                    ChairPort.Send_Data(5, Min);
                    ChairPort.Send_Data(6, Min);
                    break;

                case ConsoleKey.R:
                    ChairPort.Reset_Zerp();
                    break;

                case ConsoleKey.C:
                    Loop(ChairPort);
                    break;

                case ConsoleKey.Z:
                    WildLoop(ChairPort);
                    break;

                case ConsoleKey.X:
                    SandBoxTilt2U(ChairPort, 1);
                    break;
                }
                Key = Console.ReadKey().Key;
            }
            ChairPort.Close_Port();
        }