Rieccomi qui... a quanto pare non mi riesce di risolvere il mio problema di recuperare il risultato fa un apparato connesso attraverso la MOXA NPORT5630/16 ed utilizzando il protocollo UDP. con lo script in perl che ho messo come allegato, riesco a mandare il comando play all'apparato (che infatti parte regolarmente), ma non riesco a ricevere la sua comunicazione di ack o nak... Come mi ha suggerito Michele D'Amico, ho fatto un thread che parte in anticipo rispetto al mio lancio dei comandi, in modo che rimango in ascolto ancora prima di spedire (eventualmente è possibile sulla stessa socket che è stata creata rientrare con il parametro "l" di listen?). purtroppo dalle prove fatte pare che non riesca a mettersi effettivamente in lettura sulla socket, e malgrado tutte le letture che sto facendo in questi giorni non riesco proprio a venirne a capo... Mi chiedo se non si possa passare questo thread in un file completamente separato, quindi lanciato dai diversi comandi e sviluppato per poter poi fornire al chiamante diverse risposte che si può aspettare, facendo comunque in modo che rimanga in ascolto in background sulla socket creata, senza bloccare però il chiamante... In data mercoledì 23 settembre 2009 09:17:23, Michele D'Amico ha scritto: [...] > my $running = 1; > share($running); > my $timeout = 10; > > sub _service_recv { > my $s = shift; > print "service_recv started\n" if ($debug); > > while($running) { > foreach my $r ($s->can_read(1)){ > $r->recv($response, 2); > print "ritorno: ", $response, "\n"; > } > } > print "service_recv shutting down\n" if ($debug); > } > > my $thread_recv = threads->new(\&_service_recv, $socket); > $socket->send($CMD1); > $socket->send($CMD2); > > my $end = time() + $timeout; > while ( time() < $end ) { > sleep(1); > } > print "Timeout end!\n"; > $running = 0; > $thread_recv->join(); > close($socket); > exit(1); > Spero che ti sia di aiuto > > --Michele > ci sono alcune correzioni che sono riportate poi nel codice allegato. Grazie a Michele e a chiunque possa darmi una mano. Byez -- Gollum1 Tessssoro, dov'é il mio Tessssoro?
Attachment:
play.pl
Description: Perl program