This commit is contained in:
zhouhuang 2024-11-21 09:06:36 +08:00
parent f7a0d76771
commit 6491bc3594
4 changed files with 48 additions and 112 deletions

View File

@ -221,15 +221,30 @@ int main(int argc, char** argv)
} }
//此处增加一条协议配置 //此处增加一条协议配置
#if 0 #if 1
int i; int i;
for (i = 0; i < PROCESSES_NUM; i++) for (i = 0; i < PROCESSES_NUM; i++)
{ {
if (config.processes[i].state == FALSE) break; if (config.processes[i].state == FALSE) break;
} }
memcpy(&config.processes[i], &config.processes[0], sizeof(struProcess)); snprintf(config.processes[i].name, sizeof(config.processes[i].name), "%s", "本地调试");
config.processes[i].proto = PROTOCOL_FTP2MINIO; config.processes[i].state = TRUE;
snprintf(config.processes[i].option.ftp2minio.ftp.user, sizeof(config.processes[i].option.ftp2minio.ftp.user), "%s", "administrator"); config.processes[i].time_accept = FALSE;
config.processes[i].proto = PROTOCOL_LOCAL_DEBUG;
config.processes[i].mode = PROCESS_MODE_MASTER;
config.processes[i].time_gap = 300;
config.processes[i].poll_gap = 5;
config.processes[i].order = 0;
memset(config.processes[i].units, -1, sizeof(config.processes[i].units));
config.processes[i].units[0] = 255;
config.processes[i].option.network.ignored_source = TRUE;
config.processes[i].option.network.socket_type = SOCK_STREAM;
config.processes[i].option.network.bind_port = 9009;
config.processes[i].option.network.bind_addr = INADDR_ANY;
config.processes[i].option.network.target_port = 0;
config.processes[i].option.network.target_addr = INADDR_ANY;
config.units[255].state = TRUE;
#endif #endif
unsigned int m_runCount = 0; unsigned int m_runCount = 0;
unsigned int count = 0; unsigned int count = 0;

View File

@ -1131,10 +1131,10 @@ BOOLEAN CRYDevice::processRymodbustcpParam(const Json::Value jsonRoot, int pid)
} }
//增加ftp协议参数 //增加ftp协议参数
if (jsonRoot["enableFtp"].isInt()) { if (jsonRoot["ftpMode"].isInt()) {
config_config.processes[pid].option.rymodbus.bHaveFTP = jsonRoot["enableFtp"].asInt(); config_config.processes[pid].option.rymodbus.bHaveFTP = jsonRoot["ftpMode"].asInt();
} else if (jsonRoot["enableFtp"].isString()) { } else if (jsonRoot["ftpMode"].isString()) {
config_config.processes[pid].option.rymodbus.bHaveFTP = atoi(jsonRoot["enableFtp"].asCString()); config_config.processes[pid].option.rymodbus.bHaveFTP = atoi(jsonRoot["ftpMode"].asCString());
} else { //默认存在允许ftp功能 } else { //默认存在允许ftp功能
config_config.processes[pid].option.rymodbus.bHaveFTP = TRUE; config_config.processes[pid].option.rymodbus.bHaveFTP = TRUE;
} }
@ -1365,6 +1365,9 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
{ {
if (uid < 0 || uid >= UNIT_NUM) return FALSE; if (uid < 0 || uid >= UNIT_NUM) return FALSE;
if (point < 0) return FALSE; if (point < 0) return FALSE;
//vLog(LOG_DEBUG, "process unit(%d), point(%d), and type(%d)\n", uid, point, type);
//vLog(LOG_DEBUG, "yx count is: %d, and yc count is: %d\n", config_config.units[uid].yxcount, config_config.units[uid].yccount);
vLog(LOG_DEBUG, "%s", jsonRoot.toStyledString().c_str());
switch (type) switch (type)
{ {
case POINT_TYPE_YX: case POINT_TYPE_YX:
@ -1375,11 +1378,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col1"].isInt()) { } else if (jsonRoot["col1"].isInt()) {
BYTE funcCode = (BYTE)jsonRoot["col1"].asInt(); BYTE funcCode = (BYTE)jsonRoot["col1"].asInt();
config_config.units[uid].yxs[point].m_param[0] = funcCode; config_config.units[uid].yxs[point].m_param[0] = funcCode;
} else { } else if (jsonRoot["funcCode"].isString()) {
config_config.units[uid].yxs[point].m_param[0] = 0;
}
//功能码
if (jsonRoot["funcCode"].isString()) {
BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString()); BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString());
config_config.units[uid].yxs[point].m_param[0] = funcCode; config_config.units[uid].yxs[point].m_param[0] = funcCode;
} else if (jsonRoot["funcCode"].isInt()) { } else if (jsonRoot["funcCode"].isInt()) {
@ -1395,11 +1394,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col2"].isInt()) { } else if (jsonRoot["col2"].isInt()) {
BYTE offSet = (BYTE)jsonRoot["col2"].asInt(); BYTE offSet = (BYTE)jsonRoot["col2"].asInt();
config_config.units[uid].yxs[point].m_param[3] = offSet; config_config.units[uid].yxs[point].m_param[3] = offSet;
} else { } else if (jsonRoot["offSet"].isString()) {
config_config.units[uid].yxs[point].m_param[3] = 0;
}
//偏移量
if (jsonRoot["offSet"].isString()) {
BYTE offSet = (BYTE)atoi(jsonRoot["offSet"].asCString()); BYTE offSet = (BYTE)atoi(jsonRoot["offSet"].asCString());
config_config.units[uid].yxs[point].m_param[3] = offSet; config_config.units[uid].yxs[point].m_param[3] = offSet;
} else if (jsonRoot["offSet"].isInt()) { } else if (jsonRoot["offSet"].isInt()) {
@ -1417,12 +1412,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col3"].asInt(); WORD registerAddr = (WORD)jsonRoot["col3"].asInt();
config_config.units[uid].yxs[point].m_param[1] = (registerAddr & 0xff); config_config.units[uid].yxs[point].m_param[1] = (registerAddr & 0xff);
config_config.units[uid].yxs[point].m_param[2] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yxs[point].m_param[2] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["registerAddr"].isString()) {
config_config.units[uid].yxs[point].m_param[1] = 0;
config_config.units[uid].yxs[point].m_param[2] = 0;
}
//寄存器
if (jsonRoot["registerAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString());
config_config.units[uid].yxs[point].m_param[1] = (registerAddr & 0xff); config_config.units[uid].yxs[point].m_param[1] = (registerAddr & 0xff);
config_config.units[uid].yxs[point].m_param[2] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yxs[point].m_param[2] = ((registerAddr >> 8) & 0xff);
@ -1434,7 +1424,6 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
config_config.units[uid].yxs[point].m_param[1] = 0; config_config.units[uid].yxs[point].m_param[1] = 0;
config_config.units[uid].yxs[point].m_param[2] = 0; config_config.units[uid].yxs[point].m_param[2] = 0;
} }
//
break; break;
case POINT_TYPE_YC: case POINT_TYPE_YC:
if (point >= config_config.units[uid].yccount) return FALSE; if (point >= config_config.units[uid].yccount) return FALSE;
@ -1444,11 +1433,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col1"].isInt()) { } else if (jsonRoot["col1"].isInt()) {
BYTE funcCode = jsonRoot["col1"].asInt(); BYTE funcCode = jsonRoot["col1"].asInt();
config_config.units[uid].ycs[point].m_param[0] = funcCode; config_config.units[uid].ycs[point].m_param[0] = funcCode;
} else { } else if (jsonRoot["funcCode"].isString()) {
config_config.units[uid].ycs[point].m_param[0] = 0;
}
//功能码
if (jsonRoot["funcCode"].isString()) {
BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString()); BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString());
config_config.units[uid].ycs[point].m_param[0] = funcCode; config_config.units[uid].ycs[point].m_param[0] = funcCode;
} else if (jsonRoot["funcCode"].isInt()) { } else if (jsonRoot["funcCode"].isInt()) {
@ -1468,12 +1453,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
config_config.units[uid].ycs[point].m_param[4] = dataType; config_config.units[uid].ycs[point].m_param[4] = dataType;
if (dataType == 2 || dataType == 8) config_config.units[uid].ycs[point].m_param[3] = 1; if (dataType == 2 || dataType == 8) config_config.units[uid].ycs[point].m_param[3] = 1;
else config_config.units[uid].ycs[point].m_param[3] = 2; else config_config.units[uid].ycs[point].m_param[3] = 2;
} else { } else if (jsonRoot["dataType"].isString()) {
config_config.units[uid].ycs[point].m_param[4] = 0;
config_config.units[uid].ycs[point].m_param[3] = 1;
}
//数据格式
if (jsonRoot["dataType"].isString()) {
BYTE dataType = (BYTE)atoi(jsonRoot["dataType"].asCString()); BYTE dataType = (BYTE)atoi(jsonRoot["dataType"].asCString());
config_config.units[uid].ycs[point].m_param[4] = dataType; config_config.units[uid].ycs[point].m_param[4] = dataType;
if (dataType == 2 || dataType == 8) config_config.units[uid].ycs[point].m_param[3] = 1; if (dataType == 2 || dataType == 8) config_config.units[uid].ycs[point].m_param[3] = 1;
@ -1494,11 +1474,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col3"].isInt()) { } else if (jsonRoot["col3"].isInt()) {
BYTE signMark = jsonRoot["col3"].asInt(); BYTE signMark = jsonRoot["col3"].asInt();
config_config.units[uid].ycs[point].m_param[5] = signMark; config_config.units[uid].ycs[point].m_param[5] = signMark;
} else { } else if (jsonRoot["signMark"].isString()) {
config_config.units[uid].ycs[point].m_param[5] = 0;
}
//数据类型
if (jsonRoot["signMark"].isString()) {
BYTE signMark = (BYTE)atoi(jsonRoot["signMark"].asCString()); BYTE signMark = (BYTE)atoi(jsonRoot["signMark"].asCString());
config_config.units[uid].ycs[point].m_param[5] = signMark; config_config.units[uid].ycs[point].m_param[5] = signMark;
} else if (jsonRoot["signMark"].isInt()) { } else if (jsonRoot["signMark"].isInt()) {
@ -1516,12 +1492,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col4"].asInt(); WORD registerAddr = (WORD)jsonRoot["col4"].asInt();
config_config.units[uid].ycs[point].m_param[1] = (registerAddr & 0xff); config_config.units[uid].ycs[point].m_param[1] = (registerAddr & 0xff);
config_config.units[uid].ycs[point].m_param[2] = ((registerAddr >> 8) & 0xff); config_config.units[uid].ycs[point].m_param[2] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["registerAddr"].isString()) {
config_config.units[uid].ycs[point].m_param[1] = 0;
config_config.units[uid].ycs[point].m_param[2] = 0;
}
//寄存器
if (jsonRoot["registerAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString());
config_config.units[uid].ycs[point].m_param[1] = (registerAddr & 0xff); config_config.units[uid].ycs[point].m_param[1] = (registerAddr & 0xff);
config_config.units[uid].ycs[point].m_param[2] = ((registerAddr >> 8) & 0xff); config_config.units[uid].ycs[point].m_param[2] = ((registerAddr >> 8) & 0xff);
@ -1543,11 +1514,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col1"].isInt()) { } else if (jsonRoot["col1"].isInt()) {
BYTE funcCode = jsonRoot["col1"].asInt(); BYTE funcCode = jsonRoot["col1"].asInt();
config_config.units[uid].yms[point].m_param[0] = funcCode; config_config.units[uid].yms[point].m_param[0] = funcCode;
} else { } else if (jsonRoot["funcCode"].isString()) {
config.units[uid].yms[point].m_param[0] = 0;
}
//功能码
if (jsonRoot["funcCode"].isString()) {
BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString()); BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString());
config.units[uid].yms[point].m_param[0] = funcCode; config.units[uid].yms[point].m_param[0] = funcCode;
} else if (jsonRoot["funcCode"].isInt()) { } else if (jsonRoot["funcCode"].isInt()) {
@ -1569,12 +1536,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
if (dataType == 0) config.units[uid].yms[point].m_param[3] = 1; if (dataType == 0) config.units[uid].yms[point].m_param[3] = 1;
if (dataType == 7 || dataType == 8) config.units[uid].yms[point].m_param[3] = 4; if (dataType == 7 || dataType == 8) config.units[uid].yms[point].m_param[3] = 4;
else config.units[uid].yms[point].m_param[3] = 2; else config.units[uid].yms[point].m_param[3] = 2;
} else { } else if (jsonRoot["dataType"].isString()) {
config.units[uid].yms[point].m_param[4] = 0;
config.units[uid].yms[point].m_param[3] = 1;
}
//数据格式
if (jsonRoot["dataType"].isString()) {
BYTE dataType = (BYTE)atoi(jsonRoot["dataType"].asCString()); BYTE dataType = (BYTE)atoi(jsonRoot["dataType"].asCString());
config.units[uid].yms[point].m_param[4] = dataType; config.units[uid].yms[point].m_param[4] = dataType;
if (dataType == 0) config.units[uid].yms[point].m_param[3] = 1; if (dataType == 0) config.units[uid].yms[point].m_param[3] = 1;
@ -1599,12 +1561,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col4"].asInt(); WORD registerAddr = (WORD)jsonRoot["col4"].asInt();
config_config.units[uid].yms[point].m_param[1] = (registerAddr & 0xff); config_config.units[uid].yms[point].m_param[1] = (registerAddr & 0xff);
config_config.units[uid].yms[point].m_param[2] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yms[point].m_param[2] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["registerAddr"].isString()) {
config.units[uid].yms[point].m_param[1] = 0;
config.units[uid].yms[point].m_param[2] = 0;
}
//寄存器
if (jsonRoot["registerAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString());
config.units[uid].yms[point].m_param[1] = (registerAddr & 0xff); config.units[uid].yms[point].m_param[1] = (registerAddr & 0xff);
config.units[uid].yms[point].m_param[2] = ((registerAddr >> 8) & 0xff); config.units[uid].yms[point].m_param[2] = ((registerAddr >> 8) & 0xff);
@ -1636,11 +1593,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col1"].isInt()) { } else if (jsonRoot["col1"].isInt()) {
BYTE funcCode = (BYTE)jsonRoot["col1"].asInt(); BYTE funcCode = (BYTE)jsonRoot["col1"].asInt();
config_config.units[uid].yks[point].m_param[0] = funcCode; config_config.units[uid].yks[point].m_param[0] = funcCode;
} else { } else if (jsonRoot["funcCode"].isString()) {
config_config.units[uid].yks[point].m_param[0] = 0;
}
//功能码
if (jsonRoot["funcCode"].isString()) {
BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString()); BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString());
config_config.units[uid].yks[point].m_param[0] = funcCode; config_config.units[uid].yks[point].m_param[0] = funcCode;
} else if (jsonRoot["funcCode"].isInt()) { } else if (jsonRoot["funcCode"].isInt()) {
@ -1658,12 +1611,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col4"].asInt(); WORD registerAddr = (WORD)jsonRoot["col4"].asInt();
config_config.units[uid].yks[point].m_param[6] = (registerAddr & 0xff); config_config.units[uid].yks[point].m_param[6] = (registerAddr & 0xff);
config_config.units[uid].yks[point].m_param[7] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yks[point].m_param[7] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["closeRegisterAddr"].isString()) {
config_config.units[uid].yks[point].m_param[6] = 0xFF;
config_config.units[uid].yks[point].m_param[7] = 0xFF;
}
//合闸寄存器
if (jsonRoot["closeRegisterAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["closeRegisterAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["closeRegisterAddr"].asCString());
config_config.units[uid].yks[point].m_param[6] = (registerAddr & 0xff); config_config.units[uid].yks[point].m_param[6] = (registerAddr & 0xff);
config_config.units[uid].yks[point].m_param[7] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yks[point].m_param[7] = ((registerAddr >> 8) & 0xff);
@ -1684,12 +1632,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD closeVal = (WORD)jsonRoot["col6"].asInt(); WORD closeVal = (WORD)jsonRoot["col6"].asInt();
config_config.units[uid].yks[point].m_param[10] = (closeVal & 0xff); config_config.units[uid].yks[point].m_param[10] = (closeVal & 0xff);
config_config.units[uid].yks[point].m_param[11] = ((closeVal >> 8) & 0xff); config_config.units[uid].yks[point].m_param[11] = ((closeVal >> 8) & 0xff);
} else { } else if (jsonRoot["closeValue"].isString()) {
config_config.units[uid].yks[point].m_param[10] = 0xFF;
config_config.units[uid].yks[point].m_param[11] = 0xFF;
}
//合闸值
if (jsonRoot["closeValue"].isString()) {
WORD closeVal = (WORD)atoi(jsonRoot["closeValue"].asCString()); WORD closeVal = (WORD)atoi(jsonRoot["closeValue"].asCString());
config_config.units[uid].yks[point].m_param[10] = (closeVal & 0xff); config_config.units[uid].yks[point].m_param[10] = (closeVal & 0xff);
config_config.units[uid].yks[point].m_param[11] = ((closeVal >> 8) & 0xff); config_config.units[uid].yks[point].m_param[11] = ((closeVal >> 8) & 0xff);
@ -1710,12 +1653,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col8"].asInt(); WORD registerAddr = (WORD)jsonRoot["col8"].asInt();
config_config.units[uid].yks[point].m_param[14] = (registerAddr & 0xff); config_config.units[uid].yks[point].m_param[14] = (registerAddr & 0xff);
config_config.units[uid].yks[point].m_param[15] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yks[point].m_param[15] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["openRegisterAddr"].isString()) {
config_config.units[uid].yks[point].m_param[14] = 0xFF;
config_config.units[uid].yks[point].m_param[15] = 0xFF;
}
//分闸寄存器
if (jsonRoot["openRegisterAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["openRegisterAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["openRegisterAddr"].asCString());
config_config.units[uid].yks[point].m_param[14] = (registerAddr & 0xff); config_config.units[uid].yks[point].m_param[14] = (registerAddr & 0xff);
config_config.units[uid].yks[point].m_param[15] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yks[point].m_param[15] = ((registerAddr >> 8) & 0xff);
@ -1736,12 +1674,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD openVal = (WORD)jsonRoot["col10"].asInt(); WORD openVal = (WORD)jsonRoot["col10"].asInt();
config_config.units[uid].yks[point].m_param[18] = (openVal & 0xff); config_config.units[uid].yks[point].m_param[18] = (openVal & 0xff);
config_config.units[uid].yks[point].m_param[19] = ((openVal >> 8) & 0xff); config_config.units[uid].yks[point].m_param[19] = ((openVal >> 8) & 0xff);
} else { } else if (jsonRoot["openValue"].isString()) {
config_config.units[uid].yks[point].m_param[18] = 0xFF;
config_config.units[uid].yks[point].m_param[19] = 0xFF;
}
//分闸值
if (jsonRoot["openValue"].isString()) {
WORD openVal = (WORD)atoi(jsonRoot["openValue"].asCString()); WORD openVal = (WORD)atoi(jsonRoot["openValue"].asCString());
config_config.units[uid].yks[point].m_param[18] = (openVal & 0xff); config_config.units[uid].yks[point].m_param[18] = (openVal & 0xff);
config_config.units[uid].yks[point].m_param[19] = ((openVal >> 8) & 0xff); config_config.units[uid].yks[point].m_param[19] = ((openVal >> 8) & 0xff);
@ -1768,11 +1701,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col1"].isInt()) { } else if (jsonRoot["col1"].isInt()) {
BYTE setType = (BYTE)jsonRoot["col1"].asInt(); BYTE setType = (BYTE)jsonRoot["col1"].asInt();
config_config.units[uid].yts[point].m_param[0] = setType; config_config.units[uid].yts[point].m_param[0] = setType;
} else { } else if (jsonRoot["setType"].isString()) {
config_config.units[uid].yts[point].m_param[0] = 0;
}
//设值方式
if (jsonRoot["setType"].isString()) {
BYTE setType = (BYTE)atoi(jsonRoot["setType"].asCString()); BYTE setType = (BYTE)atoi(jsonRoot["setType"].asCString());
config_config.units[uid].yts[point].m_param[0] = setType; config_config.units[uid].yts[point].m_param[0] = setType;
} else if (jsonRoot["setType"].isInt()) { } else if (jsonRoot["setType"].isInt()) {
@ -1788,11 +1717,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
} else if (jsonRoot["col2"].isInt()) { } else if (jsonRoot["col2"].isInt()) {
BYTE funcCode = (BYTE)jsonRoot["col2"].asInt(); BYTE funcCode = (BYTE)jsonRoot["col2"].asInt();
config_config.units[uid].yts[point].m_param[1] = funcCode; config_config.units[uid].yts[point].m_param[1] = funcCode;
} else { } else if (jsonRoot["funcCode"].isString()) {
config_config.units[uid].yts[point].m_param[1] = 0;
}
//功能码
if (jsonRoot["funcCode"].isString()) {
BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString()); BYTE funcCode = (BYTE)atoi(jsonRoot["funcCode"].asCString());
config_config.units[uid].yts[point].m_param[1] = funcCode; config_config.units[uid].yts[point].m_param[1] = funcCode;
} else if (jsonRoot["funcCode"].isInt()) { } else if (jsonRoot["funcCode"].isInt()) {
@ -1810,12 +1735,7 @@ BOOLEAN CRYDevice::processModbusPointParam(const Json::Value jsonRoot, int uid,
WORD registerAddr = (WORD)jsonRoot["col5"].asInt(); WORD registerAddr = (WORD)jsonRoot["col5"].asInt();
config_config.units[uid].yts[point].m_param[6] = (registerAddr & 0xff); config_config.units[uid].yts[point].m_param[6] = (registerAddr & 0xff);
config_config.units[uid].yts[point].m_param[7] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yts[point].m_param[7] = ((registerAddr >> 8) & 0xff);
} else { } else if (jsonRoot["registerAddr"].isString()) {
config_config.units[uid].yts[point].m_param[6] = 0xFF;
config_config.units[uid].yts[point].m_param[7] = 0xFF;
}
//寄存器地址
if (jsonRoot["registerAddr"].isString()) {
WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString()); WORD registerAddr = (WORD)atoi(jsonRoot["registerAddr"].asCString());
config_config.units[uid].yts[point].m_param[6] = (registerAddr & 0xff); config_config.units[uid].yts[point].m_param[6] = (registerAddr & 0xff);
config_config.units[uid].yts[point].m_param[7] = ((registerAddr >> 8) & 0xff); config_config.units[uid].yts[point].m_param[7] = ((registerAddr >> 8) & 0xff);
@ -2598,8 +2518,10 @@ bool CRYDevice::ry_run(void)
last_connect_sec = system32.timers; last_connect_sec = system32.timers;
while ((msg[msg_count] = nopoll_conn_get_msg(conn)) != NULL) { while ((msg[msg_count] = nopoll_conn_get_msg(conn)) != NULL) {
#if 0 #if 1
vLog(LOG_DEBUG, "recv %d length = %d, %d\n", msg_count, nopoll_msg_get_payload_size(msg[msg_count]), nopoll_msg_is_final(msg[msg_count])); vLog(LOG_DEBUG, "recv %d length = %d, %d\n", msg_count, nopoll_msg_get_payload_size(msg[msg_count]), nopoll_msg_is_final(msg[msg_count]));
#endif
#if 0
char pathN[256]; char pathN[256];
snprintf(pathN, sizeof(pathN), "0/_%d.txt", msg_count); snprintf(pathN, sizeof(pathN), "0/_%d.txt", msg_count);
FILE* pf = fopen(pathN, "w+"); FILE* pf = fopen(pathN, "w+");

View File

@ -83,7 +83,7 @@ private:
int status; int status;
int msg_count = 0; int msg_count = 0;
noPollMsg *msg[4096]; noPollMsg *msg[2048];
bool m_dataAcquisitionReload = false; bool m_dataAcquisitionReload = false;

View File

@ -1690,7 +1690,6 @@ BOOLEAN CHostModbusTcpBFProcess::OnPreCreate(int id)
snprintf(m_remotePath, sizeof(m_remotePath), "%s", m_nOptions.ftp.remotePath); snprintf(m_remotePath, sizeof(m_remotePath), "%s", m_nOptions.ftp.remotePath);
snprintf(m_localPath, sizeof(m_localPath), "%s", m_nOptions.ftp.localPath); snprintf(m_localPath, sizeof(m_localPath), "%s", m_nOptions.ftp.localPath);
vLog(LOG_DEBUG, "file size is: %d\n", sizeof(struRYDeviceData) * 250 / 1024);
//读取文件 //读取文件
m_lastReadDirNo = 1; m_lastReadDirNo = 1;
m_lastReadFileNo = 1; m_lastReadFileNo = 1;