[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: serial port



Hello lindeb,

Sunday, July 18, 2004, 1:42:21 PM, you wrote:

ltb> есть  необходимось  постоянноо слушать com порт и писать все в файл, но
ltb> программы   типа   minicom  плохо,  что  посоветуете ? Как это сделать
ltb> максимально просто ?
У меня этим скриптом читаются данные из миниАТС:
(взято из pblogan-0.0.1a.tar.gz)

#!/usr/bin/perl -w
#
# This perl script is based on a program written by Paul Haas, the original program
# can be found at http://hamjudo.com/rcx/talkrcx.txt
#
#

$port = "/dev/ttyS0";
open("portfh","+<$port") || die "opening $port for input: $!";

system("stty 9600 -echo parmrk cs8 -cstopb raw < $port");
while(1) {
    getmsg("portfh" );
    sleep( 1 );
}
close("portfh");


sub getmsg {
    local $portfh = @_;
    local($inbuff,$rin) = ('','');

    vec($rin,fileno("portfh"),1) = 1;
    while ( select($rin, undef, undef, 0.3) ) {
        $char = '';
        sysread ("portfh",$char,1);
        $inbuff .= $char;
    }
    if( length( $inbuff ) > 0 ){
        open( LOG, ">>/var/log/pbx.log" );
        print LOG "$inbuff" ;
        close( LOG );
    }
    return;
}



-- 
Best regards,
 Alexander




Reply to: