--- 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();