Attempts to open the named serial port and return a serial-port object.
open-serial-port name &rest args &key baud-rate data-bits stop-bits parity cts-flow-p dsr-flow-p dtr rts read-interval-timeout read-total-base-timeout read-total-byte-timeout write-total-base-timeout write-total-byte-timeout => serial-port
A string naming a serial port.
See in the Description below for details of the remaining arguments.
A serial-port object.
open-serial-port attempts to open the serial port name and return a serial-port object.
name is passed directly to
CreateFile(). For ports COMn where n > 9, you must take care to pass the real port name expected by Windows. At the time of writing this issue is documented at
If any of baud-rate, data-bits, stop-bits and parity are supplied then the corresponding serial port settings are changed. The values of baud-rate and data-bits should each be an appropriate integer. The value of stop-bits should be 1, 1.5 or 2. The value of parity should be one of the keywords
The arguments dtr and rts control whether read operations generate DTR or RTS flow control. If the value is
:handshake then the corresponding flow control signal is generated automatically. If the value is
t then the initial state of the flow control signal is set and automatic flow control is not used. See set-serial-port-state for manual flow control.
The argument read-interval-timeout can be used to control the maximum time to wait between each input character. The value
:none means that reading will not wait for characters at all, only returning whatever is already in the input buffer
The arguments read-total-base-timeout and read-total-byte-timeout can be used to control the maximum time to wait for a sequence of characters. The arguments write-total-base-timeout and write-total-byte-timeout can be used to control the maximum time to wait when transmitting a sequence of characters. For both reading and writing the timeout is given by the expression:
base_timeout + nchars * byte_timeout
The default value of each of read-total-base-timeout, read-total-byte-timeout, write-total-base-timeout and write-total-byte-timeout is
nil and this means that the corresponding parameter in the OS is left unchanged and there is zero timeout. Otherwise the value should be a non-negative real number specifying a timeout in seconds.
LispWorks User Guide and Reference Manual - 13 Feb 2015