From 30f434d78b58e3a4198cf5ba5a9e5a0ce1cd5292 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 07 七月 2022 14:32:36 +0800
Subject: [PATCH] 'bug修复'

---
 app/appDlg.cpp |  164 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 140 insertions(+), 24 deletions(-)

diff --git a/app/appDlg.cpp b/app/appDlg.cpp
index 0803cf7..924a5a2 100644
--- a/app/appDlg.cpp
+++ b/app/appDlg.cpp
@@ -8,8 +8,11 @@
 #include "appDlg.h"
 #include "afxdialogex.h"
 #include "level2DataDlg.h"
+#include "codesDataDlog.h"
 #include "THSActionUtil.h"
 #include "NetWorkUtil.h"
+#include "GUITool.h"
+#include "tool.h"
 #include "JsonUtil.h"
 
 #ifdef _DEBUG
@@ -84,6 +87,8 @@
 	ON_BN_CLICKED(IDC_BUTTON4, &CappDlg::OnBnClickedButton4)
 	ON_BN_CLICKED(IDC_BUTTON20, &CappDlg::OnBnClickedButton20)
 	ON_BN_CLICKED(IDC_BUTTON5, &CappDlg::OnBnClickedButton5)
+	ON_BN_CLICKED(IDC_BUTTON7, &CappDlg::OnBnClickedButton7)
+	ON_BN_CLICKED(IDC_BUTTON8, &CappDlg::OnBnClickedButton8)
 END_MESSAGE_MAP()
 
 
@@ -127,6 +132,15 @@
 
 	st.Format(_T("鏈満IP锛�%s"), ipStr);
 	GetDlgItem(IDC_STATIC3)->SetWindowTextW(st);
+
+	if (!capture->isInited())
+	{
+		try {
+			capture->init(OnDataCallback, this);
+		}
+		catch (string st) {
+		}
+	}
 
 	return TRUE;  // 闄ら潪灏嗙劍鐐硅缃埌鎺т欢锛屽惁鍒欒繑鍥� TRUE
 }
@@ -193,8 +207,17 @@
 	CButton* btn = (CButton*)app->GetDlgItem(IDC_CHECK1);
 	bool check = btn->GetCheck();
 	if (check) {
-		string data = loadData(0, index, code, dataList);
-		app->socketManager->sendMsg(index, data.c_str());
+		string data = JsonUtil::loadL2Data(0, index, code, dataList);
+		clock_t time_start = clock();
+		try {
+			app->socketManager->sendMsg(index, data.c_str());
+		}
+		catch (string st) {
+		    //閲嶆柊杩炴帴鏈嶅姟鍣�
+			app->socketManager->resetClient(index);
+			app->socketManager->Connect(index);
+		}
+		cout<<"*****鏁版嵁澶勭悊鏃堕棿锛�"<<(clock()- time_start)<<endl;
 	}
 }
 
@@ -204,7 +227,7 @@
 	CappDlg* app = (CappDlg*)context;
 	cout << "action鍥炶皟:" << std::this_thread::get_id() << ":" << data << endl;
 	//瑙f瀽鍛戒护
-	Json::Value root = parseJson(data);
+	Json::Value root = JsonUtil::parseJson(data);
 	if (root["action"].asString() == "setGPCode") {
 		//璁剧疆鑲$エ浠g爜
 		int index = root["data"]["index"].asInt();
@@ -212,7 +235,10 @@
 		string quickCode = "5";
 		quickCode.append(to_string(index + 1));
 		list<string> codeList;
-		codeList.push_back(code);
+		if (code.length() > 0)
+		{
+			codeList.push_back(code);
+		}
 		try {
 
 			if (!app->capture->isInited()) {
@@ -237,9 +263,11 @@
 			}
 		}
 		catch (string e) {
-			CString msg(e.c_str());
-			AfxMessageBox(msg);
+			//CString msg(e.c_str());
+			//AfxMessageBox(msg);
 			throw e;
+		}catch (...) {
+			throw string("鏈煡閿欒");
 		}
 
 		//鎭㈠閲囬泦
@@ -339,7 +367,13 @@
 		}
 	}
 	clock_t time = clock();
-	list<TradeData> result = capture->captureLevel2TradeData(cv::imread("C:\\Users\\Administrator\\Desktop\\ocr\\new.jpg"), 0);
+
+	CString path= GUITool::selectImage();
+   std:string p = cstring2String(path);
+	if (p.length() <= 0) {
+		return;
+	}
+	list<TradeData> result = capture->captureLevel2TradeData(cv::imread(p), 0);
 	time = clock() - time;
 
 	Clevel2DataDlg::level2Data = { time, result };
@@ -351,28 +385,29 @@
 //鎴浘璇嗗埆
 void CappDlg::OnBnClickedButton4()
 {
-	POINT pNow = { 0,0 };
-	if (GetCursorPos(&pNow))  // 鑾峰彇榧犳爣褰撳墠浣嶇疆
+	if (!capture->isInited())
 	{
-
-		HWND hwndPointNow = NULL;
-
-		hwndPointNow = (HWND)WindowFromPoint(pNow);  // 鑾峰彇榧犳爣鎵�鍦ㄧ獥鍙g殑鍙ユ焺
-
-		if (hwndPointNow)
-
-		{
-			char szWindowTitle[50];
-			::GetWindowTextA(hwndPointNow, szWindowTitle, sizeof(szWindowTitle));  // 鑾峰彇绐楀彛鏍囬
-			cout << hex << (int)hwndPointNow << endl;  // 榧犳爣鎵�鍦ㄧ獥鍙g殑鍙ユ焺
-			cout << szWindowTitle << endl;  // 榧犳爣鎵�鍦ㄧ獥鍙g殑鏍囬
+		try {
+			capture->init(OnDataCallback, this);
 		}
-		else
-			cout << "Error!!" << endl;
-
+		catch (string st) {
+			CString msg(st.c_str());
+			AfxMessageBox(msg);
+		}
 	}
+	clock_t time = clock();
 
+	CString path = GUITool::selectImage();
+	std:string p = cstring2String(path);
+	if (p.length() <= 0) {
+		return;
+	}
+	list<TradeData> result = capture->captureLevel2TradeData(cv::imread(p), 0);
+	time = clock() - time;
 
+	Clevel2DataDlg::level2Data = { time, result };
+	Clevel2DataDlg dlg;
+	dlg.DoModal();
 }
 
 //鐜妫�娴�
@@ -449,3 +484,84 @@
 
 }
 
+
+//鑲$エ浠g爜璇嗗埆
+void CappDlg::OnBnClickedButton7()
+{
+	if (!capture->isInited())
+	{
+		try {
+			capture->init(OnDataCallback, this);
+		}
+		catch (string st) {
+			CString msg(st.c_str());
+			AfxMessageBox(msg);
+			return;
+		}
+	}
+	list<CString> paths= GUITool::selectMulImages();
+	std::list<string> fResultList;
+	
+	for (list<CString>::iterator ele = paths.begin();ele != paths.end();ele++) {
+		CString path = *ele;
+		std:string p = cstring2String(path);
+		std::list<string> resultList =	THSActionUtil::recognitionGPCode(cv::imread(p));
+		for (std::list<string>::iterator ele1 = resultList.begin();ele1 != resultList.end();ele1++) {
+			bool contains = false;
+			for (std::list<string>::iterator e = fResultList.begin();e != fResultList.end();e++) {
+				if (*e == *ele1) {
+					contains = true;
+					break;
+				}
+			}
+			if (!contains) {
+				fResultList.push_back(*ele1);
+			}
+		}
+	}
+	codesDataDlog::codeData = fResultList;
+	codesDataDlog::upload = false;
+	codesDataDlog dlg;
+	dlg.DoModal();
+}
+
+//鎴浘涓婁紶鑲$エ浠g爜
+void CappDlg::OnBnClickedButton8()
+{
+	// 
+	if (!capture->isInited())
+	{
+		try {
+			capture->init(OnDataCallback, this);
+		}
+		catch (string st) {
+			CString msg(st.c_str());
+			AfxMessageBox(msg);
+			return;
+		}
+	}
+	list<CString> paths = GUITool::selectMulImages();
+	std::list<string> fResultList;
+
+	for (list<CString>::iterator ele = paths.begin();ele != paths.end();ele++) {
+		CString path = *ele;
+	std:string p = cstring2String(path);
+		std::list<string> resultList = THSActionUtil::recognitionGPCode(cv::imread(p));
+		for (std::list<string>::iterator ele1 = resultList.begin();ele1 != resultList.end();ele1++) {
+			bool contains = false;
+			for (std::list<string>::iterator e = fResultList.begin();e != fResultList.end();e++) {
+				if (*e == *ele1) {
+					contains = true;
+					break;
+				}
+			}
+			if (!contains) {
+				fResultList.push_back(*ele1);
+			}
+		}
+	}
+	codesDataDlog::codeData = fResultList;
+	codesDataDlog::upload = TRUE;
+	codesDataDlog dlg;
+	dlg.DoModal();
+}

--
Gitblit v1.8.0