Thread Serielle Schnittstelle und UDP/TCP Interface (13 answers)
Opened by kami at 2017-01-26 09:18

kami
 2017-01-26 15:43
#185957 #185957
User since
2010-03-17
92 Artikel
BenutzerIn
[default_avatar]
Hi zusammen,

das mit dem IO::Async sieht schon gut aus. Ich habe mir das Module mal installiert und auch etwas getestet. So sieht mein Skript aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl -w
use IO::Async::Listener;
use Device::SerialPort;
use IO::Async::Loop;

my $loop = IO::Async::Loop->new;
my $port = Device::SerialPort->new("/dev/ttyUSB1");

$| = 1;

 my $listener = IO::Async::Listener->new(
    on_stream => sub {
       my ( undef, $stream ) = @_;

       $stream->configure(
          on_read => sub {
             my ( $self, $buffref, $eof ) = @_;
             $self->write( $$buffref );
             $$buffref = "";
             return 0;
          },
       );

       $loop->add( $stream );
    },
 );

 $loop->add( $listener );

 $listener->listen(
    addr => {
       family   => "inet",
       socktype => "stream",
       port     => 8000,
       ip       => "localhost",
    },
   on_listen => sub {
       my ( $listener ) = @_;
       my $socket = $listener->read_handle;

       print "Now listening on port ".$socket->sockport;
    },
        
    on_listen_error => sub {
       
       print "Now listening on port ";
    },
 );

 
while (1)
 
{
 sleep(3);
 print "."; 
 # Hier kommt dann die Serial-Meldung hin an einen TCP-Server was vom Device kommt an Output.
} 


Das Problem ist nur. Die Punkte zeigt er alle 3 Sekunden an. Wenn ich nc den TCP-Port teste klappt das auch. Ich kriege aber in dem Skript keinen Output wenn ich etwas an den Port sende.

Wie mache ich das?

Vielen Dank.

Gruß kami

View full thread Serielle Schnittstelle und UDP/TCP Interface