Thread View: de.comm.internet.software
3 messages
3 total messages
Started by Andreas Viebke
Sun, 11 Feb 1996 17:24
Trumpet-Scrips laufen fehlerhaft?
Author: Andreas Viebke
Date: Sun, 11 Feb 1996 17:24
Date: Sun, 11 Feb 1996 17:24
55 lines
1799 bytes
1799 bytes
Hallo, liebe Leute !
Ich habe mir fuer Trumpet 2.1f (unter Windows for Workgroups mit
Win32s, V. 1.30A) ein Script geschrieben, das nacheinander mehrere
Nummern waehlt, bis es eine freie Leitung erwischt. Nun bin ich nicht
gerade ein Neuling, was das Programmieren in C betrifft, sollte also
keine Schwierigkeiten mit dieser simplen Scriptsprache haben. Dennoch
stehe ich vor einem Problem: die Schleife wird nicht korrekt
abgearbeitet:
$n1 = "..."
...
$n8 = "..."
%c = 0
%n = 0
%attempts = 40
repeat
%c = %c + 1
if %c > 8
%c = 1
end
if %c = 1
$number = $n1
end
if %c = 2
$number = $n2
end
...
if %c = 8
$number = $n8
end
if %n = %attempts
display "Too many dial attempts"\n
abort
end
display "Dialling..."\n
output "at dt "$number\r
read 30 $line
%ok = pos ("CONNECT", $line)
%n = %n + 1
until %ok
Auf Nummer 1 folgt Nummer 2, dann Nummer 4, 6 usw.! Und der String
"Dialling..." wird innerhalb eines Schleifendurchlaufs mehrmals
angezeigt! Es kommt mir so vor, als ob das Read-Kommando nicht wartet,
bis eine ganze Zeile vom Modem eingelesen wurde, sondern einfach schon
weiterlaeuft, wenn die ersten Zeichen ankommen. Beim Input-Kommando
passiert genau das gleiche!
Mache ich irgendetwas falsch? Ist mein Modem falsch eingestellt? Oder
woran kann es liegen?
Danke und Gruss!
Andreas Viebke
Re: Trumpet-Scrips laufen fehlerhaft?
Author: Hans-Juergen Beie
Date: Mon, 12 Feb 1996 20:56
Date: Mon, 12 Feb 1996 20:56
69 lines
2389 bytes
2389 bytes
In article <4fl8k2$iv6@unlisys.unlisys.net>,
viebke@berlin.snafu.de (Andreas Viebke) wrote
> Ich habe mir fuer Trumpet 2.1f (unter Windows for Workgroups mit
> Win32s, V. 1.30A) ein Script geschrieben, das nacheinander mehrere
> Nummern waehlt, bis es eine freie Leitung erwischt. Nun bin ich
> nicht gerade ein Neuling, was das Programmieren in C betrifft,
> sollte also keine Schwierigkeiten mit dieser simplen Scriptsprache
> haben. Dennoch stehe ich vor einem Problem: die Schleife wird nicht
> korrekt abgearbeitet:
>
> $n1 = "..."
> ...
> $n8 = "..."
> %c = 0
> %n = 0
> %attempts = 40
> repeat
[...]
> display "Dialling..."\n
> output "at dt "$number\r
> read 30 $line
# Ich verwende statt der obigen 3 Zeilen hier ein Konstrukt wie...
$line = ""
display "Dialling" $number "..."\n
outputecho $number\r
# Der Timeout-Wert (hier 50s) muss goesser sein als die Zeit, die
# das Modem auf ein Abheben der Gegenseite abwartet (normalerweise
# der Wert im Modem-Register S7).
# Anderfalls bricht das Script ab, obwohl das Modem noch probiert.
#
%timeout = ![read 50 $line]
if %timeout
display "*** Timeout beim Waehlen."\n
output "+++"\r
output "ath"\r
sleep 3
abort
else
while $line = ""
read 10 $line
end
end
# Hier geht's mit Deinem Script weiter...
> %ok = pos ("CONNECT", $line)
> %n = %n + 1
> until %ok
>
> Auf Nummer 1 folgt Nummer 2, dann Nummer 4, 6 usw.! Und der String
> "Dialling..." wird innerhalb eines Schleifendurchlaufs mehrmals
> angezeigt! Es kommt mir so vor, als ob das Read-Kommando nicht
> wartet, bis eine ganze Zeile vom Modem eingelesen wurde, sondern
> einfach schon weiterlaeuft, wenn die ersten Zeichen ankommen. Beim
> Input-Kommando passiert genau das gleiche!
Das 'outputecho' verhindert das "Verschlucken" von Teilen der Modemantwort.
Vielleicht hilft's.
hjb :-?
--
Hans-Juergen Beie
hjb@pollux.franken.de
Re: Trumpet-Scrips laufen fehlerhaft?
Author: Andreas Viebke
Date: Thu, 15 Feb 1996 18:21
Date: Thu, 15 Feb 1996 18:21
40 lines
1966 bytes
1966 bytes
Am 12 Feb 1996 21:56:00 +0100 schrieb hjb@pollux.franken.de
(Hans-Juergen Beie):
>In article <4fl8k2$iv6@unlisys.unlisys.net>,
>viebke@berlin.snafu.de (Andreas Viebke) wrote
(... zur Frage, weshalb in einem Trumpet-Skript, das in einer Schleife
die zu waehlende Nummer festlegt und dann probiert, bis eine
Verbindung zustande kommt...)
>> Auf Nummer 1 folgt Nummer 2, dann Nummer 4, 6 usw.! Und der String
>> "Dialling..." wird innerhalb eines Schleifendurchlaufs mehrmals
>> angezeigt! Es kommt mir so vor, als ob das Read-Kommando nicht
>> wartet, bis eine ganze Zeile vom Modem eingelesen wurde, sondern
>> einfach schon weiterlaeuft, wenn die ersten Zeichen ankommen. Beim
>> Input-Kommando passiert genau das gleiche!
>Das 'outputecho' verhindert das "Verschlucken" von Teilen der Modemantwort.
>Vielleicht hilft's.
"Verschlucken" ist genau richtig, obwohl ich das mit "outputecho"
nicht in den Griff bekommen habe. Trotzdem Danke!
Offenbar sendet das Modem nach Empfang des Waehlstrings noch ein LF
oder CRLF, was mein Skript als Antwort 'betrachtet' hat. Ich habe mir
jetzt folgendermassen beholfen:
(Waehlen ...")
repeat
read 30 $line
%busy = pos("BUSY", $line)
%connect = pos("CONNECT", $line)
%delayed = pos("DELAYED", $line)
%wait = pos("WAIT", $line)
%full = pos("FULL", $line)
until %busy | %connect | %delayed | %full | %wait
Ich warte einfach, bis eine der moeglichen und sinnvollen Antworten
kommt.
Gruss
Andreas
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads