@@ -73,9 +73,15 @@ private void setSpeedsFor(List<DecimalEncodedValue> speedEncoders) {
73
73
double customSpeed = maybeCustomSpeed .get ();
74
74
if (customSpeed < maxSpeed ) {
75
75
speedEncoders .forEach (encoder -> {
76
- double speed = iter .get (encoder );
77
- logger .debug ("Replace " + speed + " with " + customSpeed + " for edge " + edge );
78
- iter .set (encoder , customSpeed );
76
+ double maxEncoderValue = encoder .getMaxStorableDecimal ();
77
+ double minEncoderValue = encoder .getMinStorableDecimal ();
78
+ if (customSpeed <= maxEncoderValue && customSpeed >= minEncoderValue ){
79
+ double speed = iter .get (encoder );
80
+ logger .debug ("Replace " + speed + " with " + customSpeed + " for edge " + edge );
81
+ iter .set (encoder , customSpeed );
82
+ }else {
83
+ logger .warn ("Invalid Custom Speed (" + customSpeed + ") for encoder " + encoder .getName () + " ( " + minEncoderValue + " - " + maxEncoderValue + ") for edge " + edge + ",so it will be ignored" );
84
+ }
79
85
});
80
86
} else {
81
87
logger .warn ("Custom Speed (" + customSpeed + ") > MaxSpeed ( " + maxSpeed + ") for edge " + edge + ",so it will be ignored" );
@@ -93,9 +99,16 @@ private void setSpeedsFor(List<DecimalEncodedValue> speedEncoders) {
93
99
if (customSpeedReverse < maxSpeedReverse ) {
94
100
speedEncoders .forEach (encoder -> {
95
101
if (encoder .isStoreTwoDirections ()) {
96
- double speed = iter .getReverse (encoder );
97
- logger .debug ("Replace " + speed + " with " + customSpeedReverse + " for edge reverse " + edge );
98
- iter .setReverse (encoder , customSpeedReverse );
102
+ double maxEncoderValue = encoder .getMaxStorableDecimal ();
103
+ double minEncoderValue = encoder .getMinStorableDecimal ();
104
+ if (customSpeedReverse <= maxEncoderValue && customSpeedReverse >= minEncoderValue ){
105
+ double speed = iter .getReverse (encoder );
106
+ logger .debug ("Replace " + speed + " with " + customSpeedReverse + " for edge reverse " + edge );
107
+ iter .setReverse (encoder , customSpeedReverse );
108
+ }else {
109
+ logger .warn ("Invalid Custom Speed (" + customSpeedReverse + ") for encoder " + encoder .getName () + " ( " + minEncoderValue + " - " + maxEncoderValue + ") for edge reverse " + edge + ",so it will be ignored" );
110
+ }
111
+
99
112
}
100
113
});
101
114
} else {
0 commit comments