004
11.02.2004, 13:37 Uhr
RHBaum
|
Wenn du mit der MFC proggst, wird es ungeheuer kompliziert, wenn du das Dokument / View Design ned benutzen willst ...
Deshalb mein tip, mach ne Dokumentenklasse nach MFC Machart (CDokument abgeleitet) die Dir dein messdatengeroedel kapselt. Spendir der ne Start und Stop routine.
Dein fenster realisierst als View nach MFC machart ... mit paar comfortablen methoden, wo man Messdaten Strukturiert zur anzeige einfuegen und updaten kann. Waer doof wenn von ausserhalb direkt auf nen Listview Zeiger rumnuckeln wuerdest. Vielleicht abstrahierst diese Komfortfunktionen und definierst die als reinrassige Schnittstelle, falls spaeter mal merhere views mit unterschiedlichen ansichten haben magst, macht es dann viel einfacher
Dann bau in dein Doc nen container, der Dir die messdaten haelt. Ne Threadfunktion, die bei start loslegt und sich bei stop beendet, und in dieserzeit froehlich deine Hardwaere abfragt und die Messdaten in den container legt.
Nen weiteren thread, oder ueber timer, der dir aller XXX sekunden (am besten einstellbar) die daten aus dem container holt und alle registrierten views (in deinem momentanen fall nur einer) mittels den Komfortfunktionen / Schnittstelle "updated". (Gibt auch nen designpattern fuer, das dieses Gebilde Naeher beschreibt, suchworte Observer / Beobachter)
Hinweise wie das auf lowlevel ebene hinbekommen solltest, haben meine vorredner schon gebracht. Wichtig, wenn deine Threads die selben objecte verwenden, Was sie in der regel tun (container der messdaten), dann musst die sache "Threadsicher" machen. Suchwort : CriticalSection !
So wuerd ichs machen, hoffe das hilft ein bisserl. viel Spass !!!
Ciao ... Dieser Post wurde am 11.02.2004 um 13:41 Uhr von RHBaum editiert. |