Sto riscontrando un problema nello sviluppo di un'architettura orientata agli oggetti per gestire una rete di sensori e controlli. Attualmente sto scrivendo in Python, ma questa è più una domanda concettuale.
Ho un Arduino collegato a un numero di sensori. Diverse volte al secondo, l'Arduino invia i dati a un Raspberry Pi con informazioni sui sensori utilizzando uno schema di comunicazione seriale basato su ASCII. Di seguito è riportato un esempio di risposta:
#POSITION 47 59203.008;
Questa risposta dice che il sensore di posizione 47
è in posizione 59203.008 m
.
Ho una classe nel mio programma Python chiamato Arduino
che sta costantemente guardando i dati seriali (sul proprio thread) e li spinge in una coda sicura per i thread.
Ogni tipo di sensore ha una classe (cioè PositionSensor
, TemperatureSensor
, FlowRateSensor
), una proprietà address
e una proprietà value
- insieme a un numero di metodi utili per eseguire calcoli sul i dati.
Il mio problema è ottenere i dati dall'oggetto Arduino sugli oggetti sensore corretti. Quale sarebbe un buon modello per questo tipo di problema di programmazione?
Ho preso in considerazione l'idea di far iscrivere i miei sensori alla coda e di ascoltare il tipo di sensore e l'indirizzo (ignorando qualsiasi altra cosa), ma come faccio a dire ai sensori che dovrebbero controllare la coda? Quale classe conterrebbe la coda? Mi sento come se ci fosse un modello che si adatta alla mia situazione esatta.