public void ReaderInfo_from_xml()
        {
            var doc = new XmlDocument();

            doc.LoadXml(@"<Alien-RFID-Reader-Heartbeat>
  <ReaderName>Alien RFID Reader</ReaderName>
  <ReaderType>Alien RFID Tag Reader, Model: ALR-F800-EMA (EN 302.208, 865-867 MHz)</ReaderType>
  <IPAddress>10.0.0.41</IPAddress>
  <IPv6Address>fdaa::aaaa</IPv6Address>
  <CommandPort>23</CommandPort>
  <HeartbeatTime>30</HeartbeatTime>
  <MACAddress>00:1B:5F:01:08:E4</MACAddress>
  <ReaderVersion>17.11.13.00</ReaderVersion>
</Alien-RFID-Reader-Heartbeat>");
            var ri = ReaderInfo.FromXmlString(doc);

            ri.ReaderName.ShouldBe("Alien RFID Reader");
            ri.IPAddress.ShouldBe(IPAddress.Parse("10.0.0.41"));
            ri.IPAddress6.ShouldBe(IPAddress.Parse("fdaa::aaaa"));
            ri.CommandPort.ShouldBe(23);
            ri.MACAddress.ShouldBe("00:1B:5F:01:08:E4");
            ri.Time.ShouldBeInRange(DateTimeOffset.UtcNow.AddSeconds(-2), DateTimeOffset.UtcNow);
        }
Пример #2
0
        private async void RecieveLoop()
        {
            try
            {
                while (true)
                {
                    var result = await client.ReceiveAsync();

                    lock (readers)
                    {
                        var doc = new XmlDocument();
                        doc.Load(new MemoryStream(result.Buffer));
                        var ri = ReaderInfo.FromXmlString(doc);
                        discovery.OnNext(ri);
                        readers.Add(ri);
                    }
                }
            }
            catch (Exception e)
            {
                logger.Warn(e);
            }
        }