//Чтение среза 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); }
//Запись значения в клон 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); }
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); }
public CloneSignal(ClonerConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf) : base(connect, code, dataType, contextOut, inf) { }