📄 monitorthread.h
字号:
//// C++ Interface: monitorthread//// Description:////// Author: root <root@localhost.localdomain>, (C) 2006//// Copyright: See COPYING file that comes with this distribution////#ifndef MONITORTHREAD_H#define MONITORTHREAD_H#include <pthread.h>#include <deque>// #include <qthread.h>// #include <qwaitcondition.h>#pragma pack(1)/**@author root*/template<typename Communicator,typename Handler,typename Buffer>class CMonitorThread:public QThread{ class PackHead { public: //members WORD wFirstFlag; DWORD wLength; WORD wSecondFlag; WORD wSourceFactoryId; WORD wSourceAddr; WORD wDestinationFactoryId; WORD wDestinationAddr; WORD wDataNumber; WORD wDeviceType; WORD wDeviceState; WORD wFirstRouterAddr; WORD wLastRouterAddr; WORD wReserve; //member functions PackHead() { bzero(this,sizeof(PackHead)); wFirstFlag=0xEb90; wLength=0x14; wSecondFlag=wFirstFlag; wDeviceType=0x01; wReserve=0xFFFF; }; ~PackHead() {} ; PackHead(const PackHead& src) { memcpy(this,&src,sizeof(PackHead)); } };public: CMonitorThread(); ~CMonitorThread(); /*! \fn CMonitorThread::setCondtion(QWaitCondition* val) */ void setCondtion(QWaitCondition* val) { /// @todo implement me pCond=val; } /*! \fn CMonitorThread::getCondition() */ QWaitCondition* getCondition() { /// @todo implement me return pCond; }private: bool send(const void* buf,int size); bool recv(void* buf,int size); std::deque<Buffer> recvQueue; std::deque<Buffer> sendQueue; Communicator* pComm; QWaitCondition* pCond; Handler* pHandle;//ASDU handler time_t lastImpulse;protected: virtual void run();};//#include "monitorthread.cpp"#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -