Herunterladen Diese Seite drucken

Warten Ohne Blockieren Von Tastatur Und Maus; Service Request Routine - Rohde & Schwarz FSP3 Bedienhandbuch

Werbung

FSP

Warten ohne Blockieren von Tastatur und Maus

Ein häufiges Problem bei Fernsteuerprogrammen mit Visual Basic ist Wartezeiten einzufügen, ohne
dabei Tastatur und Maus zu blockieren.
Soll das Programm während des Ablaufs einer Wartezeit weiterhin vom Benutzer bedienbar sein, so
muß die Kontrolle über die Programmereignisse ans Betriebssystem zurückgegeben werden. In Visual
Basic erfolgt dies durch Aufruf der Funktion DoEvents. Diese Funktion sorgt dafür, daß Tastatur- und
Mausereignisse zu den angewählten Bedienelementen gelangen, so daß z.B. während des Wartens auf
den Abschluß einer Geräteeinstellung die Bedienung von Buttons und Eingabefeldern möglich ist.
Das nachfolgende Programmbeispiel zeigt die Funktion Hold(), mit der die Kontrolle an das
Betriebssystem zurückgegeben wird, während sie eine in Millisekunden einstellbare Wartezeit abwartet.
Rem **********************************************************************
Rem Die nachfolgende Wartefunktion erwartet die Uebergabe der gewuenschten
Rem Wartezeit in Millisekunden. Waehrend des Wartens bleiben Tastatur und
Rem Maus frei fuer die Steuerung von Bedienelementen
Rem **********************************************************************
Public Sub Hold(delayTime As Single)
Start = Timer
Do While Timer < Start + delayTime / 1000
DoEvents
Loop
End Sub
Rem **********************************************************************
Die Warteprozedur wird ganz einfach durch den Aufruf Hold(<Wartezeit in Millisekunden>) aktiviert.

Service Request Routine

Ein Service Request wird in der Service Request Routine abgearbeitet.
Hinweis: Die Variablen TeilnehmerN% und TeilnehmerM% müssen sinnvoll vorbelegt werden!
REM ------------ Service Request Routine -----------
Public SUB Srq()
ON ERROR GOTO noDevice
CALL IBRSP(analyzer%, STB%)
IF STB% > 0 THEN
SRQFOUND% = 1
IF (STB% AND 16)
IF (STB% AND 4)
IF (STB% AND 8)
IF (STB% AND 128) > 0 THEN CALL Operationstatus
IF (STB% AND 32)
1093.4820.11
Grundlegende Schritte der IEC-Bus-Programmierung
'Timerstand beim Funktionsaufruf retten
'Rueckgabe der Kontrolle ans Betriebssystem
'zur Steuerung von Bedienelementen, solange
'Timer nicht abgelaufen ist
'dieses Gerät hat gesetzte Bits im STB
> 0 THEN CALL Outputqueue
> 0 THEN CALL ErrorQueueHandler
> 0 THEN CALL Questionablestatus
> 0 THEN CALL Esrread
7.9
'Timer ueberpruefen
'Kein Teilnehmer vorhanden
'Serial Poll, Status Byte lesen
D-1

Werbung

loading