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