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.

261 lines
7.4 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/****************************************************************************
** 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>
// 配置文件路径
#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 // 最大IED数量
typedef struct
{
char IedAddr[32];
int port;
}ST_IED_ADDR;
#pragma pack (pop)
class TConfig
{
public:
TConfig();
virtual ~TConfig();
static TConfig *getInstance();
// 读取配置文件参数
bool getIniConfig();
void showConfig();
// 设置本地服务器IP
void setLocalAddr(char *pszAddr);
// 获取本地服务器IP
char *getLocalAddr();
// 设置本地服务器端口
void setLocalPort(unsigned short iPort);
// 获取本地服务器端口
unsigned short getLocalPort();
// 设置远程服务器IP
void setRemoteAddr(char *pszAddr);
// 获取远程服务器IP
char *getRemoteAddr();
// 设置远程服务器端口
void setRemotePort(unsigned short iPort);
// 获取远程服务器端口
unsigned short getRemotePort();
void setRecvThreadNumber(unsigned int n) ; // 接收线程数
void setParseThreadNumber(unsigned int n) ; // 解析104线程数
void setOprationThreadNumber(unsigned int n) ; // 入库线程数
void setResponeThreadNumber(unsigned int n) ; // 应答线程数
unsigned int getRecvThreadNumber() ; // 接收线程数
unsigned int getParseThreadNumber() ; // 解析104线程数
unsigned int getOprationThreadNumber() ; // 入库线程数
unsigned int getResponeThreadNumber() ; // 应答线程数
// 配置数据库配置参数接口
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 相关属性参数配置
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();
// 读取配置文件函数
int iniGetString(const char *pszSection, const char *pszEntry, char *pszRetBuf, unsigned int uiBufLen);
// 通信协议使能
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 ; // 监控标志 true:启用 false: 不启用
// 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 通信模式 TCP|RTU|ASC|IEC61850
char m_mbus_tcp_addr[32]; // 通信地址, IP or COM1...
int m_mbus_tcp_port; // 通信端口 for TCP
char m_mbus_rtu_port[128]; // 串口号 for RTU
int m_mbus_baud; // 波特率
char m_mbus_parity; // 校验位
int m_mbus_data_bit; // 数据位
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]; // 服务器IED录播文件存放路径
bool b_ied_comtrade_remove; // # 服务器录播文件下载后是否删除 true:删除false : 保留
char m_ied_model_config_file[MAX_PATH]; // IEC61850配置文件名称
char m_comtrade_path[MAX_PATH]; // 录播文件存放路径
char m_comtrade_bak_path[MAX_PATH]; // 录播文件备份路径
};
#endif