uno-q-local-log-storage.py

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

Script de almacenamiento local que captura cada interacción física con los nodos Modulino y los guarda en un archivo CSV en el almacenamiento de la UNO Q.

Asegúrese de que la UNO Q tenga almacenamiento persistente montado. Modifique el DEVICE_PATH para dirigirse al nodo Modulino deseado. El script crea automáticamente el archivo CSV si no existe. Utilice este método para depuración o análisis de hábitos de uso sin dependencia de la red.

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

← Volver a la ficha