Re: Чем достучаться до модема из текстовой консоли?
Eric Pozharski -> debian-russian@lists.debian.org @ Sat, 24 Mar 2007 10:50:44 +0200:
EP> On Fri, Mar 23, 2007 at 09:21:11PM +0300, Artem Chuprina wrote:
>> Peter Teslenko -> debian-russian@lists.debian.org @ Fri, 23 Mar 2007 21:14:26 +0300:
>> PT> Чем можно достучаться до модема из консоли при отсутствии cu и
>> minicom'а?
>> Перловым скриптом. Тикловым скриптом. В ограниченных пределах - даже
>> cat.
EP> Пан биэсдишник? Стыдитесь. (me это к тому, что надо тогда, хотя бы, в
EP> perlopentut ткнуть).
EP> 2OP:
EP> === contents (/usr/local/sbin/do.dip) goes below ===
EP> #!/usr/bin/perl
EP> use strict;
EP> use warnings;
EP> use Fcntl;
EP> my $NL = "\015";
EP> my $LF = "\012";
EP> my $ttys = shift(@ARGV);
EP> $ttys =~ m#.*/([^/]+)#;
EP> my $lock = qq(/var/lock/LCK..$1);
EP> sysopen(TTYLOCK, $lock, O_WRONLY | O_EXCL | O_CREAT) or
EP> die qq(can't UUCP-lock $ttys: $!\n);
EP> syswrite(TTYLOCK, sprintf(qq(%10s\n), $$)) or
EP> die qq(can't fill UUCP-lock: $!\n);
EP> close(TTYLOCK);
EP> sysopen(TTYSI, $ttys, O_RDWR | O_NDELAY | O_NOCTTY) or
EP> die "can't open $ttys (reading): $!\n";
EP> sysopen(TTYSO, $ttys, O_WRONLY | O_NDELAY | O_NOCTTY) or
EP> die "can't open $ttys (writing): $!\n";
EP> #my $foo = select(TTYSO); $| = 1; select($foo);
EP> while(@ARGV) {
EP> print(TTYSO shift(@ARGV), $NL);
EP> sleep(1);
EP> #$/ = '';
EP> print(STDOUT <TTYSI>);
EP> };
EP> close(TTYSO) or
EP> die "can't close $ttys (writing): $!\n";
EP> close(TTYSI) or
EP> die "can't close $ttys (reading): $!\n";
EP> unlink($lock);
EP> exit;
EP> === contents (/usr/local/sbin/do.dip) gone above ===
EP> === contents (/usr/local/sbin/do.dip /dev/ttyS0 'AT' 'ATI1' '') goes below ===
EP> AT
EP> OK
EP> ATI1
EP> 87D3
EP> OK
EP> === contents (/usr/local/sbin/do.dip /dev/ttyS0 'AT' 'ATI1' '') gone above ===
EP> Скрипт тупой до безобразия, поэтому надо иногда (всегда?) добавлять
EP> заглушку (терминатор!?)
Это какой-то очень сложный скрипт. tcl был бы в этой роли куда проще.
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Нужны две программы - одна с интерфейсом, а другая чтобы работу делала.
Victor Wagner в <aut24i$gct$1@wagner.wagner.home>
Reply to: