private void ListenLoop() { Console.WriteLine("ListenLoop"); try { while (oscReceiver.State != OscSocketState.Closed) { Console.WriteLine("wait..."); // if we are in a state to recieve if (oscReceiver.State == OscSocketState.Connected) { // get the next message // this will block until one arrives or the socket is closed OscPacket packet = oscReceiver.Receive(); // Write the packet to the console Console.WriteLine(packet.ToString()); // DO SOMETHING HERE! viewModel.OscText = packet.ToString(); } Thread.Sleep(10000); } } catch (Exception ex) { // if the socket was connected when this happens // then tell the user if (oscReceiver.State == OscSocketState.Connected) { Console.WriteLine("Exception in listen loop"); Console.WriteLine(ex.Message); } } }
static void StartLoop(OscReceiver oscReceiver) { // Variables OscPacket packet = null; HeightData height_Z = new HeightData(); StringBuilder sb = new StringBuilder(); Stopwatch sw = new Stopwatch(); string[] extractData; const string START_LINE = "/position"; bool connectionNotification = true; int count = 0; const int CYCLES = 200; // Attempt to establish an OSC connection try { sw.Start(); do { if (oscReceiver.State == OscSocketState.Connected) { if (connectionNotification) { Console.WriteLine("connection established"); connectionNotification = false; } // Attempt receive OSC packet if (oscReceiver.TryReceive(out packet)) { // Extract position data from OSC packet if (packet.ToString().StartsWith(START_LINE)) { extractData = packet.ToString().Split(','); int zValue = int.Parse(extractData[4]); // Extract 'z' position value (height) Console.WriteLine("{4} - Position:\tx:{0}, y:{1}, z:{2}, \tZ_ERROR:{3} ]", extractData[2], extractData[3], extractData[4], height_Z.GetError(zValue), count); sb.AppendLine(string.Format("{0},{1},{2}", extractData[2], extractData[3], extractData[4])); count++; } } } } while (count < CYCLES); sw.Stop(); Console.WriteLine("TOTAL COUNT: " + count); Console.WriteLine("TOTAL TIME: " + sw.ElapsedMilliseconds / 1000); Console.WriteLine(count / (sw.ElapsedMilliseconds / 1000) + " Hz"); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Error average: {0}", height_Z.GetErrorAverage()); FILE_IO.WriteLog(sb.ToString()); }
private void ListenLoop() { try { while (m_Receiver.State != OscSocketState.Closed) { // if we are in a state to recieve if (m_Receiver.State == OscSocketState.Connected) { // get the next message // this will block until one arrives or the socket is closed OscPacket packet = m_Receiver.Receive(); switch (m_Listener.ShouldInvoke(packet)) { case OscPacketInvokeAction.Invoke: packetCounter.Increment(); //textBoxBuffer.WriteLine("Received packet"); textBoxBuffer.WriteLine(packet.ToString()); m_Listener.Invoke(packet); break; case OscPacketInvokeAction.DontInvoke: textBoxBuffer.WriteLine("Cannot invoke"); textBoxBuffer.WriteLine(packet.ToString()); break; case OscPacketInvokeAction.HasError: textBoxBuffer.WriteLine("Error reading osc packet, " + packet.Error); textBoxBuffer.WriteLine(packet.ErrorMessage); break; case OscPacketInvokeAction.Pospone: textBoxBuffer.WriteLine("Posponed bundle"); textBoxBuffer.WriteLine(packet.ToString()); break; default: break; } } } } catch (Exception ex) { // if the socket was connected when this happens // then tell the user if (m_Receiver.State == OscSocketState.Connected) { textBoxBuffer.WriteLine("Exception in listen loop"); textBoxBuffer.WriteLine(ex.Message); } } }
private void timer1_Tick(object sender, EventArgs e) { try { // parse the message OscPacket msg = OscPacket.Parse(m_MessageBox.Text); // write the parsed message AppendLine(msg.ToString()); // if the sender exists if (m_Sender != null) { for (int i = 0, j = (int)m_SendCount.Value; i < j; i++) { // send m_Sender.Send(msg); } } else { AppendLine("Sender is not connected"); } } catch (Exception ex) { // explicitly tell the user why the message failed to parse AppendLine("Error parsing message"); AppendLine(ex.Message); AppendLine(""); } }
static void CheckPackets(OscPacket packet1, string packetStr) { OscPacket packet2 = OscPacket.Parse(packetStr); Console.WriteLine("Input String : " + packetStr); Console.WriteLine("Parsed Packet : " + packet2.ToString()); Console.WriteLine("Packets are equal : " + (packet1 == packet2).ToString()); Console.WriteLine(); }
private void Send_Click(object sender, EventArgs e) { try { // parse the message OscPacket packet = OscPacket.Parse(m_MessageBox.Text); switch (m_Manager.ShouldInvoke(packet)) { case OscPacketInvokeAction.Invoke: m_Manager.Invoke(packet); break; case OscPacketInvokeAction.DontInvoke: Debug.WriteLine("Cannot invoke"); Debug.WriteLine(packet.ToString()); break; case OscPacketInvokeAction.HasError: Debug.WriteLine("Error reading osc packet, " + packet.Error); Debug.WriteLine(packet.ErrorMessage); break; case OscPacketInvokeAction.Pospone: Debug.WriteLine("Posponed bundle"); Debug.WriteLine(packet.ToString()); break; default: break; } } catch (Exception ex) { // explicitly tell the user why the message failed to parse MessageBox.Show(ex.Message, "Error parsing message"); } }
static void StartLoop(OscReceiver oscReceiver) { OscPacket packet = null; string[] extractData = null; const string START_LINE = "/position"; // Attempt to establish an OSC connection try { do { if (oscReceiver.State == OscSocketState.Connected) { // Attempt receive OSC packet packet = oscReceiver.Receive(); // Extract position data from OSC packet if (packet.ToString().StartsWith(START_LINE)) { extractData = packet.ToString().Split(','); } foreach (string dataItem in extractData) { Console.Write(dataItem + "\t"); } Console.Write("TagID: " + Convert.ToInt16(extractData[1]).ToString("X")); // Converts decimal (26400) into hexadecimal (6270) Console.WriteLine(); } } while (true); } catch (Exception e) { Console.WriteLine(e.Message); } }
/// <summary> /// Receives the next available OSC packet, splits the csv data values, and stores into a string array /// </summary> public void GetOSCPacket() { try { if (_OSCReceiver.State == OscSocketState.Connected) { OscPacket packet = _OSCReceiver.Receive(); _OSCPacket = packet.ToString().Split(','); } } catch (Exception e) { Debug.Log(e.Message); _OSCReceiver.Close(); } }
protected async Task <T> Send <T>(string path, int timeout = DEFAULT_500_MS_TIMEOUT, params object[] args) { //wait for the messages to complete being sent await Task.Run(() => _sender.WaitForAllMessagesToComplete()); if (args == null || args.Length == 0) { _sender.Send(new OscMessage(path)); } else { _sender.Send(new OscMessage(path, args)); } OscPacket packet = await RecieveOSC(timeout); return(FormatResponsePacket <T>(packet?.ToString(), path)); }
void ListenLoop() { try { while (m_Receiver.State != OscSocketState.Closed) { // if we are in a state to recieve if (m_Receiver.State == OscSocketState.Connected) { // get the next message // this will block until one arrives or the socket is closed OscPacket packet = m_Receiver.Receive(); if (packet == null) { continue; } if (packet.Error == OscPacketError.None) { this.Invoke(new StringEvent(AppendLine), packet.ToString()); } else { this.Invoke(new StringEvent(AppendLine), "Error reading packet, " + packet.Error); this.Invoke(new StringEvent(AppendLine), packet.ErrorMessage); } } } } catch (Exception ex) { // if the socket was connected when this happens // then tell the user if (m_Receiver.State == OscSocketState.Connected) { this.Invoke(new StringEvent(AppendLine), "Exception in listen loop"); this.Invoke(new StringEvent(AppendLine), ex.Message); } } }
public static string[] ParseOscPacket(OscPacket packet) { string[] msg = packet.ToString().Split(new string[] { ", " }, StringSplitOptions.None); ; return msg; }
// Loop for listening and updating dashboard data. static void ListenLoop() { try { while (Receiver.State != OscSocketState.Closed) { if (Receiver.State == OscSocketState.Connected) { // Get the next message, this will block until one arrives or the socket is closed. OscPacket Packet = Receiver.Receive(); // Slap the packet in the most recent message variable. App.Current.Dispatcher.InvokeAsync(() => { // Parses the packet into a message array. OscBundle MessageBundle = OscBundle.Parse(Packet.ToString()); foreach (OscPacket MessagePacket in MessageBundle.ToArray()) { // Get the latest message. OscMessage LatestMessage = OscMessage.Parse(MessagePacket.ToString()); // Determine if the message should be overwritten. bool OverwriteMessage = false; int OverwriteMessageIndex = 0; foreach (OscData Message in ReceivedOscData) { if (Message.Path == LatestMessage.Address) { OverwriteMessageIndex = ReceivedOscData.IndexOf(Message); OverwriteMessage = true; } } // Cut the address out of the data string. string DataString = ""; string[] DataArray = LatestMessage.ToString().Split(','); for (int i = 1; i < DataArray.Length; i++) { DataString += DataArray[i]; } // Add the message to the data grid, or overwrite its data. if (OverwriteMessage) { ReceivedOscData.RemoveAt(OverwriteMessageIndex); ReceivedOscData.Insert(OverwriteMessageIndex, new OscData() { Path = LatestMessage.Address, Data = DataString }); } else { ReceivedOscData.Add(new OscData() { Path = LatestMessage.Address, Data = DataString }); } } }); } } } catch (Exception Ex) { // Display the exeception if it occurred, while receiving. if (Receiver.State == OscSocketState.Connected) { MessageBox.Show(Ex.Message, "Exception Occurred", MessageBoxButton.OK, MessageBoxImage.Warning); } } }
static void StartLoop(OscReceiver oscReceiver) { // Create Moving Average objects for each data value (x, y, z, p, r, yw) //MovingAverage maX = new MovingAverage(5); //MovingAverage maY = new MovingAverage(5); //MovingAverage maZ = new MovingAverage(5); MovingAverage maP = new MovingAverage(5); MovingAverage maR = new MovingAverage(5); MovingAverage maYw = new MovingAverage(5, true); OscPacket packet = null; string[] extractData; const string START_LINE = "/position"; const int MAX_TIME_ELAPSED = 10000; // 10 seconds bool connectionNotification = true; Stopwatch sw = new Stopwatch(); // Attempt to establish an OSC connection try { // Start stopwatch sw.Start(); do { if (oscReceiver.State == OscSocketState.Connected) { if (connectionNotification) { Console.WriteLine("connection established"); connectionNotification = false; } // Attempt receive OSC packet if (oscReceiver.TryReceive(out packet)) { sw.Reset(); sw.Start(); // Extract position data from OSC packet if (packet.ToString().StartsWith(START_LINE)) { extractData = packet.ToString().Split(','); //maX.SmoothOrientationData(extractData[2], Values.X); //maY.SmoothOrientationData(extractData[3], Values.Y); //maZ.SmoothOrientationData(extractData[4], Values.Z); maP.SmoothOrientationData(extractData[5], Values.P); maR.SmoothOrientationData(extractData[6], Values.R); maYw.SmoothOrientationData(extractData[7], Values.Yw); } } } } while (sw.ElapsedMilliseconds < MAX_TIME_ELAPSED); sw.Stop(); Console.WriteLine("No OSC packets detected after {0} seconds", sw.ElapsedMilliseconds / 1000); } catch (Exception e) { Console.WriteLine(e.Message); } }
public static string[] ParseOscPacket(OscPacket packet) { string[] msg = packet.ToString().Split(new string[] { ", " }, StringSplitOptions.None);; return(msg); }