コード例 #1
0
 public TimeInterval(IRecordRead rec)
 {
     try { Begin = rec.GetTime("TimeBegin"); }
     catch { Begin = rec.GetTime("Begin"); }
     try { End = rec.GetTime("TimeEnd"); }
     catch { End = rec.GetTime("End"); }
 }
コード例 #2
0
 //Если провайдер позволяет, чтение из таблицы архива
 public ArchiveInterval(IRecordRead rec, IntervalType type) : base(rec)
 {
     Type       = type;
     Name       = rec.GetString("IntervalName");
     Id         = rec.GetInt("IntervalId");
     TimeChange = rec.GetTime("TimeChange");
 }
コード例 #3
0
        //Чтение одной строчки значений
        protected override int ReadMoments(IRecordRead rec)
        {
            var time = rec.GetTime("Time");

            return(AddMomReal(ValueSignal, time, rec, "ValueSignal") +
                   AddMomReal(ValueSignal2, time, rec, "ValueSignal2"));
        }
コード例 #4
0
ファイル: MirOut.cs プロジェクト: martugin/InfoTask2
        //Чтение значений по одному выходу из рекордсета источника и добавление их в список или клон
        //Возвращает количество сформированных значений
        protected override int ReadMoments(IRecordRead rec)
        {
            var time = rec.GetTime("TIME");

            return(AddMomReal(IndicationSignal, time, rec, "VALUE_INDICATION") +
                   AddMomReal(UnitSignal, time, rec, "VALUE_UNIT"));
        }
コード例 #5
0
ファイル: KosmOut.cs プロジェクト: martugin/InfoTask2
        //Чтение значений по одному выходу из рекордсета источника
        //Возвращает количество сформированных значений
        protected override int ReadMoments(IRecordRead rec)
        {
            int      dn       = Source is KosmotronikaRetroSource ? 1 : 0;
            int      nwrite   = 0;
            DateTime time     = rec.GetTime(2 + dn);
            var      isAnalog = ((KosmotronikaBaseSource)Source).IsAnalog;
            int      ndint    = rec.GetInt(isAnalog ? 5 + dn : 7 + dn);
            var      err      = MakeError(ndint);

            nwrite += AddMom(PokSignal, time, rec.GetInt(4 + dn), err);
            nwrite += AddMom(StateSignal, time, ndint);
            if (isAnalog)
            {
                nwrite += AddMom(ValueSignal, time, rec.GetDouble(7 + dn), err);
            }
            else
            {
                var strValue = rec.GetString(8 + dn);
                if (strValue.IndexOf("0x", StringComparison.Ordinal) >= 0)
                {
                    nwrite += AddMom(ValueSignal, time, Convert.ToUInt32(strValue, 16), err);
                }
                else
                {
                    nwrite += AddMom(ValueSignal, time, Convert.ToDouble(strValue), err);
                }
            }
            return(nwrite);
        }
コード例 #6
0
        //Чтение одной строчки значений
        protected override int ReadMoments(IRecordRead rec)
        {
            var time = rec.GetTime("Time");

            return(AddMomString(TextSignal, time, rec, "CommandText") +
                   AddMomInt(NumberSignal, time, rec, "CommandNumber"));
        }
コード例 #7
0
 public ArchiveReport(IRecordRead rec)
 {
     Code         = rec.GetString("Report");
     Name         = rec.GetString("ReportName");
     Type         = rec.GetString("ReportType").ToReportType();
     SourceChange = rec.GetTime("SourceChahge");
     Id           = rec.GetInt("ReportId");
 }
コード例 #8
0
ファイル: SourceOut.cs プロジェクト: martugin/InfoTask2
 protected int AddMomTime(SourceSignal sig, DateTime time, IRecordRead rec, string field, MomErr err = null)
 {
     if (sig == null)
     {
         return(0);
     }
     sig.BufMom.Date = rec.GetTime(field);
     return(sig.AddMom(time, err));
 }
コード例 #9
0
        //Чтение значений по одному выходу из рекордсета источника и добавление их в список или клон
        //Возвращает количество сформированных значений
        protected override int ReadMoments(IRecordRead rec)
        {
            DateTime time    = rec.GetTime("TimeStamp").ToLocalTime();
            var      quality = rec.GetInt("Quality");
            var      err     = MakeError(quality);

            return(AddMom(FlagsSignal, time, rec.GetInt("Flags"), err) +
                   AddMom(QualitySignal, time, quality, err) +
                   AddMom(ValueSignal, time, ((AdoReader)rec).Reader["RealValue"], err));
        }
コード例 #10
0
ファイル: WonderwareOut.cs プロジェクト: martugin/InfoTask2
        //Чтение значений по одному выходу из рекордсета источника
        //Возвращает количество сформированных значений
        protected override int ReadMoments(IRecordRead rec)
        {
            DateTime time = rec.GetTime("DateTime");
            var      err  = MakeError(rec.GetInt("QualityDetail"));

            if (ValueSignal.DataType.IsReal())
            {
                return(AddMomReal(ValueSignal, time, rec, "Value", err));
            }
            return(AddMomString(ValueSignal, time, rec, "vValue", err));
        }
コード例 #11
0
        //Чтение одной строчки значений
        protected override int ReadMoments(IRecordRead rec)
        {
            var time  = rec.GetTime("Time");
            var state = rec.GetInt("StateSignal");

            return(AddMomReal(ValueSignal, time, rec, "ValueSignal") +
                   AddMom(StateSignal, time, state) +
                   AddMomBool(BoolSignal, time, rec, "BoolSignal") +
                   AddMomInt(IntSignal, time, rec, "IntSignal") +
                   AddMomReal(RealSignal, time, rec, "RealSignal", MakeError(state)) +
                   AddMomString(StringSignal, time, rec, "StringSignal", MakeError(state)) +
                   AddMomTime(TimeSignal, time, rec, "TimeSignal"));
        }
コード例 #12
0
 public GridError(IRecordRead rec)
 {
     Id           = rec.GetInt("Id");
     Description  = rec.GetString("Description");
     Params       = rec.GetString("Params");
     Time         = rec.GetTime("Time").ToString();
     _command     = rec.GetString("Command");
     _context     = rec.GetString("Context");
     Command      = _command + "\n" + _context;
     _periodBegin = rec.GetTimeNull("PeriodBegin");
     _periodEnd   = rec.GetTimeNull("PeriodEnd");
     Period       = _periodEnd == null ? null : (_periodBegin + "\n" + _periodEnd);
 }
コード例 #13
0
        //Чтение одного значения из рекордсета клона
        protected internal override int ReadMoments(IRecordRead rec)
        {
            var time   = rec.GetTime("Time");
            var errNum = rec.GetIntNull("ErrNum");
            var err    = errNum == null ? null : MakeError((int)errNum);

            if (ValueSignal.DataType.IsReal())
            {
                return(AddMomReal(ValueSignal, time, rec, "RealValue", err));
            }
            return(ValueSignal.DataType == DataType.Time
                ? AddMomTime(ValueSignal, time, rec, "TimeValue", err)
                : AddMomString(ValueSignal, time, rec, "StrValue", err));
        }
コード例 #14
0
        //Получает время из текущей строчки рекордсета
        private DateTime Time(IRecordRead rec)
        {
            var time = rec.GetTime("TIMESTAMP");

            time = time.AddMilliseconds(rec.GetInt("TIME_NSEC") / 1000000.0);
            if (IsOriginal)
            {
                time = time.ToLocalTime();
            }
            if (time < _begin)
            {
                time = _begin;
            }
            return(time);
        }
コード例 #15
0
 //Чтение мгновенных значений из таблицы
 public void ReadMoments(IRecordRead rec)
 {
     while (!rec.EOF && rec.GetInt("ImitId") == ImitId)
     {
         if (!IsConstant)
         {
             var    mv    = new Moment(DataType, rec.GetDouble("Value"), rec.GetTime("Time"), rec.GetInt("Nd"));
             var    last  = _moments.Count == 0 ? null : _moments[_moments.Count - 1];
             double rtime = rec.GetDouble("RelativeTime");
             if ((last == null || last.Time < mv.Time) && rtime >= 0 && rtime < _intervalLength)
             {
                 _moments.Add(mv);
             }
         }
         rec.Read();
     }
 }
コード例 #16
0
ファイル: KosmOperatorOut.cs プロジェクト: martugin/InfoTask2
        //Чтение значений по одному выходу из рекордсета источника
        protected override int ReadMoments(IRecordRead rec)
        {
            int      dn     = Source is KosmotronikaRetroSource ? 1 : 0;
            int      nwrite = 0;
            DateTime time   = rec.GetTime(0);

            nwrite += AddMom(NumWsSignal, time, rec.GetInt(2));
            nwrite += AddMom(ModeSignal, time, rec.GetInt(3));
            nwrite += AddMom(CodeSignal, time, rec.GetInt(4));
            nwrite += AddMom(SnSignal, time, rec.GetInt(5));
            nwrite += AddMom(NumTypeSignal, time, rec.GetInt(6));
            if (dn == 1)
            {
                nwrite += AddMom(AppartmentSignal, time, rec.GetInt(7));
            }
            nwrite += AddMom(ParamsSignal, time, rec.GetString(7 + dn));
            nwrite += AddMom(ExtCommandSignal, time, rec.GetString(8 + dn));
            nwrite += AddMom(PointSignal, time, rec.GetString(9 + dn));
            return(nwrite);
        }
コード例 #17
0
        public static Mean Create(DataType dtype, IRecordRead rec, string field)
        {
            switch (dtype)
            {
            case DataType.Real:
                return(new MeanReal(rec.GetDouble(field)));

            case DataType.String:
                return(new MeanString(rec.GetString(field)));

            case DataType.Integer:
                return(new MeanInteger(rec.GetInt(field)));

            case DataType.Boolean:
                return(new MeanBool(rec.GetBool(field)));

            case DataType.Time:
                return(new MeanTime(rec.GetTime(field)));
            }
            return(null);
        }
コード例 #18
0
ファイル: MFactory.cs プロジェクト: martugin/InfoTask2
        //Получение значения из рекордсета
        public static Mean GetMean(this IRecordRead rec, DataType dtype, string field)
        {
            switch (dtype)
            {
            case DataType.Real:
                return(new RealMean(rec.GetDouble(field)));

            case DataType.String:
                return(new StringMean(rec.GetString(field)));

            case DataType.Integer:
                return(new IntMean(rec.GetInt(field)));

            case DataType.Boolean:
                return(new BoolMean(rec.GetBool(field)));

            case DataType.Time:
                return(new TimeMean(rec.GetTime(field)));
            }
            return(null);
        }
コード例 #19
0
 //Чтение времени из рекордсета источника
 private static DateTime ReadTime(IRecordRead rec)
 {
     return(rec.GetTime("TIMESTAMP")
            .AddMilliseconds(rec.GetInt("TIME_NSEC") / 1000000.0)
            .ToLocalTime());
 }
コード例 #20
0
        //Чтение из одной строчки значений
        protected override int ReadMoments(IRecordRead rec)
        {
            var t = rec.GetTime("Время");

            return(_signals.Sum(sig => AddMomReal(sig.Value, t, rec, sig.Key)));
        }
コード例 #21
0
ファイル: Means.cs プロジェクト: martugin/InfoTask2
 public override void ValueFromRec(IRecordRead rec, string field)
 {
     rec.GetTime(field);
 }