in reply to Re: Windows Serial Port Logging using Win32-SerialPort
in thread Windows Serial Port Logging using Win32-SerialPort

Here is a pseudo code 1. I have a main script that does the following: - Do a serial port write - Start a FTP download using Net:FTP 2. Now while the main script is doing this FTP , the device that the perl script is talking to is writing something to the serial port 3. After the FTP is done I want to go check if the serial port output was clean. 4. I am using Win32-SerialPort to access serial port.I was hoping it would have a option to write serial port output to a log file but i haven't found one yet. Thanks for your help
  • Comment on Re^2: Windows Serial Port Logging using Win32-SerialPort

Replies are listed 'Best First'.
Re^3: Windows Serial Port Logging using Win32-SerialPort
by BrowserUk (Patriarch) on Apr 18, 2010 at 01:15 UTC

    Something like this might do you. Essentially everything inside the async will happen concurrently with everything after it until you join the threads back together.

    use threads; use threads::shared; use Win32::SerialPort; use Net::FTP; my $sp = new Wi3n32::SerialPort( ... ); ... my $count = $sp-write( $out ); my $done :shared = 0; my $t = async{ my $in; until( $done ) { my( $count, $byte ) = $sp->read( 1 ); warn "Read error" and next unless $count = 1; $in .= $byte; } return $in; }; my $ftp = new Net::FTP( ... ); $ftp->get( 'theFile' ); $ftp->done; $done = 1; my $input = $t->join;

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Hi Thanks . This does look promising. I will try to run this and post the results Thanks a ton for taking some time to look at this
        Hi I tried this but i still have perl 5.6.1 Does Perl 5.6.1 support this ? Thanks again