Browse Source

基本完成

Wang Jeff 3 years ago
parent
commit
5e06187e5b

+ 3 - 3
FATP_FQC/FATP_FQC/FATP_FQC.rc

@@ -88,7 +88,7 @@ BEGIN
     DEFPUSHBUTTON   "È·¶¨",IDOK,113,41,50,14,WS_GROUP
 END
 
-IDD_FATP_FQC_DIALOG DIALOGEX 0, 0, 319, 215
+IDD_FATP_FQC_DIALOG DIALOGEX 0, 0, 319, 271
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_APPWINDOW
 CAPTION "FATP_FQC"
@@ -96,7 +96,7 @@ FONT 9, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
     PUSHBUTTON      "Get Log",BTN_GET_LOG,17,19,50,14
     PUSHBUTTON      "Shop Init",BTN_SHOP_INIT,74,19,50,14
-    CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,43,305,165
+    CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,43,305,221
     GROUPBOX        "Operation",IDC_STATIC,7,7,305,31
 END
 
@@ -161,7 +161,7 @@ BEGIN
         LEFTMARGIN, 7
         RIGHTMARGIN, 312
         TOPMARGIN, 7
-        BOTTOMMARGIN, 208
+        BOTTOMMARGIN, 264
     END
 END
 #endif    // APSTUDIO_INVOKED

+ 3 - 3
FATP_FQC/FATP_FQC/FATP_FQC.vcproj

@@ -99,8 +99,8 @@
 			OutputDirectory="..\..\..\bin\$(SolutionName)"
 			IntermediateDirectory="$(OutDir)\$(ProjectName)\$(ConfigurationName)"
 			ConfigurationType="1"
-			UseOfMFC="2"
-			CharacterSet="1"
+			UseOfMFC="1"
+			CharacterSet="2"
 			WholeProgramOptimization="1"
 			>
 			<Tool
@@ -127,7 +127,7 @@
 				EnableIntrinsicFunctions="true"
 				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
 				MinimalRebuild="false"
-				RuntimeLibrary="2"
+				RuntimeLibrary="0"
 				EnableFunctionLevelLinking="true"
 				UsePrecompiledHeader="2"
 				WarningLevel="3"

+ 42 - 4
FATP_FQC/FATP_FQC/FATP_FQCDlg.cpp

@@ -101,8 +101,20 @@ BOOL CFATP_FQCDlg::OnInitDialog()
 	SetIcon(m_hIcon, FALSE);		// 设置小图标
 
 	// TODO: 在此添加额外的初始化代码
+	// 初始化列表;
+	m_list.InsertColumn( 0, _T("DSN"));
+	m_list.SetColumnWidth( 0, 200 );
+	m_list.InsertColumn( 1, _T("Log"));
+	m_list.SetColumnWidth( 1, 100 );
+	m_list.InsertColumn( 2, _T("percent"));
+	m_list.SetColumnWidth( 2, 120);
+	m_list.InsertColumn( 3, _T("Result"));
+	m_list.SetColumnWidth( 3, 100);
+
 #ifdef _DEBUG
-	CheckLog(_T("F:\\cfg\\bin\\FATP_FQC\\G9V287002073047H"));
+	TCHAR szLogDir[MAX_PATH] = {0};
+	_stprintf_s(szLogDir, _T("%s%s"), GLOBAL::g_szModulePath, _T("G9V287002073047H"));
+	CheckLog(szLogDir);
 #endif
 
 	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
@@ -171,8 +183,35 @@ BOOL CFATP_FQCDlg::CheckLog(CString strLogDir)
 			CStringList listStr;
 			CString strData = GLOBAL::ReadFileContent(strLogFile);
 			GLOBAL::GetStringList(strData, _T("\n"), listStr);
-			GLOBAL::CheckListData(listStr);
+			INT nPassCount = GLOBAL::CheckListData(listStr);
+
+			CString strResult;
+			strResult.Format(_T("%s,log_%d,%d/%d=%.2f%%,%s"), 
+				m_strDSN, 
+				i, 
+				nPassCount, 
+				listStr.GetSize()/2, 
+				(float)nPassCount/(float)(listStr.GetSize()/2)*100, 
+				(0.9 < (float)nPassCount/(float)(listStr.GetSize()/2)) ? _T("PASS") : _T("FAIL"));
+			m_listResult.AddTail(strResult);
+			
+			INT nItemCount = m_list.GetItemCount();
+			m_list.InsertItem(nItemCount, m_strDSN);
+
+			strResult.Format(_T("Log.%d"), i);
+			m_list.SetItemText(nItemCount, 1, strResult);
+
+			strResult.Format(_T("%d/%d=%.2f%%"), nPassCount, listStr.GetSize()/2, (float)nPassCount/(float)(listStr.GetSize()/2)*100);
+			m_list.SetItemText(nItemCount, 2, strResult);
+
+			strResult.Format(_T("%s"), (0.9 < (float)nPassCount/(float)(listStr.GetSize()/2)) ? _T("PASS") : _T("FAIL"));
+			m_list.SetItemText(nItemCount, 3, strResult);
+
+			UpdateData();
 		}
+
+		GLOBAL::SaveList(m_listResult);
+		m_listResult.RemoveAll();
 	}
 
 	return FALSE;
@@ -207,8 +246,7 @@ void CFATP_FQCDlg::OnBnClickedGetLog()
 				strLogDir.Format(_T("%s%s"),GLOBAL::g_szModulePath, strDSN);
 				if ( CheckLog(strLogDir) )
 				{
-
-
+					OnBnClickedShopInit();
 				}
 				else
 				{

+ 1 - 0
FATP_FQC/FATP_FQC/FATP_FQCDlg.h

@@ -35,5 +35,6 @@ public:
 	afx_msg void OnBnClickedShopInit();
 	CListCtrl m_list;
 	CString m_strDSN;
+	CStringList m_listResult;
 	BOOL CheckLog(CString strLogDir);
 };

+ 45 - 5
FATP_FQC/FATP_FQC/Global.cpp

@@ -130,10 +130,11 @@ namespace GLOBAL
 		return FALSE;
 	}
 
-	BOOL CheckListData(CStringList &listStr)
+	INT CheckListData(CStringList &listStr)
 	{
+		INT nPassCount = 0;
 		INT nCount = listStr.GetSize();
-		if ( nCount == 0 ) return FALSE;
+		if ( nCount == 0 ) return nPassCount;
 
 		CString strLevel = _T(""), strDist = _T("");
 		POSITION pos = listStr.GetHeadPosition();
@@ -141,7 +142,7 @@ namespace GLOBAL
 		{
 			strDist = listStr.GetNext(pos);
 			if ( pos == NULL ) 
-				return FALSE;
+				return nPassCount;
 			strLevel = listStr.GetNext(pos);
 
 			TCHAR szDist[5][5] = {0};
@@ -164,14 +165,53 @@ namespace GLOBAL
 						bitLevel[i] = (nValue > 25) ? 1 : 0;
 					}
 
+					dprintf(_T("dist=[%s][%s][%s][%s][%s],[%s],[%ld]"), szDist[0],szDist[1],szDist[2],szDist[3],szDist[4], bitDist.to_string().c_str(), bitDist.to_ulong());
+					dprintf(_T("level=[%s][%s][%s][%s][%s],[%s],[%ld]"), szLevel[0],szLevel[1],szLevel[2],szLevel[3],szLevel[4], bitLevel.to_string().c_str(), bitLevel.to_ulong());
+
 					int nDistValue = bitDist.to_ulong();
 					int nLevelValue = bitLevel.to_ulong();
+					if ( (nDistValue & nLevelValue) > 0 )
+					{
+						nPassCount++;
+						dprintf("PASS");
+					}
+					else
+					{
+						dprintf("FAIL");
+					}
 				}
 			}
-
-			int aa = 0;
 		}
 
+		return nPassCount;
+	}
+
+	BOOL SaveList(CStringList &ListStr)
+	{
+		CFile file;
+		INT nMark = 0;
+		CFileException exp;
+		TCHAR szSaveFile[MAX_PATH] = {0};
+		_stprintf_s(szSaveFile, _T("%s%s"), GLOBAL::g_szModulePath, _T("result.csv"));
+		if ( !PathFileExists(szSaveFile) )
+			nMark = 1;
+		if ( file.Open(szSaveFile, CFile::modeCreate|CFile::modeWrite, &exp) )
+		{
+			file.SeekToBegin(); 
+
+			CString strValue = _T("DSN,Log,Percent,Result\r");
+			file.Write(strValue.GetString(), strValue.GetLength()*sizeof(TCHAR));
+			POSITION pos = ListStr.GetHeadPosition();
+			while (pos != NULL)
+			{
+				strValue = ListStr.GetNext(pos) + _T("\r");
+				file.Write(strValue.GetString(), strValue.GetLength()*sizeof(TCHAR));
+			}
+
+			file.Flush();   
+			file.Close();   
+			return TRUE;
+		}
 
 		return FALSE;
 	}

+ 2 - 1
FATP_FQC/FATP_FQC/Global.h

@@ -11,5 +11,6 @@ namespace GLOBAL
 	CString ReadFileContent(LPCTSTR lpFileName);
 	void GetStringList(CString strData, CString strSplit, CStringList &ListStr);
 	BOOL FindString(CStringList &ListStr, CString strFind, CString &strResult);
-	BOOL CheckListData(CStringList &listStr);
+	INT CheckListData(CStringList &listStr);
+	BOOL SaveList(CStringList &ListStr);
 };

+ 21 - 2
FATP_FQC/FATP_FQC/stdafx.cpp

@@ -4,5 +4,24 @@
 // stdafx.obj 将包含预编译类型信息
 
 #include "stdafx.h"
-
-
+#define MAX_SIZE 8192
+void dprintf(TCHAR* pszStr, ...)
+{
+	 TCHAR szData[MAX_SIZE] = {0};
+	 // 获取今年年份;
+	 __time64_t gmt = time(NULL);// 获取当前日历时间(1900-01-01开始的Unix时间戳);
+	 struct tm gmtm = { 0 };
+	 localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
+#if _MSC_VER >= 1200 && _MSC_VER < 1500
+	 sprintf(szData, _T("[Assist-Client] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+#else
+	 _stprintf_s(szData, _T("[Assist-Client] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+#endif
+	 int len = _tcslen(szData);
+	 va_list args;
+	 va_start(args, pszStr);
+	 _vsntprintf_s(szData + len, MAX_SIZE - len, MAX_SIZE - len, pszStr, args);
+	 va_end(args);
+	 _tcscat_s(szData, _T("\n"));
+	 OutputDebugString(szData);
+}

+ 1 - 0
FATP_FQC/FATP_FQC/stdafx.h

@@ -40,6 +40,7 @@
 #include "Global.h"
 #include <bitset>
 
+extern void dprintf(TCHAR* pszStr, ...);