fix ai shit!
This commit is contained in:
parent
e8cedc7de1
commit
a98d9ecd54
31
src/main.py
31
src/main.py
@ -12,7 +12,7 @@ from gps_hat import GPS_DATA
|
||||
from sens_hat import SENS_HAT
|
||||
from selecta_mode import SelectaMode
|
||||
|
||||
selecta = None
|
||||
# selecta = None
|
||||
def update_hat_data():
|
||||
if 0:
|
||||
# if gps.get_gps_info():
|
||||
@ -166,13 +166,13 @@ if __name__ == "__main__":
|
||||
|
||||
sens.led_set_pixel(1, 0, 255, 0, 0)
|
||||
|
||||
# if not gps.enter_sim_pin():
|
||||
# exit(1)
|
||||
#
|
||||
# sens.led_set_pixel(2, 0, 255, 0, 0)
|
||||
#
|
||||
# if not gps.LTE_hat_start():
|
||||
# exit(1)
|
||||
if not gps.enter_sim_pin():
|
||||
exit(1)
|
||||
|
||||
sens.led_set_pixel(2, 0, 255, 0, 0)
|
||||
|
||||
if not gps.LTE_hat_start():
|
||||
exit(1)
|
||||
|
||||
sens.led_set_pixel(3, 0, 255, 0, 0)
|
||||
|
||||
@ -197,10 +197,19 @@ if __name__ == "__main__":
|
||||
update_hat_data()
|
||||
update_timer = time.time()
|
||||
|
||||
if selecta is not None:
|
||||
selecta.update()
|
||||
|
||||
run = not sens.detect_long_press()
|
||||
for event in sens.sense.stick.get_events():
|
||||
if event.direction == "middle":
|
||||
run = not sens.detect_long_press(event)
|
||||
if event.direction == "up":
|
||||
if event.action == "pressed":
|
||||
print("start selecta_mode")
|
||||
selecta.activate()
|
||||
if event.direction == "down":
|
||||
if event.action == "pressed":
|
||||
print("stop selecta_mode")
|
||||
selecta.deactivate()
|
||||
|
||||
time.sleep(0.01)
|
||||
|
||||
@ -211,5 +220,5 @@ if __name__ == "__main__":
|
||||
t.join() # warten bis der thread fertig ist
|
||||
gps.ser.close()
|
||||
client.disconnect()
|
||||
# subprocess.run(["sudo", "shutdown", "-h", "0"])
|
||||
subprocess.run(["sudo", "shutdown", "-h", "0"])
|
||||
sys.exit(0)
|
||||
|
||||
@ -14,9 +14,6 @@ Usage from main.py:
|
||||
...
|
||||
selecta.update()
|
||||
|
||||
Controls:
|
||||
Sense HAT joystick UP -> activate Selecta mode
|
||||
Sense HAT joystick DOWN -> deactivate Selecta mode
|
||||
|
||||
MQTT topics:
|
||||
MOBKOM/SELECTA/state
|
||||
@ -124,10 +121,6 @@ class SelectaMode:
|
||||
self.forward_ready = True
|
||||
self.forward_neutral_angle = 0.0
|
||||
|
||||
self._pending_activate = False
|
||||
self._pending_deactivate = False
|
||||
self._install_joystick_callbacks()
|
||||
|
||||
# -------------------------
|
||||
# Setup / subscriptions
|
||||
# -------------------------
|
||||
@ -140,38 +133,6 @@ class SelectaMode:
|
||||
for topic in self.mqtt_topics():
|
||||
c.subscribe(topic)
|
||||
|
||||
def _install_joystick_callbacks(self):
|
||||
stick = self.sens.stick
|
||||
# stick = None
|
||||
#
|
||||
# # Prefer the SenseHat object inside your wrapper if it exists.
|
||||
# if hasattr(self.sens, "sense") and hasattr(self.sens.sense, "stick"):
|
||||
# stick = self.sens.sense.stick
|
||||
# elif hasattr(self.sens, "stick"):
|
||||
# stick = self.sens.stick
|
||||
# else:
|
||||
# try:
|
||||
# from sense_hat import SenseHat
|
||||
# stick = SenseHat().stick
|
||||
# except Exception as e:
|
||||
# print("Selecta: joystick callbacks not available:", e)
|
||||
# return
|
||||
|
||||
def on_up(event):
|
||||
if getattr(event, "action", "pressed") == "pressed":
|
||||
self._pending_activate = True
|
||||
|
||||
def on_down(event):
|
||||
if getattr(event, "action", "pressed") == "pressed":
|
||||
self._pending_deactivate = True
|
||||
|
||||
try:
|
||||
stick.direction_up = on_up
|
||||
stick.direction_down = on_down
|
||||
print("Selecta: UP aktiviert, DOWN deaktiviert")
|
||||
except Exception as e:
|
||||
print("Selecta: could not assign joystick callbacks:", e)
|
||||
|
||||
# -------------------------
|
||||
# Stock persistence
|
||||
# -------------------------
|
||||
@ -548,14 +509,6 @@ class SelectaMode:
|
||||
# Called from main loop
|
||||
# -------------------------
|
||||
def update(self):
|
||||
if self._pending_activate:
|
||||
self._pending_activate = False
|
||||
self.activate()
|
||||
|
||||
if self._pending_deactivate:
|
||||
self._pending_deactivate = False
|
||||
self.deactivate()
|
||||
|
||||
if self.active:
|
||||
self.handle_tilt()
|
||||
self.render()
|
||||
|
||||
@ -71,13 +71,10 @@ class SENS_HAT:
|
||||
for x, col in enumerate(row):
|
||||
self.sense.set_pixel(x, y, col[0], col[1], col[2])
|
||||
|
||||
def detect_long_press(self):
|
||||
def detect_long_press(self, event):
|
||||
"""
|
||||
Returns True wenn der Taster für 4 Sekunden gedrückt werde.
|
||||
"""
|
||||
|
||||
for event in self.sense.stick.get_events():
|
||||
if event.direction == "middle":
|
||||
if event.action == "pressed":
|
||||
self.time_down = time.time()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user