1 package org.opentrafficsim.road.gtu.perception.mental.channel;
2
3 import org.opentrafficsim.base.parameters.ParameterException;
4 import org.opentrafficsim.base.parameters.ParameterTypeDouble;
5 import org.opentrafficsim.base.parameters.ParameterTypes;
6 import org.opentrafficsim.base.parameters.Parameters;
7 import org.opentrafficsim.road.gtu.perception.mental.AdaptationSpeed;
8 import org.opentrafficsim.road.gtu.perception.mental.FactorAdaptation;
9
10
11
12
13
14
15
16
17
18 public class AdaptationSpeedChannel extends FactorAdaptation
19 {
20
21
22 public static final ParameterTypeDouble BETA_V0 = AdaptationSpeed.BETA_V0;
23
24
25 private Double fSpeed0;
26
27
28 private Double fSpeedGtu0;
29
30
31
32
33 public AdaptationSpeedChannel()
34 {
35
36 }
37
38
39 @Override
40 public void adapt(final Parameters parameters) throws ParameterException
41 {
42 if (this.fSpeed0 == null)
43 {
44 this.fSpeed0 = parameters.getParameter(ParameterTypes.FSPEED);
45 this.fSpeedGtu0 = parameters.getParameter(ParameterTypes.FSPEED_GTU);
46 }
47 double factor = getFactor(parameters, BETA_V0);
48 parameters.setClaimedParameter(ParameterTypes.FSPEED, this.fSpeed0 / factor, this);
49 parameters.setClaimedParameter(ParameterTypes.FSPEED_GTU, this.fSpeedGtu0 / factor, this);
50 }
51
52 }