Stavo dando un'occhiata al tuo bel programmino e vorrei farti qualche domandina e, se mi permetti, anche qualche suggerimento:
1) vedo che per la configurazione scrivi su un file di testo, usando per la lettura il comando EXEC, catturando l'output e decodificando a mano le stringhe che vengono lette. Hai provato as usare la classe Settings? Questa classe si comporta nè più, nè meno come faceva windoz con i vecchi file .INI, scrivendo dei blocchi in cui inserire i parametri e il relativo valore separati da "="; credo che l'uso di questo oggetto renda la cosa più gestibile e più dinamica. Inoltre, l'accesso continuo al sistema operativo in questo modo (con EXEC) è molto più lento di avere invece la struttura costantemente in memoria e direttamente accessibile.
2) all'interno delle classi fai riferimento a specifici item dell'array di configurazione. Hai pensato di dichiarare delle costranti di classe, con la posizione assoluta, in modo da non doverti ricordare ogni volta il numero di item dell'array; inoltre, questo ti permetterebbe di modificarne la disposizione agendo esclusivamente in un solo punto.
3) stesso identico discorso sulla posizione della directory e del file di configurazione, che a mio avviso credo ti convenga dichiarare una sola volta, e fare riferimento alla costante all'interno del programma.
4) per l'accesso al programma "sensors", e il discorso è valido anche per altri comandi, non ti conviene crearti un'apposita classe, una driver? Questo concentrerebbe i metodi di lettura, e la gestione e l'implementazione sarebbe resa più facile. Inoltre alleggeriresti la FMain, che mi pare piuttosto enorme, dato che supporta praticamente tutto il programma.
Ovviamente i miei sono solo consigli, con lo scopo di aiutarti a migliorare il programma, per cui sei libero di accettarli o meno, ok?
Ciao, e continua con il lavoro, che vedo ne hai fatto parecchio!
Complimenti ancora!