Performs more complete COM port initialization on Win32 to "clear out" settings in...
authordeuce <deuce@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 6 May 2014 04:20:22 +0000 (04:20 +0000)
committerdeuce <deuce@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 6 May 2014 04:20:22 +0000 (04:20 +0000)
Should fix the issue reported by WB8ILI if he's using Windows.

git-svn-id: https://svn.code.sf.net/p/freetel/code@1591 01035d8c-6547-0410-b346-abe4f91aad63

fdmdv2/src/fdmdv2_main.cpp

index c95ffc69f49ba5ad6b47b3cb10f8470b1b69e49d..ebb4c646fa46cbfe7f1dbbae71689423eddce9d0 100644 (file)
@@ -604,9 +604,20 @@ bool MainFrame::openComPort(const char *name)
 
                /* Force N-8-1 mode: */
                if(GetCommState(com_handle, &dcb)==TRUE) {
-                       dcb.ByteSize    = 8;
-                       dcb.Parity              = NOPARITY;
-                       dcb.StopBits    = ONESTOPBIT;
+                       dcb.ByteSize            = 8;
+                       dcb.Parity                      = NOPARITY;
+                       dcb.StopBits            = ONESTOPBIT;
+                       dcb.DCBlength           = sizeof(DCB);
+                       dcb.fBinary                     = TRUE;
+                       dcb.fOutxCtsFlow        = FALSE;
+                       dcb.fOutxDsrFlow        = FALSE;
+                       dcb.fDtrControl         = DTR_CONTROL_DISABLE;
+                       dcb.fDsrSensitivity     = FALSE;
+                       dcb.fTXContinueOnXoff= TRUE;
+                       dcb.fOutX                       = FALSE;
+                       dcb.fInX                        = FALSE;
+                       dcb.fRtsControl         = RTS_CONTROL_DISABLE;
+                       dcb.fAbortOnError       = FALSE;
                        SetCommState(com_handle, &dcb);
                }
        }