' ************ Demoprogramm fuer serielle Schnittstelle ********** ' ************ MD3040 / 3150 ********** ' ************ Ver.1.2 10/07/96 Eb. ********** ' -------------------------------------------------------------- GOSUB Initialisierung start: ' String aus Buffer auslesen: ON COM(1) GOSUB interrupthandler COM(1) ON IF LEN(B$) >= 13 AND (INSTR(B$, "TE") = 1 OR INSTR(B$, "TD") = 1) THEN IF INSTR(B$, ".") = 8 THEN 'Messbereich unter 200øC (d.h. Eingabeformat ist 13 Zeichen lang) einformat$ = LEFT$(B$, 12) 'wird Eingabeformat eingelesen B$ = MID$(B$, 14) 'ersten 13 Zch. aus Puffer loeschen END IF PRINT einformat$; T = 0 ELSE IF INSTR(B$, "TE") > 1 THEN 'fehlerhafer String entfernen B$ = MID$(B$, INSTR(B$, "TE")) END IF IF INSTR(B$, "TD") > 1 THEN 'fehlerhafer String entfernen B$ = MID$(B$, INSTR(B$, "TE")) END IF T = T + 1 IF T > 30000 THEN CLOSE 1 GOSUB timeout ' Time Out END IF END IF GOTO start ende: END '-------------------------------------------------------------- timeout: PRINT "Timeout ist aufgetreten !": BEEP COM(1) OFF: B$ = "" DO INPUT "Moechten Sie das Programm fortsetzen? (j/n)"; ant$ IF ant$ = "j" THEN GOSUB Initialisierung IF ant$ = "n" THEN GOTO ende LOOP UNTIL (ant$ = "j" OR ant$ = "n") RETURN '-------------------------------------------------------------- Initialisierung: T = 0 CLS ' Initialisierung der Schnittstelle OPEN "COM1: 1200,N,8,1,cs0,ds0,cd0" FOR INPUT AS 1 '->MD3150 RETURN '-------------------------------------------------------------- interrupthandler: ' serielle Schnittstelle Interrupthandler IF EOF(1) = -1 THEN RETURN B$ = B$ + INPUT$(1, #1) IF LEN(B$) > 256 THEN PRINT " Fehler : Ueberlauf serieller Puffer": BEEP GOTO ende END IF RETURN '--------------------------------------------------------------