diff --git a/src/main/java/org/baxter/disco/ocr/MovementFacade.java b/src/main/java/org/baxter/disco/ocr/MovementFacade.java index 263ab24..0543fc7 100644 --- a/src/main/java/org/baxter/disco/ocr/MovementFacade.java +++ b/src/main/java/org/baxter/disco/ocr/MovementFacade.java @@ -303,7 +303,7 @@ public class MovementFacade int upTravelCounter = 0; motorDirectionDown(); motorOn(); - for(downTravelCounter = 0; downTravelCounter < Integer.MAX_VALUE; downTravelCounter++) + for(downTravelCounter = 0; downTravelCounter < TIMEOUT; downTravelCounter++) { try{ Thread.sleep(POLL_WAIT); } catch(Exception e){ ErrorLogging.logError(e); } if(lowerLimit.isOn()) @@ -314,12 +314,13 @@ public class MovementFacade } motorOff(); if(lowerLimit.isOff()) ErrorLogging.logError("DEBUG: False positive on findDistance down!"); + if(downTravelCounter == TIMEOUT) throw new Exception("Failed GPIO initialisation!"); ErrorLogging.logError("DEBUG: Down travel count: " + downTravelCounter); motorDirectionUp(); motorOn(); - for(upTravelCounter = 0; upTravelCounter < Integer.MAX_VALUE; upTravelCounter++) + for(upTravelCounter = 0; upTravelCounter < TIMEOUT; upTravelCounter++) { try{ Thread.sleep(POLL_WAIT); } catch(Exception e){ ErrorLogging.logError(e); } if(upperLimit.isOn()) @@ -330,6 +331,7 @@ public class MovementFacade } motorOff(); if(upperLimit.isOff()) ErrorLogging.logError("DEBUG: False positive on findDistance up!"); + if(upTravelCounter == TIMEOUT) throw new Exception("Failed GPIO initialisation!"); ErrorLogging.logError("DEBUG: Up travel count: " + downTravelCounter);