selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

Socket Problem

Autor: perli [Beiträge: 1]
Datum: 03.02.2009 10:20:20

Hallo,
ich habe ein KNX/EIB Bussystem, mit dem ich über Sockets kommunizieren kann.
Unter Excel habe ich dies auch schon hinbekommen, jedoch unter Perl klappt es nicht.
Ich kann zwar eine Verbindung zu dem KNX Server (BAOS770) aufbauen, aber wenn ich die Daten zum Licht einschalten sende, funktioniert es nicht.
Ich vermute, daß es an der Art des Sendens liegt (es müßte eine Art ByteArray sein). Ich habe auch schon recht viel im Internet gesucht, aber leider keine Lösung gefunden.

Hier der NICHT funktionierende Excel Makro Coede:
[code]
...Verbindung aufbauen...
Client.SendData &HF0
Client.SendData &H6
Client.SendData &H3
Client.SendData &H1
Client.SendData &H3
Client.SendData &H31
Client.SendData &H0
DoEvents  
[/code]

----------------------------------------------------
Hier der funktionierende Excel Makro Code:
[code]
...Verbindung aufbauen...
Dim byteArray(7) As Byte
byteArray(0) = &HF0
byteArray(1) = &H6
byteArray(2) = &H3
byteArray(3) = &H1
byteArray(4) = &H3
byteArray(5) = &H31
byteArray(6) = &H0
Client.SendData byteArray()
DoEvents
[/code]

Hier die verschiedenen Perl Tests (die auskommentierten Bereiche haben auch nicht funktioniert):
[code]
#!/usr/bin/perl -w
use strict;
use IO::Socket;

my @tele;
#push(@tele, 0xF0);
#push(@tele, 0x06);
#push(@tele, 0x03);
#push(@tele, 0x01);
#push(@tele, 0x03);
#push(@tele, 0x31);
#push(@tele, 0x0);
push(@tele, hex(0xF0));
push(@tele, hex(0x06));
push(@tele, hex(0x03));
push(@tele, hex(0x01));
push(@tele, hex(0x03));
push(@tele, hex(0x31));
push(@tele, hex(0x0));
  
my $bytearray = pack("H", 0xF0, 0x06, 0x03, 0x01, 0x03, 0x31, 0x0);

#Daten schreiben in Datenspeicher-Server
my $ip = 'http://192.168.1.11';
my $port = 12004;
my $socket = new IO::Socket::INET (
  PeerAddr => $ip,
  PeerPort => $port,
  Proto=> "tcp",
  Type => SOCK_STREAM,
);
die "Keine Verbindung zum BAOS770 über $ip:$port möglich! $!n" unless defined $socket;
  
#$socket->autoflush(1);

print $socket $bytearray;
  
#$socket->send( @tele );
#$socket->send( "rn" );
#print $socket @tele;
print $socket "rn";

#Ich sende zwar die Daten, aber erfolglos.
#Bis hierhin komme ich immer, dann kommt aber nie eine Antwort vom KNX Server :-(
  
my $answer = <$socket>;
print "Receiving: $answern";
close($socket);
[/code]
----------------------------------------------------

Es wäre SUPER, wenn hier jemand einen Tipp hätte.

Danke & Gruß,
  Roger


Beiträge

  • Socket Problem - perli  03.02.2009 10:20 (0)Socket-Problem

Antwort schreiben

Username: Usernamen registrieren
Passwort: Passwort vergessen?
Thema:
  Bitte benutze für deinen Beitrag die Groß-/Kleinschreibung!
Beitrag:
Link (URL):
Titel für Link:
Grafik (URL):
  Die Breite der Grafik darf 468 Pixel nicht überschreiten.
 
E-Mail-Benachrichtigung:



Zum Abschicken deines Beitrags bitte die Schaltfläche "Abschicken" nur einmal anklicken und warten. Der Server braucht manchmal einige Zeit, bis er den Beitrag in die Datenbank übernommen hat. Wenn du die Schaltfläche mehrmals drückst, erscheint dein Beitrag auch mehrmals im Forum.

Bewerten Sie Ihren Webhosting-Provider

Webhosting Provider bewerten und Apple iPad gewinnenWie zufrieden sind Sie mit Ihrem Webhosting-Provider? Gibt es Probleme beim Service, mit der Performance oder der Abrechnung?

Teilen Sie jetzt Ihre Erfahrungen mit anderen Webmastern und schreiben Sie eine Provider-Bewertung. Mit etwas Glück können Sie ein Apple iPad gewinnen!

Weitere Informationen und Teilnahme...