[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

: DDW-DDL-ML kleines script-die 3.



Hallo Gurus,
Ich habe mir ein kleine Perlprogramm gebastelt.
Das macht nichts anderes als srcp 8 Befhle an den ddw
Server zu senden und auf die Antwort zu warten.
Hat für mich den Vorteil, dass ich die Bahn nicht mit
Rückmeldern ausstatten muss und dennoch alles von
selbst läuft.
Nun zu meinem Problem:
Hochsporradisch schaltet der weichen umschalt Impuls
nicht nach 200ms ab.
d.h. der Magnet der weichen zieht ständig an. Die
Weiche  brummt und zieht Strom.
Kann mir vielleicht jemand einen Tipp geben.

Hier das Perlprogramm

#!/usr/bin/perl -w
my $hostname;
my $ddw;
my $server_ver;
my $i = 5;

$hostname = "localhost";


#----------------------------------------------------------------
#eigentlicher sokethandler
print "Connektion zum ddw server \n";
use IO::Socket;
$ddw = new IO::Socket::INET (
    PeerAddr => $hostname,
    PeerPort => 12345,
    Proto => 'tcp')|| die "Kein Socket... $!\n";
print "connected\n";
sleep 1;
$server_ver = <$ddw>;
print "$server_ver\n";

#------------------------------------------------------------
#SRCP initialisieren
&send ("SET PROTOCOL SRCP 0.8.2");
&send ("SET CONNECTIONMODE SRCP COMMAND");
&send ("GO");
&send ("INIT 1 POWER");
&send ("SET 1 POWER ON");
print "Booster einschalten";
sleep 1;

#------------------------------------------------------------
print "initialisierung der loks und weichen\n";
while ($i <= 24) {
&send ("INIT 5 GA $i M");
$i++;
}
#Alle Loks eintragen
&send ("INIT 1 GL 01 M 1 14 5");

#------------------------------------------------------------
f2 ();
#----------------------------------------------------------------

sub send {
print "@_\n";
print $ddw "@_\n";
$get = <$ddw>;
print "$get\n";
Win32::Sleep 200;
}

#----------------------------------------------
sub f2 {
print $ddw "SET 5 GA 6 1 1 200\n";
print $ddw "SET 5 GA 10 1 1 200\n";
print $ddw "SET 5 GA 14 1 1 200\n";
sleep 1;
print $ddw "SET 5 GA 7 1 1 200\n";
print $ddw "SET 5 GA 11 1 1 200\n";
print $ddw "SET 5 GA 16 1 1 200\n";
print $ddw "SET 5 GA 15 1 1 200\n";
sleep 1;
}



	

	
		
___________________________________________________________ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de