Beispiel #1
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);
        }
Beispiel #2
0
 //Добавка мгновенного значения в список или клон
 //Возвращает количество реально добавленных значений
 internal override int AddMom(DateTime time, MomErr err)
 {
     BufMom.Time  = time;
     BufMom.Error = err;
     if (time <= Connect.PeriodBegin)
     {
         if (_beginMom.Time <= time)
         {
             _beginMom.CopyAllFrom(BufMom);
         }
     }
     else if (time <= Connect.PeriodEnd)
     {
         if (_endMom.Time <= time)
         {
             _endMom.CopyAllFrom(BufMom);
         }
         MomList.AddMom(BufMom);
         return(1);
     }
     return(0);
 }
Beispiel #3
0
 //Добавка мгновенного значения в список или клон
 //Возвращает количество реально добавленных значений
 internal override int AddMom(DateTime time, MomErr err)
 {
     BufMom.Time  = time;
     BufMom.Error = err;
     if (time <= Connect.PeriodBegin)
     {
         if (_beginMom.Time <= time)
         {
             _beginMom.CopyAllFrom(BufMom);
         }
     }
     else if (time <= Connect.PeriodEnd)
     {
         return(PutClone(BufMom, false));
     }
     return(0);
 }