diff --git a/compLib/Encoder.py b/compLib/Encoder.py index eddc77f..3ede960 100644 --- a/compLib/Encoder.py +++ b/compLib/Encoder.py @@ -44,7 +44,11 @@ class Encoder(object): if port <= 0 or port > MOTOR_COUNT: raise IndexError("Invalid encoder port specified!") - return Encoder.read_raw(port) - encoder_start_values[port] + diff = Encoder.read_raw(port) - encoder_start_values[port] + if diff > 2 ** 31: + diff -= 2 ** 32 + + return diff @staticmethod def clear(port: int): @@ -57,7 +61,12 @@ class Encoder(object): raise IndexError("Invalid encoder port specified!") encoder_start_values[port] = Encoder.read_raw(port) - -for i in range(1, MOTOR_COUNT + 1): - encoder_start_values[i] = Encoder.read_raw(i) \ No newline at end of file + @staticmethod + def clear_all(): + """Reset all encoder positions to 0 + """ + + for i in range(1, MOTOR_COUNT + 1): + encoder_start_values[i] = Encoder.read_raw(i) + \ No newline at end of file diff --git a/compLib/Reset.py b/compLib/Reset.py index 9c7fd7d..4767c1b 100644 --- a/compLib/Reset.py +++ b/compLib/Reset.py @@ -1,6 +1,7 @@ import RPi.GPIO as GPIO import time +GPIO.setwarnings(False) RESET_PIN = 23 @@ -13,4 +14,4 @@ class Reset: GPIO.output(RESET_PIN, GPIO.LOW) time.sleep(0.1) GPIO.output(RESET_PIN, GPIO.HIGH) - time.sleep(0.5) + time.sleep(1.5) diff --git a/compLib/Spi.py b/compLib/Spi.py index f824a94..a141bfa 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -174,13 +174,14 @@ class Spi(object): print("Unable to read Version! Make sure the mainboard is connected!") sys.exit() + @staticmethod + def start_health_check_loop(): + health_check_thread = Thread(target=Spi.health_check_loop) + health_check_thread.setDaemon(True) + health_check_thread.start() + @staticmethod def health_check_loop(): while True: Spi.health_check() time.sleep(0.5) - - -health_check_thread = Thread(target=Spi.health_check_loop) -health_check_thread.setDaemon(True) -health_check_thread.start() \ No newline at end of file diff --git a/compLib/__init__.py b/compLib/__init__.py index d516a38..e67ec4b 100644 --- a/compLib/__init__.py +++ b/compLib/__init__.py @@ -3,6 +3,7 @@ __version__ = "0.1.5-1" import compLib.LogstashLogging import compLib.Spi import compLib.Reset +import compLib.Encoder import logging import apt @@ -18,4 +19,6 @@ except Exception as e: print(f"\033[91merror during checking apt package version -> {str(e)}\033[0m\n") compLib.Reset.Reset.reset_bot() -compLib.Spi.Spi.health_check() \ No newline at end of file +compLib.Spi.Spi.health_check() +compLib.Spi.Spi.start_health_check_loop() +compLib.Encoder.Encoder.clear_all() \ No newline at end of file