From ad704580852ce2105f5f30783e148c9d0c3b2727 Mon Sep 17 00:00:00 2001 From: Jurjen Verbruggen Date: Sun, 23 Jun 2024 22:17:08 +0200 Subject: [PATCH] Fix for linear actuator target position instruction --- .../flatride/linearactuator/LinearActuator.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/jverbruggen/jrides/animator/flatride/linearactuator/LinearActuator.java b/src/main/java/com/jverbruggen/jrides/animator/flatride/linearactuator/LinearActuator.java index cdcc22f..75ffffd 100644 --- a/src/main/java/com/jverbruggen/jrides/animator/flatride/linearactuator/LinearActuator.java +++ b/src/main/java/com/jverbruggen/jrides/animator/flatride/linearactuator/LinearActuator.java @@ -95,6 +95,19 @@ public void setUpperOperatingRange(double upper) { @Override public void goTowards(double targetPosition, double fromPosition, double acceleration, FlatRideComponentSpeed componentSpeed) { - componentSpeed.accelerate(acceleration); + boolean shouldAccelerate; + double currentPosition = getInstructionPosition(); + + // If from position is lower than target + if(fromPosition <= targetPosition){ + // Then it should accelerate while the current position is lower than the target + shouldAccelerate = currentPosition < targetPosition; + }else{ + // Otherwise do the reverse + shouldAccelerate = targetPosition < currentPosition; + } + + if(shouldAccelerate) + componentSpeed.accelerate(acceleration); } }