CMDReadThread.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "CMDReadThread.h"
  2. #include <QTime>
  3. #include <QDebug>
  4. #include "TaskMNG.h"
  5. #include "DataManager.h"
  6. #ifdef Q_OS_WIN
  7. #pragma execution_character_set("utf-8")
  8. #endif
  9. struct _tag_NetPacket
  10. {
  11. OCCCOMMAND commandbuf;
  12. int DestID;
  13. };
  14. struct MainProc_In
  15. {
  16. DWORD Len;
  17. void *MainCallBack;
  18. };
  19. CMDReadThread::CMDReadThread() : m_isCanRun(false)
  20. {
  21. m_pNetQueue = new HDDSCMDQueue();
  22. m_pNetQueue->init();
  23. m_pNetQueue->setSafeCount(5000);
  24. m_pNetQueue->SetQueName("IO接收队列");
  25. int nSize = m_pNetQueue->size();
  26. nSize = 0;
  27. }
  28. void CMDReadThread::stopImmediately()
  29. {
  30. m_isCanRun = true;
  31. qDebug("队列状态线程关闭");
  32. }
  33. bool CMDReadThread::NetQuequePOP()
  34. {
  35. if (m_isCanRun)
  36. {
  37. return false;
  38. }
  39. HDDSCMD command;
  40. if (!m_pNetQueue->pop(command))
  41. {
  42. return false;
  43. }
  44. qDebug("POP: [%d]to[%d]-[%d] \n", command.nCMDtype, command.flags, command.nDateLen);
  45. OCCCOMMAND pCMDData;
  46. memcpy(&pCMDData,&command.cData,sizeof(OCCCOMMAND));
  47. pCMDData.DesNetID = 0;
  48. pCMDData.TrainningID = DataManager::instance().pRunThread->m_nTrainID;;
  49. pCMDData.DesSysType = OCC_SYS_DD_SVR;
  50. TaskMNG::instance()->NetComand_Receive(pCMDData);
  51. //emit signal_NetCommandServer(pCMDData.cmdType, pCMDData);
  52. return true;
  53. }
  54. void CMDReadThread::run()
  55. {
  56. while (!m_isCanRun)
  57. {
  58. if (!NetQuequePOP())
  59. {
  60. QThread::msleep(100);
  61. }
  62. }
  63. }
  64. /*
  65. void CMDReadThread::setNetQueue(HDDSCMDQueue* pNetQueue)
  66. {
  67. m_pNetQueue = pNetQueue;
  68. }
  69. */