You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
518 lines
16 KiB
518 lines
16 KiB
/*系统参数查询*/
|
|
package com.back.protocol;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
import java.util.Properties;
|
|
|
|
import com.back.action.Log;
|
|
import com.back.common.MeterTimingParams;
|
|
import com.back.common.OpcDeviceParams;
|
|
import com.back.common.RunParams;
|
|
import com.back.jdbc.SQLHelper;
|
|
import com.back.*;
|
|
|
|
public class SystemParameter {
|
|
public static RunParams runParams = new RunParams(); //前置机运行参数
|
|
public static MeterTimingParams meterTimingParams = new MeterTimingParams();//定采运行参数
|
|
public static OpcDeviceParams opcDeviceParams = new OpcDeviceParams();// opc客户端运行参数
|
|
|
|
private static String clazzName = new Object() {
|
|
public String getClassName()
|
|
{
|
|
String clazzName = this.getClass().getName();
|
|
return clazzName.substring(0, clazzName.lastIndexOf('$'));
|
|
}
|
|
}.getClassName();
|
|
|
|
/** 获取定采工作配置参数 */
|
|
public static MeterTimingParams GetMeterTiming() {
|
|
|
|
meterTimingParams.reSend = 3; //错误重发次数
|
|
meterTimingParams.parallel = 30; //并发次数
|
|
meterTimingParams.logSet = 2; //巡检日志工作状态 0 不记录 1 记录错误 2 全部记录
|
|
meterTimingParams.intervalTiming = 30;//运行间隔时间(补抄) 单位:分钟
|
|
meterTimingParams.runNum = 8;
|
|
meterTimingParams.density = 1;//曲线抄表间隔
|
|
|
|
int i,j;
|
|
String str;
|
|
String strsql = "SELECT code,content FROM syscode WHERE type=2 AND code>'0000' ORDER BY code";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取定采工作配置参数不成功!");
|
|
return null;
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
str = rSet.getString("code");
|
|
str = str.trim();
|
|
i = Integer.valueOf(str);
|
|
str = rSet.getString("content");
|
|
|
|
switch(i)
|
|
{
|
|
case 1://错误重发次数
|
|
meterTimingParams.reSend = Integer.valueOf(str);
|
|
break;
|
|
case 2://并发次数
|
|
meterTimingParams.parallel = Integer.valueOf(str);
|
|
break;
|
|
case 3://巡检日志工作状态 0 不记录 1 记录错误 2 全部记录
|
|
meterTimingParams.logSet = Integer.valueOf(str);
|
|
break;
|
|
case 4://开始时间 格式: HH:MM
|
|
meterTimingParams.firstRunTime = str;
|
|
break;
|
|
case 5://运行间隔时间 单位:分钟
|
|
meterTimingParams.intervalTiming = Integer.valueOf(str);
|
|
break;
|
|
case 6://每天运行次数
|
|
meterTimingParams.runNum = Integer.valueOf(str);
|
|
break;
|
|
case 7://曲线密度 0:不冻结 1:15 2:30 3:60 254:5 255:1
|
|
meterTimingParams.density = Integer.valueOf(str);
|
|
break;
|
|
case 8://通信包大小
|
|
meterTimingParams.packsize = Integer.valueOf(str);
|
|
break;
|
|
case 9://光感控制-照度变化阀值
|
|
meterTimingParams.luxChangeLimit = Long.valueOf(str);
|
|
break;
|
|
}
|
|
|
|
}
|
|
} catch (SQLException e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return meterTimingParams;
|
|
}
|
|
|
|
/** 获取电表定采工作设置参数 */
|
|
public static String GetPowerTiming() {
|
|
String result = "";
|
|
String content[] = new String[4];
|
|
content[0] = "1"; //数据冻结密度(m)(1:15分钟;2:30分钟;3:60分钟)
|
|
content[1] = "3"; //补抄次数
|
|
content[2] = "06"; //日冻结数据抄读时间(整点) 格式:HH
|
|
Object[] objects;
|
|
String str;
|
|
int i,j;
|
|
String strsql = "SELECT code, content FROM syscode WHERE type=62 AND code>'0000' ORDER BY code";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
return "";
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
str = rSet.getString("code");
|
|
str = str.trim();
|
|
i = Integer.valueOf(str);
|
|
content[i - 1] = rSet.getString("content");
|
|
}
|
|
} catch (SQLException e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
for ( j = 0; j < content.length; j++) {
|
|
if (j==0)
|
|
result = content[j];
|
|
else
|
|
result = result + '|' + content[j];
|
|
}
|
|
return result;
|
|
}
|
|
|
|
//运行参数结构体
|
|
|
|
|
|
/*配置参数 */
|
|
public static RunParams GetPostParams() {
|
|
runParams.gprsIp = "1.190.175.75";//GPRS服务器IP (黑龙电服务器)
|
|
runParams.gprsPort = 3040;//GPRS服务器端口
|
|
|
|
runParams.gprsIpLon = "1.190.175.75";//GPRS服务器IP (黑龙服务器)
|
|
runParams.gprsPortLon = 3040;//GPRS服务器端口
|
|
|
|
runParams.reSend =1; //错误重发次数
|
|
runParams.gprsTimeOut = 60000;//GPRS超时时间(单位:毫秒)
|
|
runParams.timeDiscard = 120;//指令超时不处理时间(单位:秒)
|
|
runParams.threadsize = 200;//指令转发处理线程池线程数
|
|
runParams.intervalEvent = 1;//数据报文解析处理间隔时间(单位:分钟)
|
|
runParams.intervalScan = 20;//检测线程池线程运行状态间隔时间
|
|
runParams.terminalCom = "com1" ;//集中器串口
|
|
|
|
//获取语言
|
|
try {
|
|
//InputStream ins = new FileInputStream(System.getProperty("user.dir") + "\\conn.properties");
|
|
InputStream ins = SQLHelper.class.getClassLoader().getResourceAsStream("conn.properties");
|
|
Properties p = new Properties();
|
|
p.load(ins);
|
|
runParams.language = p.getProperty("language");
|
|
runParams.opcControl = Boolean.valueOf(p.getProperty("opcControl"));//光控转发处理
|
|
runParams.MControlTiming15 = Boolean.valueOf(p.getProperty("MControlTiming15"));//线路开关 15分钟定时抄读任务
|
|
runParams.MControlTiming60 = Boolean.valueOf(p.getProperty("MControlTiming60"));//线路开关 60分钟定时抄读任务
|
|
runParams.LampTiming = Boolean.valueOf(p.getProperty("LampTiming"));//路灯曲线 抄读任务
|
|
runParams.ForWard485 = Boolean.valueOf(p.getProperty("ForWard485"));//485转发 抄读任务
|
|
runParams.LampDay3761Timing = Boolean.valueOf(p.getProperty("LampDay3761Timing"));//灯具 日冻结 抄读任务
|
|
runParams.TerminalDay3761Timing = Boolean.valueOf(p.getProperty("TerminalDay3761Timing"));//集中器 日冻结 抄读任务
|
|
runParams.AnalysisOfTunnelElectricity = Boolean.valueOf(p.getProperty("AnalysisOfTunnelElectricity"));//隧道电量分析
|
|
runParams.gprsIp = p.getProperty("gprsIp");
|
|
runParams.gprsPort = 2030;
|
|
} catch (IOException e) {
|
|
// TODO Auto-generated catch block
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
int i,j;
|
|
String strsql = "SELECT code,content FROM syscode WHERE type=60 AND code>'0000' ORDER BY code";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
if (runParams.language.equals("en"))
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!");
|
|
else
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!");
|
|
return runParams;
|
|
}
|
|
String str;
|
|
try {
|
|
while (rSet.next()) {
|
|
str = rSet.getString("code");
|
|
str = str.trim();
|
|
i = Integer.valueOf(str);
|
|
str = rSet.getString("content").trim();
|
|
switch (i) {
|
|
case 1: //GPRS服务器
|
|
runParams.gprsIp = str;
|
|
break;
|
|
case 2://GPRS服务器端口
|
|
runParams.gprsPort = Integer.valueOf(str);
|
|
break;
|
|
case 3://错误重发次数千
|
|
runParams.reSend = Integer.valueOf(str);
|
|
break;
|
|
case 4://GPRS通信超时时间(单位:毫秒)
|
|
runParams.gprsTimeOut = Integer.valueOf(str);
|
|
break;
|
|
case 5://指令超时不处理时间(单位:秒)
|
|
runParams.timeDiscard = Integer.valueOf(str);
|
|
break;
|
|
case 6://指转发处理线程池大小
|
|
runParams.threadsize = Integer.valueOf(str);
|
|
break;
|
|
case 7://事件处理间隔(单位:分钟)
|
|
runParams.intervalEvent = Integer.valueOf(str);
|
|
break;
|
|
case 8://检测试线程运行间隔(单位:分钟)
|
|
runParams.intervalScan = Integer.valueOf(str);
|
|
break;
|
|
case 9://本地串口通信端口(例:com1)
|
|
runParams.terminalCom = str.toUpperCase();
|
|
break;
|
|
case 10://串口通信超时时间
|
|
runParams.comTimeOut = Integer.valueOf(str);
|
|
break;
|
|
|
|
case 11://485总线通信口
|
|
runParams.terminalCom485 = str.toUpperCase();
|
|
break;
|
|
case 12://485集中器心跳周期
|
|
runParams.beat485 = Integer.valueOf(str);
|
|
break;
|
|
case 13://485集中器命令超时时间
|
|
runParams.comTimeOut485 = Integer.valueOf(str);
|
|
break;
|
|
case 15: {// 设备数据同步周期(单位:秒)
|
|
runParams.devideSyncTime = Integer.valueOf(str);
|
|
break;
|
|
}
|
|
case 16: {// websocket ip
|
|
runParams.websocketIp = str;
|
|
break;
|
|
}
|
|
case 17: {// websocket port
|
|
runParams.websocketPort = Integer.valueOf(str);
|
|
break;
|
|
}
|
|
case 18: { // 车检器连接IP
|
|
runParams.carCheckSocketIp = str;
|
|
break;
|
|
}
|
|
case 19: {// 车检器连接端口
|
|
runParams.carCheckSocketPort = Integer.valueOf(str);
|
|
break;
|
|
}
|
|
case 20: {
|
|
runParams.carCheckSocketTimeOut = Integer.valueOf(str);
|
|
break;
|
|
}
|
|
case 21: {
|
|
runParams.carCheckSocketSaveInteval = Integer.valueOf(str);
|
|
break;
|
|
}
|
|
|
|
case 30: //GPRS服务器 Lon16
|
|
runParams.gprsIpLon = str;
|
|
break;
|
|
case 31://GPRS服务器端口 Lon16
|
|
runParams.gprsPortLon = Integer.valueOf(str);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
|
|
String strsql2 = "SELECT code,content FROM syscode WHERE type=100 AND code>'0000' ORDER BY code";
|
|
java.sql.Statement stmt2 = null;
|
|
ResultSet rSet2 = SQLHelper.getResultSet(strsql2);
|
|
if (rSet2 == null) {
|
|
if (runParams.language.equals("en"))
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!");
|
|
else
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!");
|
|
return runParams;
|
|
}
|
|
String str2;
|
|
try {
|
|
while (rSet2.next()) {
|
|
str2 = rSet2.getString("code");
|
|
str2 = str2.trim();
|
|
i = Integer.valueOf(str2);
|
|
str2 = rSet2.getString("content").trim();
|
|
switch (i) {
|
|
case 2: {// 车检器是否开启
|
|
runParams.carCheckSocketIsOpen = "0".equals(str2)?false:true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception e1) {
|
|
// TODO Auto-generated catch block
|
|
e1.printStackTrace();
|
|
}
|
|
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
stmt2 = rSet2.getStatement();
|
|
rSet2.close();
|
|
stmt2.close();
|
|
rSet2 = null;
|
|
stmt2 = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return runParams;
|
|
}
|
|
|
|
/**
|
|
* opc配置参数
|
|
* @return
|
|
*/
|
|
public static OpcDeviceParams GetOpcDeviceParams() {
|
|
opcDeviceParams.opcIp = "127.0.0.1";
|
|
opcDeviceParams.opcPort = "49320";
|
|
opcDeviceParams.opcTimeOut = 30;
|
|
|
|
String strsql = "SELECT code,content FROM syscode WHERE type=25 AND code>'0000' ORDER BY code";
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
if (runParams.language.equals("en")) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Read the frontend configuration parameter is not successful!");
|
|
} else {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取前置机配置参数不成功!");
|
|
}
|
|
return opcDeviceParams;
|
|
}
|
|
|
|
String str;
|
|
int i,j;
|
|
try {
|
|
while (rSet.next()) {
|
|
str = rSet.getString("code");
|
|
str = str.trim();
|
|
i = Integer.valueOf(str);
|
|
str = rSet.getString("content").trim();
|
|
switch (i) {
|
|
case 1:
|
|
opcDeviceParams.enable = "0".equals(str)?false:true;
|
|
case 2:
|
|
opcDeviceParams.opcIp = str;
|
|
break;
|
|
case 3:
|
|
opcDeviceParams.opcPort = str;
|
|
break;
|
|
case 4:
|
|
opcDeviceParams.opcUserName = str;
|
|
break;
|
|
case 5:
|
|
opcDeviceParams.opcPassword = str;
|
|
break;
|
|
case 6:
|
|
opcDeviceParams.opcCycleTime = Integer.valueOf(str);
|
|
break;
|
|
case 7:
|
|
opcDeviceParams.opcTimeOut = Integer.valueOf(str);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
|
|
return opcDeviceParams;
|
|
}
|
|
|
|
/** 获取短信猫配置参数 */
|
|
public static String getSmsParams() {
|
|
String result = "";
|
|
String strsql = "SELECT content FROM syscode WHERE type=61 AND code='0004' ORDER BY code";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->读取短信猫配置参数不成功!");
|
|
return "";
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
result = result + rSet.getString("content") + "|";
|
|
}
|
|
} catch (Exception e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->ERROR:" + e.getMessage());
|
|
}
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
if (!result.equals("")) {
|
|
result = result.substring(0, result.length() - 1);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/** 获取短信信息中心号码 */
|
|
public static String getenter() {
|
|
String center = "";
|
|
String strsql = "select content from syscode where type=61 and code='0001'";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
return "";
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
center = rSet.getString("content");
|
|
}
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return center;
|
|
}
|
|
|
|
/** 获取短信息最大发送次数 */
|
|
public static int getmaxCount() {
|
|
int count = 0;
|
|
String strsql = "select content from syscode where type=61 and code='0003'";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
return 0;
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
count = rSet.getInt("content");
|
|
}
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return count;
|
|
}
|
|
|
|
/** 获取短信猫连接口参数 */
|
|
public static String smsport() {
|
|
String serialport = "";
|
|
String strsql = "select content from syscode where type=61 and code='0002'";
|
|
java.sql.Statement stmt = null;
|
|
ResultSet rSet = SQLHelper.getResultSet(strsql);
|
|
if (rSet == null) {
|
|
return "";
|
|
}
|
|
try {
|
|
while (rSet.next()) {
|
|
serialport = rSet.getString("content");
|
|
}
|
|
} catch (SQLException e) {
|
|
Log.writelog(SystemParameter.clazzName,Thread.currentThread().getStackTrace()[1].getMethodName() + "->Error:" + e.getMessage());
|
|
}
|
|
try {
|
|
stmt = rSet.getStatement();
|
|
rSet.close();
|
|
stmt.close();
|
|
rSet = null;
|
|
stmt = null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return serialport.toUpperCase();
|
|
}
|
|
}
|
|
|