public void Dispose() { if (_oscClient != null) { _oscClient.Close(); } }
private void oscSenderWorker_DoWork(object sender, DoWorkEventArgs e) { UDPSender autoDataSender = null; UDPSender heartbeatDataSender = null; bool reinit = true; var heartbeatMsg = new OscMessage("/RegisterRequestor"); while (runThread) { try { if (autoDataSender == null || heartbeatDataSender == null || reinit) { try { try { autoDataSender.Close(); } catch (Exception) { } try { heartbeatDataSender.Close(); } catch (Exception) { } autoDataSender = new UDPSender(ROBOT_IP, AUTO_DATA_PORT); heartbeatDataSender = new UDPSender(ROBOT_IP, LOG_DATA_PORT); reinit = false; } catch (Exception) { Console.WriteLine("Couldn't create udp sender"); } } int autoStartPositionIndex = -1; int autoModeIndex = -1; Dispatcher.Invoke(() => autoStartPositionIndex = cboAutoStartSelection.SelectedIndex); Dispatcher.Invoke(() => autoModeIndex = cboAutoMode.SelectedIndex); var message = new OscMessage("/AutoData", (int)autoStartPositionIndex, (int)autoModeIndex); autoDataSender.Send(message); if (heartbeatTimer.isTimedOut()) { heartbeatDataSender.Send(heartbeatMsg); heartbeatTimer.reset(); } Thread.Sleep(100); } catch (Exception ex) { Console.WriteLine(ex.ToString()); try { autoDataSender.Close(); } catch (Exception) { } try { heartbeatDataSender.Close(); } catch (Exception) { } reinit = true; } } autoDataSender.Close(); heartbeatDataSender.Close(); }
private void OnDisable() { // Close all connections sender.Close(); }