1function [sched, schedparam] = refreshScheduling(self)
2% [SCHED, SCHEDPARAM] = REFRESHSCHEDULING()
4% Copyright (c) 2012-2026, Imperial College London
7% determine scheduling parameters
8M = getNumberOfStations(self);
9K = getNumberOfClasses(self);
11sched = getStationScheduling(self);
12schedparam = zeros(M,K);
14 if isempty(self.getIndexSourceStation) || ist ~= self.getIndexSourceStation
15 switch self.stations{ist}.server.className
19 if ~isempty(self.stations{ist}.schedStrategyPar) & ~isnan(self.stations{ist}.schedStrategyPar) %#ok<AND2>
20 schedparam(ist,:) = self.stations{ist}.schedStrategyPar;
23 case SchedStrategy.SEPT
24 servTime = zeros(1,K);
26 servTime(k) = self.nodes{ist}.serviceProcess{k}.getMean;
28 [servTimeSorted] = sort(unique(servTime));
29 self.nodes{ist}.schedStrategyPar = zeros(1,K);
31 self.nodes{ist}.schedStrategyPar(k) = find(servTimeSorted == servTime(k));
33 case SchedStrategy.LEPT
34 servTime = zeros(1,K);
36 servTime(k) = self.nodes{ist}.serviceProcess{k}.getMean;
38 [servTimeSorted] = sort(unique(servTime),
'descend');
39 self.nodes{ist}.schedStrategyPar = zeros(1,K);
41 self.nodes{ist}.schedStrategyPar(k) = find(servTimeSorted == servTime(k));
50 self.sn.schedparam = schedparam;
51 self.sn.sched = sched(:);