private async Task ReadTaskAsync()
        {
            do
            {
                var numberOfBytes = (uint)_buffer.Length;

                try
                {
                    var bytesRead = await _serialPortStream.LoadAsync(numberOfBytes);

                    if (bytesRead > 0)
                    {
                        _serialPortStream.ReadBytes(_buffer);

                        var messages = OscPacket.GetPackets(_buffer, (int)bytesRead);

                        foreach (var message in messages)
                        {
                            OscPacketReceived?.Invoke(this, new OscEventArgs(message));
                        }
                    }
                }
                catch
                {
                    await Task.Delay(1000);

                    // do not care
                }
            }while (true);
        }
        private void SocketMessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
        {
            using (var reader = args.GetDataReader())
            {
                var data = new byte[reader.UnconsumedBufferLength];

                reader.ReadBytes(data);

                try
                {
                    var packet = OscPacket.GetPacket(data);

                    if (packet != null)
                    {
                        OscPacketReceived?.Invoke(this, new OscEventArgs(packet));
                    }
                }
                catch (Exception)
                {
                    //  do not care
                }
            }
        }
 public Task SendAsync(OscPacket packet)
 {
     return(SendAsync(packet.GetBytes()));
 }
 public OscEventArgs(OscPacket oscPacket)
 {
     _oscPacket = oscPacket;
 }
        public Task SendAsync(OscPacket packet)
        {
            var data = packet.GetBytes();

            return(SendAsync(data));
        }