Update of /cvsroot/com0com/com0com
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv13144
Modified Files:
handflow.c
Log Message:
Implemented SERIAL_XOFF_CONTINUE
Index: handflow.c
===================================================================
RCS file: /cvsroot/com0com/com0com/handflow.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** handflow.c 17 May 2006 15:31:14 -0000 1.5
--- handflow.c 19 May 2006 12:16:19 -0000 1.6
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.6 2006/05/19 12:16:19 vfrolov
+ * Implemented SERIAL_XOFF_CONTINUE
+ *
* Revision 1.5 2006/05/17 15:31:14 vfrolov
* Implemented SERIAL_TRANSMIT_TOGGLE
***************
*** 76,81 ****
// Set local side
! if ((pNewHandFlow->FlowReplace & SERIAL_AUTO_TRANSMIT) == 0)
SetXonXoffHolding(pIoPortLocal, C0C_XCHAR_ON);
if (!pHandFlow ||
--- 79,88 ----
// Set local side
! if (pHandFlow &&
! ((pDevExt->handFlow.FlowReplace & SERIAL_AUTO_TRANSMIT) != 0) &&
! ((pHandFlow->FlowReplace & SERIAL_AUTO_TRANSMIT) == 0))
! {
SetXonXoffHolding(pIoPortLocal, C0C_XCHAR_ON);
+ }
if (!pHandFlow ||
***************
*** 166,169 ****
--- 173,178 ----
if (C0C_BUFFER_BUSY(pReadBuf) > (C0C_BUFFER_SIZE(pReadBuf) - pNewHandFlow->XoffLimit)) {
pIoPortLocal->writeHoldingRemote |= SERIAL_TX_WAITING_FOR_XON;
+ if ((pNewHandFlow->FlowReplace & SERIAL_XOFF_CONTINUE) == 0)
+ pIoPortLocal->writeHolding |= SERIAL_TX_WAITING_FOR_XON;
pIoPortLocal->sendXonXoff = C0C_XCHAR_OFF;
pIoPortLocal->tryWrite = TRUE;
***************
*** 173,176 ****
--- 182,186 ----
if (pIoPortLocal->writeHoldingRemote & SERIAL_TX_WAITING_FOR_XON) {
pIoPortLocal->writeHoldingRemote &= ~SERIAL_TX_WAITING_FOR_XON;
+ pIoPortLocal->writeHolding &= ~SERIAL_TX_WAITING_FOR_XON;
if (pIoPortLocal->sendXonXoff != C0C_XCHAR_OFF) {
// XOFF was sent so send XON
***************
*** 246,249 ****
--- 256,261 ----
if (pHandFlowLocal->FlowReplace & SERIAL_AUTO_RECEIVE) {
pIoPortLocal->writeHoldingRemote |= SERIAL_TX_WAITING_FOR_XON;
+ if ((pHandFlowLocal->FlowReplace & SERIAL_XOFF_CONTINUE) == 0)
+ pIoPortLocal->writeHolding |= SERIAL_TX_WAITING_FOR_XON;
pIoPortLocal->sendXonXoff = C0C_XCHAR_OFF;
pIoPortLocal->tryWrite = TRUE;
***************
*** 266,269 ****
--- 278,282 ----
if (pHandFlowLocal->FlowReplace & SERIAL_AUTO_RECEIVE) {
pIoPortLocal->writeHoldingRemote &= ~SERIAL_TX_WAITING_FOR_XON;
+ pIoPortLocal->writeHolding &= ~SERIAL_TX_WAITING_FOR_XON;
pIoPortLocal->sendXonXoff = C0C_XCHAR_ON;
pIoPortLocal->tryWrite = TRUE;
|