Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }