private ExtdevMeasurementT Convert(IExternalDevice ed, IMeasurement m) { ExtdevMeasurementT emt = new ExtdevMeasurementT(); 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++) { emt.extDeviceName[i] = edNameData[i]; } } emt.measurement = Convert(m); return(emt); }
private void Write(H5GroupId parent, string name, IDictionary <IExternalDevice, Measurement> dict) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)dict.Keys.Count }); H5DataSetId dataSetId = H5D.create(parent, name, extdevmeasurement_t, spaceId); ExtdevMeasurementT[] emts = new ExtdevMeasurementT[dict.Keys.Count]; int count = 0; foreach (var ed in dict.Keys) { IMeasurement m = dict[ed]; emts[count] = Convert(ed, m); count++; } H5D.write <ExtdevMeasurementT>(dataSetId, extdevmeasurement_t, new H5Array <ExtdevMeasurementT>(emts)); H5D.close(dataSetId); H5S.close(spaceId); }
private void Write(H5GroupId parent, string name, IDictionary<IExternalDevice, Measurement> dict) { H5DataSpaceId spaceId = H5S.create_simple(1, new long[1] { (long)dict.Keys.Count }); H5DataSetId dataSetId = H5D.create(parent, name, extdevmeasurement_t, spaceId); ExtdevMeasurementT[] emts = new ExtdevMeasurementT[dict.Keys.Count]; int count = 0; foreach (var ed in dict.Keys) { IMeasurement m = dict[ed]; emts[count] = Convert(ed, m); count++; } H5D.write<ExtdevMeasurementT>(dataSetId, extdevmeasurement_t, new H5Array<ExtdevMeasurementT>(emts)); H5D.close(dataSetId); H5S.close(spaceId); }
private ExtdevMeasurementT Convert(IExternalDevice ed, IMeasurement m) { ExtdevMeasurementT emt = new ExtdevMeasurementT(); 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++) emt.extDeviceName[i] = edNameData[i]; } emt.measurement = Convert(m); return emt; }