view m-toolbox/m/gui/ltpdv/callbacks/ltpdv_parse_control_chans.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line source

function control_channels = dv_parse_control_chans(channels)

% DV_PARSECONTROLCHANS parse out a list of control channels from the input
% channel list.
% 
% Usage:  control_channels = dv_parsecontrolchans(chanlist);
%
% Input form:
% 
% channel = "top_level#sub_level_1#N#ch1#...#chN#sub_level_2#..."
%   
% Output form:
% 
% channels(1)  = "top_level:sub_level_1:ch1"
% channels(2)  = "top_level:sub_level_1:ch2"
%                 :
%                 :
% 
% 
% M Hewitson 26-07-06
% 
% $Id: ltpdv_parse_control_chans.m,v 1.1 2008/05/11 10:38:43 hewitson Exp $


% control data is sampled at 1Hz for now
count = 1;

numtoplevels = length(channels(:,1));

ch = 1;
control_channels = [];
for top=1:numtoplevels

  name = channels(top,:);
  if(length(name)>40)

    % parse the input string
    % get first part as top level
    [toplevel, r] = strtok(name, '#');
    name = r;
    while(length(name) > 1)

      % get sub level
      [sublevel, r] = strtok(name, '#');
      name = deblank(r);

      % get the number of sub sub levels
      [strN, r] = strtok(name, '#');
      name = deblank(r);
      % convert strN
      N = eval(strN);
      % now get each sub sub level making channel
      % names as we go and extracting data as we go
      for s = 1:N
        [subsublevel, r] = strtok(name, '#');
        name = deblank(r);
        control_channels = strvcat(control_channels,[toplevel ':' sublevel ':' subsublevel ]);
        ch = ch + 1;
      end
    end
  end
end

ch = ch-1;



% END