Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Ausgabe verlangsamen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Tips, Tricks, Helferlein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  

War dieses Helferlein für dich nützlich?
Ja.
0%
 0%  [ 0 ]
Nein, ich hatte Probleme damit.
0%
 0%  [ 0 ]
Nein, ich stand nie vor dem Problem, das dieses Helferlein lösen soll.
0%
 0%  [ 0 ]
Stimmen insgesamt : 0

Autor Nachricht
Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 21. Sep 2007 10:17   Titel: Ausgabe verlangsamen

Hallo,

dieses Helferlein brauchte ich, um die Ausgabe auf einen seriell angeschlossenen Drucker zu verlangsamen, damit er sich beim Programmieren des Flashs nicht verschluckt. Mit RTS/CTS-Handshake hatte das Ding arge Probleme, und XON/XOFF-Handshake wollte gerade beim Programmieren des Flashs auch nicht so recht.

Aber man kann es auch benutzen, um einen zu schnell durchrollenden Text zu verlangsamen etc. Vielleicht findet das ja jemand nützlich.

Code:

#!/usr/bin/tclsh
# slow -- reblock and slow down output.
if { $argc < 1 } { set DELAY 1000 } { set DELAY [ lindex $argv 0 ] }
if { $argc < 2 } { set BLOCKSIZE 1 } { set BLOCKSIZE [ lindex $argv 1 ] }

fconfigure stdin -encoding binary -translation binary -buffering full -buffersize $BLOCKSIZE
fconfigure stdout -encoding binary -translation binary -buffering full -buffersize $BLOCKSIZE

while {![ eof stdin ]} \
{
   fcopy stdin stdout -size $BLOCKSIZE
   after $DELAY
}

Man kann das Skript in eine Pipe einbauen, in der Defaulteinstellung verlangsamt es die Ausgabe auf 1 Zeichen pro Sekunde. Mit dem ersten Parameter kann man die Wartezeit in Millisekunden einstellen, mit dem zweiten die Größe des Blocks. Wichtig: Falls die Blockgröße >1 ist, blockiert das fcopy beim letzten Block, wenn die Eingabedatenmenge nicht genau durch die Blockgröße teilbar ist. Man kann sich durch
Code:

$ cat Eingabedaten | dd bs=<BLOCKGRÖSSE> conv=sync | slow <VERZÖGERUNG> <BLOCKGRÖSSE>

behelfen, wenn es (wie in meinem Fall) nichts ausmacht, dass die Daten am Schluss mit Nullbytes auf die Blockgröße aufgefüllt werden.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Tips, Tricks, Helferlein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy