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; } } } }
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; } } }