private void ParseResponse(byte[] buffer)
        {
            var pos    = 0;
            var header = Encoding.UTF8.GetString(buffer, pos, 4);

            pos += 5;             // Including tailing 0

            if (header == "RREF") // Ignore other messages
            {
                while (pos < buffer.Length)
                {
                    var id = BitConverter.ToInt32(buffer, pos);
                    pos += 4;

                    try
                    {
                        var value = BitConverter.ToSingle(buffer, pos);
                        pos += 4;
                        foreach (var dr in DataRefs)
                        {
                            if (dr.Update(id, value))
                            {
                                OnDataRefReceived?.Invoke(dr);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        var error = ex.Message;
                    }
                }
            }
        }
Exemple #2
0
        private void ParseResponse(byte[] buffer)
        {
            var pos    = 0;
            var header = Encoding.UTF8.GetString(buffer, pos, 4);

            pos += 5; // Including tailing 0

            if (header != "RREF")
            {
                return;                   // Ignore other messages
            }
            while (pos < buffer.Length)
            {
                var id = BitConverter.ToInt32(buffer, pos);
                pos += 4;

                try
                {
                    var value = BitConverter.ToSingle(buffer, pos);
                    pos += 4;
                    if (DataRefs.ContainsKey(id) &&
                        DataRefs[id].Update(value))
                    {
                        OnDataRefReceived?.Invoke(DataRefs[id]);
                    }
                }
                catch (ArgumentException ex)
                {
                    var error = ex.Message;
                }
                catch (Exception ex)
                {
                    var error = ex.Message;
                }
            }
        }