Jump to content

Recommended Posts

Geschrieben

Hallo zusammen,

ich wollte grade mal schauen, ob ich mein Projekt mit Perl umgesetzt bekomme. Dafür habe ich das Example für den Motion Detector aufgerufen und erhalte folgende Meldung:

Could not connect to localhost:4223: Illegal seek at ./example_callback.pl line 25.

 

Brickd Logfile:

2014-07-21 15:14:20.719929 <I> <network|network.c:105> Added new client (S: 22, T: plain, P: 127.0.0.1, A: disabled)

2014-07-21 15:14:20.720022 <I> <network|client.c:242> Client (S: 22, T: plain, P: 127.0.0.1, A: disabled) disconnected by peer

 

Das Ganze auf einem Mac OS X 10.9.4

Perl Version 5.16.2

Das CPAN Paket wurde nicht installiert. Es wurden die Sourcen im selben Ordner abgelegt wie das Beispiel.

 

Die UID ist korrekt und bis auf die UID habe ich im Example auch nichts angepasst.

 

Kennt jemand das Problem und kann mir da helfen?

 

THX

 

Geschrieben

Hrm, in Tinkerforge/IPConnection.pm stehen an drei Stellen Methodenaufruf mit MSG_NOSIGNAL als letzten Parameter. Ändere mal bitte alle drei ab indem du diesen Parameter entfernst und teste dann nochmal. Hier ein Beispiel:

 

Vorher:

 

$rc = $self->_get_local_socket()->send($packet, MSG_NOSIGNAL);

 

Nachher:

 

$rc = $self->_get_local_socket()->send($packet);

Geschrieben

Hi photron,

 

habe ich gemacht und erhalte folgendes:

 

./example_callback.pl

Thread 2 terminated abnormally: Can't locate object method "dequeue_timed" via package "Thread::Queue" at Tinkerforge/IPConnection.pm line 1669.

Press any key to exit...

Motion Detected

Detection Cycle Ended (next detection possible in ~3 seconds)

 

Funktioniert zwar, aber die 1. Zeile macht mir Sorgen ;-)

Geschrieben

Interessant! MSG_NOSIGNAL macht also ein Problem.

 

Die andere Meldung kommt daher, dass dein Thread::Queue Module nicht neu genug ist. Du brauchst mindestens Version 3.02. Das solltest du über CPAN updaten können:

 

sudo cpan Thread::Queue

Geschrieben

Teste mal bitte diese kleine Script, es sollte "MSG_NOSIGNAL does NOT exist" ausgeben und sonst keine Fehler melden:

 

use strict;
use warnings;
use Socket qw(MSG_NOSIGNAL);

if (defined(&{"MSG_NOSIGNAL"})) {
    print "MSG_NOSIGNAL does exist\n";
}
else {
    print "MSG_NOSIGNAL does NOT exist\n";
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...