
		gen_serial 0.1
		---------------

(See doc/gen_serial.html for API documentation.)

gen_serial is a generic serial port driver to allow Erlang applications
to use the host's RS-232 serial ports through a single cross platform
API.

Each serial port is managed in its own host OS process, ensuring that
the stability of the Erlang node is not comprimised by the gen_serial
driver.  The port driver processes cost about 1 MB of memory on Windows
(each), a relatively high price to pay for stablity.  :-)


Currently this driver and API only supports Windows operating systems.
UNIX support is planned for the 0.2 release in the near future.  This
version of the driver was developed and tested on Windows XP SP1, but
should work on Window 95/98/ME, Windows NT 4, 2000, XP and 2003.  The
enclosed Microsoft Visual Studio project file was built with Microsoft
Visual C+++ version 7.1, aka "Microsoft Development Environment 2003".


Since the gen_serial module locates the serial_esock.exe binary through
its priv directory, it is necessary to put the path of the gen_serial-0.1
directory into the code server.  This can be done on the command line
with -pa:

	erl -pa /path/to/gen_serial-0.1/ebin


A simple test module is also provided as gen_serial_test.  This has some
test cases which can be run in one Erlang node (using a loopback serial
cable with a null modem installed and two serial ports on the host) or
between two networked Erlang nodes (using a serial cable with a null
modem to connect the two hosts).


Building gen_serial is pretty simple:

	cd src
	make

The Makefile may need to be modified to get paths right, but only if
you want to regenerate the documentation with edoc.

The native code is shipped as a binary for Windows, but the source is
in c_src.  See the README there if you would like to build binary
yourself.  (Strongly recommended.)


gen_serial may become relatively important to me in the near future (for
another project), so I expect development to continue in ernest until
the driver is stable and production quality.  Cross platform support
(UNIX and Windows) is a key feature to me, so look for it soon in 0.2.
Windows support came first as folks said it couldn't be done...  since
I am a UNIX guy, UNIX support will be a breeze.

Have fun!

		Shawn Pearce
		spearce+erlang@spearce.org

