Én a helyedben a soros port olvasását abban írnám, amiben a legkényelmesebb, az adatokat kiküldeném egy pipe-ba, onnantól jöhet a GUI abban, amiben akarod, és a pipe-ból olvasol.
Ha valahogy "sorokra" tudod bontani az adathalmazt, tolhatod adatbázisba is, akkor akár egy áramszünet után is feldolgozhatod, igaz, ennek aránylag nagy az overheadje (a nagy alatt azt értem, hogy amikor egy 386-oson ezt műveltem anno, akkor ha megindult, darált a vinyó rendesen).
De nagyjából kimondtad a lényeget: a hardver kezelése legyen független a mögötte álló adatfeldolgozástól.