diff -r fb0e02cb252b -r c7f22cc57d44 connectivity/com.nokia.tcf/native/TCFNative/TCFCommSerial/RealSerialComm.cpp --- a/connectivity/com.nokia.tcf/native/TCFNative/TCFCommSerial/RealSerialComm.cpp Wed Jun 16 11:39:35 2010 -0500 +++ b/connectivity/com.nokia.tcf/native/TCFNative/TCFCommSerial/RealSerialComm.cpp Wed Jun 16 17:27:41 2010 -0500 @@ -466,7 +466,6 @@ if (lclErrorFlags) { // there really was an error - m_lastCommError = lclErrorFlags; err = TCAPI_ERR_COMM_ERROR; COMMLOGOPEN(); COMMLOGA1("CRealSerialComm::SendDataToPort ClearCommError succeeded lclErrorFlags=%d\n", lclErrorFlags); @@ -476,9 +475,18 @@ { // No OS error returned, but WriteFile failed to write out all bytes // therefore, since we are not doing overlapped I/O, this is an error. - err = TCAPI_ERR_COMM_ERROR; +// DUMPCOMSTAT(&lclComStat); + BOOL flush = FlushFileBuffers(m_hSerial); // flush transmit buffer +// ClearCommError(m_hSerial, &lclErrorFlags, &lclComStat); +// if (WriteFile(m_hSerial, inData, inSize, &lclNumBytes, NULL)) +// { +// COMMLOGOPEN(); +// COMMLOGA1("CRealSerialComm::SendDataToPort WriteFile#2 succeeded lclNumBytes=%d\n", lclNumBytes); +// COMMLOGCLOSE(); +// } + err = TCAPI_ERR_COMM_ERROR_DEVICE_NOT_READING; COMMLOGOPEN(); - COMMLOGA1("CRealSerialComm::SendDataToPort ClearCommError succeeded lclErrorFlags=0 err=%d\n", m_lastCommError); + COMMLOGA2("CRealSerialComm::SendDataToPort ClearCommError succeeded lclErrorFlags=0 err=%d flush=%d\n", m_lastCommError, flush); COMMLOGCLOSE(); // DUMPCOMSTAT(&lclComStat); } @@ -493,7 +501,7 @@ COMMLOGS("CRealSerialComm::SendDataToPort WriteFile successful\n"); BYTE* ptr = (BYTE*)inData; long numBytes = (inSize > 80) ? 80 : inSize; - char msg[200]; + char msg[300]; sprintf(msg, "CRealSerialComm::SendDataToPort = "); for (int i = 0; i < numBytes; i++) { @@ -525,13 +533,14 @@ COMSTAT lclComStat; DWORD lclErrorFlags=0; - if (!IsConnected()) + if (!IsConnected() || m_hSerial == INVALID_HANDLE_VALUE) return TCAPI_ERR_MEDIA_NOT_OPEN; + // Sleep(1); if (!ClearCommError( m_hSerial, &lclErrorFlags, &lclComStat )) { - if (!IsConnected()) + if (!IsConnected() || m_hSerial == INVALID_HANDLE_VALUE) return TCAPI_ERR_MEDIA_NOT_OPEN; m_lastCommError = GetLastError();