Пример #1
0
        public void TryParseUdpPanSsySentence()
        {
            var model = new UdpPanSsy()
            {
                SystemStatus       = SystemStatus.NoDisturbance,
                Pos1Status         = PosServerStatus.Initialization,
                Pos2Status         = PosServerStatus.Disorder,
                SilenceStatus      = SilenceStatus.Canceled,
                LoggedOnTagsAmount = 10,
                MissedTagsAmount   = 2,
                IlasstStatus       = IlasstStatus.NormalOperation
            };
            var input          = new ArraySegment <byte>(model.ToBytes());
            var inputStr       = Encoding.ASCII.GetString(model.ToBytes());
            var inputStrOrigin = "$PANSSY,0,2,1,1,10,2,0*2B\r\n";

            var parsed = UdpPanSsy.TryParse(input, out var result);

            Assert.IsTrue(parsed, "UdpPanSsy was not parsed");
            Assert.IsNotNull(result, "result is null");
            Assert.AreEqual(model.SystemStatus, result.SystemStatus, "SystemStatus is not equal");
            Assert.AreEqual(model.Pos1Status, result.Pos1Status, "Pos1Status is not equal");
            Assert.AreEqual(model.Pos2Status, result.Pos2Status, "Pos2Status is not equal");
            Assert.AreEqual(model.SilenceStatus, result.SilenceStatus, "SilenceStatus is not equal");
            Assert.AreEqual(model.LoggedOnTagsAmount, result.LoggedOnTagsAmount, "LoggedOnTagsAmount is not equal");
            Assert.AreEqual(model.MissedTagsAmount, result.MissedTagsAmount, "MissedTagsAmount is not equal");
            Assert.AreEqual(model.IlasstStatus, result.IlasstStatus, "IlasstStatus is not equal");

            Assert.AreEqual(inputStrOrigin, inputStr, "Origin is not equal to str from model");
        }
Пример #2
0
        private void FixAndSaveResult(ArraySegment <byte> smgt, UdpPayloadCache outStream)
        {
            UdpSentence baseModel = null;

            try
            {
                if (UdpPanSpt.TryParse(smgt, out var sptModel))
                {
                    FixPANSPT(sptModel);
                    baseModel = sptModel;
                }
                else if (UdpPanSsy.TryParse(smgt, out var ssyModel))
                {
                    FixPANSSY(ssyModel);
                    baseModel = ssyModel;
                }
                else
                {
                    OnlySaveResult(smgt, outStream);
                }

                if (baseModel != null)
                {
                    SaveResult(baseModel.ToBytes(), outStream);
                }
            }
            catch
            {
                // ignored
            }
        }
Пример #3
0
        public void FixPANSSYModel()
        {
            var model = new UdpPanSsy()
            {
                SystemStatus       = SystemStatus.NoDisturbance,
                Pos1Status         = PosServerStatus.Initialization,
                Pos2Status         = PosServerStatus.Disorder,
                SilenceStatus      = SilenceStatus.Canceled,
                LoggedOnTagsAmount = 0,
                MissedTagsAmount   = 0,
                IlasstStatus       = IlasstStatus.NormalOperation
            };
            var service = new UdpRepairService(_dbCache);

            service.FixPANSSY(model);

            Assert.AreEqual(SystemStatus.NoDisturbance, model.SystemStatus);
            Assert.AreEqual(PosServerStatus.Initialization, model.Pos1Status);
            Assert.AreEqual(PosServerStatus.Disorder, model.Pos2Status);
            Assert.AreEqual(SilenceStatus.Canceled, model.SilenceStatus);
            Assert.AreEqual(3, model.LoggedOnTagsAmount);
            Assert.AreEqual(1, model.MissedTagsAmount);
            Assert.AreEqual(IlasstStatus.NormalOperation, model.IlasstStatus);
        }
Пример #4
0
 public void FixPANSSY(UdpPanSsy model)
 {
     model.LoggedOnTagsAmount = _dbCache.GetSectorTagsAmount(1, 66);
 }