1function [rates, scv, hasRateChanged, hasSCVChanged] = refreshRates(self, statSet, classSet)
2% [RATES, SCV] = REFRESHRATES()
4% Copyright (c) 2012-2026, Imperial College London
9M = getNumberOfStations(self);
10K = getNumberOfClasses(self);
16 hasRateChanged =
true;
20 rates = self.sn.rates;
22 rates_orig = self.sn.rates;
23 scv_orig = self.sn.scv;
24elseif nargin==3 %
this is used only to update self.sn
25 % we are only updating selected stations and
classes so use the
26 % existing ones
for the others
27 rates = self.sn.rates;
29 rates_orig = self.sn.rates;
30 scv_orig = self.sn.scv;
32hasOpenClasses = self.hasOpenClasses;
34stations = self.stations;
37 station_i = stations{i};
39 switch station_i.server.className
42 switch class(station_i)
44 if isempty(station_i.input.sourceClasses{r})
48 distr = station_i.input.sourceClasses{r}{end};
49 rates(i,r) = distr.getRate();
50 scv(i,r) = distr.getSCV();
63 if ~hasOpenClasses || i ~= self.getIndexSourceStation
64 if isempty(station_i.server.serviceProcess{r})
68 distr = station_i.server.serviceProcess{r}{end};
69 rates(i,r) = distr.getRate();
70 scv(i,r) = distr.getSCV();
78 if any((abs(rates-rates_orig)>0))
79 hasRateChanged = true;
84 if any((abs(scv-scv_orig)>0))
91 self.sn.rates = rates;