private ExtdevBackgroundMeasurementT Convert(IExternalDevice ed, IMeasurement bg, IMeasurement sampleRate) { var result = new ExtdevBackgroundMeasurementT(); byte[] edNameData = System.Text.Encoding.UTF8.GetBytes(ed.Name); if (edNameData.Length > FIXED_STRING_LENGTH) { throw new InvalidOperationException("External device name is longer than 40 characters."); } unsafe { for (int i = 0; i < Math.Min(edNameData.Length, FIXED_STRING_LENGTH); i++) { result.extDeviceName[i] = edNameData[i]; } } result.measurement = Convert(bg); result.sampleRate = Convert(sampleRate); return(result); }
private void Write(H5GroupId parent, string name, IDictionary <IExternalDevice, Epoch.EpochBackground> background) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)background.Keys.Count }); H5DataSetId dataSetId = H5D.create(parent, name, extdevmeasurement_t, spaceId); ExtdevBackgroundMeasurementT[] emts = new ExtdevBackgroundMeasurementT[background.Keys.Count]; int count = 0; foreach (var ed in background.Keys) { IMeasurement m = background[ed].Background; IMeasurement sr = background[ed].SampleRate; emts[count] = Convert(ed, m, sr); count++; } H5D.write <ExtdevBackgroundMeasurementT>(dataSetId, extdevmeasurement_t, new H5Array <ExtdevBackgroundMeasurementT>(emts)); H5D.close(dataSetId); H5S.close(spaceId); }
private void Write(H5GroupId parent, string name, IDictionary<IExternalDevice, Epoch.EpochBackground> background) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)background.Keys.Count }); H5DataSetId dataSetId = H5D.create(parent, name, extdevmeasurement_t, spaceId); ExtdevBackgroundMeasurementT[] emts = new ExtdevBackgroundMeasurementT[background.Keys.Count]; int count = 0; foreach (var ed in background.Keys) { IMeasurement m = background[ed].Background; IMeasurement sr = background[ed].SampleRate; emts[count] = Convert(ed, m, sr); count++; } H5D.write<ExtdevBackgroundMeasurementT>(dataSetId, extdevmeasurement_t, new H5Array<ExtdevBackgroundMeasurementT>(emts)); H5D.close(dataSetId); H5S.close(spaceId); }
private ExtdevBackgroundMeasurementT Convert(IExternalDevice ed, IMeasurement bg, IMeasurement sampleRate) { var result = new ExtdevBackgroundMeasurementT(); byte[] edNameData = System.Text.Encoding.UTF8.GetBytes(ed.Name); if (edNameData.Length > FIXED_STRING_LENGTH) throw new InvalidOperationException("External device name is longer than 40 characters."); unsafe { for (int i = 0; i < Math.Min(edNameData.Length, FIXED_STRING_LENGTH); i++) result.extDeviceName[i] = edNameData[i]; } result.measurement = Convert(bg); result.sampleRate = Convert(sampleRate); return result; }