uno-q-local-log-storage.py

Bundle Arduino UNO Q SBC Controller · Fichier : uno-q-local-log-storage.py · Langage : python · Usage : Enregistrer les interactions des Modulino dans un fichier CSV local pour l'analyse hors ligne.

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()

← Retour à la fiche