#pragma once #include "ImgUtil.h" #include "RecognitionManager.h" #include #include "OpenCLExcuter.h" #include "CaptureUtil.h" #include "TradeQueueCapture.h" #define THS_FRAME_COUNT 8 typedef void (*CallbackFun)(int index, string code, list dataList, void* contex); typedef void (*CallbackFun_Trade_Queue)(int index, string code, list numList, void* contex); class L2DataCapture { private: static OpenCLExcuter* openCLExcuter[THS_FRAME_COUNT]; static TradeQueueCapture* tradeQueueCapture[THS_FRAME_COUNT]; static bool inited; //ÊÇ·ñÕýÔÚÖ´ÐÐ static bool running; static bool runnings[THS_FRAME_COUNT]; static clock_t latest_running_times[THS_FRAME_COUNT]; static string gpCodes[THS_FRAME_COUNT]; static CallbackFun data_callback; static CallbackFun_Trade_Queue trade_queue_data_callback; static void* context; static void _run(int index); static void _run_trade_queue(int index); public: L2DataCapture(); //³õʼ»¯ void init(CallbackFun callback, CallbackFun_Trade_Queue trade_queue_callback, void* context); void refreshHWND(); bool isRunning(); //¿ªÊ¼ void start(int index); //½áÊø void stop(int index); //È«²¿¿ªÊ¼ void start(); //È«²¿½áÊø void stop(); //È«²¿¿ªÊ¼ void startAll(); //È«²¿½áÊø void stopAll(); bool isInited(); //²¶»ñlevel2µÄÅÌ¿ÚÊý¾Ý static list captureLevel2TradeData(HWND hwnd,int index) throw(int); static list captureLevel2TradeData(cv::Mat oimg,int identify); //ÉèÖôúÂë static void setGPCode(int index, string code); //»ñÈ¡´úÂë static string getGPCode(int index); };