Update of /cvsroot/com0com/hub4com/plugins/serial
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11017
Modified Files:
comio.cpp
Log Message:
Added ability to SetEscMode() return LSR and MST for non com0com ports
Index: comio.cpp
===================================================================
RCS file: /cvsroot/com0com/hub4com/plugins/serial/comio.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** comio.cpp 22 Aug 2008 16:57:11 -0000 1.6
--- comio.cpp 26 Aug 2008 14:23:31 -0000 1.7
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.7 2008/08/26 14:23:31 vfrolov
+ * Added ability to SetEscMode() return LSR and MST for non com0com ports
+ *
* Revision 1.6 2008/08/22 16:57:11 vfrolov
* Added
***************
*** 353,375 ****
DWORD lenOutBufIoctl = 0;
! if (opts & C0CE_INSERT_IOCTL_GET) {
! if (opts & (C0CE_INSERT_ENABLE_LSR|C0CE_INSERT_ENABLE_LSR_BI))
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR);
! if (opts & C0CE_INSERT_ENABLE_MST)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR);
! if (opts & C0CE_INSERT_ENABLE_RBR)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(ULONG);
! if (opts & C0CE_INSERT_ENABLE_RLC)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR)*3;
! if (lenOutBufIoctl) {
! *ppBuf = pBufAlloc(lenOutBufIoctl);
! if (!*ppBuf)
! lenOutBufIoctl = 0;
! }
}
--- 356,376 ----
DWORD lenOutBufIoctl = 0;
! if (opts & (C0CE_INSERT_ENABLE_LSR|C0CE_INSERT_ENABLE_LSR_BI))
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR);
! if (opts & C0CE_INSERT_ENABLE_MST)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR);
! if (opts & C0CE_INSERT_ENABLE_RBR)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(ULONG);
! if (opts & C0CE_INSERT_ENABLE_RLC)
! lenOutBufIoctl += sizeof(UCHAR)*2 + sizeof(UCHAR)*3;
! if (lenOutBufIoctl) {
! *ppBuf = pBufAlloc(lenOutBufIoctl);
! if (!*ppBuf)
! lenOutBufIoctl = 0;
}
***************
*** 386,389 ****
--- 387,412 ----
}
+ if (lenOutBufIoctl && (opts & C0CE_INSERT_IOCTL_GET) == 0) {
+ BYTE *pBuf = *ppBuf;
+
+ if (opts & (C0CE_INSERT_ENABLE_LSR|C0CE_INSERT_ENABLE_LSR_BI)) {
+ *pBuf++ = escapeChar;
+ *pBuf++ = SERIAL_LSRMST_LSR_NODATA;
+ *pBuf++ = (LINE_STATUS_THRE | LINE_STATUS_TEMT);
+ }
+
+ if (opts & C0CE_INSERT_ENABLE_MST) {
+ DWORD stat;
+
+ if (::GetCommModemStatus(handle, &stat)) {
+ *pBuf++ = escapeChar;
+ *pBuf++ = SERIAL_LSRMST_MST;
+ *pBuf++ = (BYTE)stat;
+ }
+ }
+
+ *pDone = (DWORD)(pBuf - *ppBuf);
+ }
+
if (opts & C0CE_INSERT_ENABLE_MST)
escOptions &= ~ESC_OPTS_V2O_MST(MODEM_STATUS_BITS);
|