1function [procid] = refreshProcessTypes(self, statSet, classSet)
2% [PROCTYPE] = REFRESHPROCESSTYPES()
4% Copyright (c) 2012-2026, Imperial College London
7M = getNumberOfStations(self);
8K = getNumberOfClasses(self);
9procid = nan(M,K); % disabled
14 line_error(mfilename,
'refreshRates requires either 0 or 2 parameters.')
15elseif nargin==3 && isfield(self.sn,'rates') && isfield(self.sn,'scv')
16 % we are only updating selected stations and
classes so use the
17 % existing ones for the others
18 procid = self.sn.procid;
20hasOpenClasses = self.hasOpenClasses;
22stations = self.stations;
27 switch stations{i}.server.className
30 switch class(stations{i})
32 if isempty(stations{i}.input.sourceClasses{r}) || stations{i}.input.sourceClasses{r}{end}.isDisabled
33 procid(i,r) = ProcessType.DISABLED;
34 elseif stations{i}.input.sourceClasses{r}{end}.isImmediate
35 procid(i,r) = ProcessType.IMMEDIATE;
37 procid(i,r) = ProcessType.toId(ProcessType.fromText(
class(stations{i}.input.sourceClasses{r}{end})));
40 procid(i,r) = ProcessType.IMMEDIATE;
43 if ~hasOpenClasses || i ~= self.getIndexSourceStation
44 if isempty(stations{i}.server.serviceProcess{r}) || stations{i}.server.serviceProcess{r}{end}.isDisabled
45 procid(i,r) = ProcessType.DISABLED;
46 elseif stations{i}.server.serviceProcess{r}{end}.isImmediate
47 procid(i,r) = ProcessType.IMMEDIATE;
49 processtype =
class(stations{i}.server.serviceProcess{r}{end});
50 processtypeid = ProcessType.fromText(processtype);
51 procid(i,r) = ProcessType.toId(processtypeid);
59 self.sn.procid = procid;