77 lines
1.5 KiB
C++
77 lines
1.5 KiB
C++
#pragma once
|
|
#include<iostream>
|
|
#include<common/L2Event.h>
|
|
#include<zlib/zoneDef.h>
|
|
#include<zlib/MemTable.hpp>
|
|
#include<zsub/MessageDefine.h>
|
|
#include<glob/ProxyMag.h>
|
|
#include<proxy/MessageICE.h>
|
|
#include<sstream>
|
|
#include<string.h>
|
|
#include<glob/BinaryTele.h>
|
|
#include<IceUtil/Thread.h>
|
|
#include<map>
|
|
#include<string>
|
|
#include<list>
|
|
|
|
#ifdef _WIN32
|
|
#include<io.h>
|
|
#include<fstream>
|
|
#include<sstream>
|
|
|
|
#endif
|
|
|
|
using namespace std;
|
|
class HandleMessage : public IceUtil::Thread
|
|
{
|
|
public:
|
|
HandleMessage(void);
|
|
~HandleMessage(void);
|
|
virtual void run();
|
|
|
|
void SplitSignal(const char* msg,int length);
|
|
|
|
/* 解析FDAA 所有变量名与通道号 */
|
|
void SplitSignalName(const char* msg,int length);
|
|
protected:
|
|
/*自定义组织电文的其它来源数据*/
|
|
virtual void AssembleOther(const string& address,int i);
|
|
|
|
/*自定义发送电文电文*/
|
|
virtual void MessageSend();
|
|
|
|
/*电文转发*/
|
|
virtual short Proxy(int eventNo, Ice::ByteSeq seq);
|
|
|
|
private:
|
|
|
|
void AssembleTeles();
|
|
|
|
void AssembleTele();
|
|
|
|
bool CheckCache();
|
|
|
|
void CachePop();
|
|
|
|
void CachePopOne();
|
|
|
|
protected:
|
|
MessageICEPrx ztrk_proxy;
|
|
MessageICEPrx zmtr_proxy;
|
|
MessageICEPrx znode_proxy;
|
|
MessageICEPrx zmc_proxy;
|
|
BinaryTele* p_tele;
|
|
BinaryTele* p_btel;
|
|
map< string,list<float> > mp_tagdat;
|
|
map< string ,string > mp_tagid;
|
|
MP_ADDR mp_addr;
|
|
FDA_DATA* mp_fdacache;
|
|
int id;
|
|
std::string m_path;
|
|
private:
|
|
bool m_isrun;
|
|
bool m_isfirst;
|
|
short m_mintagsize;
|
|
short m_maxtagsize;
|
|
};
|