public static void JMDM_BasicRide_Run(out JMDM_CylinderPortControlUpdated CylinderControl, string Port, byte CylinderCount, string JMMovFilePath, int StartWait = 2000, int EndWait = 2000, Action ExtraAction = null)
        {
            PositionAndTimingDataModel PositionAndTiming = PositionAndTimingDataModel.DataLoadFromFile(JMMovFilePath);

            CylinderControl = new JMDM_CylinderPortControlUpdated(Port, CylinderCount);

            if (CylinderCount > 6)
            {
                CylinderCount = 6;
            }

            CylinderControl.Open_Port();

            CylinderControl.ZeroAllCylinders();

            Thread.Sleep(StartWait);

            ExtraAction?.Invoke();

            foreach (MomentaryPositionAndTimingFrameDataModel Frame in PositionAndTiming)
            {
                for (byte i = 0; i < CylinderCount; i++)
                {
                    CylinderControl.SetCylinderHeight(i, Frame.GetCylinder(i));
                }
                Thread.Sleep((int)Frame.time);
            }

            CylinderControl.ZeroAllCylinders();

            Thread.Sleep(EndWait);
        }
Exemplo n.º 2
0
        static bool ConsoleEventHandler(ConsoleCtrlHandlerCode eventCode)
        {
            // Handle close event here...
            switch (eventCode)
            {
            case ConsoleCtrlHandlerCode.CTRL_CLOSE_EVENT:
                try
                {
                    ComPort.ZeroAllCylinders();
                }
                catch
                {
                    using (ComPort = new JMDM_CylinderPortControlUpdated(PortStatic, 6))
                    {
                        ComPort.Open_Port();
                        ComPort.ZeroAllCylinders();
                    }
                }
                Environment.Exit(0);
                break;

            case ConsoleCtrlHandlerCode.CTRL_BREAK_EVENT:
                break;

            case ConsoleCtrlHandlerCode.CTRL_LOGOFF_EVENT:
                try
                {
                    ComPort.ZeroAllCylinders();
                }
                catch
                {
                    using (ComPort = new JMDM_CylinderPortControlUpdated(PortStatic, 6))
                    {
                        ComPort.Open_Port();
                        ComPort.ZeroAllCylinders();
                    }
                }
                Environment.Exit(0);
                break;

            case ConsoleCtrlHandlerCode.CTRL_SHUTDOWN_EVENT:
                try
                {
                    ComPort.ZeroAllCylinders();
                }
                catch
                {
                    using (ComPort = new JMDM_CylinderPortControlUpdated(PortStatic, 6))
                    {
                        ComPort.Open_Port();
                        ComPort.ZeroAllCylinders();
                    }
                }
                Environment.Exit(0);
                break;
            }

            return(false);
        }