Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Stoppen des Programmes mit Mausbewegung
26.01.2009, 17:45
Beitrag: #1
Stoppen des Programmes mit Mausbewegung
Hallo Leute,

mir ist seit längerem schon was aufgefallen, das mir sorgen macht.
und zwar ist es das bedienen von z.b slidern im panel.
wenn ich mit der maus draufbleibe um mit den slider einen wert einzustellen, oder gewisse panels herumschieben möchte unterbricht
das programm und macht erst wieder weiter wenn ich mit dem herumbewegen aufgehört habe.
das ist ärgerlich wenn man z.b eine funktion hat die alle 50ms was rausschicken muss damit die externe HW funktioniert.
gibts dazu lösungen? muss zugeben das ich noch VEE 7.5 benutze :oops:
Diese Nachricht in einer Antwort zitieren
27.01.2009, 21:05
Beitrag: #2
 
Wenn die Maus "gedrueckt gehalten " wird, stoppt Vee den Programablauf.
Ist nun mal so...
Ab Vee9 ist Vee Multitasking und Multithreading faehig.
Da sollte man unabhaengig von dem MAusstop sein...muss ich mal checken...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2011, 15:22
Beitrag: #3
RE: Stoppen des Programmes mit Mausbewegung
Hallo Detlef,

wir war das Ergebnis dieses Tests? Ist die Ausführung von VEE- Programmteilen ab Version 9.x unabhängig von gedrückten Buttons und geöffneten ListBoxen, etc.?

Gruß,
Tommi.
Diese Nachricht in einer Antwort zitieren
11.01.2011, 16:57 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2011 16:58 von detlef.)
Beitrag: #4
RE: Stoppen des Programmes mit Mausbewegung
Es ist leider noch immer so, dass der Programmflow stehen bleibt, wenn man die linke Maus gedrueckt haelt.

Man sollte also die Buttons und Listboxen so anordnen, dass man nicht dauernd mit der Maus UND gedrueckter linker Taste draufhaelt.

Dies ist in der Developer Umgebung so, weil man mit der gedrueckten linken Maus das Panel bewegt. Vielleicht sollte man dies in einer anderen Version mal aendern. Allerdings hatte ich bisher nie Probleme damit, weil ich nie die linke Maus dauernd gedrueckt halte....in Vee Programmen zumindest- da klickt man nur....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2011, 20:49
Beitrag: #5
RE: Stoppen des Programmes mit Mausbewegung
Ich habe das Problem auch noch immer. Finde es zum Teil sehr störend.
In meinem Programmen werden z.B Daten angezeigt bzw. die Ergebnisse einer Sequencer-Dauerlaufes. Angezeigt werden sie mittels "logging alphanumeric".
Wenn genügend Daten bzw. Zeilen angezeigt wurden, erscheint rechts eine "Scrollbar" mit der man die älteren nicht mehr sichtbaren Daten auch anschauen kann.
Und da kommt man nicht vorbei die linke Maustaste gedrückt zu halten :-)
Wärend dieser Zeit stoppt mein Programm und kann unter Umständen Fehler verursachen, da ich gewisse Teile im Intervall durchführen muss. Was ich schon aufgegeben habe ist z.B wirklich Zeitkritische Sachen mit VEE zu realisieren. Z.b über einen CAN-Bus einen Controller anzusteuern. Dieser Benötigt alle 50ms eine Nachricht, sonst schaltet sich der Controller ab.
Im Prinzip kein Problem und aufs Erste realisierbar. Aber sobald man z.B mehrere Buttons etc. einbaut kann es leicht vorkommen das die 50ms überschritten.
Bei einem Dauerlauf können die 50ms z.B über einen GPIB Lesebefehl überschritten werden.
Denn auch da stoppt anscheinend das Programm.
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:11
Beitrag: #6
RE: Stoppen des Programmes mit Mausbewegung
In so einem Fall von zeitkritischen Anwendungen wuerde ich die Auswertung / Anzeige auf jeden Fall von der Einlesefunktion trennen.
Entweder 2 Vee Programme, oder , wenn Vee9.21, 2 Threads und den Scrollbalken weglassen (In den Prefs). Ansonsten stoppt das Mausdruecken auch beide Threads - kann man in dem Threadbeispiel leicht ausprobieren....
Da sind 2 Vee Programme dann wohl sinniger, wenn man unbedingt scrollen will....

Oder aber man benutzt das Scrollen mit Dotnet- da muesste ich mal checken, ob Vee auch dort §freezed§.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:20
Beitrag: #7
RE: Stoppen des Programmes mit Mausbewegung
Ich habe das Problem in einigen meiner Anwendungen dadurch gelöst, dass ich einfach mehrere VEE-Programme parallel ablaufen lasse. Ich habe dann ein Hauptprogramm erstellt, in dem sich alle Bedienelemente befinden. Zeitkritische Funktionen habe ich in eine oder mehrere VEE-Programme ausgelagert, die parallel zum "Hauptprogramm" in Windows gestartet werden. DIe Programme kommunizieren dann via IPC miteinander, also via Socket-Communication. Das ist relativ einfach und arbeitet absolut zuverlässig. Wichtig ist dabei natürlich, dass in die zeitkritischen Funktionen keine Bedienelemente eingebaut sind bzw. dass diese nicht benutzt werden.
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:25
Beitrag: #8
RE: Stoppen des Programmes mit Mausbewegung
Genau. Perfekt !

Stell doch mal ein Beispiel hier rein .
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:26
Beitrag: #9
RE: Stoppen des Programmes mit Mausbewegung
Dotnet würde denke ich klappen.
Das "logging alphanumeric" habe ich in eine Funktion gepackt. Das Fenster selber ist dann im Panel ersichtlich. Wenn ich dann was ausgeben will kann ich das dann über diese Funktion machen: logWindow("Hello World");
Gefährlich finde ich auch wenn man im Programm mehrere Panels laufen lässt.
Will man nämlich die Panels verschieben, natürlich durch festhalten der linken Maustaste, wird das Programm auch gestoppt. Man kann aber bei solchen Panels das bewegen "deaktivieren"
Mit ShowPanel("logwindow"); kann z.B das Panel sichtbar gemacht werden und unter den Einstellungen das Bewegen deaktivieren.

Wie sollte das genau funktionieren mit den beiden Programmen?
Wie tauschen die beiden Werte oder Variablen aus?
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:34
Beitrag: #10
RE: Stoppen des Programmes mit Mausbewegung
(31.01.2011 21:25)detlef schrieb:  Genau. Perfekt !

Stell doch mal ein Beispiel hier rein .

Ja, mach ich in Kürze!
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:41
Beitrag: #11
RE: Stoppen des Programmes mit Mausbewegung
Hallo Tommi,

habe deinen Thread wärend ich meine Nachricht geschrieben habe nicht lesen können.
Also die Kommunikation zwischen den Programmen läuft über IPC.
Startest du die einzelnen Programme auch über das Hauptprogramm?
Ein Beispiel würde mich brennend Interessieren :-)

Gruß
Max
Diese Nachricht in einer Antwort zitieren
31.01.2011, 21:41
Beitrag: #12
RE: Stoppen des Programmes mit Mausbewegung
(31.01.2011 21:26)maxheadroom schrieb:  .... Wie sollte das genau funktionieren mit den beiden Programmen?
Wie tauschen die beiden Werte oder Variablen aus?

Der Austausch von Variablen, arrays, Messwerten oder auch Kommandos funktioniert eben über socket Kommunikation.
Hallo Max,

das Starten der "Slave"-Programme vom Hauptprogramm aus habe ich auch schon mal gemacht, ist aber schon eine Weile her. In den aktuellen Anwendungen starten die Anwender die Programme einfach nacheinander, die wissen, was sie tun müssen, weil die Programme, die zusammen gehören, in einem Unterverzeichnis gespeichert sind.

Ein Beispiel kommt in Kürze.
Diese Nachricht in einer Antwort zitieren
21.02.2011, 20:35
Beitrag: #13
RE: Stoppen des Programmes mit Mausbewegung
Hallo Tommi,

ich habe mir das ein wenig angeschaut und habe noch keinen Durchblick.
Freu mich schon auf dein Beispiel.

Gruß
Max
Diese Nachricht in einer Antwort zitieren
22.02.2011, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2011 16:00 von detlef.)
Beitrag: #14
RE: Stoppen des Programmes mit Mausbewegung
Hier mal nur ein moegliches Beispiel:
Vee ruft ein anderes VEE Programm auf ( hier lib.vee), setzt da eine Eingabe rein und erhaelt eine Antwort.
Und hier mal einiges zu Socket und fernsteuern...


Angehängte Datei(en)
.vee  CalableVee_Example.vee (Größe: 5,43 KB / Downloads: 13)
.zip  fernsteuern.zip (Größe: 65,75 KB / Downloads: 13)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2011, 12:33
Beitrag: #15
RE: Stoppen des Programmes mit Mausbewegung
Hallo detlef,
täusche ich mich, oder ist dein Beispiel zum Fernsteuern ein Beispiel für Access??
Oder hab ich was übersehenHuh
gruß
loki
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




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