95 lines
1.9 KiB
C++
95 lines
1.9 KiB
C++
/*********************************************************************
|
|
*
|
|
* ÎÄ ¼þ: MemZone.h
|
|
*
|
|
* °æÈ¨ËùÓÐ: Shanghai Baosight Software Co., Ltd.
|
|
*
|
|
*********************************************************************/
|
|
#ifndef _H_COLLECT_ZONE_H
|
|
#define _H_COLLECT_ZONE_H
|
|
#include <Ice/BuiltinSequences.h>
|
|
#include <zlib/MemTrk.h>
|
|
#include <zlib/MemZone.h>
|
|
#include <glob/BinaryTele.h>
|
|
#include <zlib/MemTable.hpp>
|
|
#include <zcus/RuleAlarm.h>
|
|
#include <T_TIME_SET.h>
|
|
|
|
using namespace baosight;
|
|
|
|
struct ADDR{
|
|
short mode;
|
|
short event;
|
|
short addr;
|
|
short addrbit;
|
|
};
|
|
|
|
class AD_MODE{
|
|
public:
|
|
static const short NORMAL = 0;
|
|
static const short UNKNOW = 1;
|
|
static const short BINARY = 2;
|
|
};
|
|
|
|
struct FEED_BACK{
|
|
short addr_action;
|
|
short addr_feedback;
|
|
long long start;
|
|
// time_t start;
|
|
};
|
|
|
|
|
|
|
|
const int CS_FEED_BACK = 5;
|
|
|
|
|
|
class DataProcess
|
|
{
|
|
public:
|
|
DataProcess(void);
|
|
|
|
public:
|
|
~DataProcess(void);
|
|
public:
|
|
|
|
int dispatch(int eventNo,const ::Ice::ByteSeq&);
|
|
|
|
private:
|
|
|
|
int fdaacase(int eventNo,const ::Ice::ByteSeq&);
|
|
|
|
int actionFeedbackOpen(int eventNo,const ::Ice::ByteSeq&);
|
|
int actionFeedbackClose(int eventNo,const ::Ice::ByteSeq&);
|
|
|
|
int cachecase(int eventNo,const ::Ice::ByteSeq&);
|
|
|
|
int telecase(int eventNo,const ::Ice::ByteSeq&);
|
|
|
|
long long mstime(void);
|
|
|
|
short Proxy(int eventNo,const string& proxyName, const char* keyValue,int length);
|
|
|
|
private:
|
|
vector<CMemZone*> v_memzone;
|
|
BinaryTele* p_tele;
|
|
BinaryTele* p_btel;
|
|
RuleAlarm* p_dbalarm;
|
|
|
|
|
|
/*map<zone,vector<pos> > */;
|
|
map<string,vector<int> > v_zpos;
|
|
|
|
/*map<zone,vector<addr> >*/
|
|
// map<string,vector<string> > v_zaddr;
|
|
map<string,vector<ADDR> > v_zaddr;
|
|
|
|
vector<short> v_btel;
|
|
FEED_BACK m_feedback[CS_FEED_BACK];
|
|
FEED_BACK m_feedback_close[CS_FEED_BACK];
|
|
|
|
CMemTable<T_TIME_SET::STR_T_TIME_SET>* mp_timeset;
|
|
/*map<zone,map<telid,vector<index>>>*/
|
|
// map<string,map<string,vector<int> > > v_zonetel;
|
|
};
|
|
#endif
|