This is a Frequently Asked Questions list about Device::Modem
perl extension.
Device::Modem
?Device::Modem
is a perl extension written in pure perl that allows to communicate with modems,
or generically with AT command set compliant
devices connected to your computer via a serial port.
Cosimo Streppone (cosimo@cpan.org), an italian guy who works and enjoys writing perl programs and objects. If you want to know more, go to http://www.streppone.it/cosimo/work/perl/
If you are asking that, probably you are in the wrong place.
Perl is a wonderful programming language, that cuts development times, helps developer keep mental health, good life-style, doesn't pollute developer's mind, allows complete freedom of style, and (from perl manual), gives you enough rope to hang yourself.
Some starting points:
AT command set
?It is a set of standard commands,
also called Hayes
,
in which (almost) all commands begin with AT
prefix and they allow to control a modem,
router,
whatever device.
Also cellular phones work with a subset of standard AT
commands.
What the heck are you doing here? http://www.google.com/search?q=Tech+glossary+modem
Device::Modem
?You must have:
Device::SerialPort
module installed if you are on some unix platform.
Win32::SerialPort
module installed if you are on Win32 platform.Device::Modem
works close to the serial port communication layer,
which varies on many platforms.
It relies on Device::SerialPort
and Win32::SerialPort
modules for all low-level communication layer.
It tries to build a platform independent layer above these two low-level modules, so developers don't need to distinguish among different platforms.
It's been reported to work on Win32
,
Linux
,
Mac OS X
,
FreeBSD
,
NetBSD
,
OpenBSD
,
ARM-Linux
and Solaris
.
Yes, it is allowed by its license, that is the same as Perl language. If you are using it in a commercial package, or plan to do so, please inform the author (Cosimo Streppone, cosimo@cpan.org). Thank you.
This is an open-source software developed in my little home spare time and for my personal interest and amusement. This module has a test suite, but it is not very extensive, so it is possible that some feature X does not work, or it is not implemented yet or I cannot test it.
If you are in this situation, please contact me and provide the following information:
perl -V
command is good for this.perl -V
.Device::Modem
,
Device::SerialPort
and (if you are using it) Device::Gsm
version.
In case of doubt,
send the output of:
perl -MDevice::Modem -le 'print Device::Modem->VERSION'
Thank you.
This is definitely reported to be working by several users, who also contributed patches and tested the feature.
Otherwise, just look at Aaron Mitti's Device::SerialPort::Xmodem CPAN module.
It might seem that XModem and ZModem should be well over dead at this point. But, looks like several old/new devices still support them.
So, ZModem support has been contributed by a user, and will be added to the main release Soon(tm).
First of all, be sure to use Device::Modem version 1.52+.
Probably you don't have the correct permissions to access your modem device (usually /dev/modem, or /dev/ttyS0 on unix and COM1/COM2/... on windows). Or you are trying to use the examples that come with Device::Modem distribution with an older version (Device::Modem <= 1.33).
In this case, you should upgrade to Device::Modem 1.52+.
Again, upgrade to Device::Modem version 1.52+.
If you get this error, it means that the communication port could not be opened. Most probably you don't have permissions to access your serial port, or you have used a wrong device name (check your device entry in /dev
folder).
Since version 1.52, Device::Modem::connect()
will try to automatically reconnect if your port connection shuts down, or the Device::SerialPort
, or Win32::SerialPort
underlying object is deleted or invalidated.
You should really upgrade to Device::Modem 1.52+.
No. What you can do, is voice call dialing. After the dialing though, you have to speak. Your computer can not do that, unless you have a PBX board, at least not with Device::Modem.
Make sure you are using that latest version. From version 1.30, the main "send-command" / "wait-answer" cycle has been sensibly improved for speed, though you now have to specify a timeout if you want the module to wait an answer if modem is not ready.
Probably this is the better compromise...
Oh, yes! Please feel free to contact cosimo@cpan.org to decide details about this... :-)
Or, if you have nothing wrong with that, go to my Amazon wishlist.Uh.
Please contact me, so I can improve my software design, ideas and coding, but only if you explain the reasons of your criticism. Thank you.