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); }
internal BaseMotionPlayer(TaPa_XYCyl Owner, string MotionDataPath, string GamePath, string StartOptionsRunArgs, string RuntimeProcess, string StartOptionsInput, AvalibleProtocols MotionDeviceProtocol, string ConnectonString) { this.Owner = Owner; FrameData = PositionAndTimingDataModel.DataLoadFromFile(MotionDataPath); this.MotionDeviceProtocol = MotionDeviceProtocol; switch (MotionDeviceProtocol) { case AvalibleProtocols.ComPort: if (MotionHardwareInterface != null) { MotionHardwareInterface.Dispose(); } MotionHardwareInterface = JMDM_CylinderPortControlUpdated.ConnectionFactory(ConnectonString); break; default: Owner.PlayBacksEnd.Invoke(); throw new Exception("Error: not a valid Protocol."); } this.GamePath = GamePath; this.StartOptionsRunArgs = StartOptionsRunArgs; this.StartOptionsInput = StartOptionsInput; this.RuntimeProcess = RuntimeProcess; Start(); }
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); }
internal virtual void ChangeProtocol(AvalibleProtocols MotionDeviceProtocol, string ConnectonString) { lock (LockObj) { this.MotionDeviceProtocol = MotionDeviceProtocol; switch (MotionDeviceProtocol) { case AvalibleProtocols.ComPort: if (MotionHardwareInterface != null) { MotionHardwareInterface.Dispose(); } MotionHardwareInterface = JMDM_CylinderPortControlUpdated.ConnectionFactory(ConnectonString); break; default: throw new Exception("Error: not a valid Protocol."); } } }