And modem shall talk unto telephone......

Ned Konz ned at bike-nomad.com
Fri Aug 3 16:34:56 UTC 2001


On Friday 03 August 2001 03:00 am, you wrote:
> I'm trying to get my modem to talk to the telephone (more precisely, to
> dial a phone number).
>
> I'm guessing I need to use primitiveSerialPortOpen: to open the port.
> Then I can chuck some Hayes commands (or Diamond's version of Hayes
> commands) at it.

Why call primitive anything? There's a SerialPort class that works just 
fine... Note that you need to set the data rate and so on _before_ you open 
the port.

> But the rest is all gobbledegook.
>
> And, come to think of it, I don't usually do all that when I use the
> modem. Am I right in thinking that I can simply issue commands directly
> to SerialPort?

Yes. Well... the problem is that I had to work around a broken, Mac-ish API 
that didn't account for the fact that people could have randomly named serial 
ports on Unix systems (it makes more sense to use numbers for serial ports in 
Mac and Windoze land where there is some kind of a reasonable mapping between 
numbers and serial port names).

What I did when I wrote sqUnixSerial.c is that I made it work for my system 
(patches welcome!). That is, I mapped port number 0 into /dev/ttyS0, etc. (I 
have a Linux system).

If you want it to work out of the box, just make sure you have a /dev/ttyS0 
through /dev/ttyS9 that is an alias for your serial port (using mknod or ln) 
and call openPort: with the right number.

If this bothers you, edit sqUnixSerial.c to change the base name of the 
serial port. Or hexedit the plugin.

This works on my system (where /dev/ttyS1 is the modem):

p _ SerialPort new
baudRate: 9600;	"these are all defaults and don't need to be called"
dataBits: 8;
inputFlowControlType: 0;
outputFlowControlType: 0;
parityType: 0;
stopBitsType: 1.

p openPort: 1.

p nextPutAll: 'ATDT611#', String cr.	"dial"

p nextPutAll: String cr.	"hang up"

p closePort.

-- 
Ned Konz
currently: Stanwood, WA
email:     ned at bike-nomad.com
homepage:  http://bike-nomad.com




More information about the Squeak-dev mailing list