Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Dialogfeld als Messdatenausgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.02.2004, 10:14 Uhr
~peter
Gast


Moin,
hab da son kleines Problem.
Ich habe ein Programm zur Messdatenerfassung.
Hierfür hab ich ne Klasse erstellt, die mit den Messgeräten kommuniziert und sie mit den benötigten Befehlen versorgt. Während dieser Messung möchte ich nun die erhaltenen Messdaten in einem Fenster anzeigen lassen.
Das würde auch alles klappen, wenn ich das Programm dazu bringen würde, nachdem ich ein Dialogfenster zum Anzeigen der Messwerte aufgerufen habe ( mit DOMODAL), mit dem normalen Programmablauf meiner Messklasse fortzufahren.
Ich hab aber leider keine Ahnung wie ich das anstellen soll, ohne irgendeine Eingabe zu machen. Das Fenster sollte möglichst während der gesamten Messung geöffnet bleiben und dann dabei immer die richtigen Werte anzeigen und aktualisiert werden.
wäre spitze, wenn ihr mir helfen könntet.

Mfg Peter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.02.2004, 10:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie genau meinst du das?
musst du auf beide dialoge gleichzeitig zugreifen("klicken können")? oder soll nur eine berechnung im hintergrund weiterlaufen während du einen modalen dialog aufgerufen hast?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.02.2004, 11:25 Uhr
~peter
Gast


Zitat: "oder soll nur eine berechnung im hintergrund weiterlaufen während du einen modalen dialog aufgerufen hast?"

genau das habe ich vor.
Am Anfang der Messung rufe ich den Dialog auf.
Dann zeigt er mir während der Messung immer die gemessenen Werte an und bleibt dabei geöffnet.
Zugreifen müßte ich schon, da ich ja die gemessenen Werte ja anzeigen will.

Mfg peter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.02.2004, 12:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


in dem fall musst du einen eigenen Thread für die Berechnung auflaufen, damit dein Programm sozusagen parrallel ausgeführt werden kann...
Im Forum sollten massenweise Beispiel dazu sein wie du das mit Threads machen kannst... einfach mal die Forumssuche benutzen

aus dem Post hier könntest könntest du dir raussuchen wie man das z.b. mit nem Thread machen kann
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.02.2004 um 12:08 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.02.2004, 15:20 Uhr
~peter
Gast


moin,
erstmal danke für die Hilfe.
Bin allerdings nicht so der VC++ Profi.
Die Sache ist die:
Die Messdaten zwischenzuspeichern hab ich auch schon in Erwägung gezogen, aber leider ist die Zeit zwischen den verschiedenen Messungen unterschiedlich.
Ich speichere die Daten in einer Datenbank unzwar nach jedem gemessenen Datenpaar.
gleichzeitig möchte ich sie nun auch auf dem Bildschirm zu Anzeige bringen um den Bedienern die Ergebnisse bereits während der Messung mitzuteilen um bei stark abweichenden Messergebnissen die Messung unterbrechen zu können.
Das mit den parallel laufenden Threads hab ich schon hinbekommen, aber leider weiß ich nicht so genau, wie ich der Ansichtsklasse die gemessenen Daten mitteilen kann.
Er sagr mir immer, dass ich erst domodal aufrufen soll bevor ich zb Updatedata aufrufe, das hab ich aber eigentlich schon getan.
bin echt im moment son bißchen ratlos...
Mfg peter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: