public void Draw() { if (Event.current.Equals(Event.KeyboardEvent("return")) && GUI.GetNameOfFocusedControl() == "xd") { mFlightComputer.TotalDelay = Delay; } GUILayout.BeginVertical(); { mScrollPosition = GUILayout.BeginScrollView(mScrollPosition, GUILayout.Width(250)); { { GUILayout.BeginHorizontal(GUI.skin.box); { var s = new StringBuilder(); foreach (var c in mFlightComputer.ActiveCommands) { s.Append(c.Description); } GUILayout.Label(s.ToString().TrimEnd(Environment.NewLine.ToCharArray())); GUILayout.FlexibleSpace(); RTUtil.Button("x", () => RTCore.Instance.StartCoroutine(OnClickReset()), GUILayout.Width(21), GUILayout.Height(21)); } GUILayout.EndHorizontal(); foreach (var c in mFlightComputer.QueuedCommands) { GUILayout.BeginHorizontal(GUI.skin.box); { GUILayout.Label(c.Description); GUILayout.FlexibleSpace(); RTUtil.Button("x", () => RTCore.Instance.StartCoroutine(OnClickCancel(c)), GUILayout.Width(21), GUILayout.Height(21)); } GUILayout.EndHorizontal(); } } } GUILayout.EndScrollView(); GUILayout.Label(Status); GUILayout.BeginHorizontal(); { GUILayout.Label(new GUIContent("Delay (+ signal): " + RTUtil.FormatDuration(mFlightComputer.TotalDelay), "Total delay including signal delay.")); GUILayout.FlexibleSpace(); GUI.SetNextControlName("xd"); RTUtil.TextField(ref mExtraDelay, GUILayout.Width(50)); } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }
public void Upload(String fileName) { Log("Loading program \"{0}\".", fileName); Int32[] newCode; try { newCode = mProgcom.Assemble(fileName); } catch (FormatException) { Log("ERROR: Compilation failed."); return; } catch (Exception) { Log("ERROR: Unknown error."); return; } Log("Successfully assembled."); Log("Transmitting program (ETA: {0})", RTUtil.FormatDuration(mProgcom.Delay)); DelayedCommand dc = new DelayedCommand() { Program = newCode }; dc.TimeStamp += mProgcom.Delay; mQueue.Enqueue(dc); }
private string burnLength() { return(Duration > 0 ? RTUtil.FormatDuration(Duration) : (DeltaV.ToString("F2") + "m/s")); }