|
|
|
|
/****************************************************************************
|
|
|
|
|
** File name : HTConfig.h
|
|
|
|
|
** Description : config parameter
|
|
|
|
|
** Create date : 2018.09.01
|
|
|
|
|
** Auther by : Liuyx
|
|
|
|
|
** Version info : V1.0.01
|
|
|
|
|
** Copyright (C) 2002-2018 xi'an huatek, Inc Co., Ltd
|
|
|
|
|
** Update record:
|
|
|
|
|
** DATE AUTHER DESC
|
|
|
|
|
** -------------------------------------------------------------------------
|
|
|
|
|
** 2018.09.01 Liuyx first build
|
|
|
|
|
****************************************************************************/
|
|
|
|
|
#ifndef __HT_CONFIG_H
|
|
|
|
|
#define __HT_CONFIG_H
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <list>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
static const char HT_CONFIG_FILE[] = ".\\etc\\htiecsvr.conf";
|
|
|
|
|
#else
|
|
|
|
|
static const char HT_CONFIG_FILE[] = "../etc/htiecsvr.conf" ;
|
|
|
|
|
#endif
|
|
|
|
|
#pragma pack (push ,1)
|
|
|
|
|
#define HT_MAX_IED_COUNT 8 // <20><><EFBFBD><EFBFBD>IED<45><44><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
char IedAddr[32];
|
|
|
|
|
int port;
|
|
|
|
|
}ST_IED_ADDR;
|
|
|
|
|
#pragma pack (pop)
|
|
|
|
|
|
|
|
|
|
class TConfig
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
TConfig();
|
|
|
|
|
virtual ~TConfig();
|
|
|
|
|
|
|
|
|
|
static TConfig *getInstance();
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool getIniConfig();
|
|
|
|
|
void showConfig();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ñ<EFBFBD><C3B1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>IP
|
|
|
|
|
void setLocalAddr(char *pszAddr);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>IP
|
|
|
|
|
char *getLocalAddr();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ñ<EFBFBD><C3B1>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
void setLocalPort(unsigned short iPort);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
unsigned short getLocalPort();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Զ<EFBFBD>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD>IP
|
|
|
|
|
void setRemoteAddr(char *pszAddr);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡԶ<C8A1>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD>IP
|
|
|
|
|
char *getRemoteAddr();
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Զ<EFBFBD>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
void setRemotePort(unsigned short iPort);
|
|
|
|
|
|
|
|
|
|
// <20><>ȡԶ<C8A1>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|
|
|
|
unsigned short getRemotePort();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setRecvThreadNumber(unsigned int n) ; // <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
void setParseThreadNumber(unsigned int n) ; // <20><><EFBFBD><EFBFBD>104<30>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
void setOprationThreadNumber(unsigned int n) ; // <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
void setResponeThreadNumber(unsigned int n) ; // Ӧ<><D3A6><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
|
|
|
|
|
unsigned int getRecvThreadNumber() ; // <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
unsigned int getParseThreadNumber() ; // <20><><EFBFBD><EFBFBD>104<30>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
unsigned int getOprationThreadNumber() ; // <20><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
unsigned int getResponeThreadNumber() ; // Ӧ<><D3A6><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
unsigned int getdbPort() ;
|
|
|
|
|
unsigned int getdbMaxConnect();
|
|
|
|
|
unsigned int getdbMinConnect() ;
|
|
|
|
|
char *getdbHostIP() ;
|
|
|
|
|
char *getdbName() ;
|
|
|
|
|
char *getdbUserName() ;
|
|
|
|
|
char *getdbUserPass() ;
|
|
|
|
|
|
|
|
|
|
void setdbPort(unsigned int port);
|
|
|
|
|
void setdbMaxConnect(unsigned int max);
|
|
|
|
|
void setdbMinConnect(unsigned int min);
|
|
|
|
|
void setdbHostIP(char *pszDBHostIP);
|
|
|
|
|
void setdbName(char *pszDBName);
|
|
|
|
|
void setdbUserName(char *pszDBUserName);
|
|
|
|
|
void setdbUserPass(char *pszDBUserPass);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// socket <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void setFdLimit(unsigned int iCount);
|
|
|
|
|
unsigned int getFdLimit();
|
|
|
|
|
|
|
|
|
|
void setTimeout0(unsigned int t);
|
|
|
|
|
void setTimeout1(unsigned int t);
|
|
|
|
|
void setTimeout2(unsigned int t);
|
|
|
|
|
void setTimeout3(unsigned int t);
|
|
|
|
|
unsigned int getTimeout0();
|
|
|
|
|
unsigned int getTimeout1();
|
|
|
|
|
unsigned int getTimeout2();
|
|
|
|
|
unsigned int getTimeout3();
|
|
|
|
|
|
|
|
|
|
void setK(unsigned int k);
|
|
|
|
|
unsigned int getK();
|
|
|
|
|
|
|
|
|
|
void setW(unsigned int w);
|
|
|
|
|
unsigned int getW();
|
|
|
|
|
|
|
|
|
|
void setLogDebug(char yes);
|
|
|
|
|
void setLogError(char yes);
|
|
|
|
|
void setLogWarning(char yes);
|
|
|
|
|
void setLogPack(char yes);
|
|
|
|
|
void setLogConsole(char yes);
|
|
|
|
|
void setLogMessage(char yes);
|
|
|
|
|
char isLogDebug(void);
|
|
|
|
|
char isLogError(void);
|
|
|
|
|
char isLogWarning(void);
|
|
|
|
|
char isLogPack(void);
|
|
|
|
|
char isLogConsole(void);
|
|
|
|
|
char isLogMessage(void);
|
|
|
|
|
|
|
|
|
|
// version infomation functios
|
|
|
|
|
void setServerVersion(char *pver) ;
|
|
|
|
|
char *getServerVersion();
|
|
|
|
|
|
|
|
|
|
void setMonitor(bool bMonitor);
|
|
|
|
|
bool getMonitor();
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int iniGetString(const char *pszSection, const char *pszEntry, char *pszRetBuf, unsigned int uiBufLen);
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8>Э<EFBFBD><D0AD>ʹ<EFBFBD><CAB9>
|
|
|
|
|
void setCommProtocol(int protocol);
|
|
|
|
|
int getCommProtocol();
|
|
|
|
|
|
|
|
|
|
// modbus functions
|
|
|
|
|
void setModbusMode(char *mode);
|
|
|
|
|
char *getModbusMode();
|
|
|
|
|
|
|
|
|
|
void setModbusTcpAddr(char *addr);
|
|
|
|
|
char *getModbusTcpAddr();
|
|
|
|
|
|
|
|
|
|
void setModbusRtuPort(char *port);
|
|
|
|
|
char *getModbusRtuPort();
|
|
|
|
|
|
|
|
|
|
void setModbusTcpPort(int port);
|
|
|
|
|
int getModbusTcpPort();
|
|
|
|
|
|
|
|
|
|
void setModbusBaud(int baud);
|
|
|
|
|
int getModbusBaud();
|
|
|
|
|
|
|
|
|
|
void setModbusParity(char parity);
|
|
|
|
|
char getModbusParity();
|
|
|
|
|
|
|
|
|
|
void setModbusDataBit(int bit);
|
|
|
|
|
int getModbusDataBit();
|
|
|
|
|
|
|
|
|
|
void setModbusStopBit(int sbit);
|
|
|
|
|
int getModbusStopBit();
|
|
|
|
|
|
|
|
|
|
void setWifiPasswd(char *passwd);
|
|
|
|
|
char* getWifiPasswd();
|
|
|
|
|
|
|
|
|
|
// iec61850 config
|
|
|
|
|
void setIEDCount(int c);
|
|
|
|
|
int getIEDCount();
|
|
|
|
|
|
|
|
|
|
void setIEDAddress(int idx, ST_IED_ADDR paddr);
|
|
|
|
|
ST_IED_ADDR *getIEDAddrsss(int idx);
|
|
|
|
|
|
|
|
|
|
void setIEDModelConfigFile(char *ied_file_name);
|
|
|
|
|
char *getIEDModelConfigFile();
|
|
|
|
|
|
|
|
|
|
void setComtradePath(char *path);
|
|
|
|
|
char *getComtradePath();
|
|
|
|
|
void setComtradeBakPath(char *path);
|
|
|
|
|
char *getComtradeBakPath();
|
|
|
|
|
|
|
|
|
|
void setIEDComtradePath(char *path);
|
|
|
|
|
char *getIEDComtradePath();
|
|
|
|
|
|
|
|
|
|
void setIEDComtradeRemove(bool isRemove);
|
|
|
|
|
bool getIEDComtradeRemove();
|
|
|
|
|
private:
|
|
|
|
|
static TConfig *p_TConfig;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool b_monitor_enable ; // <20><><EFBFBD>ر<EFBFBD>־ true:<3A><><EFBFBD><EFBFBD> false: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// server version infomations
|
|
|
|
|
char m_version[32+1]; // format 2013.00.100
|
|
|
|
|
|
|
|
|
|
// database config parameter
|
|
|
|
|
char m_dbHostIP[16];
|
|
|
|
|
char m_dbName[16];
|
|
|
|
|
char m_dbUserName[16];
|
|
|
|
|
char m_dbUserPass[16];
|
|
|
|
|
|
|
|
|
|
unsigned int m_dbMaxConnect;
|
|
|
|
|
unsigned int m_dbMinConnect;
|
|
|
|
|
unsigned int m_dbPort;
|
|
|
|
|
|
|
|
|
|
char m_local_addr[16];
|
|
|
|
|
unsigned int m_local_port;
|
|
|
|
|
char m_remote_addr[16] ;
|
|
|
|
|
unsigned int m_remote_port ;
|
|
|
|
|
// socket config
|
|
|
|
|
unsigned int m_fd_limit;
|
|
|
|
|
unsigned int t0,t1,t2,t3,uK,uW;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int m_recv_num;
|
|
|
|
|
unsigned int m_parse_num;
|
|
|
|
|
unsigned int m_opration_num;
|
|
|
|
|
unsigned int m_respone_num;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// logger
|
|
|
|
|
char m_logdebug; // debug logger
|
|
|
|
|
char m_logwarning; // warning logger
|
|
|
|
|
char m_logerror; // error logger
|
|
|
|
|
char m_logpack; // package print logger
|
|
|
|
|
char m_logconsole; // console print
|
|
|
|
|
char m_logmessage; // message print
|
|
|
|
|
|
|
|
|
|
// Modbus Protocol Configure
|
|
|
|
|
int m_comm_protocol; // 1:modbus 2: iec61850
|
|
|
|
|
char m_mbus_mode[16]; // Modbus ͨ<><CDA8>ģʽ TCP|RTU|ASC|IEC61850
|
|
|
|
|
char m_mbus_tcp_addr[32]; // ͨ<>ŵ<EFBFBD>ַ, IP or COM1...
|
|
|
|
|
int m_mbus_tcp_port; // ͨ<>Ŷ˿<C5B6> for TCP
|
|
|
|
|
char m_mbus_rtu_port[128]; // <20><><EFBFBD>ں<EFBFBD> for RTU
|
|
|
|
|
int m_mbus_baud; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char m_mbus_parity; // У<><D0A3>λ
|
|
|
|
|
int m_mbus_data_bit; // <20><><EFBFBD><EFBFBD>λ
|
|
|
|
|
int m_mbus_stop_bit; // ֹͣλ
|
|
|
|
|
char m_mbus_wifi_pass[128]; // wifi password
|
|
|
|
|
|
|
|
|
|
// IEC61850 Configuration
|
|
|
|
|
int m_ied_count; // IED count
|
|
|
|
|
ST_IED_ADDR m_ied_addr[HT_MAX_IED_COUNT]; // IED address list
|
|
|
|
|
char m_ied_comtrade_path[256]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IED¼<44><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
bool b_ied_comtrade_remove; // # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>غ<EFBFBD><D8BA>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE> true:ɾ<><C9BE><EFBFBD><EFBFBD>false : <20><><EFBFBD><EFBFBD>
|
|
|
|
|
char m_ied_model_config_file[MAX_PATH]; // IEC61850<35><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char m_comtrade_path[MAX_PATH]; // ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
char m_comtrade_bak_path[MAX_PATH]; // ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|