//Запись значения в клон 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); }
//Добавка мгновенного значения в список или клон //Возвращает количество реально добавленных значений 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); }
//Добавка мгновенного значения в список или клон //Возвращает количество реально добавленных значений 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); }