You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

297 lines
8.8 KiB
C

11 months ago
/****************************************************************************
** 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 mID[32 + 1]; // IED/<2F><><EFBFBD>豸ID
char IedAddr[32];
char channel[DEF_BUFFER_128];
int port;
}ST_IED_ADDR;
typedef struct
{
char m_iec_temp_ctrl[DEF_BUFFER_128]; // IED/<2F><><EFBFBD>豸ID
char IedAddr[32];
int port;
}ST_IED_CHANNEL;
#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 setdbCharacter(char *pszCharset);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݿ<EFBFBD><DDBF>ַ<EFBFBD><D6B7><EFBFBD>
char *getdbCharacter();
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();
void setModbusGatherTime(int times);
int getModbusGatherTime();
// 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();
// <20><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С
void setIEDComtradeFileSize(int iByte);
// <20><>ȡ¼<C8A1><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С
int getIEDComtradeFileSize();
//void setIEDTempCtrlParam(char *psrc);
//char *getIEDTempCtrlParam();
void setSftpUserName(char *pname);
char *getSftpUserName();
void setSftpPassword(char *pwd);
char *getSftpPassword();
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];
char m_set_character[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; // ֹͣλ
int m_modbus_gather_time; // Modbus<75><73><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(s)
char m_mbus_wifi_pass[128]; // wifi password
// IEC61850 Configuration
int m_ied_count; // IED count
int m_ied_comtrad_file_size; // ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>С
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>
//char m_iec_temp_ctrl[128]; // IED<45><44>ʱ<EFBFBD><CAB1><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
char m_modbus_sftp_user[DEF_BUFFER_32]; // Modbus sftp username
char m_modbus_sftp_pass[DEF_BUFFER_32]; // Modbus sftp password
//ST_IED_CHANNEL m_ied_channel[HT_MAX_IED_COUNT];
};
#endif