uno-q-local-log-storage.py
Script de stockage local qui capture chaque interaction physique avec les Modulino et les sauvegarde dans un fichier CSV sur le stockage de l'UNO Q.
Assurez-vous que l'UNO Q a un stockage persistant monté. Modifiez le DEVICE_PATH pour cibler le nœud Modulino souhaité. Le script crée automatiquement le fichier CSV s'il n'existe pas. Utilisez cette méthode pour le débogage ou l'analyse des habitudes d'utilisation sans dépendre du réseau.
uno-q-local-log-storage.py
#!/usr/bin/env python3
import csv
import time
import evdev
import os
LOG_FILE = 'modulino_interactions.csv'
DEVICE_PATH = '/dev/input/event2' # Exemple: Joystick
def log_event(event_type, event_code, value):
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
# Vérifie si le fichier existe pour écrire l'en-tête seulement au début
file_exists = os.path.isfile(LOG_FILE)
with open(LOG_FILE, 'a', newline='') as f:
writer = csv.writer(f)
if not file_exists:
writer.writerow(['timestamp', 'type', 'code', 'value'])
writer.writerow([timestamp, event_type, event_code, value])
def main():
try:
device = evdev.InputDevice(DEVICE_PATH)
print(f"Enregistrement des événements de {device.name} dans {LOG_FILE}")
for event in device.read_loop():
# Ignore les événements de synchronisation
if event.type == evdev.ecodes.EV_SYN:
continue
log_event(event.type, event.code, event.value)
print(f"Log: Type {event.type}, Code {event.code}, Value {event.value}")
except FileNotFoundError:
print("Périphérique introuvable.")
except KeyboardInterrupt:
print("\nArrêt de l'enregistrement.")
if __name__ == '__main__':
main()