From d7e3f882feb9307c22b0cd2698e45d24804b6572 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 七月 2022 18:37:45 +0800 Subject: [PATCH] '完善' --- ConsoleApplication/L2DataCapture.cpp | 36 ++++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 2 deletions(-) diff --git a/ConsoleApplication/L2DataCapture.cpp b/ConsoleApplication/L2DataCapture.cpp index 55454eb..4d17318 100644 --- a/ConsoleApplication/L2DataCapture.cpp +++ b/ConsoleApplication/L2DataCapture.cpp @@ -5,12 +5,17 @@ #include <thread> bool L2DataCapture::inited; OpenCLExcuter* L2DataCapture::openCLExcuter[THS_FRAME_COUNT]; + TradeQueueCapture* L2DataCapture::tradeQueueCapture[THS_FRAME_COUNT]; + + //是否正在执行 bool L2DataCapture::running; bool L2DataCapture::runnings[THS_FRAME_COUNT]; clock_t L2DataCapture::latest_running_times[THS_FRAME_COUNT]; CallbackFun L2DataCapture::data_callback; + + CallbackFun_Trade_Queue L2DataCapture::trade_queue_data_callback; string L2DataCapture::gpCodes[THS_FRAME_COUNT]; @@ -25,11 +30,30 @@ //识别数据 string code = gpCodes[index]; try { - list<TradeData> resultList = captureLevel2TradeData(CaptureUtil::capture(index), index); + list<TradeData> resultList = captureLevel2TradeData(CaptureUtil::capture(index, CAPTURE_TYPE_L2), index); data_callback(index, code, resultList, context); } catch (...) { + } + } + Sleep(2); + } +} + + +void L2DataCapture::_run_trade_queue(int index) +{ + while (true) { + if (running && runnings[index] && gpCodes[index].length() > 0) { + //识别数据 + string code = gpCodes[index]; + try { + list<int> numList= tradeQueueCapture[index]->recognition(CaptureUtil::getHWND(index,CAPTURE_TYPE_TRADE_QUEUE)); + trade_queue_data_callback(index, code, numList, context); + } + catch (...) { + } } Sleep(2); @@ -62,9 +86,10 @@ CaptureUtil::init(win); } -void L2DataCapture::init(CallbackFun callback, void* contex) { +void L2DataCapture::init(CallbackFun callback, CallbackFun_Trade_Queue trade_queue_callback, void* contex) { inited = true; data_callback = callback; + trade_queue_data_callback = trade_queue_callback; context = contex; @@ -72,7 +97,11 @@ { openCLExcuter[i] = new OpenCLExcuter(); openCLExcuter[i]->init(); + tradeQueueCapture[i] = new TradeQueueCapture(); } + + + //获取同花顺窗口句柄 try { refreshHWND(); @@ -86,6 +115,9 @@ runnings[i] = false; thread rt(&(L2DataCapture::_run),i); rt.detach(); + + thread rt_trade_queue(&(L2DataCapture::_run_trade_queue), i); + rt_trade_queue.detach(); } } -- Gitblit v1.8.0