コード例 #1
0
 //Загрузка абсолютных значений для редактирования
 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);
             }
         }
     }
 }
コード例 #2
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", "Simatic");
            var prov = factory.CreateProvider(logger, "SimaticSource", "SQLServer" + SysTabl.SubValueS(TestLib.TestRunDir + "TestsSettings.accdb", "SQLServerSettings", "SqlServer"));

            con.JoinProvider(prov);
            return(con);
        }
コード例 #3
0
ファイル: SysTablTest.cs プロジェクト: martugin/InfoTask2
        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"));
        }
コード例 #4
0
 //Определяет 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 { }
 }
コード例 #5
0
        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);
        }