//Загрузка абсолютных значений для редактирования public void LoadAbsolute() { ClearLists(); foreach (var pr in ProjectsList) { using (StartAtom(Atom.LoadAbsolute, 0, 100, "Проект " + pr.Code, pr.Code)) { try { if (SysTabl.SubValueS(pr.File, "ArchiveOptions", "IsAbsolute") == "True") { //Чтение значений из архива var apars = Archive.ReadAbsoluteEdit(pr.Code, false); //Чтение параметров из проекта using (var rec = new ReaderAdo(pr.File, "SELECT CalcParamsArchive.FullCode as Code, CalcParams.Task, CalcParams.Name, CalcSubParams.Name AS SubName, " + "CalcParamsArchive.Units, CalcParamsArchive.DataType, CalcParamsArchive.SuperProcessType, CalcParams.Comment " + "FROM CalcParams INNER JOIN (CalcSubParams RIGHT JOIN CalcParamsArchive ON CalcSubParams.CalcParamId = CalcParamsArchive.CalcSubParamId) ON CalcParams.CalcParamId = CalcParamsArchive.CalcParamId " + "WHERE (CalcParams.CalcOn=True) And (CalcParams.TaskOn=True) And ((CalcSubParams.CalcOn=True) Or (CalcSubParams.CalcOn Is Null)) " + "ORDER BY Task, FullCode;")) while (rec.Read()) { var sp = rec.GetString("SuperProcessType").ToSuperProcess(); if (sp.IsAbsolute()) { var gip = new GridInputParam(pr.Code, rec, true); if (!ProjectsForFilter.Contains(gip.Project)) { ProjectsForFilter.Add(gip.Project); } if (!TasksForFilter.Contains(gip.Task)) { TasksForFilter.Add(gip.Task); } if (!DataTypesForFilter.Contains(gip.DataType)) { DataTypesForFilter.Add(gip.DataType); } if (apars.ContainsKey(gip.Code)) { var hip = apars[gip.Code]; gip.OldValue = hip.OldValue; gip.OldTime = hip.OldTime.ToString(); gip.Value = hip.Value; gip.Time = hip.Time == Different.MinDate ? null : hip.Time.ToString(); } GridInputParams.Add(gip); } } } } catch (Exception ex) { AddError("Ошибка загрузки абсолютных значений", ex); MessageBox.Show("Ошибка загрузки абсолютных значений", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } }
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", "Simatic"); var prov = factory.CreateProvider(logger, "SimaticSource", "SQLServer" + SysTabl.SubValueS(TestLib.TestRunDir + "TestsSettings.accdb", "SQLServerSettings", "SqlServer")); con.JoinProvider(prov); return(con); }
public void StaticFuns() { var file = CopyFile("Static"); Assert.AreEqual("OptionsValue", SysTabl.ValueS(file, "FileOptions")); Assert.AreEqual("ParamValue", SysTabl.ValueS(file, "Param")); Assert.AreEqual("OptionsTag", SysTabl.TagS(file, "FileOptions")); Assert.AreEqual("ParamTag", SysTabl.TagS(file, "Param")); SysTabl.PutValueS(file, "Param", "s1", "t1"); Assert.AreEqual("s1", SysTabl.ValueS(file, "Param")); Assert.AreEqual("t1", SysTabl.TagS(file, "Param")); SysTabl.PutValueS(file, "Param", 22, "t2"); Assert.AreEqual("22", SysTabl.ValueS(file, "Param")); Assert.AreEqual("t2", SysTabl.TagS(file, "Param")); SysTabl.PutValueS(file, "Param", 33.3, "t3"); Assert.AreEqual("33,3", SysTabl.ValueS(file, "Param")); Assert.AreEqual("t3", SysTabl.TagS(file, "Param")); SysTabl.PutValueS(file, "Param", new DateTime(2000, 1, 1)); Assert.AreEqual("01.01.2000 0:00:00", SysTabl.ValueS(file, "Param")); Assert.AreEqual("t3", SysTabl.TagS(file, "Param")); SysTabl.PutValueS(file, "Param", true, ""); Assert.AreEqual("True", SysTabl.ValueS(file, "Param")); Assert.AreEqual("", SysTabl.TagS(file, "Param")); SysTabl.PutTagS(file, "Param", "Tag", "Value"); Assert.AreEqual("Value", SysTabl.ValueS(file, "Param")); Assert.AreEqual("Tag", SysTabl.TagS(file, "Param")); Assert.AreEqual("Тестовый файл", SysTabl.SubValueS(file, "FileOptions", "FileDescription")); Assert.AreEqual("DaoTest", SysTabl.SubValueS(file, "FileOptions", "FileType")); Assert.AreEqual("2.0.0", SysTabl.SubValueS(file, "FileOptions", "FileVersion")); Assert.AreEqual("11.07.2016", SysTabl.SubValueS(file, "FileOptions", "FileVersionDate")); Assert.AreEqual("SubValue", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual(null, SysTabl.SubTagS(file, "FileOptions", "FileDescription")); Assert.AreEqual("SubTag", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubValueS(file, "Param", "SubParam", "s1", "t1"); Assert.AreEqual("s1", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("t1", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubValueS(file, "Param", "SubParam", 22, "t2"); Assert.AreEqual("22", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("t2", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubValueS(file, "Param", "SubParam", 33.3, "t3"); Assert.AreEqual("33,3", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("t3", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubValueS(file, "Param", "SubParam", new DateTime(2000, 1, 1)); Assert.AreEqual("01.01.2000 0:00:00", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("t3", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubValueS(file, "Param", "SubParam", true, ""); Assert.AreEqual("True", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("", SysTabl.SubTagS(file, "Param", "SubParam")); SysTabl.PutSubTagS(file, "Param", "SubParam", "Tag", "Value"); Assert.AreEqual("Value", SysTabl.SubValueS(file, "Param", "SubParam")); Assert.AreEqual("Tag", SysTabl.SubTagS(file, "Param", "SubParam")); }
//Определяет ProjectChangeTime и ArchiveChangeTime public void GetChangeTime() { try { if (!File.IsEmpty()) { ProjectChangeTime = SysTabl.SubValueS(File, "CompileStatus", "LastTimeCompile").ToDateTime(); } } catch { } try { if (Archive != null) { var dic = Archive.ReadProjects(ReportType.Calc); if (dic.ContainsKey(Code)) { ArchiveChangeTime = dic[Code].SourceChange; Name = dic[Code].Name; } } } catch { } }
public void Signals() { var con = MakeProviders(); var prov = (SimaticSource)con.Provider; Assert.AreEqual("SourceCon", con.Code); Assert.AreEqual("Simatic", 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 SimaticSource); Assert.AreEqual("SimaticSource", prov.Code); Assert.AreEqual("SourceCon", prov.Context); Assert.AreEqual("SQLServer" + SysTabl.SubValueS(TestLib.TestRunDir + "TestsSettings.accdb", "SQLServerSettings", "SqlServer"), 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("09ASV00CT002/Т$СК-2А.PV_Out#Value", DataType.Real, SignalType.Uniform, "Id=1136;Tag=09ASV00CT002/Т$СК-2А.PV_Out#Value;Archive=SystemArchive"); con.AddSignal("09ASV00CT002/Т$СК-2А.PV_Out#Value.Quality", DataType.Integer, SignalType.Uniform, "Id=1136;Tag=09ASV00CT002/Т$СК-2А.PV_Out#Value;Archive=SystemArchive", "", "Prop=Quality"); con.AddSignal("09ASV00CT002/Т$СК-2А.PV_Out#Value.Flags", DataType.Integer, SignalType.Uniform, "Id=1136;Tag=09ASV00CT002/Т$СК-2А.PV_Out#Value;Archive=SystemArchive", "", "Prop=Flags"); con.AddSignal("09LBA55CN001XG02/DI.Out#Value", DataType.Boolean, SignalType.Uniform, "Id=1947;Tag=09LBA55CN001XG02/DI.Out#Value;Archive=SystemArchive;"); con.AddSignal("09LBA55CN001XG02/DI.Out#Value.Quality", DataType.Integer, SignalType.Uniform, "Id=1947;Tag=09LBA55CN001XG02/DI.Out#Value;Archive=SystemArchive;", "", "Prop=Quality"); Assert.AreEqual(5, con.ReadingSignals.Count); Assert.AreEqual(5, con.InitialSignals.Count); Assert.AreEqual(0, con.CalcSignals.Count); Assert.IsTrue(con.ReadingSignals.ContainsKey("09ASV00CT002/Т$СК-2А.PV_Out#Value")); Assert.AreEqual(DataType.Real, con.ReadingSignals["09ASV00CT002/Т$СК-2А.PV_Out#Value"].DataType); Assert.IsTrue(con.ReadingSignals.ContainsKey("09ASV00CT002/Т$СК-2А.PV_Out#Value.Quality")); Assert.AreEqual(DataType.Integer, con.ReadingSignals["09ASV00CT002/Т$СК-2А.PV_Out#Value.Quality"].DataType); Assert.IsTrue(con.InitialSignals.ContainsKey("09ASV00CT002/Т$СК-2А.PV_Out#Value.Flags")); Assert.AreEqual(DataType.Integer, con.InitialSignals["09ASV00CT002/Т$СК-2А.PV_Out#Value.Flags"].DataType); Assert.IsTrue(con.ReadingSignals.ContainsKey("09LBA55CN001XG02/DI.Out#Value")); Assert.AreEqual(DataType.Boolean, con.ReadingSignals["09LBA55CN001XG02/DI.Out#Value"].DataType); Assert.IsTrue(con.ReadingSignals.ContainsKey("09LBA55CN001XG02/DI.Out#Value.Quality")); Assert.AreEqual(DataType.Integer, con.ReadingSignals["09LBA55CN001XG02/DI.Out#Value.Quality"].DataType); Assert.IsFalse(prov.IsPrepared); prov.Prepare(false); Assert.IsTrue(prov.IsPrepared); Assert.AreEqual(2, prov.OutsId.Count); Assert.IsTrue(prov.OutsId.ContainsKey(1136)); Assert.IsNotNull(prov.OutsId[1136].ValueSignal); Assert.AreEqual(DataType.Real, prov.OutsId[1136].ValueSignal.DataType); Assert.IsNotNull(prov.OutsId[1136].QualitySignal); Assert.AreEqual(DataType.Integer, prov.OutsId[1136].QualitySignal.DataType); Assert.IsNotNull(prov.OutsId[1136].FlagsSignal); Assert.AreEqual(DataType.Integer, prov.OutsId[1136].FlagsSignal.DataType); Assert.IsNotNull(prov.OutsId[1947].ValueSignal); Assert.AreEqual(DataType.Boolean, prov.OutsId[1947].ValueSignal.DataType); Assert.IsNotNull(prov.OutsId[1947].QualitySignal); Assert.AreEqual(DataType.Integer, prov.OutsId[1947].QualitySignal.DataType); Assert.IsTrue(prov.IsPrepared); 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.OutsId.Count); }