| | |
| | | #include "tool.h" |
| | | #include "JsonUtil.h" |
| | | |
| | | |
| | | #ifdef _DEBUG |
| | | #define new DEBUG_NEW |
| | | #endif |
| | |
| | | capture = new L2DataCapture(); |
| | | recognitionManager = new RecognitionManager(); |
| | | limitUpCapture = new LimitUpCapture(); |
| | | buySuccessCapture = new BuySuccessCapture(); |
| | | industryCapture = new IndustryCapture(); |
| | | } |
| | | |
| | | void CappDlg::DoDataExchange(CDataExchange* pDX) |
| | |
| | | CDialogEx::DoDataExchange(pDX); |
| | | DDX_Control(pDX, IDC_CHECK2, limitUpUpload); |
| | | DDX_Control(pDX, IDC_BUTTON12, limitUpBtn); |
| | | DDX_Control(pDX, IDC_BUTTON_TRADE, tradeBtn); |
| | | DDX_Control(pDX, IDC_INDUSTRY, industryBtn); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CappDlg, CDialogEx) |
| | |
| | | ON_BN_CLICKED(IDC_BUTTON7, &CappDlg::OnBnClickedButton7) |
| | | ON_BN_CLICKED(IDC_BUTTON8, &CappDlg::OnBnClickedButton8) |
| | | ON_BN_CLICKED(IDC_BUTTON12, &CappDlg::OnBnClickedButton12) |
| | | ON_BN_CLICKED(IDC_BUTTON_TRADE, &CappDlg::OnBnClickedButtonTrade) |
| | | ON_BN_CLICKED(IDC_INDUSTRY, &CappDlg::OnBnClickedIndustry) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | app->socketManager->sendMsg(index, data.c_str()); |
| | | } |
| | | catch (string st) { |
| | | //重新连接服务器 |
| | | //重新连接服务器 |
| | | app->socketManager->resetClient(index); |
| | | app->socketManager->Connect(index); |
| | | } |
| | | cout<<"*****数据处理时间:"<<(clock()- time_start)<<endl; |
| | | cout << "*****数据处理时间:" << (clock() - time_start) << endl; |
| | | } |
| | | } |
| | | |
| | |
| | | string data = JsonUtil::loadLimitUpData(dataList); |
| | | clock_t time_start = clock(); |
| | | try { |
| | | app->socketManager->sendMsg(8,data.c_str()); |
| | | app->socketManager->sendMsg(8, data.c_str()); |
| | | } |
| | | catch (string st) { |
| | | //重新连接服务器 |
| | |
| | | cout << "####涨停数据处理时间:" << (clock() - time_start) << endl; |
| | | } |
| | | } |
| | | |
| | | |
| | | void CappDlg::OnTradeSuccessDataCallback(list<TradeSuccessData> dataList, void* context) { |
| | | //转为json |
| | | CappDlg* app = (CappDlg*)context; |
| | | //cout << "回调:" << std::this_thread::get_id() << ":" << index << endl; |
| | | CButton* btn = (CButton*)app->GetDlgItem(IDC_CHECK3); |
| | | bool check = btn->GetCheck(); |
| | | if (check) { |
| | | string data = JsonUtil::loadTradeSuccessData(dataList); |
| | | clock_t time_start = clock(); |
| | | try { |
| | | app->socketManager->sendMsg(8, data.c_str()); |
| | | } |
| | | catch (string st) { |
| | | //重新连接服务器 |
| | | app->socketManager->resetClient(8); |
| | | app->socketManager->Connect(8); |
| | | } |
| | | cout << "####交易成功数据处理时间:" << (clock() - time_start) << endl; |
| | | } |
| | | } |
| | | |
| | | |
| | | void CappDlg::OnIndustryDataCallback(list<IndustryData> dataList, void* context) { |
| | | //转为json |
| | | CappDlg* app = (CappDlg*)context; |
| | | //cout << "回调:" << std::this_thread::get_id() << ":" << index << endl; |
| | | CButton* btn = (CButton*)app->GetDlgItem(IDC_CHECK3); |
| | | |
| | | list<list<IndustryData>> _list; |
| | | _list.push_back(dataList); |
| | | |
| | | string data = JsonUtil::loadIndustryData(_list); |
| | | try { |
| | | app->socketManager->sendMsg(8, data.c_str()); |
| | | //AfxMessageBox(_T("上传成功")); |
| | | } |
| | | catch (string st) { |
| | | //重新连接服务器 |
| | | app->socketManager->resetClient(8); |
| | | app->socketManager->Connect(8); |
| | | } |
| | | dataList.clear(); |
| | | _list.clear(); |
| | | } |
| | | |
| | | |
| | | |
| | | bool CappDlg::OnActionCallback(string data, void* context) { |
| | |
| | | //CString msg(e.c_str()); |
| | | //AfxMessageBox(msg); |
| | | throw e; |
| | | }catch (...) { |
| | | } |
| | | catch (...) { |
| | | throw string("未知错误"); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | catch (string st) { |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | if (!capture->isInited()) |
| | | { |
| | | try { |
| | | capture->init(OnL2DataCallback,OnTradeQueueDataCallback, this); |
| | | capture->init(OnL2DataCallback, OnTradeQueueDataCallback, this); |
| | | } |
| | | catch (string st) { |
| | | CString msg(st.c_str()); |
| | |
| | | } |
| | | clock_t time = clock(); |
| | | |
| | | CString path= GUITool::selectImage(); |
| | | std:string p = cstring2String(path); |
| | | CString path = GUITool::selectImage(); |
| | | std:string p = cstring2String(path); |
| | | if (p.length() <= 0) { |
| | | return; |
| | | } |
| | |
| | | clock_t time = clock(); |
| | | |
| | | CString path = GUITool::selectImage(); |
| | | std:string p = cstring2String(path); |
| | | std:string p = cstring2String(path); |
| | | if (p.length() <= 0) { |
| | | return; |
| | | } |
| | |
| | | map<int, string> result = THSActionUtil::getListenL2GPCodes(recognitionManager); |
| | | //设置代码 |
| | | for (map<int, string>::iterator ele = result.begin();ele != result.end();ele++) { |
| | | int key= (*ele).first; |
| | | int key = (*ele).first; |
| | | string value = (*ele).second; |
| | | capture->setGPCode(key,value); |
| | | capture->setGPCode(key, value); |
| | | } |
| | | |
| | | } |
| | |
| | | return; |
| | | } |
| | | } |
| | | list<CString> paths= GUITool::selectMulImages(); |
| | | 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), recognitionManager); |
| | | std:string p = cstring2String(path); |
| | | std::list<string> resultList = THSActionUtil::recognitionGPCode(cv::imread(p), recognitionManager); |
| | | 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++) { |
| | |
| | | try |
| | | { |
| | | limitUpCapture->init(OnLimitUpDataCallback, this); |
| | | |
| | | |
| | | } |
| | | catch (string st) |
| | | { |
| | |
| | | try |
| | | { |
| | | limitUpCapture->refreshHWND(); |
| | | }catch (string st) |
| | | } |
| | | catch (string st) |
| | | { |
| | | CString msg(st.c_str()); |
| | | AfxMessageBox(msg); |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | //当日成交监控 |
| | | void CappDlg::OnBnClickedButtonTrade() |
| | | { |
| | | |
| | | |
| | | if (!buySuccessCapture->isInited()) { |
| | | try |
| | | { |
| | | buySuccessCapture->init(OnTradeSuccessDataCallback, this); |
| | | } |
| | | catch (string st) |
| | | { |
| | | CString msg(st.c_str()); |
| | | AfxMessageBox(msg); |
| | | return; |
| | | } |
| | | } |
| | | if ( |
| | | buySuccessCapture->isRunning()) { |
| | | buySuccessCapture->stop(); |
| | | tradeBtn.SetWindowTextW(_T("启动成交识别任务")); |
| | | } |
| | | else { |
| | | try |
| | | { |
| | | buySuccessCapture->refreshHWND(); |
| | | } |
| | | catch (string st) |
| | | { |
| | | CString msg(st.c_str()); |
| | | AfxMessageBox(msg); |
| | | return; |
| | | } |
| | | |
| | | buySuccessCapture->start(); |
| | | tradeBtn.SetWindowTextW(_T("暂停成交识别任务")); |
| | | } |
| | | } |
| | | |
| | | void* CappDlg::runCaptureIndustryCodes(void* context) { |
| | | CappDlg* app = (CappDlg*)context; |
| | | app->industryCapture->captureIndustryCodes(); |
| | | |
| | | return context; |
| | | } |
| | | |
| | | //行业代码识别 |
| | | void CappDlg::OnBnClickedIndustry() |
| | | { |
| | | |
| | | if (!industryCapture->isInited()) { |
| | | industryCapture->init(OnIndustryDataCallback, this); |
| | | } |
| | | try { |
| | | industryCapture->refreshHWND(); |
| | | } |
| | | catch (string st) { |
| | | CString msg(st.c_str()); |
| | | AfxMessageBox(msg); |
| | | return; |
| | | } |
| | | if (!industryPid.p) { |
| | | int ret = 0; |
| | | ret = pthread_create(&industryPid, NULL, &(CappDlg::runCaptureIndustryCodes), this); |
| | | if (ret != 0) { |
| | | AfxMessageBox(_T("创建运行线程失败")); |
| | | return; |
| | | } |
| | | pthread_detach(industryPid); |
| | | industryBtn.SetWindowTextW(_T("结束行业识别")); |
| | | } |
| | | else { |
| | | industryCapture->stop(); |
| | | int ret = pthread_cancel(industryPid); |
| | | industryPid.p = 0; |
| | | industryBtn.SetWindowTextW(_T("开始行业识别")); |
| | | } |
| | | } |