protected override void ReceiveLoop() { _serialReady.WaitOne(); var reader = new BinaryReader(_serialPort.BaseStream); while (_serialPort.BytesToRead > 0) { _serialPort.ReadByte(); } while (IsRunning) { if (!ValidateMagicValue(reader)) { continue; } Console.WriteLine("Got magic"); var packet = SamplePacket.ReadFromStream(reader); Console.WriteLine("Got Packet"); Console.Write(packet.ToString()); Console.WriteLine("-----"); OnDataReady(packet); } }
public static SamplePacket ReadFromStream(BinaryReader reader) { var packet = new SamplePacket(); try { packet.DeviceID = reader.ReadInt32(); packet.SampleID = reader.ReadInt32(); packet.SamplingDurationUs = reader.ReadInt32(); packet.AnalongInPins = reader.ReadInt32(); packet.SampleCount = reader.ReadInt32(); packet.Samples = new ushort[packet.SampleCount]; for (int i = 0; i < packet.SampleCount; i++) { packet.Samples[i] = reader.ReadUInt16(); } } catch (Exception e) { Console.Write(e); } return(packet); }
public void IngestNewSamples(SamplePacket samplePacket) { var builder = new StringBuilder(); for (int i = 0; i < samplePacket.Samples.Length; i++) { builder.Append($"{samplePacket.Samples[i]}\n"); } Clipboard.SetText(builder.ToString()); }
protected void OnDataReady(SamplePacket newPacket) { _pendingSamplePackets.Enqueue(newPacket); }