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); }
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"); }
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); }
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); }