update
This commit is contained in:
parent
2826f5720d
commit
f8a8868964
@ -4,7 +4,7 @@ set (VERSION 1.0.1)
|
||||
# set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
option (USE_MQTT "use mqtt protocol" ON)
|
||||
option (USE_WEBSOCKET "use websocket" OFF)
|
||||
option (USE_WEBSOCKET "use websocket" ON)
|
||||
option (USE_SQLITE3 "use sqlite3" ON)
|
||||
|
||||
if (USE_SQLITE3)
|
||||
@ -145,11 +145,10 @@ if (USE_WEBSOCKET)
|
||||
third_party/nopoll/nopoll_io.c
|
||||
third_party/nopoll/nopoll_log.c
|
||||
third_party/nopoll/nopoll_msg.c)
|
||||
|
||||
set (APP_SRCS ${APP_SRCS} dlt1867/dlt1867.cpp)
|
||||
set (APP_LIBS ${APP_LIBS} ssl crypto)
|
||||
add_definitions(-DUSE_WEBSOCKET)
|
||||
add_definitions(-DNOPOLL_OS_UNIX=1)
|
||||
#add_definitions(-DSHOW_DEBUG_LOG)
|
||||
add_definitions(-DNOPOLL_HAVE_VASPRINTF=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLSv10_ENABLED=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLSv11_ENABLED=1)
|
||||
|
@ -32,16 +32,19 @@ CChangeMaster::CChangeMaster()
|
||||
if (gethostname(hostname, sizeof(hostname)) < 0)
|
||||
{
|
||||
vLog(LOG_ERROR, "gethostname error.\n");
|
||||
return;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (NULL == (m_control.m_node = GetNode(hostname)))
|
||||
{
|
||||
vLog(LOG_ERROR, "node table error, cann't run(%s,%s)!\n", m_control.m_node->m_machine_name, hostname);
|
||||
return;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (m_control.m_node == NULL)
|
||||
{
|
||||
vLog(LOG_ERROR, "node table error, cann't change!\n");
|
||||
return;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if ((m_control.m_node->m_tcitype != MASTER_TCI) && (m_control.m_node->m_tcitype != STANDBY_TCI))
|
||||
@ -444,6 +447,7 @@ void CChangeMaster::ChangeDual()
|
||||
|
||||
NODE_STRUCT* CChangeMaster::GetNode(char *name)
|
||||
{
|
||||
return &nodes.m_node[0];
|
||||
int i = 0;
|
||||
for (i = 0; i < MAX_NODE_NUM; i++)
|
||||
{
|
||||
@ -457,6 +461,7 @@ NODE_STRUCT* CChangeMaster::GetNode(char *name)
|
||||
|
||||
NODE_STRUCT* CChangeMaster::GetNode(int netno)
|
||||
{
|
||||
return &nodes.m_node[0];
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < MAX_NODE_NUM; i++)
|
||||
|
2061
das-dn/cmg/main.cpp
2061
das-dn/cmg/main.cpp
File diff suppressed because it is too large
Load Diff
@ -23,11 +23,6 @@
|
||||
|
||||
#include "json.h"
|
||||
|
||||
#define ADDR_TYPE_NORMAL 0
|
||||
#define ADDR_TYPE_HEX 1
|
||||
#define ADDR_TYPE_IPV4 2
|
||||
#define ADDR_TYPE_IPV4_FACNO 3
|
||||
|
||||
#define PARAMTER_TYPE_MODBUS 1
|
||||
#define PARAMTER_TYPE_104 2
|
||||
#define PARAMTER_TYPE_9712 3
|
||||
@ -1040,6 +1035,7 @@ BOOLEAN WriteDatabaseCFG(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
//此处定义一个map来放置irn和协议的order的关系
|
||||
typedef std::map<QWORD, int> mapIRN2Order;
|
||||
BOOLEAN processUartParam(std::string jsonvalue, int ord)
|
||||
@ -2101,6 +2097,7 @@ BOOLEAN ReadConfigFromSQLite(BOOLEAN enable_auto_platform, const char* issmqtt_c
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
void dumpLogs(void)
|
||||
{
|
||||
@ -2354,9 +2351,9 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
if (usesqlite)
|
||||
{
|
||||
vLog(LOG_DEBUG, "read configuration from sqlite3 db file.\n");
|
||||
BOOLEAN ret;
|
||||
ret = ReadConfigFromSQLite(enable_auto_platform, pathName, codeName);
|
||||
BOOLEAN ret = FALSE;
|
||||
#if 0
|
||||
ret = ReadConfigFromSQLite(enable_auto_platform, pathName, codeName);
|
||||
if (ret)
|
||||
{
|
||||
WriteSystemCFG();
|
||||
@ -2377,6 +2374,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load system config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading node config...\n");
|
||||
@ -2384,6 +2382,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load node config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading database config...\n");
|
||||
@ -2391,6 +2390,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load database config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading hardware config...\n");
|
||||
@ -2398,6 +2398,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load hardware config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading process config...\n");
|
||||
@ -2405,6 +2406,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load processes config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading unit config...\n");
|
||||
@ -2412,6 +2414,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load unit config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
vLog(LOG_DEBUG, "Loading static unit config...\n");
|
||||
@ -2419,6 +2422,7 @@ BOOLEAN initialize_system(BOOLEAN usesqlite, BOOLEAN enable_auto_platform, const
|
||||
{
|
||||
vLog(LOG_ERROR, "Fail load static unit config!\n");
|
||||
alarm();
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -71,7 +71,7 @@ void CSOE::DumpSOE(void)
|
||||
static_unit = fopen(pathName, "rb");
|
||||
//打开yx.sta静态摁键
|
||||
FILE* static_yx;
|
||||
struUnitYXStatic yx;
|
||||
struYXStatic yx;
|
||||
snprintf(pathName, sizeof(pathName), "%s/%s", configpath, FILE_DATABASE_YX_STATIC);
|
||||
static_yx = fopen(pathName, "rb");
|
||||
|
||||
@ -85,9 +85,9 @@ void CSOE::DumpSOE(void)
|
||||
unit.model[15] = '\0';
|
||||
}
|
||||
memset(&yx, 0, sizeof(yx));
|
||||
if (static_yx != NULL && fseek(static_yx, sizeof(struUnitYXStatic)*m_soes[m_load].order, SEEK_SET) == 0)
|
||||
if (static_yx != NULL && fseek(static_yx, sizeof(struYXStatic)*m_soes[m_load].order, SEEK_SET) == 0)
|
||||
{
|
||||
fread(&yx, sizeof(struUnitYXStatic), 1, static_yx);
|
||||
fread(&yx, sizeof(struYXStatic), 1, static_yx);
|
||||
yx.name[63] = '\0';
|
||||
}
|
||||
fprintf(pf, "%04d/%02d/%02d %02d:%02d:%02d.%03d;%d;%s;%d;%s;%s;%d;%s\n", \
|
||||
|
@ -74,7 +74,7 @@ void CYCBW::DumpYCBW(void)
|
||||
static_unit = fopen(pathName, "rb");
|
||||
|
||||
FILE* static_yc;
|
||||
struUnitYCStatic yc;
|
||||
struYCStatic yc;
|
||||
snprintf(pathName, sizeof(pathName), "%s/%s", configpath, FILE_DATABASE_YC_STATIC);
|
||||
static_yc = fopen(pathName, "rb");
|
||||
|
||||
@ -88,9 +88,9 @@ void CYCBW::DumpYCBW(void)
|
||||
unit.model[15] = '\0';
|
||||
}
|
||||
memset(&yc, 0, sizeof(yc));
|
||||
if (static_yc != NULL && fseek(static_yc, sizeof(struUnitYCStatic)*m_ycbws[m_load].order, SEEK_SET) == 0)
|
||||
if (static_yc != NULL && fseek(static_yc, sizeof(struYCStatic)*m_ycbws[m_load].order, SEEK_SET) == 0)
|
||||
{
|
||||
fread(&yc, sizeof(struUnitYCStatic), 1, static_yc);
|
||||
fread(&yc, sizeof(struYCStatic), 1, static_yc);
|
||||
yc.name[63] = '\0';
|
||||
}
|
||||
fprintf(pf, "%s;%d;%d;%d;%s;%s;%d;%s\n",
|
||||
|
@ -73,7 +73,7 @@ void CYXBW::DumpYXBW(void)
|
||||
static_unit = fopen(pathName, "rb");
|
||||
|
||||
FILE* static_yx;
|
||||
struUnitYXStatic yx;
|
||||
struYXStatic yx;
|
||||
snprintf(pathName, sizeof(pathName), "%s/%s", configpath, FILE_DATABASE_YX_STATIC);
|
||||
static_yx = fopen(pathName, "rb");
|
||||
|
||||
@ -87,9 +87,9 @@ void CYXBW::DumpYXBW(void)
|
||||
unit.model[15] = '\0';
|
||||
}
|
||||
memset(&yx, 0, sizeof(yx));
|
||||
if (static_yx != NULL && fseek(static_yx, sizeof(struUnitYXStatic)*m_yxbws[m_load].order, SEEK_SET) == 0)
|
||||
if (static_yx != NULL && fseek(static_yx, sizeof(struYXStatic)*m_yxbws[m_load].order, SEEK_SET) == 0)
|
||||
{
|
||||
fread(&yx, sizeof(struUnitYXStatic), 1, static_yx);
|
||||
fread(&yx, sizeof(struYXStatic), 1, static_yx);
|
||||
yx.name[63] = '\0';
|
||||
}
|
||||
fprintf(pf, "%s;%d;%s;%d;%s;%s;%d;%s\n",
|
||||
|
@ -14,52 +14,28 @@ const char VERSION_NO[] = "1.3.0001";
|
||||
#include <stdarg.h>
|
||||
#include <sys/timeb.h>
|
||||
#include <cstring>
|
||||
|
||||
#ifdef WIN32
|
||||
#include "pthread.h"
|
||||
#include <WinSock2.h>
|
||||
#include <WS2tcpip.h>
|
||||
|
||||
typedef char optval_t;
|
||||
typedef int socklen_t;
|
||||
|
||||
#define msleep(msec) Sleep(msec)
|
||||
#define sleep(sec) Sleep(sec * 1000)
|
||||
|
||||
void usleep(unsigned long usec);
|
||||
int close(SOCKET s);
|
||||
int ioctl(SOCKET s, long cmd, u_long FAR* argp);
|
||||
int gettimeofday(struct timeval *tp, struct timezone *tz);
|
||||
int settimeofday(struct timeval *tp, struct timezone *tz);
|
||||
struct tm *localtime_r(long *close, struct tm *res);
|
||||
#else
|
||||
#include <errno.h>
|
||||
#include <error.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <termios.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/times.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/select.h>
|
||||
#include <linux/rtc.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <linux/kd.h>
|
||||
#include <net/if.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/syscall.h>
|
||||
#if 0
|
||||
#include "threadpool.h"
|
||||
#define THREADPOOL_MAX_NUM 68
|
||||
#endif
|
||||
typedef int optval_t;
|
||||
typedef int SOCKET;
|
||||
#endif //WIN32
|
||||
#include <errno.h>
|
||||
#include <error.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <termios.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/times.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/select.h>
|
||||
#include <linux/rtc.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <linux/kd.h>
|
||||
#include <net/if.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/syscall.h>
|
||||
typedef int optval_t;
|
||||
typedef int SOCKET;
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <sys/stat.h>
|
||||
@ -212,30 +188,36 @@ const char VERSION_NO[] = "1.3.0001";
|
||||
#define PROTOCOL_HOST_MODBUS_TCP 16 //MODBUS tcp主
|
||||
#define PROTOCOL_SUB_MODBUS_TCP 17 //MODBUS RTU over tcp从
|
||||
#define PROTOCOL_HOST_MODBUS_RTU_TCP 18 //MODBUS RTU over tcp主
|
||||
#define PROTOCOL_HOST_MODBUS_RTU_NCY 19 //NCY-6100系列微机保护装置MODBUS RTU主
|
||||
#define PROTOCOL_HOST_MODBUS_RTU_LIYEZG 20 //浙江立业电器MODBUS RTU主
|
||||
//#define PROTOCOL_HOST_MODBUS_RTU_NCY 19 //NCY-6100系列微机保护装置MODBUS RTU主
|
||||
//#define PROTOCOL_HOST_MODBUS_RTU_LIYEZG 20 //浙江立业电器MODBUS RTU主
|
||||
#define PROTOCOL_RTU_STATE 21 //主控状态
|
||||
#define PROTOCOL_LOCAL_DEBUG 22 //本地调试
|
||||
#define PROTOCOL_SUB_XT9712 23 //XT9712从
|
||||
#define PROTOCOL_HISDATA 24 //历史数据协议
|
||||
//#define PROTOCOL_SUB_XT9712 23 //XT9712从
|
||||
//#define PROTOCOL_HISDATA 24 //历史数据协议
|
||||
#define PROTOCOL_BF_FTP 25 //倍福FTP数据协议
|
||||
#define PROTOCOL_HOST_NSA 27 //NSA主
|
||||
//#define PROTOCOL_HOST_NSA 27 //NSA主
|
||||
#define PROTOCOL_HOST_DLT645V2007 30 //dlt645v2007协议
|
||||
#define PROTOCOL_HOST_DLT645V2007_HR 31 //中电华瑞dlt645v2007协议
|
||||
#define PROTOCOL_HOST_DLT645V2007_OVERTCP 32 //中电华瑞dlt645v2007 over tcp协议
|
||||
#define PROTOCOL_CALC 37 //计算
|
||||
#define PROTOCOL_DLT_1867 40 //需求响应协议dlt1867-2008
|
||||
//#define PROTOCOL_DLT_1867 40 //需求响应协议dlt1867-2008
|
||||
#define PROTOCOL_SUB_GDW104 47 //国网104从
|
||||
#define PROTOCOL_AGC 50 //功率自动控制app
|
||||
#define PROTOCOL_AVC 51 //电压自动控制app
|
||||
//#define PROTOCOL_AGC 50 //功率自动控制app
|
||||
//#define PROTOCOL_AVC 51 //电压自动控制app
|
||||
#define PROTOCOL_HW_MQTT 72 //华为物联平台ROMA
|
||||
#define PROTOCOL_ISS_MQTT 73 //软通动力mqtt
|
||||
#define PROTOCOL_LM_MQTT 74 //罗米mqtt
|
||||
#define PROTOCOL_GRPC_PUBLISH 76 //gRPC上传发布
|
||||
#define PROTOCOL_GRPC_SUBSCRIBE 77 //gRPC下载订阅
|
||||
//#define PROTOCOL_ISS_MQTT 73 //软通动力mqtt
|
||||
//#define PROTOCOL_LM_MQTT 74 //罗米mqtt
|
||||
//#define PROTOCOL_GRPC_PUBLISH 76 //gRPC上传发布
|
||||
//#define PROTOCOL_GRPC_SUBSCRIBE 77 //gRPC下载订阅
|
||||
#define PROTOCOL_OPCUA 78 //opcua协议
|
||||
#define PROTOCOL_HOST_MODBUS_RTU_RDS100AFT 80 //珠海瑞捷电气股份有限公司RD系列保护装置MODBUS RTU主
|
||||
#define PROTOCOL_HOST_MODBUS_RTU_APF 81 //江苏沃海电气有限公司APF(SVG)MODBUS RTU主
|
||||
//#define PROTOCOL_HOST_MODBUS_RTU_RDS100AFT 80 //珠海瑞捷电气股份有限公司RD系列保护装置MODBUS RTU主
|
||||
//#define PROTOCOL_HOST_MODBUS_RTU_APF 81 //江苏沃海电气有限公司APF(SVG)MODBUS RTU主
|
||||
|
||||
|
||||
#define ADDR_TYPE_NORMAL 0
|
||||
#define ADDR_TYPE_HEX 1
|
||||
#define ADDR_TYPE_IPV4 2
|
||||
#define ADDR_TYPE_IPV4_FACNO 3
|
||||
|
||||
|
||||
#define YKS_IDLE 0
|
||||
@ -858,6 +840,7 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
short order;
|
||||
BYTE value;
|
||||
BYTE qds; //品质描述
|
||||
@ -865,18 +848,20 @@ typedef struct
|
||||
BYTE m_param[MAX_UNIT_POINT_PARAM_SIZE];
|
||||
DWORD update_time;
|
||||
QLONG irn;
|
||||
//是否取反,default: 0
|
||||
BOOLEAN invert;
|
||||
} struUnitYX;
|
||||
|
||||
#if 0
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
} struUnitYXStatic;
|
||||
|
||||
#if 0
|
||||
#define EXTREME_SAMPLE_NUM 32
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
short order;
|
||||
short factor; //比例系数
|
||||
LONG value; //遥测值
|
||||
@ -888,12 +873,31 @@ typedef struct
|
||||
BYTE m_param[MAX_UNIT_POINT_PARAM_SIZE];
|
||||
DWORD update_time;
|
||||
QLONG irn;
|
||||
|
||||
//上界
|
||||
float upBound;
|
||||
//下界
|
||||
float lowBound;
|
||||
//限值1, default: 0
|
||||
BOOLEAN limit1Enable;
|
||||
//限值1下限
|
||||
float limit1Low;
|
||||
//限值1上限
|
||||
float limit1High;
|
||||
//限值2, default: 0
|
||||
BOOLEAN limit2Enable;
|
||||
//限值2上限
|
||||
float limit2High;
|
||||
//限值2下限
|
||||
float limit2Low;
|
||||
} struUnitYC;
|
||||
|
||||
#if 0
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
} struUnitYCStatic;
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@ -908,6 +912,7 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
short order;
|
||||
DWORD value;
|
||||
float coef;
|
||||
@ -917,13 +922,16 @@ typedef struct
|
||||
QLONG irn;
|
||||
} struUnitYM;
|
||||
|
||||
#if 0
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
} struUnitYMStatic;
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
short order;
|
||||
BOOLEAN selected;
|
||||
BYTE m_param[MAX_UNIT_POINT_PARAM_SIZE];
|
||||
@ -937,16 +945,19 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
short order;
|
||||
BOOLEAN selected;
|
||||
BYTE m_param[MAX_UNIT_POINT_PARAM_SIZE];
|
||||
QLONG irn;
|
||||
} struUnitYT;
|
||||
|
||||
#if 0
|
||||
typedef struct
|
||||
{
|
||||
char name[(MAX_NAME_SIZE << 2)];
|
||||
} struUnitYTStatic;
|
||||
#endif
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
2
das-dn/third_party/json/jsoncpp.cpp
vendored
2
das-dn/third_party/json/jsoncpp.cpp
vendored
@ -301,6 +301,8 @@ bool Reader::parse(const char* beginDoc,
|
||||
const char* endDoc,
|
||||
Value& root,
|
||||
bool collectComments) {
|
||||
|
||||
fprintf(stderr, "here.\n");
|
||||
if (!features_.allowComments_) {
|
||||
collectComments = false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user