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