INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

automatisch Standby od. Ruhezustand und wieder aufwachen?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.09.2009, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 19:54 von jg.)
Beitrag #1

ansie Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2009

8.6
2007
de

85368
Deutschland
automatisch Standby od. Ruhezustand und wieder aufwachen?
Hallo zusammen!

Schon länger recherchiere und lese ich hier im Forum mit und habe für meine Abschlussarbeit
- ich programmiere gerade ein Visualisierungssystem einer Produktionsanlage in LabVIEW -
schon viele der wertvollen Tipps und Beispiele gut gebrauchen können!

Ich möchte für mein Visualisierungssystem auch eine Automatik programmieren, die das System
einstellbar entweder in den Standby- oder in den Ruhezustand-Modus versetzt UND nach
einer einstellbaren Zeit wieder erweckt, damit die Visualisierung fortgeführt wird.

Hier habe ich sehr interessanten Beispielcode dazu gefunden (im Anhang meine überarbeitete Version):
http://forums.ni.com/ni/board/message?boar...g&page=5ier

Das funktioniert sogar, aber weil ich mich mit dll-Funktions-Aufrufen leider gar nicht gut auskenne,
scheue ich es ein wenig, so eine umfangreiche Funktion in meine Arbeit mit einzubinden.
Muss die Sache ja auch auf wissenschaftl. Art u. Weise dokumentieren usw. ...

Was meint ihr, gibts da vielleicht auch eine einfachere Lösung?

LG,
ansie.

Lv86_img


Angehängte Datei(en)
Sonstige .vi  SuspendAndResume.vi (Größe: 18,8 KB / Downloads: 284)

Sonstige .vi  FindWindowA.vi (Größe: 10,79 KB / Downloads: 254)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2009, 18:30
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
automatisch Standby od. Ruhezustand und wieder aufwachen?
Wenn es funktioniert, dann würde ich es auch einbinden. Du kannst ja als Quelle das Programm von NI angeben, dann brauchst Du es ja auch nicht zu kommentieren. Wink

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2009, 20:28 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 20:32 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
automatisch Standby od. Ruhezustand und wieder aufwachen?
Kompliziert würde ich diese zwei VIs nicht gerade nennen. FindWindowA.vi schwirrt schon im Netz rum seit etwa LabVIEW 4 und macht nichts anderes als eine einfache Windows API Funktion aufrufen. Dazu kannst Du Dich schlauer machen bei MDSN msdn.microsoft.com. Dort sind alle öffentlichen Windows APIs mehr oder weniger ausführlich dokumentiert.

Um das zu machen was SuspendandResume.vi macht gibt es wohl keine einfachere Methode. Was mir bei dem VI auffällt ist eine etwas magere Fehlerbehandlung.

1) CreateWaitableTimer() kann fehlschlagen und gibt dann ein NULL Handle zurück.
2) SetWaitableTimer() gibt im Erfolgsfall ein Zahl ungleich 0 zurück. Das ist meistens 1 aber MSDN sagt nichts darüber sondern sagt einfach bei Erfolg kommt etwas anderes als 0 und im Fehlerfall dann eben halt 0. Die Case Struktur macht das nicht ganz korrekt (funktioniert aber solange nichts schief geht).
3) Das Handle das CreateWaitableTimer() zurückgibt sollte eigentlich am Ende mit CloseHandle() geschlossen werden. Aber das ist hier keine grosse Katastrophe da das Objekt bei CreateWaitableTimer() mit einem Namen geöffnet wird. Das heisst bei erneuten Ausführen dieses VIs wird Windows das bereits erzeugte und noch nicht geschlossene Timerobjekt mit dem Namen "Timer" wiederverwenden, also nicht ein neues Objekt erzeugen, was ein Speicherleck verursachen würde. Aber der Name "Timer" ist nicht gerade originell gewählt und wenn ein nicht Timerobjekt mit diesem Namen durch irgendeine andere Windowsapplikation schon erzeugt wurde, schlägt der Aufruf von CreateWaitableTimer() fehl (und gibt diese Funktion ein NULL Handle zurück). Und wenn irgendeine andere Applikation schon ein Timerobjekt mit diesem Namen erzeugt hat, werden beide auf dasselbe Objekt zugreifen und sich dadurch in die Quere kommen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2009, 12:42 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2009 14:44 von jg.)
Beitrag #4

ansie Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2009

8.6
2007
de

85368
Deutschland
automatisch Standby od. Ruhezustand und wieder aufwachen?
Hallo!
Vielen Dank für die Hinweise, nach durchsicht der Funktions-Beschreibungen
in der MSDN-Library ist mir der Ablauf nun eigentlich ganz klar.

Habe das VI angepasst und auch etwas vereinfacht.
Wenn ich den Ruhezustandmodus benutzte, dann kann ich den Teil
mit den SendMessageA-Funktionen weglassen.
Wenn mein Rechner aus dem Ruhezustand erwacht, dann
geht auch mein Monitor automatisch wieder an.
Wenn er aus dem Standbymodus erwacht, dann
bleibt der Monitor allerdings aus, bis man die
Maus bewegt, eine Taste drückt o.ä.

Irgendwas stimmt auch mit SetWaitableTimer noch nicht ganz, glaub ich:
Heute Mittag wollte ich den Rechner mal 30 Minuten (1800 Sekunden) in den
Ruhezustand versetzen und sich dann von selbst wieder erwachen lassen,
aber immer schon nach knapp 2 Minuten kommt er wieder.

Macht mir hier vielleicht der *pdueTime - Parameter Probleme??

LG,
ansie.

Lv86_img
Sonstige .vi  SuspendAndResume2.vi (Größe: 19,34 KB / Downloads: 268)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2009, 13:30 (Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2009 09:44 von A.Berndsen.)
Beitrag #5

ansie Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jul 2009

8.6
2007
de

85368
Deutschland
automatisch Standby od. Ruhezustand und wieder aufwachen?
Ich glaub ich habs schon...
Da lt. http://msdn.microsoft.com/en-usbrary/ms...28VS.85%29.aspx
und http://msdn.microsoft.com/en-usbrary/ms...28VS.85%29.aspx
der Parameter pdueTime von SetWaitableTimer ein const LARGE_INTEGER *
der Form FILETIME structure ist, müssen da ja vermutlich auch 64bit-Werte rein.
Nach Änderung und Test mit 5 Minuten (300 Sek.)
Ruhezustand lief es dann auch schonmal solange durch.
Big Grin

LG,
ansie.


Lv86_img
Sonstige .vi  SuspendAndResume3.vi (Größe: 19,38 KB / Downloads: 289)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  automatisch Standby od. Ruhezustand und wieder aufwachen? #2 ABoe12 3 8.258 15.07.2015 23:11
Letzter Beitrag: ABoe12
  Monitor in Standby schalten und wieder aufwecken finu 3 7.071 04.01.2009 12:42
Letzter Beitrag: markusx_83

Gehe zu: