protected override void DoCreateNewFile(int nrSignals, bool overwrite) { base.DoCreateNewFile(nrSignals, overwrite); FileInfo.StrictChecking = StrictChecking; for (int i = 0; i < nrSignals; i++) { EdfSignalInfo newSignalDef = (EdfSignalInfo)CreateSignalInfo(); newSignalDef.StrictChecking = StrictChecking; SignalInfo.Add(newSignalDef); } DoOpenFile(); FileInfo.NrSignals = nrSignals; FileInfo.NrDataRecords = 0; }
protected override void DoCreateNewFile(int nrSignals, bool overwrite) { if (!UseMemoryStream) { string s = Path.GetExtension(FileName); if (string.IsNullOrEmpty(s) || (s.ToLower() != ".edf")) { throw new EdfPlusFileNameExtException(DataFileConsts.EDFPlusFileNameExt); } } base.DoCreateNewFile(nrSignals + 1, overwrite); for (int i = 0; i < nrSignals + 1; i++) { EdfPlusSignalInfo newSignalDef = new EdfPlusSignalInfo(this); SignalInfo.Add(newSignalDef); } DoOpenFile(); FileInfo.NrSignals = nrSignals + 1; FileInfo.NrDataRecords = 0; if (_annotationSignalNrs == null) { _annotationSignalNrs = new List <int>(1); } else { _annotationSignalNrs.Capacity = 1; } AnnotationSignalNrs.Add(nrSignals); SignalInfo[nrSignals].SignalLabel = EdfConstants.AnnotationsSignalLabel; SignalInfo[nrSignals].PhysiMin = 0; SignalInfo[nrSignals].PhysiMax = 1; SignalInfo[nrSignals].DigiMin = -32768; SignalInfo[nrSignals].DigiMax = 32767; SignalInfo[nrSignals].NrSamples = 10; // default value, large enough for time keeping events FileInfo.SignalDataIsContinuous = true; }
protected virtual void ReadSignalInfo() { Debug.Assert(FileHandle != null, DataFileConsts.DataFileIsNotOpen); SignalInfo.Clear(); int dummy; if (FileInfo.FieldValid[(int)EdfFileInfoBase.Field.NrSignals] || int.TryParse(FileInfo.EdfFileInfoRaw.NrSignals.Trim(), out dummy)) { List <EdfSignalInfoRaw> tmpSignalInfo = new List <EdfSignalInfoRaw>(); for (int i = 0; i < FileInfo.NrSignals; i++) { EdfSignalInfoBase newSignalDef = CreateSignalInfo(); newSignalDef.StrictChecking = StrictChecking; SignalInfo.Add(newSignalDef); tmpSignalInfo.Add(new EdfSignalInfoRaw()); } if (FileSize >= (FileInfo.NrSignals + 1) * 256) { lock (FileAccess) { FileHandle.Seek(256, SeekOrigin.Begin); for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].SignalLabel = ReadStringField(16); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].TransducerType = ReadStringField(80); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].PhysiDim = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].PhysiMin = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].PhysiMax = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].DigiMin = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].DigiMax = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].PreFilter = ReadStringField(80); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].NrSamples = ReadStringField(8); } for (int i = 0; i < FileInfo.NrSignals; i++) { tmpSignalInfo[i].Reserved = ReadStringField(32); } } for (int i = 0; i < FileInfo.NrSignals; i++) { SignalInfo[i].SignalInfoRecord = tmpSignalInfo[i]; SignalInfo[i].DataExists = FileInfo.DataExists; } } CalculateDataBlockSize(); } }