예제 #1
0
        private SourceConnect MakeProviders()
        {
            var factory = new ProvidersFactory();
            var logger  = new Logger(new AppIndicator());

            logger.History = new TestHistory(logger);
            var con  = (SourceConnect)factory.CreateConnect(logger, ProviderType.Source, "SourceCon", "Mir");
            var prov = factory.CreateProvider(logger, "MirSource", TestLib.TestSqlInf("EnergyRes"));

            con.JoinProvider(prov);
            return(con);
        }
예제 #2
0
        public void Clone()
        {
            TestLib.CopyDir(@"Providers\Mir", "Clone");

            var app = new App("Test", new TestIndicator(), false);

            app.InitTest();
            var con = new ClonerConnect(app);

            con.JoinProvider(app.ProvidersFactory.CreateProvider(app, "MirSource", TestLib.TestSqlInf("EnergyRes")));
            var cloneDir = TestLib.TestRunDir + @"Providers\Mir\Clone\";

            SysTabl.PutValueS(cloneDir + "Clone.accdb", "SourceInf", TestLib.TestSqlInf("EnergyRes"));
            using (con.StartPeriod(D(48), D(96), "Single"))
                con.MakeClone(cloneDir);
            TestLib.CompareClones(cloneDir + "Clone.accdb", cloneDir + "CorrectClone.accdb");
        }
예제 #3
0
        public void Signals()
        {
            var con  = MakeProviders();
            var prov = (MirSource)con.Provider;

            Assert.AreEqual("SourceCon", con.Code);
            Assert.AreEqual("Mir", con.Complect);
            Assert.AreEqual(ProviderType.Source, con.Type);
            Assert.IsNotNull(con.Logger);
            Assert.AreEqual("SourceCon", con.Context);
            Assert.IsNotNull(con.Provider);
            Assert.IsTrue(con.Provider is MirSource);
            Assert.AreEqual("MirSource", prov.Code);
            Assert.AreEqual("SourceCon", prov.Context);
            Assert.AreEqual(TestLib.TestSqlInf("EnergyRes"), prov.Inf);
            Assert.AreSame(con, prov.ProviderConnect);
            Assert.IsNotNull(prov.Logger);
            Assert.IsFalse(prov.IsConnected);
            Assert.IsFalse(prov.IsPrepared);

            Assert.AreEqual(0, con.ReadingSignals.Count);
            con.ClearSignals();
            Assert.AreEqual(0, con.ReadingSignals.Count);

            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Активная прямая", "ValueType=Unit");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая.Indication", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Активная прямая", "ValueType=Indication");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Активная обратная.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Активная обратная", "ValueType=Unit");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Активная обратная.Indication", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Активная обратная", "ValueType=Indication");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Реактивная прямая", "ValueType=Unit");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая.Indication", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Реактивная прямая", "ValueType=Indication");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная обратная.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Реактивная обратная", "ValueType=Unit");
            con.AddSignal("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная обратная.Indication", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 4х6 Игольская;NAME_DEVICE=В-6 2Г", "NAME_TYPE=Реактивная обратная", "ValueType=Indication");

            Assert.AreEqual(8, con.ReadingSignals.Count);
            Assert.AreEqual(8, con.InitialSignals.Count);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая.Unit"));
            Assert.AreEqual(DataType.Real, con.ReadingSignals["ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая.Unit"].DataType);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая.Indication"));
            Assert.AreEqual(DataType.Real, con.ReadingSignals["ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая.Indication"].DataType);

            con.AddSignal("ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 2х6МВт Игольско-Талового нмр.;NAME_DEVICE=Яч.14 Ввод 6Г", "NAME_TYPE=Активная прямая", "ValueType=Unit");
            con.AddSignal("ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная обратная.Unit", DataType.Real, SignalType.List,
                          "NAME_OBJECT=ГТЭС 2х6МВт Игольско-Талового нмр.;NAME_DEVICE=Яч.14 Ввод 6Г", "NAME_TYPE=Активная обратная", "ValueType=Unit");

            Assert.AreEqual(10, con.ReadingSignals.Count);
            Assert.AreEqual(10, con.InitialSignals.Count);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая.Unit"));
            Assert.AreEqual(DataType.Real, con.ReadingSignals["ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая.Unit"].DataType);

            Assert.IsFalse(prov.IsPrepared);
            Assert.IsFalse(prov.IsConnected);
            prov.Prepare();
            Assert.IsTrue(prov.IsConnected);
            Assert.IsTrue(prov.IsPrepared);
            Assert.AreEqual(6, prov.Outs.Count);
            Assert.AreEqual(8, prov.OutsId.Count);
            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая"));
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая"].UnitSignal);
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Активная прямая"].IndicationSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Активная обратная"));
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Активная обратная"].UnitSignal);
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Активная обратная"].IndicationSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая"));
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая"].UnitSignal);
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Реактивная прямая"].IndicationSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 4х6 Игольская.В-6 2Г.Реактивная обратная"));
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Реактивная обратная"].UnitSignal);
            Assert.IsNotNull(prov.Outs["ГТЭС 4х6 Игольская.В-6 2Г.Реактивная обратная"].IndicationSignal);

            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая"));
            Assert.IsNotNull(prov.Outs["ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая"].UnitSignal);
            Assert.IsNull(prov.Outs["ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная прямая"].IndicationSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная обратная"));
            Assert.IsNotNull(prov.Outs["ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная обратная"].UnitSignal);
            Assert.IsNull(prov.Outs["ГТЭС 2х6МВт Игольско-Талового нмр..Яч.14 Ввод 6Г.Активная обратная"].IndicationSignal);

            Assert.IsTrue(prov.OutsId.ContainsKey(676));
            Assert.IsTrue(prov.OutsId.ContainsKey(677));
            Assert.IsTrue(prov.OutsId.ContainsKey(678));
            Assert.IsTrue(prov.OutsId.ContainsKey(679));
            Assert.IsTrue(prov.OutsId.ContainsKey(779));
            Assert.IsTrue(prov.OutsId.ContainsKey(780));
            Assert.IsTrue(prov.OutsId.ContainsKey(1085));
            Assert.IsTrue(prov.OutsId.ContainsKey(1086));

            con.ClearSignals();
            Assert.IsFalse(prov.IsPrepared);
            Assert.AreEqual(0, con.ReadingSignals.Count);
            Assert.AreEqual(0, con.CalcSignals.Count);
            Assert.AreEqual(0, con.InitialSignals.Count);
            Assert.AreEqual(0, prov.Outs.Count);
            Assert.AreEqual(0, prov.OutsId.Count);
        }
예제 #4
0
        public void Signals()
        {
            var con  = MakeProviders();
            var prov = (WonderwareSource)con.Provider;

            Assert.AreEqual("SourceCon", con.Code);
            Assert.AreEqual("Wonderware", con.Complect);
            Assert.AreEqual(ProviderType.Source, con.Type);
            Assert.IsNotNull(con.Logger);
            Assert.AreEqual("SourceCon", con.Context);
            Assert.IsNotNull(con.Provider);
            Assert.IsTrue(con.Provider is WonderwareSource);
            Assert.AreEqual("WonderwareSource", prov.Code);
            Assert.AreEqual("SourceCon", prov.Context);
            Assert.AreEqual(TestLib.TestSqlInf("RunTime"), prov.Inf);
            Assert.AreSame(con, prov.ProviderConnect);
            Assert.IsNotNull(prov.Logger);
            Assert.IsFalse(prov.IsConnected);
            Assert.IsFalse(prov.IsPrepared);

            Assert.AreEqual(0, con.ReadingSignals.Count);
            con.ClearSignals();
            Assert.AreEqual(0, con.ReadingSignals.Count);
            con.AddSignal("A00RL31H02KNB0.Пар", DataType.Real, SignalType.Uniform, "TagName=A00RL31H02KNB0");
            con.AddSignal("A00RL31S01ZSST.Пар", DataType.Real, SignalType.Uniform, "TagName=A00RL31S01ZSST");
            con.AddSignal("D1_NKK03B01.Пар", DataType.Boolean, SignalType.Uniform, "TagName=D1_NKK03B01");
            con.AddSignal("D2CAUP02ON.Пар", DataType.Boolean, SignalType.Uniform, "TagName=D2CAUP02ON");

            Assert.AreEqual(4, con.ReadingSignals.Count);
            Assert.AreEqual(0, con.CalcSignals.Count);
            Assert.AreEqual(4, con.InitialSignals.Count);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("A00RL31H02KNB0.Пар"));
            Assert.AreEqual(DataType.Real, con.ReadingSignals["A00RL31H02KNB0.Пар"].DataType);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("A00RL31S01ZSST.Пар"));
            Assert.AreEqual(DataType.Real, con.ReadingSignals["A00RL31S01ZSST.Пар"].DataType);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("D1_NKK03B01.Пар"));
            Assert.AreEqual(DataType.Boolean, con.ReadingSignals["D1_NKK03B01.Пар"].DataType);
            Assert.IsTrue(con.ReadingSignals.ContainsKey("D2CAUP02ON.Пар"));
            Assert.AreEqual(DataType.Boolean, con.ReadingSignals["D2CAUP02ON.Пар"].DataType);

            Assert.AreEqual(0, prov.Outs.Count);
            Assert.IsFalse(prov.IsPrepared);
            prov.Prepare(false);
            Assert.IsTrue(prov.IsPrepared);
            Assert.AreEqual(4, prov.Outs.Count);
            Assert.IsTrue(prov.Outs.ContainsKey("A00RL31H02KNB0"));
            Assert.IsNotNull(prov.Outs["A00RL31H02KNB0"].ValueSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("A00RL31S01ZSST"));
            Assert.IsNotNull(prov.Outs["A00RL31S01ZSST"].ValueSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("D1_NKK03B01"));
            Assert.IsNotNull(prov.Outs["D1_NKK03B01"].ValueSignal);
            Assert.IsTrue(prov.Outs.ContainsKey("D2CAUP02ON"));
            Assert.IsNotNull(prov.Outs["D2CAUP02ON"].ValueSignal);

            con.ClearSignals();
            Assert.IsFalse(prov.IsPrepared);
            Assert.AreEqual(0, con.ReadingSignals.Count);
            Assert.AreEqual(0, con.CalcSignals.Count);
            Assert.AreEqual(0, con.InitialSignals.Count);
            Assert.AreEqual(0, prov.Outs.Count);
        }