#include "CMDReadThread.h" #include #include #include "TaskMNG.h" #include "DataManager.h" #ifdef Q_OS_WIN #pragma execution_character_set("utf-8") #endif struct _tag_NetPacket { OCCCOMMAND commandbuf; int DestID; }; struct MainProc_In { DWORD Len; void *MainCallBack; }; CMDReadThread::CMDReadThread() : m_isCanRun(false) { m_pNetQueue = new HDDSCMDQueue(); m_pNetQueue->init(); m_pNetQueue->setSafeCount(5000); m_pNetQueue->SetQueName("IO接收队列"); int nSize = m_pNetQueue->size(); nSize = 0; } void CMDReadThread::stopImmediately() { m_isCanRun = true; qDebug("队列状态线程关闭"); } bool CMDReadThread::NetQuequePOP() { if (m_isCanRun) { return false; } HDDSCMD command; if (!m_pNetQueue->pop(command)) { return false; } qDebug("POP: [%d]to[%d]-[%d] \n", command.nCMDtype, command.flags, command.nDateLen); OCCCOMMAND pCMDData; memcpy(&pCMDData,&command.cData,sizeof(OCCCOMMAND)); pCMDData.DesNetID = 0; pCMDData.TrainningID = DataManager::instance().pRunThread->m_nTrainID;; pCMDData.DesSysType = OCC_SYS_DD_SVR; TaskMNG::instance()->NetComand_Receive(pCMDData); //emit signal_NetCommandServer(pCMDData.cmdType, pCMDData); return true; } void CMDReadThread::run() { while (!m_isCanRun) { if (!NetQuequePOP()) { QThread::msleep(100); } } } /* void CMDReadThread::setNetQueue(HDDSCMDQueue* pNetQueue) { m_pNetQueue = pNetQueue; } */