169 lines
4.2 KiB
C
169 lines
4.2 KiB
C
|
|
/*********************************************
|
|||
|
|
*
|
|||
|
|
* 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;
|
|||
|
|
};
|