Преглед на файлове

调整工具读取文件和字符串的内容功能。

jianfeng1.wang преди 2 години
родител
ревизия
5b52f5766d
променени са 4 файла, в които са добавени 72 реда и са изтрити 35 реда
  1. 6 5
      TCLTools/TCLTools/TCLTools.rc
  2. 62 29
      TCLTools/TCLTools/TCLToolsDlg.cpp
  3. 1 0
      TCLTools/TCLTools/TCLToolsDlg.h
  4. 3 1
      TCLTools/TCLTools/resource.h

+ 6 - 5
TCLTools/TCLTools/TCLTools.rc

@@ -87,11 +87,11 @@ BEGIN
     LTEXT           "串口:",IDC_STATIC,15,13,22,8
     COMBOBOX        IDC_COMBO_CMDS,39,27,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "设置:",IDC_STATIC,15,29,22,8
-    EDITTEXT        IDC_EDIT_KEY,39,96,198,14,ES_AUTOHSCROLL | ES_READONLY
-    PUSHBUTTON      "打开key",BTN_OPEN_FILE,243,96,34,14
-    CONTROL         "HEX-BIN",IDC_CHECK_HB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,283,98,36,10
-    CONTROL         "BIN-HEX",IDC_CHECK_BH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,328,98,37,10
-    LTEXT           "文件:",IDC_STATIC,15,98,22,8
+    EDITTEXT        IDC_EDIT_KEY,39,96,198,14,ES_AUTOHSCROLL
+    PUSHBUTTON      "打开key",BTN_OPEN_FILE,283,96,34,14,NOT WS_VISIBLE
+    CONTROL         "HEX-BIN",IDC_CHECK_HB,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,323,98,36,10
+    CONTROL         "BIN-HEX",IDC_CHECK_BH,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,368,98,37,10
+    LTEXT           "内容:",IDC_STATIC,15,98,22,8
     LTEXT           "状态:",IDC_STATIC,22,126,22,8
     EDITTEXT        IDC_EDIT_INT,49,141,74,12,ES_AUTOHSCROLL | ES_READONLY
     EDITTEXT        IDC_EDIT_STR,49,156,451,87,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
@@ -117,6 +117,7 @@ BEGIN
     COMBOBOX        IDC_COMBO_CMDS4,39,78,144,159,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     LTEXT           "写入:",IDC_STATIC,15,80,22,8
     PUSHBUTTON      "执行",BTN_EXEC_CMD4,189,77,40,14
+    CONTROL         "使用文件",IDC_CHECK_USEFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,240,98,43,10
 END
 
 

+ 62 - 29
TCLTools/TCLTools/TCLToolsDlg.cpp

@@ -124,6 +124,7 @@ BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
 	ON_BN_CLICKED(BTN_EXEC_CMD2, &CTCLToolsDlg::OnBnClickedExecCmd2)
 	ON_BN_CLICKED(BTN_EXEC_CMD3, &CTCLToolsDlg::OnBnClickedExecCmd3)
 	ON_BN_CLICKED(BTN_EXEC_CMD4, &CTCLToolsDlg::OnBnClickedExecCmd4)
+	ON_BN_CLICKED(IDC_CHECK_USEFILE, &CTCLToolsDlg::OnBnClickedCheckUsefile)
 END_MESSAGE_MAP()
 
 
@@ -498,41 +499,63 @@ void CTCLToolsDlg::ExecuteCommand(CString strCMDName)
 		CString strText;
 		bool bStatus = false;
 		CommandParam cmdpara;
+		BOOL bCheckUseFile = ((CButton*)GetDlgItem(IDC_CHECK_USEFILE))->GetCheck();
 		g_tclCommand.GetCommandParams(strCMDName.GetString(), cmdpara);
 		if ( cmdpara.nOption == CMDOPT_Write)
 		{
-			// 需要选择文件;
 			GetDlgItemText(IDC_EDIT_KEY, strText);
-			if ( !PathFileExists(strText) )
-			{
-				if ( MessageBox("Set指令没有选择Key文件,是否继续?", "警告!", MB_ICONWARNING|MB_YESNO) == IDNO )
-					return;
-				bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);
+			if ( bCheckUseFile )
+			{// 使用key文件;
+				if ( !PathFileExists(strText) )
+				{
+					if ( MessageBox("Set指令没有选择Key文件,是否继续?", "警告!", MB_ICONWARNING|MB_YESNO) == IDNO )
+						return;
+					// 发送空key指令;
+					bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);
+				}
+				else 
+				{
+					std::string data;
+					if ( ReadKeyFromFile(strText.GetString(), data) )
+					{
+						// 默认读取内容;
+						BOOL bCheckHB = ((CButton*)GetDlgItem(IDC_CHECK_HB))->GetCheck();
+						BOOL bCheckBH = ((CButton*)GetDlgItem(IDC_CHECK_BH))->GetCheck();
+						if ( !bCheckBH && !bCheckHB )
+						{// 原始文件内容;
+							g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)data.c_str(), data.size());
+						}
+						else if ( !bCheckBH && bCheckHB )
+						{// 将文件内容按十六进制转字节;
+							// 去除所有空格;
+							utils::trim(data);
+							std::string strBytes = utils::HexStringToBytes(data,2);
+							g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
+						}
+						else if ( bCheckBH && !bCheckHB )
+						{// 将文件内容按字节转十六进制;
+							std::string strBytes = utils::BytesToHexString((const unsigned char *)data.c_str(), data.size());
+							g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
+						}
+					}
+				}
 			}	
 			else
-			{
-				std::string data;
-				if ( ReadKeyFromFile(strText.GetString(), data) )
+			{// 使用十六进制字符串;
+				if ( strText.IsEmpty() )
 				{
-					// 默认读取内容;
-					BOOL bCheckHB = ((CButton*)GetDlgItem(IDC_CHECK_HB))->GetCheck();
-					BOOL bCheckBH = ((CButton*)GetDlgItem(IDC_CHECK_BH))->GetCheck();
-					if ( !bCheckBH && !bCheckHB )
-					{// 原始文件内容;
-						g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)data.c_str(), data.size());
-					}
-					else if ( !bCheckBH && bCheckHB )
-					{// 将文件内容按十六进制转字节;
-						// 去除所有空格;
-						utils::trim(data);
-						std::string strBytes = utils::HexStringToBytes(data,2);
-						g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
-					}
-					else if ( bCheckBH && !bCheckHB )
-					{// 将文件内容按字节转十六进制;
-						std::string strBytes = utils::BytesToHexString((const unsigned char *)data.c_str(), data.size());
-						g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
-					}
+					if ( MessageBox("Set指令没有输入十六进制字符,是否继续?", "警告!", MB_ICONWARNING|MB_YESNO) == IDNO )
+						return;
+					// 发送空key指令;
+					bStatus = g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara);
+				}
+				else 
+				{
+					std::string data = strText;
+					// 去除所有空格;
+					utils::trim(data);
+					std::string strBytes = utils::HexStringToBytes(data,2);
+					g_tclCommand.SendCommand(strCMDName.GetString(), cmdpara, (LPVOID)strBytes.c_str(), strBytes.size());
 				}
 			}
 		}
@@ -593,4 +616,14 @@ void CTCLToolsDlg::ExecuteCommand(CString strCMDName)
 	{
 		MessageBox("串口未打开", "错误!", MB_ICONEXCLAMATION);
 	}
-}
+}
+
+void CTCLToolsDlg::OnBnClickedCheckUsefile()
+{
+	// TODO: 在此添加控件通知处理程序代码
+	BOOL bCheck = ((CButton*)GetDlgItem(IDC_CHECK_USEFILE))->GetCheck();
+	GetDlgItem(IDC_EDIT_KEY)->EnableWindow(!bCheck);
+	GetDlgItem(BTN_OPEN_FILE)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
+	GetDlgItem(IDC_CHECK_HB)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
+	GetDlgItem(IDC_CHECK_BH)->ShowWindow(bCheck ? SW_SHOW : SW_HIDE);
+}

+ 1 - 0
TCLTools/TCLTools/TCLToolsDlg.h

@@ -59,4 +59,5 @@ public:
 
 	// Ö´ÐÐÃüÁî;
 	void ExecuteCommand(CString strCMDName);
+	afx_msg void OnBnClickedCheckUsefile();
 };

+ 3 - 1
TCLTools/TCLTools/resource.h

@@ -32,6 +32,8 @@
 #define BTN_EXEC_CMD3                   1020
 #define IDC_COMBO_CMDS4                 1021
 #define BTN_EXEC_CMD4                   1022
+#define IDC_CHECK1                      1023
+#define IDC_CHECK_USEFILE               1023
 
 // Next default values for new objects
 // 
@@ -39,7 +41,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        132
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1017
+#define _APS_NEXT_CONTROL_VALUE         1024
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif