private void ReadMessages() { while (true) { try { var message = JsonConvert.DeserializeObject <Message>(_reader.ReadString()); ReadQueue.Add(message); if (string.Equals(message.MessageType, "TestHost.Acknowledge")) { _ackWaitHandle.Set(); ReadQueue.CompleteAdding(); break; } } catch (Exception ex) { TestHostTracing.Source.TraceEvent( TraceEventType.Error, 0, "[ReportingChannel]: Waiting for message failed {0}", ex); throw; } } }
/// <summary> /// Data received handler. /// </summary> /// <param name="sender">[in]</param> /// <param name="args">[in]</param> private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs args) { var count = Port.BytesToRead; var bytes = new byte[count]; Port.Read(bytes, 0, count); foreach (var data in bytes) { ReadQueue.Add(data); } }