public void Dispose() { try { _arduino.Disconnect(); } catch (Exception) { //we are closing, so we need to cleanup nicely!!!!!!!!!!!!!! //not crashy } if (localOnly) { return; } try { _service.Disconnect(type, name); } catch (Exception) { //we are closing, so we need to cleanup nicely!!!!!!!!!!!!!! //not crashy } }
private void OnStateChange(KMGameInfo.State state) { currentState = state; setPins(); if (currentState != KMGameInfo.State.PostGame) { arduinoConnection.Stop(); } else { if (bombState == 0) { StopCoroutines(); arduinoConnection.sendMSG(String.Format("{0} {1} {2} 0 0 255", RP, GP, BP)); } //For multiple bombs } if (currentState == KMGameInfo.State.Gameplay) { //if(arduinoConnection._connected) StartCoroutine(Test()); bombState = 0; lastStrikes = 0; lastSolves = 0; strikeCounts.Clear(); solveCounts.Clear(); StartCoroutine(getField()); StartCoroutine(Warning()); StartCoroutine(OnStrike()); StartCoroutine(OnSolve()); StartCoroutine(CheckForBomb(true)); StartCoroutine(FactoryCheck()); StartCoroutine(getBomb()); StartCoroutine(HandleReflectors()); } else { currentModuleName = ""; Modules.Clear(); StopCoroutine(CheckForBomb(false)); StopCoroutine(FactoryCheck()); StopCoroutine(WaitUntilEndFactory()); StopCoroutine(HandleReflectors()); BombActive = false; Bombs.Clear(); BombCommanders.Clear(); } if (currentState == KMGameInfo.State.Quitting) { arduinoConnection.Disconnect(); } }
public void TestCleanup() { arduino.Disconnect(); }
void OnGUI() { GUI.skin = skin; GUILayout.BeginArea(new Rect(50, 50, 2 * Screen.width / 2 - 100, Screen.height - 100)); { GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); { if (GUILayout.Button("Connect")) { connect(); } if (GUILayout.Button("Disconnect")) { Debug.Log("Closing connection to arduino"); //try { arduino.Disconnect(); /*} catch ( Exception e) * { * Debug.Log("Exception initializing arduino:" + e.ToString()); * }*/ received_pins = null; } if (GUILayout.Button("Relay Animation")) { Debug.Log("Start coroutine"); StartCoroutine(RelayControll()); } if (GUILayout.Button("URGControl")) { Debug.Log("Start coroutine URGControl"); StartCoroutine(URGControl()); } if (GUILayout.Button("URGControl_new_test")) { StartCoroutine(URGControl_new_test()); } GUILayout.FlexibleSpace(); GUILayout.Label("Serial port:"); arduino.PortName = GUILayout.TextField(arduino.PortName); if (GUILayout.Button("Guess")) { string pn = Arduino.guessPortName(); if (pn.Length > 0) { arduino.PortName = pn; } } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { string connection_status; if (arduino != null && arduino.IsOpen && arduino.Connected) { connection_status = "Connected to Firmata protocol version " + arduino.MajorVersion + "." + arduino.MinorVersion; GUILayout.Label(connection_status); } else if (arduino != null && arduino.IsOpen) { GUILayout.Label("Connected but waiting for Firmata protocol version"); } else { GUILayout.Label("Not connected"); } GUILayout.FlexibleSpace(); if (GUILayout.Button("Query capabilities")) { arduino.queryCapabilities(); } } GUILayout.EndHorizontal(); GUILayout.Space(20); // draw pin states and controls if (received_pins != null) //arduino != null && arduino.Pins != null) { GUILayout.BeginHorizontal(); { GUIStyle style = new GUIStyle(GUI.skin.label); style.fontSize += 3; style.fontStyle = FontStyle.Bold; GUILayout.Label("Pin:Value", style, GUILayout.Width(label_column_width)); GUILayout.Label("Output", style, GUILayout.Width(test_column_width)); GUILayout.Label("Modes", style, GUILayout.Width(label_column_width)); // these widths hacked due to awful unity bug in label size calculations GUILayout.FlexibleSpace(); GUILayout.Label("Reporting", style, GUILayout.MinWidth(style.CalcSize(new GUIContent("Reporting")).x)); GUILayout.Space(15); } GUILayout.EndHorizontal(); scroll_position = GUILayout.BeginScrollView(scroll_position /*, GUILayout.Width (100), GUILayout.Height (100)*/); { foreach (var pin in received_pins) { drawPinGUI(pin); } } GUILayout.EndScrollView(); } } GUILayout.EndVertical(); } GUILayout.EndArea(); }
void OnDestroy() { arduino.Disconnect(); }