Probabilmente questo esporrà la mia mancanza di esperienza software, ma sto cercando consigli su un'architettura software adatta e meccanismi (thread, ecc.) con cui posso ottenere quanto segue ... (Nota: non sono completamente impostato sulla lingua, ma preferirei una soluzione usando python, seguita da C # come seconda preferenza.Il mio software verrà eseguito su un PC Windows)
Inizierò con un'analogia. Ho un certo numero di strumenti di prova nel mio ufficio. Sono tutti collegati alla mia rete locale e conosco l'indirizzo IP di ognuno. Posso scrivere un software che utilizza il protocollo corretto e mi consente in qualsiasi momento di collegarmi a un dispositivo remoto, cambiare alcune impostazioni, scaricare alcuni registri di dati, e quando ho finito, disconnetti . (Esiste sicuramente un tipo di relazione Client / Server qui).
Fondamentalmente, per la mia applicazione, voglio fare questo tipo di cose, solo a livello di PC (senza rete)!
Ecco ulteriori dettagli ... Ho 4 cose che desidero connettermi - USB webcam, USB bridge a un dispositivo Android, porta seriale (cioè RS232) interfaccia alla porta di debug del prodotto che sto testando (UUT), connessione seriale a un pezzo di test esterno attrezzature.
In primo luogo - Voglio essere in grado di eseguire uno script / eseguibile che avvia una connessione (eventualmente un thread) con ciascuno dei dispositivi (sopra), quindi restituisce. Quando lo script ritorna, tutte le connessioni di cui sopra devono continuare a essere eseguite. Se sono configurati correttamente, ci sono attività indipendenti che devono eseguire indipendentemente dal resto dell'applicazione (come la registrazione).
In secondo luogo - C'è un modo in cui posso restituire una sorta di riferimento a questi thread, in modo che possa ricollegarmi a loro in futuro?
(La mia terminologia è ovunque nel posto in cui penso!)
In terzo luogo - Più avanti nell'applicazione, dovrò "riconnetterlo" a questi dispositivi, utilizzare i dati registrati da loro per eseguire alcune analisi, eventualmente modificare la configurazione di registrazione, se necessario, quindi lasciare il sistema nuovamente in esecuzione (i dati scorreranno in entrambe le direzioni). Mi piacerebbe anche che fosse solo un altro script, che non funzionerà a lungo termine.
Terminazione - Dovrò anche aggiungere la possibilità di eseguire uno script e terminare tutti questi lavori in background.
Ad ogni modo - sono sicuro che c'è qualcuno là fuori che può fornire alcuni validi consigli su come orchestrare questo tipo di funzionalità.
Grazie in anticipo