示例#1
0
        //Чтение среза
        protected internal override ValuesCount ReadCut()
        {
            var      vc = new ValuesCount();
            DateTime d  = ClonerConnect.RemoveMinultes(PeriodBegin);

            AddEvent("Чтение среза действительных значений из таблицы изменений");
            _useStrTable = false;
            _useCutTable = false;
            vc          += ReadWhole(ObjectsList, d, PeriodBegin, true);
            if (vc.IsFail)
            {
                return(vc);
            }
            AddEvent("Чтение среза действительных значений из таблицы срезов");
            _useStrTable = false;
            _useCutTable = true;
            vc          += ReadWhole(ObjectsList, d.AddSeconds(-1), PeriodBegin.AddSeconds(1), true);
            if (vc.IsFail)
            {
                return(vc);
            }
            AddEvent("Чтение среза строковых значений из таблицы изменений");
            _useStrTable = true;
            _useCutTable = false;
            vc          += ReadWhole(ObjectsList, d, PeriodBegin, true);
            if (vc.IsFail)
            {
                return(vc);
            }
            AddEvent("Чтение среза строковых значений из таблицы срезов");
            _useStrTable = true;
            _useCutTable = true;
            vc          += ReadWhole(ObjectsList, d.AddSeconds(-1), PeriodBegin.AddSeconds(1), true);
            return(vc);
        }
示例#2
0
        //Запись значения в клон
        protected override int PutClone(IReadMean mom, //Рекордсет срезов клона
                                        bool onlyCut)  //Добавляет только 10-минутные срезы, но не само значение
        {
            bool isReal = DataType.IsReal();
            var  rec    = isReal ? ClonerConnect.CloneRec : ClonerConnect.CloneStrRec;
            var  recCut = isReal ? ClonerConnect.CloneCutRec : ClonerConnect.CloneStrCutRec;
            int  nwrite = 0;

            if (_prevMom.Time >= Connect.PeriodBegin)
            {
                var d1 = ClonerConnect.RemoveMinultes(mom.Time);
                var d  = ClonerConnect.RemoveMinultes(_prevMom.Time).AddMinutes(10);
                while (d <= d1)
                {
                    if (d != mom.Time)
                    {
                        PutCloneRec(_prevMom, recCut, true, d);
                        nwrite++;
                    }
                    d = d.AddMinutes(10);
                }
            }
            if (!onlyCut)
            {
                PutCloneRec(mom, rec, false, mom.Time);
                nwrite++;
            }
            _prevMom.CopyAllFrom(BufMom);
            return(nwrite);
        }
示例#3
0
 public UniformCloneSignal(ClonerConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf)
     : base(connect, code, dataType, contextOut, inf)
 {
     _prevMom  = new EditMom(dataType);
     _beginMom = new EditMom(dataType);
 }
示例#4
0
 public CloneSignal(ClonerConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf)
     : base(connect, code, dataType, contextOut, inf)
 {
 }