Browse Source

完成对csv文件的判断

JeffWang 3 years ago
parent
commit
5303a8db6c

+ 30 - 3
Source/OGCAssistTool/OGCAssistTool/DlgLogin.cpp

@@ -4,7 +4,7 @@
 #include "stdafx.h"
 #include "OGCAssistTool.h"
 #include "DlgLogin.h"
-
+#include "MD5.h"
 
 // CDlgLogin 对话框
 
@@ -60,6 +60,12 @@ BOOL CDlgLogin::OnInitDialog()
 	//SetBackgroundColor(RGB(125,0,25));
 	SetBackgroundImage(IDB_LOGO);
 
+	if ( _tcslen(GLOBAL::g_config.szLine) )
+		SetDlgItemText(EDIT_LINE, GLOBAL::g_config.szLine);
+
+	if ( _tcslen(GLOBAL::g_config.szAccount) )
+		SetDlgItemText(EDIT_ACCOUNT, GLOBAL::g_config.szAccount);
+
 	return TRUE;  // return TRUE unless you set the focus to a control
 	// 异常: OCX 属性页应返回 FALSE
 }
@@ -99,13 +105,18 @@ HBRUSH CDlgLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 
 void CDlgLogin::OnBnClickedOk()
 {
-	return CDialogEx::OnOK();
 	// TODO: 在此添加控件通知处理程序代码
 	CString strAccount, strPassword, strLine;
 	GetDlgItemText(EDIT_LINE, strLine);
 	GetDlgItemText(EDIT_ACCOUNT, strAccount);
 	GetDlgItemText(EDIT_PASSWORD, strPassword);
 
+#ifdef _DEBUG
+	GLOBAL::g_config.nOffline = ((CButton*)GetDlgItem(CHECK_OFFLINE))->GetCheck();
+	_stprintf_s(GLOBAL::g_config.szLine, _T("%s"), strLine.GetString());
+	return CDialogEx::OnOK();
+#endif
+
 	if ( strAccount.IsEmpty() )
 	{
 		MessageBox(_T("请输入账号"), _T("提示"), MB_OK);
@@ -125,11 +136,12 @@ void CDlgLogin::OnBnClickedOk()
 	}
 
 	GLOBAL::g_config.nOffline = ((CButton*)GetDlgItem(CHECK_OFFLINE))->GetCheck();
+	_stprintf_s(GLOBAL::g_config.szLine, _T("%s"), strLine.GetString());
 
 #pragma region 账号密码验证
 	// 获取账号密码;
 	// 默认账号密码:OGCAssist、OGC+当前PC日期年月日;
-	if ( true )
+	if ( _tcslen(GLOBAL::g_config.szAccount) == 0 )
 	{
 		if ( strAccount != _T("Assist") )
 		{
@@ -145,6 +157,21 @@ void CDlgLogin::OnBnClickedOk()
 			return;
 		}
 	}
+	else
+	{
+		CMD5 md5((BYTE*)strPassword.GetString(), strPassword.GetLength()*sizeof(TCHAR));
+		if ( _tcscmp(GLOBAL::g_config.szAccount, strAccount.GetString()) != 0 )
+		{
+			MessageBox(_T("账号错误"), _T("提示"), MB_OK);
+			return;
+		}
+
+		if ( _tcscmp(GLOBAL::g_config.szPassword, md5.GetMD5Digest()) != 0 )
+		{
+			MessageBox(_T("账号错误"), _T("提示"), MB_OK);
+			return;
+		}
+	}
 #pragma endregion
 
 	CDialogEx::OnOK();

+ 63 - 0
Source/OGCAssistTool/OGCAssistTool/Global.cpp

@@ -144,6 +144,69 @@ again:
 		return  nIndex < nLine ? std::string() : strTemp;
 	}
 
+	void GetStringList(std::string strData, std::string strSplit, std::vector<std::string> &vtString)
+	{
+		int nPos = -1;
+		std::string strTemp;
+		vtString.clear();
+		do 
+		{
+			nPos = strData.find(strSplit);
+			if ( nPos != std::string::npos )
+			{
+				strTemp = strData.substr(0, nPos);
+				vtString.push_back(strTemp);
+				strData = strData.substr(nPos+strSplit.size());
+			}
+		} while (nPos != -1);
+	}
+
+	BOOL FindString(std::vector<std::string> &vtString, std::string strFind, std::string &strResult)
+	{
+		std::string strTemp;
+		for (std::vector<std::string>::iterator it = vtString.begin(); it != vtString.end(); it++ )
+		{
+			if ( strTemp.find(strFind) != -1 )
+			{
+				strResult = strTemp;
+				return TRUE;
+			}
+		}
+
+		return FALSE;
+	}
+
+	INT CheckOutData(std::vector<std::string> &vtData, std::vector<RGB_PAT> &vtResult)
+	{
+		if ( vtData.size() < 3 )
+			return 0;
+
+		int nIndex = 0;
+		for (std::vector<std::string>::iterator it = vtData.begin(); it != vtData.end(); it++ )
+		{
+			std::vector<std::string> vtItem;
+			GetStringList(it->c_str(), ",", vtItem);
+			if ( vtItem.size() >= 20 && nIndex > 1)
+			{
+				// R,G,B,76,94,00
+				// 1,2,3,13,14,15
+				RGB_PAT rgb_pat;
+				rgb_pat.R = vtItem.at(0);
+				rgb_pat.G = vtItem.at(1);
+				rgb_pat.B = vtItem.at(2);
+				rgb_pat.deltaE76 = vtItem.at(12);
+				rgb_pat.deltaE94 = vtItem.at(13);
+				rgb_pat.deltaE00 = vtItem.at(14);
+
+				vtResult.push_back(rgb_pat);
+			}
+
+			nIndex++;
+		}
+
+		return 0;
+	}
+
 	DWORD FindProcess(LPCTSTR lpProName)
 	{
 		ASSERT(lpProName!=NULL);

+ 13 - 0
Source/OGCAssistTool/OGCAssistTool/Global.h

@@ -142,6 +142,16 @@ namespace GLOBAL {
 		}
 	}CONFIG, *LPCONFIG;
 
+	typedef struct __RGB_PATTERNS__
+	{
+		std::string R;
+		std::string G;
+		std::string B;
+		std::string deltaE76;
+		std::string deltaE94;
+		std::string deltaE00;
+	}RGB_PAT, *LPRGB_PAT;
+
 	extern CDataImpl g_db;
 	extern CIOCPPipe g_IOCP;
 	// DLL×¢Èë״̬;
@@ -166,6 +176,9 @@ namespace GLOBAL {
 
 	std::string GetFileData(LPCTSTR lpFile);
 	std::string GetFileLine(std::string &strFileData, int nLine);
+	INT CheckOutData(std::vector<std::string> &vtData, std::vector<RGB_PAT> &vtResult);
+	BOOL FindString(std::vector<std::string> &vtString, std::string strFind, std::string &strResult);
+	void GetStringList(std::string strData, std::string strSplit, std::vector<std::string> &vtString);
 	BOOL GetFileVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);
 	BOOL GetFileVersionEx( IN LPCTSTR lpFileName, IN DWORD (&dwArray)[4] );
 	BOOL GetProductVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);

+ 9 - 0
Source/OGCAssistTool/OGCAssistTool/OGCAssistTool.cpp

@@ -140,6 +140,15 @@ BOOL COGCAssistToolApp::InitInstance()
 	GLOBAL::g_db.InsertSN("5555", "T302", "dfdfdf", "2022-03-19 09:25:19", "2022-03-19 09:25:59", 25532, 1, 3.2, "");
 	GLOBAL::g_db.UpdateSNData("5555", "dfdfdf", "T302",  "2022-03-19 09:25:19", "2022-03-19 09:25:59", 25532, 1, 3.2, "3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n3.02/128/128/128\r\n");
 	GLOBAL::g_db.QueryOrders(vtOrder, "2022-04-01 02:25:19", "2022-04-21 02:25:19");
+
+	TCHAR szCSV[MAX_PATH] = {0};
+	_tcscat_s(szCSV, _T("F:\\cfg\\bin\\OGCAssistTool\\OGC_Tool_V2.21.1.3_210929\\Output\\sRGB_32Patterns_.csv"));
+	std::string strFileData = GLOBAL::GetFileData(szCSV);
+	std::string strFindString = "\r\n";
+	std::vector<std::string> vtString;
+	GLOBAL::GetStringList(strFileData, strFindString, vtString);
+	std::vector<GLOBAL::RGB_PAT> vtRGB;
+	GLOBAL::CheckOutData(vtString, vtRGB);
 #endif
 
 #pragma region ´ò¿ªÄ¿±ê½ø³Ì;

+ 31 - 13
Source/OGCAssistTool/OGCAssistTool/OGCAssistTool.rc

@@ -119,26 +119,27 @@ EXSTYLE WS_EX_STATICEDGE
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
     GROUPBOX        "参数",IDC_STATIC,7,7,717,31
-    EDITTEXT        EDIT_LINE,41,18,52,14,ES_AUTOHSCROLL | ES_READONLY
-    LTEXT           "线体:",IDC_STATIC,15,21,25,8
-    EDITTEXT        EDIT_BATCH_NUMBER,129,18,96,14,ES_AUTOHSCROLL
-    LTEXT           "BOM:",IDC_STATIC,103,21,24,8
-    CONTROL         "锁定",CHECK_LOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,226,20,32,10,WS_EX_TRANSPARENT
-    LTEXT           "▲E标准值:",IDC_STATIC,359,21,43,8
-    LTEXT           "▲E类型:",IDC_STATIC,266,21,35,8
-    COMBOBOX        COMBO_ETYPE,301,18,48,80,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-    EDITTEXT        EDIT_EVALUE,405,18,48,14,ES_AUTOHSCROLL
-    CONTROL         "",IDC_SPIN1,"msctls_updown32",UDS_ARROWKEYS,454,18,11,14
-    EDITTEXT        EDIT_SN,499,18,154,14,ES_AUTOHSCROLL
-    LTEXT           "SN:",IDC_STATIC,478,21,17,8
+    EDITTEXT        EDIT_LINE,37,18,52,14,ES_AUTOHSCROLL | ES_READONLY
+    LTEXT           "线体:",IDC_STATIC,15,21,20,8
+    EDITTEXT        EDIT_BATCH_NUMBER,119,18,96,14,ES_AUTOHSCROLL
+    LTEXT           "BOM:",IDC_STATIC,98,21,18,8
+    CONTROL         "锁定",CHECK_LOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,457,20,32,10,WS_EX_TRANSPARENT
+    LTEXT           "▲E标准值:",IDC_STATIC,355,21,38,8
+    LTEXT           "▲E类型:",IDC_STATIC,266,21,30,8
+    COMBOBOX        COMBO_ETYPE,301,18,48,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    EDITTEXT        EDIT_EVALUE,394,18,48,14,ES_AUTOHSCROLL
+    CONTROL         "",SPIN_EVALUE,"msctls_updown32",UDS_ARROWKEYS,443,18,11,14
+    EDITTEXT        EDIT_SN,514,18,154,14,ES_AUTOHSCROLL
+    LTEXT           "SN:",IDC_STATIC,500,21,11,8
     CONTROL         "",LIST_DEBUG_DATA,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,41,717,242
     GROUPBOX        "结果:",IDC_STATIC,7,284,717,31
     LTEXT           "▲E平均值:",IDC_STATIC,15,298,43,8
     EDITTEXT        EDIT_ARG_EVALUE,64,295,73,14,ES_AUTOHSCROLL | ES_READONLY
     PUSHBUTTON      "显示窗口",BTN_SHOW_WND,557,295,50,14
     CONTROL         "劫持窗口",CHECK_HIJACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,669,297,48,10
-    PUSHBUTTON      "测试",BTN_TEST,663,18,50,14
+    PUSHBUTTON      "测试",BTN_TEST,669,18,50,14
     PUSHBUTTON      "连接设备",BTN_CONNECT,612,295,50,14
+    PUSHBUTTON      "加载数据",BTN_LOAD_DATA,216,18,40,14
 END
 
 PAGE_LOG DIALOGEX 0, 0, 732, 322
@@ -286,6 +287,23 @@ END
 IDB_LOGO                BITMAP                  "res\\logo.bmp"
 IDB_TAB                 BITMAP                  "res\\tab.bmp"
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog Info
+//
+
+PAGE_DEBUG DLGINIT
+BEGIN
+    COMBO_ETYPE, 0x403, 9, 0
+0x6544, 0x746c, 0x4561, 0x3030, "\000" 
+    COMBO_ETYPE, 0x403, 9, 0
+0x6544, 0x746c, 0x4561, 0x3637, "\000" 
+    COMBO_ETYPE, 0x403, 9, 0
+0x6544, 0x746c, 0x4561, 0x3439, "\000" 
+    0
+END
+
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // String Table

+ 45 - 1
Source/OGCAssistTool/OGCAssistTool/PageDebug.cpp

@@ -45,6 +45,8 @@ BEGIN_MESSAGE_MAP(CPageDebug, CDialogEx)
 	ON_BN_CLICKED(BTN_TEST, &CPageDebug::OnBnClickedTest)
 	ON_BN_CLICKED(BTN_CONNECT, &CPageDebug::OnBnClickedConnect)
 	ON_WM_TIMER()
+	ON_BN_CLICKED(CHECK_LOCK, &CPageDebug::OnBnClickedLock)
+	ON_BN_CLICKED(BTN_LOAD_DATA, &CPageDebug::OnBnClickedLoadData)
 END_MESSAGE_MAP()
 
 
@@ -59,6 +61,31 @@ BOOL CPageDebug::OnInitDialog()
 	SetBackgroundColor(RGB(200,200,200));
 	InitListCtrl();
 
+	if ( !GLOBAL::g_config.nOffline )
+	{
+		// 在线模式;
+		GetDlgItem(COMBO_ETYPE)->EnableWindow(FALSE);
+		GetDlgItem(EDIT_EVALUE)->EnableWindow(FALSE);
+		GetDlgItem(SPIN_EVALUE)->EnableWindow(FALSE);
+	}
+	else
+	{
+		// 离线模式;
+		CRect rcBtn;
+		CRect rcEdit;
+		GetDlgItem(BTN_LOAD_DATA)->GetWindowRect(&rcBtn);
+		GetDlgItem(EDIT_BATCH_NUMBER)->GetWindowRect(&rcEdit);
+		GetDlgItem(BTN_LOAD_DATA)->ShowWindow(FALSE);
+		//GetDlgItem(EDIT_BATCH_NUMBER)->ClientToScreen(rcEdit);
+		//GetDlgItem(EDIT_BATCH_NUMBER)->MoveWindow(rcEdit.left, rcEdit.top, rcEdit.Width()+rcBtn.Width(), rcEdit.Height(), TRUE);
+		GetDlgItem(EDIT_BATCH_NUMBER)->SetWindowPos(NULL, rcEdit.left, rcEdit.top, rcEdit.Width()+rcBtn.Width(), rcEdit.Height(), SWP_NOZORDER|SWP_NOMOVE);
+
+		TCHAR szValue[8] = {0};
+		SetDlgItemText(EDIT_EVALUE, GLOBAL::g_config.szDeltaEValue);
+		SetDlgItemText(EDIT_BATCH_NUMBER, GLOBAL::g_config.szBatchNumber);
+		((CComboBox*)GetDlgItem(COMBO_ETYPE))->SetCurSel(GLOBAL::g_config.nDeltaEType);
+	}
+
 	GLOBAL::g_IOCP.SetCallBack(ConnectProc, NULL, GoProc, NULL);
 
 	return TRUE;  // return TRUE unless you set the focus to a control
@@ -74,7 +101,6 @@ HBRUSH CPageDebug::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 	{
 	case CHECK_LOCK:
 	case CHECK_HIJACK:
-	case CHECK_RESUME_HIJACKING:
 		{
 #if 1 // 透明控件处理;
 			pDC->SetBkMode(TRANSPARENT);
@@ -430,3 +456,21 @@ void CPageDebug::OnCancel()
 
 	//CDialogEx::OnCancel();
 }
+
+void CPageDebug::OnBnClickedLock()
+{
+	// TODO: 在此添加控件通知处理程序代码
+	BOOL bCheckLock = !((CButton*)GetDlgItem(CHECK_LOCK))->GetCheck();
+	GetDlgItem(EDIT_BATCH_NUMBER)->EnableWindow(bCheckLock);
+	if ( GLOBAL::g_config.nOffline )
+	{
+		GetDlgItem(COMBO_ETYPE)->EnableWindow(bCheckLock);
+		GetDlgItem(EDIT_EVALUE)->EnableWindow(bCheckLock);
+		GetDlgItem(SPIN_EVALUE)->EnableWindow(bCheckLock);
+	}
+}
+
+void CPageDebug::OnBnClickedLoadData()
+{
+	// TODO: 在此添加控件通知处理程序代码
+}

+ 3 - 0
Source/OGCAssistTool/OGCAssistTool/PageDebug.h

@@ -47,4 +47,7 @@ public:
 protected:
 	virtual void OnOK();
 	virtual void OnCancel();
+public:
+	afx_msg void OnBnClickedLock();
+	afx_msg void OnBnClickedLoadData();
 };

+ 3 - 3
Source/OGCAssistTool/OGCAssistTool/resource.h

@@ -30,16 +30,16 @@
 #define IDC_EDIT3                       1006
 #define EDIT_EVALUE                     1006
 #define IDC_SPIN1                       1007
+#define SPIN_EVALUE                     1007
 #define IDC_EDIT4                       1008
 #define EDIT_SN                         1008
 #define LIST_DEBUG_DATA                 1009
 #define EDIT_ARG_EVALUE                 1010
-#define BTN_HIDE_WND                    1011
 #define CHECK_HIJACK                    1012
 #define BTN_SHOW_WND                    1013
-#define CHECK_RESUME_HIJACKING          1014
 #define BTN_TEST                        1015
 #define BTN_CONNECT                     1016
+#define BTN_LOAD_DATA                   1017
 
 // Next default values for new objects
 // 
@@ -47,7 +47,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        133
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1017
+#define _APS_NEXT_CONTROL_VALUE         1018
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif