Commit 744eac8c authored by jayd1860's avatar jayd1860
Browse files

v1.13.2

-- Change SnirfClass version 1.10 to 1.0 as Qianqian pointed out to agree with spec.
-- Improved convertH5StrToStr.m to handle any discrepancies between different snirf reader/writers (eg, row vs column vector). Moved all the logic of converting HDF5 strings to matlab to convertH5StrToStr.m to simplify things
parent 99e1e4f0
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -3,12 +3,13 @@ function snew = convertH5StrToStr(s)
snew = '';
if iscell(s) || ischar(s) 
    snew = strtrim_improve(s);
    return;
end
if ~iswholenum(s)
    return;
end
elseif iswholenum(s)
    snew = char(s(:)');  % make sure it's row vector
    snew(snew==0)='';
    snew = strtrim_improve(snew);
end
if iscell(snew)
    snew = [snew{:}];
end

+1 −6
Original line number Diff line number Diff line
@@ -60,12 +60,7 @@ classdef AuxClass < FileLoadSaveClass
            
            %%%%%%%%%%%% Ready to load from file
            try
                nm = convertH5StrToStr(h5read(fname, [parent, '/name']));
                if iscell(nm)
                    obj.name = nm{1};
                else
                    obj.name = nm;
                end
                obj.name = convertH5StrToStr(h5read(fname, [parent, '/name']));
                obj.dataTimeSeries    = h5read(fname, [parent, '/dataTimeSeries']);
                obj.time    = h5read(fname, [parent, '/time']);
                obj.timeOffset    = h5read(fname, [parent, '/timeOffset']);
+1 −6
Original line number Diff line number Diff line
@@ -113,12 +113,7 @@ classdef MeasListClass < FileLoadSaveClass
		            obj.detectorIndex = hdf5read(fname, [parent, '/detectorIndex']);
		            obj.wavelengthIndex = hdf5read(fname, [parent, '/wavelengthIndex']);
		            obj.dataType = hdf5read(fname, [parent, '/dataType']);
		            lb = convertH5StrToStr(hdf5read_safe(fname, [parent, '/dataTypeLabel'], obj.dataTypeLabel));
		            if iscell(lb)
		                obj.dataTypeLabel = lb{1};
		            else
		                obj.dataTypeLabel = lb;
		            end
		            obj.dataTypeLabel = convertH5StrToStr(hdf5read_safe(fname, [parent, '/dataTypeLabel'], obj.dataTypeLabel));
		            obj.dataTypeIndex = hdf5read(fname, [parent, '/dataTypeIndex']);
		            obj.sourcePower = hdf5read_safe(fname, [parent, '/sourcePower'], obj.sourcePower);
		            obj.detectorGain = hdf5read_safe(fname, [parent, '/detectorGain'], obj.detectorGain);
+1 −6
Original line number Diff line number Diff line
@@ -52,12 +52,7 @@ classdef MetaDataTagsClass < FileLoadSaveClass
                info = h5info(fname, parent);
                tags = info.Datasets;
                for ii=1:length(tags)
                    foo = convertH5StrToStr(h5read_safe(fname, [parent, '/', tags(ii).Name], []));
                    if iscell(foo)
                        value = foo{1};
                    else
                        value = foo;
                    end
                    value = convertH5StrToStr(h5read_safe(fname, [parent, '/', tags(ii).Name], []));
                    
                    % Read tag value
                    eval(sprintf('obj.tags.%s = value;', tags(ii).Name));
+8 −2
Original line number Diff line number Diff line
@@ -100,8 +100,14 @@ classdef ProbeClass < FileLoadSaveClass
                obj.momentOrder               = hdf5read_safe(fname, [parent, '/momentOrder'], obj.momentOrder);
                obj.correlationTimeDelay      = hdf5read_safe(fname, [parent, '/correlationTimeDelay'], obj.correlationTimeDelay);
                obj.correlationTimeDelayWidth = hdf5read_safe(fname, [parent, '/correlationTimeDelayWidth'], obj.correlationTimeDelayWidth);
                obj.sourceLabels              = convertH5StrToStr(h5read_safe(fname, [parent, '/sourceLabels'], obj.sourceLabels));
                obj.detectorLabels            = convertH5StrToStr(h5read_safe(fname, [parent, '/detectorLabels'], obj.detectorLabels));
                obj.sourceLabels              = h5read_safe(fname, [parent, '/sourceLabels'], obj.sourceLabels);
                for ii=1:length(obj.sourceLabels)
                    obj.sourceLabels{ii} = convertH5StrToStr(obj.sourceLabels{ii}); 
                end
                obj.detectorLabels            = h5read_safe(fname, [parent, '/detectorLabels'], obj.detectorLabels);
                for ii=1:length(obj.detectorLabels)
                    obj.detectorLabels{ii} = convertH5StrToStr(obj.detectorLabels{ii}); 
                end
            catch 
                err=-1;
                return;
Loading