Prechádzať zdrojové kódy

添加波特率选择。

sat23 3 rokov pred
rodič
commit
75afc23cf4

+ 3 - 2
TCLTools/TCLTools/TCLTools.rc

@@ -98,14 +98,15 @@ BEGIN
     LTEXT           "单字节:",IDC_STATIC,16,90,28,8
     EDITTEXT        IDC_EDIT_HEX,49,197,451,115,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
     PUSHBUTTON      "执行",BTN_EXEC_CMD,236,26,34,14
-    PUSHBUTTON      "打开串口",BTN_OPEN_PORT,92,10,50,14
+    PUSHBUTTON      "打开串口",BTN_OPEN_PORT,168,10,50,14
     LTEXT           "字符串:",IDC_STATIC,16,108,28,8
     LTEXT           "十六进制:",IDC_STATIC,10,197,35,8
     EDITTEXT        IDC_EDIT_STATUS,49,73,74,14,ES_AUTOHSCROLL | ES_READONLY
     GROUPBOX        "结果",IDC_STATIC_RESULT,7,60,497,256
     LTEXT           "错误:",IDC_STATIC,131,74,22,8
     EDITTEXT        IDC_EDIT_ERROR,153,73,348,31,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
-    PUSHBUTTON      "重新加载命令",BTN_RELOAD_CMD,144,10,50,14
+    PUSHBUTTON      "重新加载命令",BTN_RELOAD_CMD,220,10,50,14
+    COMBOBOX        IDC_COMBO_BUADRATE,96,11,58,123,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 END
 
 

+ 25 - 1
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -104,6 +104,7 @@ void CTCLToolsDlg::DoDataExchange(CDataExchange* pDX)
     CDialog::DoDataExchange(pDX);
     DDX_Control(pDX, IDC_COMBO_PORTS, m_cbSerial);
     DDX_Control(pDX, IDC_COMBO_CMDS, m_cbCommands);
+    DDX_Control(pDX, IDC_COMBO_BUADRATE, m_cb_baudrate);
 }
 
 BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
@@ -144,6 +145,20 @@ BOOL CTCLToolsDlg::OnInitDialog()
         m_cbSerial.SetCurSel(0);
     }
 
+    m_cb_baudrate.AddString(_T("1200"));
+    m_cb_baudrate.AddString(_T("2400"));
+    m_cb_baudrate.AddString(_T("4800"));
+    m_cb_baudrate.AddString(_T("9600"));
+    m_cb_baudrate.AddString(_T("19200"));
+    m_cb_baudrate.AddString(_T("38400"));
+    m_cb_baudrate.AddString(_T("57600"));
+    m_cb_baudrate.AddString(_T("115200"));
+    m_cb_baudrate.AddString(_T("460800"));
+    m_cb_baudrate.AddString(_T("921600"));
+    m_cb_baudrate.AddString(_T("230400"));
+
+    m_cb_baudrate.SelectString(0, _T("115200"));
+
 	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
 }
 
@@ -258,7 +273,16 @@ void CTCLToolsDlg::OnBnClickedOpenPort()
             if ( g_tclCommand.IsOpen())
                 g_tclCommand.Close();
 
-            if ( g_tclCommand.Open(atol(strText.Mid(3).GetString()), 115200) )
+            CString strBaudRate = _T("");
+            nCurSel = m_cb_baudrate.GetCurSel();
+            if ( nCurSel == CB_ERR )
+            {
+                MessageBox("请选择波特率", "错误!", MB_ICONEXCLAMATION);
+                return;
+            }
+
+            m_cb_baudrate.GetLBText(nCurSel, strBaudRate);
+            if ( g_tclCommand.Open(atol(strText.Mid(3).GetString()), atoi(strBaudRate)) )
             {
                 SetDlgItemText(BTN_OPEN_PORT, _T("关闭串口"));
                 m_cbSerial.EnableWindow(FALSE);

+ 1 - 0
TCLTools/TCLTools/TCLToolsDlg.h

@@ -47,4 +47,5 @@ protected:
     virtual void OnCancel();
 public:
     afx_msg void OnBnClickedReloadCmd();
+    CComboBox m_cb_baudrate;
 };

+ 4 - 2
TCLTools/TCLTools/resource.h

@@ -22,14 +22,16 @@
 #define IDC_EDIT_ERROR                  1013
 #define BTN_RELOAD_CMD                  1014
 #define IDC_STATIC_RESULT               1015
+#define IDC_COMBO1                      1016
+#define IDC_COMBO_BUADRATE              1016
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        130
+#define _APS_NEXT_RESOURCE_VALUE        131
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1016
+#define _APS_NEXT_CONTROL_VALUE         1017
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif