Antwort schreiben 
 
Themabewertung:
  • 2 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programmsequenzen schützen (gegen unerlaubtes Stoppen)
13.04.2010, 14:22
Beitrag: #1
Programmsequenzen schützen (gegen unerlaubtes Stoppen)
Hallo,
ist es in VEE möglich, dass gewisse Abläufe/Bereiche/Funktionen geschützt werden, bzw. kann es garantiert werden, dass innerhalb diese Bereiche zB. kein Stoppen des Programms, oder kein Zwischenfunken eines anderen Treads möglich ist. Zumindest bis diese abgearbeitet sind.
Habe einige Funktionen, die über serielle Schnittstelle mit einem DSP kommunizieren. Wird nun das Programm innerhalb dieser Kommunikation beendet (Stop button / Kreuzchen Close) hängt sich die Com Schnittstelle auf und ist für weitere Zugriffe geblockt. Dann hilft nur ein PC Neustart.
Wäre nett, wenn mir da jemand weiterhelfen könnte.
Vielen Dank im Voraus. Gruß Dietmar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.04.2010, 08:32 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2010 09:12 von detlef.)
Beitrag: #2
RE: Programmsequenzen schützen (gegen unerlaubtes Stoppen)
Grundsaetzlich stoppt VEE, wenn man die Maustaste gedrueckt haelt ( bis Vee8.5)
Also wuerde selbst solch ein Schutz eigentlich nichts bringen, aber...

Ich wuerde die Ansteuerung der seriellen Schnittstelle korrekt machen.
Hatte ich auch jahrelang "falsch" gemacht und mit Tricks ueber Puffergroesse irgendwie zum Laufen gebracht, doch bei einem anderen Rechner waren wieder andere Werte noetig.

Das korrekte Vorgehen ist eine Schleife ueber ein Interface Event, wenn da was ist, wird die Serielle Schnittstelle bzw. der Buffer komplett ausgelesen. Wenn noetig, kann man dann die Schnittstelle explizit freigeben...
Ein Beispiel ist in einem anderen Beitrag hier gepostet.
VeeCOMM.vee
sorry, seh gerade, dass dies die alten Versionen sind...
Ich werd mal die aktuelle hier posten- hab die hier nicht auf dem Rechner, und eben zusammenzimmern geht auch nicht, da ich hier keine serielle Schnittstelle habe...
Wird wohl erst Montag.
Wenn Lust, dann mal selber probieren: Interface Event, serielle Schnittstelle, nowait , If then, und die Werte auslesen, alles in einer 0.1 sec schleife...

Versuchs mal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.04.2010, 09:56
Beitrag: #3
RE: Programmsequenzen schützen (gegen unerlaubtes Stoppen)
Hier mal ein Screenshot, wie es gemeint ist.
In einer Schleife ( kein Repeat until) wird das Interface Event der Seriellen Schnittstelle abgefragt, Einstellung "NO WAIT".
Wenn "Wait" gesetzt wuerde, wuerde man hier warten, bis was an der Seriellen Schnittstelle passiert.
Wenn nichts passiert,gibt es eine Null. Dann wird mit IF abgefragt, und wenn Null, dann raus aus der Schleife.
Wenn was passiert, dann auslesen. Hier nur mal so als Beispiel.
Dann raus aus der Schleife.

So stellt man sicher, dass man nicht auf serielle Daten warten muss.
Wenn dein Programm dann noch Probleme machen sollte, sag mal Bescheid.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.04.2010, 09:47
Beitrag: #4
RE: Programmsequenzen schützen (gegen unerlaubtes Stoppen)
Dankeschön, habe selber noch nie mit diesem Interface Ivent gearbeitet. Hatten noch nie Probleme seriell zu schreiben/lesen, einzig und alleine wenn eben in solch einem Ausleseprozeß eben das Programm bösartig unterbrochen wird, indem der User hier den Stop Button drückt.
Habe jetzt erstmals diese kritischen Schreib u Lesezugriffe mit einem glbalen Stop-Flag geschützt. Initial ists auf "1" gesetzt, wird aber während diesen Zugriffen auf "0" gestellt u anschließend wieder auf "1". Die Stop-Prozedur kann nun nur noch ausgeführt werden, wenn das Flag auf "1" steht, ansonsten wird gewartet bis Flag "1" ist. Tut erstmals so... Da wir immer mit zwei festen Funktionen (send, receive) arbeiten, sind die ausgeflaggt und somit Stop-Sicher.
Das mit der Maus stoppen ist mir neu - macht bei uns aber auch keiner, es sei denn aus Zufall.
Zu deinem Konstrukt, da ich hier keine breaks sehe, wird da ja auch auf die Serielle gewartet, auch nach dem Auslesen .... ?
Trotzdem vielen Dank, werds mir in meinen Vee-First-Aid Ordner packen, man weiß ja nie Wink ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de