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);
            }
        }
Esempio n. 2
0
        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());
        }
Esempio n. 4
0
 protected void OnDataReady(SamplePacket newPacket)
 {
     _pendingSamplePackets.Enqueue(newPacket);
 }