Alarmauswertung über die List Control
-
Hallo Leute.
Hab folgendes Problem. Ich habe mir über den OPC-Client eine Verbindung zu einer E/A Baugruppe geschaffen und kann mit einem OPC-Client die Signale auch schon am Bildschirm darstellen. Der nächste Schritt ist jetzt via Visual C++ und MFC eine eigene Oberfläche aufzubauen, die diese binären und analogen Signale auch auswerten kann. Ich hab mich auch schon ein bisschen in diese MFC Sache reingefuchst und habe es geschafft eine Verbindung zur E/A Baugruppe mittels OPC-Server aufzubauen wenn ich einen Button betätige. Dementsprechend habe ich jetzt die Signale und möchte jetzt eine Liste mittels MFC erstellen, die folgendes kann:
-Sie soll die Ein und Ausgänge anzeigen
-Wenn ein Eingang kommt soll sich das in der List visuell bemerkbar machen (am Besten in dem die ganze Zeile rot wird vielleicht blinkend. Was halt so geht)Meine Frage ist jetzt, welche Listenart kann ich dafür am Besten nehmen (List Control, List Box) ohne dass das allzu aufwendig wird und vielleicht habt ihr da ja ein paar Zeilen Bsp.Code für mich.
Vielleicht ist es auch ganz einfach aber ich bekomms einfach net hin. Arbeite mich gerade erst seit 2 Wochen in C++ und MFC ein und hab noch nicht so den Überblick wie man es am besten machen könnte. Deswegen bin ich für jeden gut gemeinten Tipp dankbar.Gruß
Michael
-
Kann mir denn keiner weiterhelfen? Nicht mal ansatzweise?
Gruß
Michael
-
bloodymichael schrieb:
Kann mir denn keiner weiterhelfen? Nicht mal ansatzweise?
Gruß
MichaelNa gut, ich versuchs mal. Dein Problem ist meiner Auffassung nach nicht das Listcontrol, sondern die Möglichkeit, auf Änderungen bei deinen E/A-Werten zu reagieren. Ich kenn mich leider nicht mit OPC aus. Was meinst du mit "Wenn ein Eingang kommt soll sich das in der List visuell bemerkbar machen...". Wird das über das Auslösen einer Nachricht gemacht oder pollst du die Eingänge selbst zyklisch?
Für die Listcontrols gibts gute Beispiele unter www.codeproject.com auch mit Blinken und irgendwelchen anderen Späßen.
-
Hallo Andy und Danke für deine Antwort.
Ne also die ganze OPC-Geschichte funktioniert schon einwandfrei. Ich habe diese ganze OPC-Vorgeschichte nur als Ergänzung hinzugefügt. KAm wohl falsch rüber
Naja mein Problem war/ist ein reines C++ MFC Problem. Ich bin halt dabei mir eine GUI zu bauen, die diese erwähnten Eingänge grafisch Darstellt. Ich hatte mir das so überlegt, eine Liste zu erstellen (erste Idee List Control) in der ich die Eingänge via Text (z.B. EINGANG 0.0) darstelle. Hat auch wunderbar funktioniert. Jetzt möchte ich nur den Hintergrund der Zeile für den jeweiligen Eingang grün färben, wenn dieser eine logische 1 vorweist.
Wie gesagt die Auswertung der Variablen funktioniert schon tadelos ich weiß nur nicht wie ich in List Control eine Zeile anspreche um dann Ihre Hintergrundfarbe zu ändern.schönen Tag noch
Gruß Michael
-
Aber wie bekommst du in deinem Programm mit, dass neue oder geänderte Werte anliegen? Wird dort eine Statusvariable gesetzt oder wird da mit Events gearbeitet oder wird eine Windows-Message abgesetzt?
Auf diese Dinge müsstest du dann reagieren, die Werte abholen, an das Control übergeben und dieses neu zeichnen lassen. Die Funktionalität mit rot/grün, wenn bestimmte Variablen bestimmte Werte annehmen, würde ich direkt in der Klasse des Controls implementieren.
-
Vielleicht interessiert dich das hier auch:
http://www.codeproject.com/KB/grid/DataGridViewCellBlink.aspx