Esempio n. 1
0
 /// <summary>
 /// Construtor com o intervalo padrão de um minuto
 /// </summary>
 /// <param name="grandeza"></param>
 /// <param name="analogicos"></param>
 public Medida(GrandezaDE grandeza, List<AnalogicDataRegisterDE> analogicos)
     : this(grandeza, analogicos, new TimeSpan(0, 1, 0))
 {
 }
        protected DataRegisterReader(DateTime dataRead, string histdataFilePath, string onlinedataFilePath, string FilePrefix )
        {
            GrandezaDE grandeza;
            bool fim = false;
            ArrayList grandezaList = new ArrayList();

            _dataDate = dataRead;

            if(_dataDate.Date == DateTime.Today.Date)
            {
                _dataFileName = onlinedataFilePath;
                if(string.Compare(_dataFileName.Substring(_dataFileName.Length -1,1),@"\") != 0) _dataFileName += @"\";
                _dataFileName +=  FilePrefix + (dayOpenVMS) ((int)_dataDate.DayOfWeek) + ".HIS";
                _numDiferencaMinutos = -1;
            }
            else
            {
                _dataFileName = histdataFilePath;
                if(string.Compare(_dataFileName.Substring(_dataFileName.Length -1,1),@"\") != 0) _dataFileName += @"\";
                _dataFileName +=  FilePrefix.Substring(2,1) + _dataDate.Year.ToString().Substring(2,2) + _dataDate.Month.ToString("00") + _dataDate.Day.ToString("00") + ".HIS";
                _numDiferencaMinutos = 0;
            }

            _fileName = _dataFileName;

            if(File.Exists(_dataFileName))
            {
                fs = new FileStream(_dataFileName, FileMode.Open, FileAccess.Read);
                r = new BinaryReader(fs);

                fs.Position = 0;

                buffer = new char[NumGRLen];
                r.Read(buffer,0, NumGRLen);
                _NumGR = Convert.ToInt32(new string(buffer));

                fs.Position = NumGRLen + DataUltimaAtuLen;

                buffer = new char[NumBValGrLen];
                r.Read(buffer,0,NumBValGrLen);
                _NumBValGr = Convert.ToInt32(buffer[0]);

                for(int i=0;i<_NumGR && !fim;i++)
                {
                    fs.Position = NumGRLen + DataUltimaAtuLen + NumBValGrLen + (GrandezaLen * i);
                    buffer = new char[GrandezaLen];
                    r.Read(buffer,0, GrandezaLen);
                    grandeza = new GrandezaDE(buffer);
                    if(grandeza.Index != -1)
                    {
                        htHeader.Add(grandeza.Name,grandeza.Index);
                        grandezaList.Add(grandeza);
                    }
                    else fim = true;
                }

                _grandezas = (GrandezaDE[]) grandezaList.ToArray(typeof(GrandezaDE));

                _fileExists = true;
                r.Close();
                fs.Close();
            }
            else
                _fileExists = false;
        }
Esempio n. 3
0
 public Medida(GrandezaDE grandeza, List<AnalogicDataRegisterDE> analogicos, TimeSpan intervalo)
 {
     Grandeza = grandeza;
     Analogicos = analogicos;
     Intervalo = intervalo;
 }