function c=runcontsub(spo,nsamp) % SOSI-M2 V1.0 MATLAB M-file % % Loop to read data continuously from SOSI in run mode % % Args: c=runcontsub(spo,nsamp) % % spo: opened serial port % nsamp: number samples % % c: output data, size: [nsamp,8] % Sample counter m=0; % Other responses counter n=0; % Get version MATLAB to use below v=str2num(strtok(version,'.')); % Read samples c=[]; h=waitbar(m,sprintf('Sample %d',m)); % Serial port timeout > sample period while m <= nsamp & n < 10 b=fscanf(spo,'%d'); % Save output to matrix data row if length(b) == 8 if v < 7 c(m+1,:)=b'; else c(m+1,:)=b; end % Count samples m=m+1; waitbar(m/nsamp,h,sprintf('Sample %d',m)); % Print anything else else if length(b)>2 disp('Error: ');disp(b); end % Count non-data lines n=n+1; end % Put any output control function here end close(h)