Esempio n. 1
0
        //Прочитать значения за период, возвращает количество прочитанных значений
        public int ReadValues(DateTime beg, DateTime en)
        {
            int n = 0;

            try
            {
                CsData m    = new CsData();
                var    dbeg = beg.TimeToKvint();
                var    den  = en.TimeToKvint();
                if (CsApi.FindFirst(_handler, ref m, dbeg, -1))
                {
                    n += AddValue(m);
                }
                if (CsApi.FindFirst(_handler, ref m, dbeg))
                {
                    n += AddValue(m);
                    while (true)
                    {
                        if (!CsApi.FindNext(_handler, ref m) || m.Time >= den)
                        {
                            break;
                        }
                        n += AddValue(m);
                    }
                }
            }
            catch (Exception ex)
            {
                Provider.Logger.AddError("Ошибка при чтении значений", ex);
            }
            return(n);
        }
Esempio n. 2
0
        private int AddValue(CsData m)
        {
            DateTime t = m.Time.KvintToTime();
            double   d = m.Value;
            int      e = m.ErrorCode;

            if (e == 0)
            {
                AddMoment(t, d);
            }
            else
            {
                AddMoment(new Moment(DataType, d, t, 2, new ErrorCalc("Ошибка " + e, Code)));
            }
            return(1);
        }
Esempio n. 3
0
 public static extern bool ReadData(int handle,       //handle параметра
                                    ref CsData data); //Возвращаемое значение
Esempio n. 4
0
 public static extern bool FindNext(int handle,         //handle параметра
                                    ref CsData data,    //возвращаемые данные
                                    int direction = 1); //1
Esempio n. 5
0
 public static extern bool FindFirst(int handle,         //handle параметра
                                     ref CsData data,    //возвращаемые данные
                                     double time,        //указанное время
                                     int direction = 1); //1 (направление поиска)