eis/inc/glob/AutoTele.h

169 lines
4.2 KiB
C
Raw Normal View History

/*********************************************
*
* Text message organization and analysis
*
* copyright Shanghai Baosight Software Co., Ltd.
*
* create zoufuzhou 20101001
*
************************************************/
#pragma once
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <dao/TeleDAO.h>
#include <base/ByteTool.h>
#include <base/TypeCheck.h>
#include <common/BasicStruct.h>
#include <dao/LimitsMag.h>
#include <glob/GlobDefine.h>
const int MAX_SQL_LENGTH = 102400; //max sql length
using namespace std;
using namespace baosight;
typedef vector<TeleItem* > TVectItem;
class AutoTele
{
public:
AutoTele(int eventNo,const string& buff);
AutoTele(int eventNo=9999);
virtual ~AutoTele();
int ReBuild(int eventNo,const string& buff);
int ReBuild(int eventNo);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int Read(int eventNo);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ֵ*/
TeleItem& operator[]( int elem );
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ֵ*/
TeleItem& operator[]( const string& itemName);
// get index NO. of tele columns ,start No. is :0
int GetItemIndex(const string &itemName);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯<EFBFBD>ĵ<EFBFBD><C4B5>ĵ<EFBFBD><C4B5>ַ<EFBFBD><D6B7><EFBFBD>*/
void operator>>(string& buff);
const string GetTeleData();
/*<2A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>*/
void operator<<(const string& buff);
/*ȡ<><C8A1><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>*/
vector<string>& GetTables();
/*ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const MAT_STRUCTURE materialExt <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MUCODE
const MAT_STRUCTURE materialEnt <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MUCODE
const SELECT_PARAMS selectParams <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>MUCODE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const string dbwhere <EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MUCODE<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>֯where<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
int Fill(const MAT_STRUCTURE materialExt,
const MAT_STRUCTURE materialEnt,
const SELECT_PARAMS selectParams,
const string& dbwhere = "");
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ*/
void Print(void);
/* check vlaue of teleitem enable*/
/* rmbai 2012-03-26 */
/**********************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>AutoTele<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ֵ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CheckValueLimit
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> int <EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
*
* <EFBFBD><EFBFBD><EFBFBD>ʷ
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
*
**********************************************************************/
int CheckValueLimit(void);
//rmbai 2012-03-26 check enum item by destColumn of the destTable
/**********************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ö<EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>AutoTele<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CheckEnumValue
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> int <EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ֵ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
*
* <EFBFBD><EFBFBD><EFBFBD>ʷ
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
*
**********************************************************************/
int CheckEnumValue( const string &value,const string &destTable, const string &destColumnName);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ĵ<CDB5><C4B5><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>֯<EFBFBD><D6AF>д<EFBFBD><D0B4><EFBFBD><EFBFBD>T_TEL_SEND
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>flag = 'recv' <EFBFBD><EFBFBD><EFBFBD> T_TEL_RECV<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>flag = 'send' <EFBFBD><EFBFBD><EFBFBD> T_TEL_SEND<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>coilId Ϊ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ĵĸ־<EFBFBD><EFBFBD><EFBFBD>*/
int SaveToDB(const string flag = "send",const string coilId = "UNKNOW");
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const int size(void) const;
string TeleValueToString() const {return m_buff;}
public:
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static int GetTeleConf(int eventNo,TeleConf& conf);
protected:
/*<2A><><EFBFBD>ֵ<EFBFBD><D6B5>Ĵ<EFBFBD>*/
int SplitTele(const string& buff);
//<2F><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>
int OrganizeTele(void);
//rmbai 2012-03-26
short GetCommonIndex(void);
//zero item value
void InitValue(void);
//add 2012-5-21
void InitOkAll(void);
private:
TeleItem& IsNuLL();
private:
vector<string> mv_table;
TVectItem *mp_itemvect; //<2F><><EFBFBD>ŵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
static map<int, TVectItem* > *mp_telemap; //<2F><><EFBFBD>Ľṹ<C4BD>أ<EFBFBD><D8A3><EFBFBD><E6B4A2><EFBFBD><EFBFBD>չ<EFBFBD>ĵ<EFBFBD><C4B5>Ķ<EFBFBD><C4B6><EFBFBD>
static map<int,TeleConf> mm_teleconf; //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TeleItem itemnull; //<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
static TeleDAO* mp_teledao;
string m_buff;
char m_seq[MAX_SQL_LENGTH];
LimitsMag mp_limitMag; //rmbai 2012-03-26
int indexOkAll; //rmbai 2012-03-26
int indexNextProcssCode;
int indexPhOk;
int indexLoOk ;
int indexOrOk_1;
int indexOrOk_2 ;
int indexOrOk_3;
};