On 8/28/07, Ronald Guida wrote:
> I'm on a Windows box and I'm looking for a way to talk to a serial
> port (for example, RS-232) from Haskell.  I couldn't find a library to
> do this, so I am wondering how to create one.

I figured out FFI and marshaling, and I got my serial port to work in
Haskell.  See http://ronguida.home.mindspring.com/ for a simple
demonstration.  To test this program, I connected my COM1 and COM2
ports with a null-modem cable and I used Hyperterminal to talk to
COM2.

The demo only does a few things: open a serial port, configure it,
write to it, and read from it.

I have some questions regarding this demonstration:

1. In the DCB and COMMTIMEOUTS datatypes and their marshaling code,
  is it better to convert Win32 datatypes to Haskell equivalents
  (e.g. DWORD to Int), like I did with DCB, or is it better to leave
  things in machine types like I did with COMMTIMEOUTS (e.g. DWORD to
  Word32) ?

2. Can anyone tell me whether I am making proper use of
  unsafeInterleaveIO in my implementation of getContentsSerialPort?

I am interested in creating a library for serial ports under Win32,
and I'm wondering, how should I proceed?

-- Ron

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to