public void reportStatus(SimulatorStatus value, string message = "") { Console.WriteLine($"[LOADER] Update simulation status {status} -> {value}"); var previous = reportedStatus(status); var newStatus = reportedStatus(value); status = value; if (value == SimulatorStatus.Error && SimulatorManager.InstanceAvailable) { SimulatorManager.Instance.AnalysisManager.AddErrorEvent(message); } if (previous == newStatus) { return; } if (ConnectionManager.instance != null) { ConnectionManager.instance.UpdateStatus(newStatus, CurrentSimulation.Id, message); } if (value == SimulatorStatus.Idle) { currentSimulation = null; } if (status == SimulatorStatus.Running) { WindowFlasher.Flash(); } }
public void reportStatus(SimulatorStatus value, string message = "") { Debug.Log($"loader status: {status}->{value} {message}"); Console.WriteLine($"[LOADER] Update simulation status {status} -> {value}"); if (value < status && !(status == SimulatorStatus.Stopping && value == SimulatorStatus.Idle)) { throw new Exception($"Attemted to transition simulation status from {Enum.GetName(typeof(SimulatorStatus), value)} to {Enum.GetName(typeof(SimulatorStatus), status)}"); } var previous = reportedStatus(status); var newStatus = reportedStatus(value); status = value; if (value == SimulatorStatus.Error && SimulatorManager.InstanceAvailable) { SimulatorManager.Instance.AnalysisManager.AddErrorEvent(message); } if (previous == newStatus) { return; } if (ConnectionManager.instance != null && ConnectionManager.Status != ConnectionManager.ConnectionStatus.Offline && CurrentSimulation != null) { ConnectionManager.instance.UpdateStatus(newStatus, CurrentSimulation.Id, message); } if (value == SimulatorStatus.Idle) { currentSimulation = null; } if (status == SimulatorStatus.Running) { WindowFlasher.Flash(); } }
string reportedStatus(SimulatorStatus status) { switch (status) { case SimulatorStatus.Idle: return("Idle"); // WISE does not care about Loading, just Starting case SimulatorStatus.Loading: case SimulatorStatus.Starting: return("Starting"); case SimulatorStatus.Running: return("Running"); case SimulatorStatus.Error: return("Error"); case SimulatorStatus.Stopping: return("Stopping"); default: throw new ArgumentOutOfRangeException(); } }
public static ParkingRampSimulator.Messages.SimulatorStatusMessage ConvertToMessage(this SimulatorStatus source) { if (source == null) { return(null); } return(new ParkingRampSimulator.Messages.SimulatorStatusMessage(Simulator.Clock.Now) { RealTime = source.RealTime, ClockTime = source.SimulatorTime, Status = source.Status }); }