function cportconfig;
%function stat=cportconfig(H,Name,Value,Name,Value,Name,Value...)
%configures a serial or parallel port previously opened by cportopen,
%and/or returns the current or modified configuration. The parameters are:
%
%Input:
%------
%H - The port handle returned by cportopen.
%Name - A character string containing a configuration parameter name. It
% is enough to specity just enough characters to make a unique
% identification, e.g. "Ba" instead of "BaudRate".
%Value - A scalar or character string containing the new parameter value.
%
%Output:
%-------
%stat - Optional. If present, contains the port configuration in a record
% whose fields are the parameter names and whose values are the
% configuration values. The parameter names and values are the same
% as for the input parameters.
%
%* zero or more input parameter pairs may be specified.
%* 1/ON/YES/TRUE are synonomous, as are 0/OFF/NO/FALSE.
%* All strings may be replaced by their equivalent numbers, as defined
% in Windows.h.
%* The commands are case insensitive.
%
%Supported parameters and their allowed values are given below
%
%Port Configuration:
%-------------------
% BaudRate: Specifies the device communication rate in bits per second.
% ByteSize: Specifies the bits per byte transmitted and received,
% can be 4-8.
% StopBits: Specifies the number of stop bits. Aloowed values are
% 1, 1.5 and 2. The common value is 1.
% Parity: Specifies the parity scheme: NONE,ODD,EVEN,MARK,SPACE (0-4).
% Do not confuse this member with the fParity member, which
% turns parity on or off. Because parity is rarely used, this
% member is usually NONE.
% fParity: ON/OFF toggles parity checking.
% fOutX, fInX: ON/OFF toggles software flow control (XON/XOFF) using the
% XonChar/XoffChar characters.
% fRtsControl: ON/OFF toggles the RTS line on and off during the
% connection. HANDSHAKE turns on RTS handshaking. TOGGLE
% sets the RTS line high if bytes are available for
% transmission, later putting it to low.
% fOutxCtsFlow: ON/OFF Turn the CTS flow control on and off. To use RTS/CTS
% flow control, specify ON for this member and HANDSHAKE for
% the fRtsControl member.
% fOutxDsrFlow: ON/OFF toggles the DSR flow control. DSR flow control is
% rarely used. A typical port configuration is to set this
% member to OFF, while enabling the DTR line.
% fDtrControl: ON/OFF turns the DTR line on and off during the connection.
% HANDSHAKE turns on DTR handshaking.
% fDsrSensitivity: ON/OFF specifies whether the comm driver is sensitive to the
% state of the DSR line. If ON, the driver ignores any bytes
% received while the DSR line is low.
% fTXContinueOnXoff: ON/OFF Specifies whether transmission stops when the input
% buffer is full and the driver has transmitted the XOFF
% character. .
% fErrorChar: ON/OFF specifies whether bytes received with parity errors are
% replaced by the ErrorChar character. This will be operative
% only if fParity is also ON.
% fNull: ON/OFF specifies whether null bytes are discarded.
% fAbortOnError: ON/OFF specifies whether read and write operations are
% terminated if an error occurs. The driver will then not accept
% further communication until it is cleared using CPORTRESET.
% XonLim: The minimum number of bytes allowed in the input buffer before
% flow control is activated to inhibit the sender. This assumes
% that either Xon/Xoff, RTS, or DTR input flow control is
% specified in fInX, fRtsControl or fDtrControl. Note that the
% sender may transmit characters after the flow control signal
% has been activated, so this value should never be zero.
% XoffLim: The maximum number of bytes allowed in the input buffer before
% flow control is activated to allow transmission by the sender.
% This assumes that either Xon/Xoff, RTS, or DTR input flow
% control is specified in fInX, fRtsControl or fDtrControl. The
% maximum number of bytes allowed is calculated by subtracting
% this value from the size, in bytes, of the input buffer.
% XonChar,XoffChar: The ASCII value of the characters used for Xon/Xoff
% software flow control.
% ErrorChar: The ASCII value of the character used to replaced bytes
% received with a parity error.
% EofChar: The ASCII value of the character used to signal the end of data.
% EvtChar: The ASCII value of the character used to signal an event.
%
%Port timeouts:
%--------------
% ReadIntervalTimeout:
% The maximum number of milliseconds that can elapse between
% two characters without a time-out occurring with the
% ReadIntervalTimeout member.
% ReadTotalTimeoutMultiplier:
% For each read operation, this number is multiplied by the
% number of bytes that the read operation expects to receive.
% ReadTotalTimeoutConstant:
% This member is the number of milliseconds added to the
% result of multiplying the total number of bytes to read by
% ReadTotalTimeoutMultiplier. The result is the number of
% milliseconds that must elapse before a time-out for the
% read operation occurs.
% WriteTotalTimeoutMultiplier:
% For each write operation, this number is multiplied by the
% number of bytes that the write operation expects to receive.
% WriteTotalTimeoutConstant:
% This member is the number of milliseconds added to the
% result of multiplying the total number of bytes to write
% by WriteTotalTimeoutMultiplier. The result is the number
% of milliseconds that must elapse before a time-out for the
% write operation occurs.
%
%To assist with multitasking, it is common practice to configure so that read
%operations immediately return with the characters to be read. To do this,
%set ReadIntervalTimeout to -1 and set both ReadTotalTimeoutMultiplier and
%ReadTotalTimeoutMultiplier to zero.
% Written by Eyal Doron, July 1999
error('CPORTCONFIG is implemented in a MEX file.');