Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
        }