📄 6.b.modem-init
字号:
#!/usr/bin/perl# This is a very brief script that demonstrates send_slow(). This#command is chiefly for talking to modems and the like where if you send#it stuff too fast it can get mad at you.# Also demonstrated is how to talk to a bidirectional device#handle.## This example has been changed in 1.05 so that it actually works. :-)use Expect;$device="/dev/modem" unless $device = shift(@ARGV);# open the deviceopen(DEVICE,"+>$device") || die "Couldn't open $device, $!\n";# Expectize it. note the \* which we do because we didn't use the OO# method of opening the device.$modem=Expect->exp_init(\*DEVICE);# Let's watch the output. Once again, output isn't automatically# watched since it was an initialized handlde and not a process.$modem->log_stdout(1);# Put it in raw mode w/ no echoing so it will operate as expected.$modem->exp_stty('raw','-echo');# Send it an ATZH0\r to reset its state.print "Initializing modem\n";$modem->send_slow(.5,"ATZH0\r");# How about we look for an OK?$modem->expect(30,'-re','^OK\r?$')|| warn "Never got OK from modem\n";print "Modem initialized.\n";# Now let's interact with it so the user can talk to it, dial it out,# whatever. This is basically a poor man's term program.# When you interact() with a handle it puts STDIN in raw mode so# you are assured of interacting cleanly, no escape chars, etc.# This is usually what you want. Here however it's nice to be able to# escape from the session without doing any extra work. So let's make# an escape character of ^W.print "Beginning interaction, escape character is ^W.\n";$modem->interact(\*STDIN,"\027");# Done? Reset the modem, close the handle.print $modem "+++";sleep 3;print $modem "ATZH0\r";sleep 1;# Grab any output ready on the handle, toss it.$modem->expect(0);$modem->hard_close();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -