Beispiel #1
0
        public void ReceivePackets()
        {
            if (!_settings.ListenPort.HasValue)
            {
                throw new ArgumentException("Listen port is not initialized");
            }

            var msgCache     = new MessageCache();
            var sender       = new UdpPacketSender();
            var packetsCount = 10;

            var msg = Encoding.ASCII.GetBytes("$PANSPT,33,22,1*88\r\n$PANSPT,44,55,1*99\r\n");

            using (var receiver = new SISPOSReceiver(_settings, msgCache))
            {
                receiver.Start();

                for (int i = 0; i < packetsCount; i++)
                {
                    sender.SendToLocalhost(_settings.ListenPort.Value, msg);
                }
            }

            Assert.AreEqual(packetsCount, msgCache.Count, "The message was not received");
            Assert.IsTrue(msgCache.Pop().ContainsSubArray(msg));
        }
Beispiel #2
0
        public Proxy()
        {
            _cts   = new CancellationTokenSource();
            _token = _cts.Token;

            var settings    = new Settings();
            var dbCache     = new DbCache();
            var inputCache  = new MessageCache();
            var outputCache = new MessageCache();

            var settingsInitTask = settings.InitAsync();
            var dbCacheInitTask  = dbCache.InitAsync();

            Task.WaitAll(new[] { settingsInitTask, dbCacheInitTask }, _token);

            _dbReceiver          = new DbReceiver(settings, dbCache);
            _sisposReceiver      = new SISPOSReceiver(settings, inputCache);
            _sisposDataProcessor = new SISPOSDataProcessor(settings, dbCache, inputCache, outputCache);
            _sisposTransmitter   = new SISPOSTransmitter(settings, outputCache);
        }