connectivity/com.nokia.tcf/native/TCFNative/TCFCommSerial/RealSerialComm.cpp
changeset 1481 c7f22cc57d44
parent 1473 6c45b7c9cdac
--- 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();