diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/server/ReceiverServerHandler.java b/src/main/java/com/casic/server/ReceiverServerHandler.java
index 5346f35..7cd4075 100644
--- a/src/main/java/com/casic/server/ReceiverServerHandler.java
+++ b/src/main/java/com/casic/server/ReceiverServerHandler.java
@@ -5,6 +5,7 @@
import com.casic.enums.RelaySwitchEnums;
import com.casic.model.RelayStatusDTO;
import com.casic.resolver.DatagramResolver;
+import com.casic.util.SendVoice;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
@@ -94,9 +95,13 @@
if (!ObjectUtils.isEmpty(relayStatusDTO)) {
ByteBuf out = ByteBufAllocator.DEFAULT.heapBuffer();
String switchContent = preFix + relayStatusDTO.getChannelName() + "," + relayStatusDTO.getLampSwitch() + postFix;
-// for (int i = 1; i < 6; i++) {
-// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
- log.info(JSON.toJSONString(relayStatusDTO)+"-------"+switchContent);
+// for (int i = 1; i < 6; i++) {
+// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
+ log.info(JSON.toJSONString(relayStatusDTO) + "-------" + switchContent);
+ if (relayStatusDTO.getLampSwitch() == 1) {
+ //只推送报警设备
+ SendVoice.send(relayStatusDTO.getDeviceType(), relayStatusDTO.getChannelName());
+ }
out.writeBytes(switchContent.getBytes());
channels.forEach(channel -> {
if (channel.isActive()) {
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/server/ReceiverServerHandler.java b/src/main/java/com/casic/server/ReceiverServerHandler.java
index 5346f35..7cd4075 100644
--- a/src/main/java/com/casic/server/ReceiverServerHandler.java
+++ b/src/main/java/com/casic/server/ReceiverServerHandler.java
@@ -5,6 +5,7 @@
import com.casic.enums.RelaySwitchEnums;
import com.casic.model.RelayStatusDTO;
import com.casic.resolver.DatagramResolver;
+import com.casic.util.SendVoice;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
@@ -94,9 +95,13 @@
if (!ObjectUtils.isEmpty(relayStatusDTO)) {
ByteBuf out = ByteBufAllocator.DEFAULT.heapBuffer();
String switchContent = preFix + relayStatusDTO.getChannelName() + "," + relayStatusDTO.getLampSwitch() + postFix;
-// for (int i = 1; i < 6; i++) {
-// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
- log.info(JSON.toJSONString(relayStatusDTO)+"-------"+switchContent);
+// for (int i = 1; i < 6; i++) {
+// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
+ log.info(JSON.toJSONString(relayStatusDTO) + "-------" + switchContent);
+ if (relayStatusDTO.getLampSwitch() == 1) {
+ //只推送报警设备
+ SendVoice.send(relayStatusDTO.getDeviceType(), relayStatusDTO.getChannelName());
+ }
out.writeBytes(switchContent.getBytes());
channels.forEach(channel -> {
if (channel.isActive()) {
diff --git a/src/main/java/com/casic/util/SendVoice.java b/src/main/java/com/casic/util/SendVoice.java
new file mode 100644
index 0000000..b88456f
--- /dev/null
+++ b/src/main/java/com/casic/util/SendVoice.java
@@ -0,0 +1,76 @@
+package com.casic.util;
+
+import java.io.IOException;
+
+import com.casic.config.ServerPort;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+//账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html
+//注意事项:
+//(1)调试期间,请仔细阅读接口文档;
+//(2)请使用APIID(查看APIID请登录用户中心->语音通知->产品总览->APIID)及APIkey来调用接口;
+//(3)该代码仅供接入互亿无线语音通知接口参考使用,客户可根据实际需要自行编写;
+
+public class SendVoice {
+
+ private final static String Url = "http://api.vm.ihuyi.com/webservice/voice.php?method=Submit";
+
+ public static void send(String deviceType, String passage) {
+ HttpClient client = new HttpClient();
+ ServerPort serverPort = SpringContextUtil.getBean(ServerPort.class);
+ PostMethod method = new PostMethod(serverPort.getUrl());
+ //client.getParams().setContentCharset("GBK");
+ client.getParams().setContentCharset("UTF-8");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", serverPort.getAppId()),//用户名是登录用户中心->语音通知->产品总览->APIID
+ new NameValuePair("password", serverPort.getAppKey()),//查看密码请登录用户中心->语音通知->产品总览->APIKEY
+ new NameValuePair("mobile", serverPort.getPhone()),//手机号码
+ new NameValuePair("content", deviceType + "的设备,在通道" + passage + "发生了报警,请及时处理!")
+ };
+
+ method.setRequestBody(data);
+
+ try {
+ client.executeMethod(method);
+
+ String SubmitResult = method.getResponseBodyAsString();
+
+ //System.out.println(SubmitResult);
+
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String voiceid = root.elementText("voiceid");
+
+ System.out.println(code);
+ System.out.println(msg);
+ System.out.println(voiceid);
+
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/server/ReceiverServerHandler.java b/src/main/java/com/casic/server/ReceiverServerHandler.java
index 5346f35..7cd4075 100644
--- a/src/main/java/com/casic/server/ReceiverServerHandler.java
+++ b/src/main/java/com/casic/server/ReceiverServerHandler.java
@@ -5,6 +5,7 @@
import com.casic.enums.RelaySwitchEnums;
import com.casic.model.RelayStatusDTO;
import com.casic.resolver.DatagramResolver;
+import com.casic.util.SendVoice;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
@@ -94,9 +95,13 @@
if (!ObjectUtils.isEmpty(relayStatusDTO)) {
ByteBuf out = ByteBufAllocator.DEFAULT.heapBuffer();
String switchContent = preFix + relayStatusDTO.getChannelName() + "," + relayStatusDTO.getLampSwitch() + postFix;
-// for (int i = 1; i < 6; i++) {
-// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
- log.info(JSON.toJSONString(relayStatusDTO)+"-------"+switchContent);
+// for (int i = 1; i < 6; i++) {
+// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
+ log.info(JSON.toJSONString(relayStatusDTO) + "-------" + switchContent);
+ if (relayStatusDTO.getLampSwitch() == 1) {
+ //只推送报警设备
+ SendVoice.send(relayStatusDTO.getDeviceType(), relayStatusDTO.getChannelName());
+ }
out.writeBytes(switchContent.getBytes());
channels.forEach(channel -> {
if (channel.isActive()) {
diff --git a/src/main/java/com/casic/util/SendVoice.java b/src/main/java/com/casic/util/SendVoice.java
new file mode 100644
index 0000000..b88456f
--- /dev/null
+++ b/src/main/java/com/casic/util/SendVoice.java
@@ -0,0 +1,76 @@
+package com.casic.util;
+
+import java.io.IOException;
+
+import com.casic.config.ServerPort;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+//账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html
+//注意事项:
+//(1)调试期间,请仔细阅读接口文档;
+//(2)请使用APIID(查看APIID请登录用户中心->语音通知->产品总览->APIID)及APIkey来调用接口;
+//(3)该代码仅供接入互亿无线语音通知接口参考使用,客户可根据实际需要自行编写;
+
+public class SendVoice {
+
+ private final static String Url = "http://api.vm.ihuyi.com/webservice/voice.php?method=Submit";
+
+ public static void send(String deviceType, String passage) {
+ HttpClient client = new HttpClient();
+ ServerPort serverPort = SpringContextUtil.getBean(ServerPort.class);
+ PostMethod method = new PostMethod(serverPort.getUrl());
+ //client.getParams().setContentCharset("GBK");
+ client.getParams().setContentCharset("UTF-8");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", serverPort.getAppId()),//用户名是登录用户中心->语音通知->产品总览->APIID
+ new NameValuePair("password", serverPort.getAppKey()),//查看密码请登录用户中心->语音通知->产品总览->APIKEY
+ new NameValuePair("mobile", serverPort.getPhone()),//手机号码
+ new NameValuePair("content", deviceType + "的设备,在通道" + passage + "发生了报警,请及时处理!")
+ };
+
+ method.setRequestBody(data);
+
+ try {
+ client.executeMethod(method);
+
+ String SubmitResult = method.getResponseBodyAsString();
+
+ //System.out.println(SubmitResult);
+
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String voiceid = root.elementText("voiceid");
+
+ System.out.println(code);
+ System.out.println(msg);
+ System.out.println(voiceid);
+
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/util/StringUtil.java b/src/main/java/com/casic/util/StringUtil.java
new file mode 100644
index 0000000..69548a9
--- /dev/null
+++ b/src/main/java/com/casic/util/StringUtil.java
@@ -0,0 +1,46 @@
+package com.casic.util;
+
+import java.security.MessageDigest;
+
+public class StringUtil {
+ public static String str;
+ public static final String EMPTY_STRING = "";
+
+ private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
+ "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
+
+ private static String byteToHexString(byte b) {
+ int n = b;
+ if (n < 0)
+ n = 256 + n;
+ int d1 = n / 16;
+ int d2 = n % 16;
+ return hexDigits[d1] + hexDigits[d2];
+ }
+
+ /**
+ * ת���ֽ�����Ϊ16�����ִ�
+ * @param b �ֽ�����
+ * @return 16�����ִ�
+ */
+ public static String byteArrayToHexString(byte[] b) {
+ StringBuffer resultSb = new StringBuffer();
+ for (int i = 0; i < b.length; i++) {
+ resultSb.append(byteToHexString(b[i]));
+ }
+ return resultSb.toString();
+ }
+
+ public static String MD5Encode(String origin) {
+ String resultString = null;
+ try {
+ resultString = new String(origin);
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ resultString = byteArrayToHexString(md.digest(resultString
+ .getBytes()));
+ } catch (Exception ex) {
+ }
+ return resultString;
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/server/ReceiverServerHandler.java b/src/main/java/com/casic/server/ReceiverServerHandler.java
index 5346f35..7cd4075 100644
--- a/src/main/java/com/casic/server/ReceiverServerHandler.java
+++ b/src/main/java/com/casic/server/ReceiverServerHandler.java
@@ -5,6 +5,7 @@
import com.casic.enums.RelaySwitchEnums;
import com.casic.model.RelayStatusDTO;
import com.casic.resolver.DatagramResolver;
+import com.casic.util.SendVoice;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
@@ -94,9 +95,13 @@
if (!ObjectUtils.isEmpty(relayStatusDTO)) {
ByteBuf out = ByteBufAllocator.DEFAULT.heapBuffer();
String switchContent = preFix + relayStatusDTO.getChannelName() + "," + relayStatusDTO.getLampSwitch() + postFix;
-// for (int i = 1; i < 6; i++) {
-// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
- log.info(JSON.toJSONString(relayStatusDTO)+"-------"+switchContent);
+// for (int i = 1; i < 6; i++) {
+// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
+ log.info(JSON.toJSONString(relayStatusDTO) + "-------" + switchContent);
+ if (relayStatusDTO.getLampSwitch() == 1) {
+ //只推送报警设备
+ SendVoice.send(relayStatusDTO.getDeviceType(), relayStatusDTO.getChannelName());
+ }
out.writeBytes(switchContent.getBytes());
channels.forEach(channel -> {
if (channel.isActive()) {
diff --git a/src/main/java/com/casic/util/SendVoice.java b/src/main/java/com/casic/util/SendVoice.java
new file mode 100644
index 0000000..b88456f
--- /dev/null
+++ b/src/main/java/com/casic/util/SendVoice.java
@@ -0,0 +1,76 @@
+package com.casic.util;
+
+import java.io.IOException;
+
+import com.casic.config.ServerPort;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+//账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html
+//注意事项:
+//(1)调试期间,请仔细阅读接口文档;
+//(2)请使用APIID(查看APIID请登录用户中心->语音通知->产品总览->APIID)及APIkey来调用接口;
+//(3)该代码仅供接入互亿无线语音通知接口参考使用,客户可根据实际需要自行编写;
+
+public class SendVoice {
+
+ private final static String Url = "http://api.vm.ihuyi.com/webservice/voice.php?method=Submit";
+
+ public static void send(String deviceType, String passage) {
+ HttpClient client = new HttpClient();
+ ServerPort serverPort = SpringContextUtil.getBean(ServerPort.class);
+ PostMethod method = new PostMethod(serverPort.getUrl());
+ //client.getParams().setContentCharset("GBK");
+ client.getParams().setContentCharset("UTF-8");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", serverPort.getAppId()),//用户名是登录用户中心->语音通知->产品总览->APIID
+ new NameValuePair("password", serverPort.getAppKey()),//查看密码请登录用户中心->语音通知->产品总览->APIKEY
+ new NameValuePair("mobile", serverPort.getPhone()),//手机号码
+ new NameValuePair("content", deviceType + "的设备,在通道" + passage + "发生了报警,请及时处理!")
+ };
+
+ method.setRequestBody(data);
+
+ try {
+ client.executeMethod(method);
+
+ String SubmitResult = method.getResponseBodyAsString();
+
+ //System.out.println(SubmitResult);
+
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String voiceid = root.elementText("voiceid");
+
+ System.out.println(code);
+ System.out.println(msg);
+ System.out.println(voiceid);
+
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/util/StringUtil.java b/src/main/java/com/casic/util/StringUtil.java
new file mode 100644
index 0000000..69548a9
--- /dev/null
+++ b/src/main/java/com/casic/util/StringUtil.java
@@ -0,0 +1,46 @@
+package com.casic.util;
+
+import java.security.MessageDigest;
+
+public class StringUtil {
+ public static String str;
+ public static final String EMPTY_STRING = "";
+
+ private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
+ "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
+
+ private static String byteToHexString(byte b) {
+ int n = b;
+ if (n < 0)
+ n = 256 + n;
+ int d1 = n / 16;
+ int d2 = n % 16;
+ return hexDigits[d1] + hexDigits[d2];
+ }
+
+ /**
+ * ת���ֽ�����Ϊ16�����ִ�
+ * @param b �ֽ�����
+ * @return 16�����ִ�
+ */
+ public static String byteArrayToHexString(byte[] b) {
+ StringBuffer resultSb = new StringBuffer();
+ for (int i = 0; i < b.length; i++) {
+ resultSb.append(byteToHexString(b[i]));
+ }
+ return resultSb.toString();
+ }
+
+ public static String MD5Encode(String origin) {
+ String resultString = null;
+ try {
+ resultString = new String(origin);
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ resultString = byteArrayToHexString(md.digest(resultString
+ .getBytes()));
+ } catch (Exception ex) {
+ }
+ return resultString;
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ef11f26..03e581a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -20,9 +20,10 @@
#mybatis-plus:
# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+
casic:
alarm:
- rainfall: 20
+ rainfall: 5
humi: 10
temp: 10
pressure: 15
@@ -31,5 +32,9 @@
cron-time: 0 0 */1 * * ?
server:
port: 9393
+ appId: VM00452288
+ appKey: 1d6ea4fd4ae266ea0c7e502d9bf4172a
+ phone: 18611697489
+ url: http://api.vm.ihuyi.com/webservice/voice.php?method=Submit
pdfPath: /casic/testPdf/config/
diff --git a/pom.xml b/pom.xml
index 5b11d9d..5c0a41d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,6 +96,24 @@
2.4.5
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
diff --git a/src/main/java/com/casic/config/ServerPort.java b/src/main/java/com/casic/config/ServerPort.java
index fc89cf1..ae2f590 100644
--- a/src/main/java/com/casic/config/ServerPort.java
+++ b/src/main/java/com/casic/config/ServerPort.java
@@ -9,6 +9,11 @@
@ConfigurationProperties(prefix = "casic.server")
public class ServerPort {
- private Integer port;
+ private Integer port;
+ private String appId;
+ private String appKey;
+ private String phone;
+ private String url;
+
}
diff --git a/src/main/java/com/casic/enums/DevcodeEnums.java b/src/main/java/com/casic/enums/DevcodeEnums.java
index dbd1eed..563cb28 100644
--- a/src/main/java/com/casic/enums/DevcodeEnums.java
+++ b/src/main/java/com/casic/enums/DevcodeEnums.java
@@ -8,21 +8,35 @@
* 温湿度
*/
String HUMI_TEMP="842019010188";
+
/**
- * 多功能1
+ * 雨量计1
*/
String RAIN_GAUGE1="864708062717627";
+
/**
- * 多功能2
+ * 雨量计2
*/
String RAIN_GAUGE2="864708062669653";
+
+
+
+
/**
- * 多功能3
+ * 雨量计3
*/
String RAIN_GAUGE3="864708062689073";
/**
- * 多功能4
+ * 雨量计4
*/
String RAIN_GAUGE4="864708062626919";
+
+// 8653280684199430AAAA01030200093985 1
+// 8647080627176270AAAA01030200093985 3
+// 8647080626696530AAAA01030200093985 4
+// 8647080626890730AAAA01030200093985 5
+// 8647080626269190AAAA01030200093985 6
+// 8647080626269190AAAA01030200093985
+
}
diff --git a/src/main/java/com/casic/model/RelayStatusDTO.java b/src/main/java/com/casic/model/RelayStatusDTO.java
index b839e0c..62e3287 100644
--- a/src/main/java/com/casic/model/RelayStatusDTO.java
+++ b/src/main/java/com/casic/model/RelayStatusDTO.java
@@ -17,4 +17,8 @@
*/
private Integer lampSwitch;
+ private String deviceType;
+ private String devcode;
+ private String dataValue;
+
}
diff --git a/src/main/java/com/casic/resolver/AlarmDataResolver.java b/src/main/java/com/casic/resolver/AlarmDataResolver.java
index c794a7b..6e33d07 100644
--- a/src/main/java/com/casic/resolver/AlarmDataResolver.java
+++ b/src/main/java/com/casic/resolver/AlarmDataResolver.java
@@ -32,6 +32,8 @@
return null;
}
return RelayStatusDTO.builder()
+ .devcode(devcode)
+ .deviceType("温湿度传感器")
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/resolver/RainFallDataResolver.java b/src/main/java/com/casic/resolver/RainFallDataResolver.java
index a79d6c5..ba60f4e 100644
--- a/src/main/java/com/casic/resolver/RainFallDataResolver.java
+++ b/src/main/java/com/casic/resolver/RainFallDataResolver.java
@@ -26,7 +26,7 @@
@Override
public RelayStatusDTO datagram(String msg) {
if (msg.toLowerCase().contains(rainFallMark)) {
- log.info("雨量计报文为----"+msg);
+ log.info("雨量计报文为----" + msg);
//去掉补位
String devcode = msg.substring(0, 15);
String defaultStrValue = msg.substring(26, 30);
@@ -41,6 +41,9 @@
return null;
}
return RelayStatusDTO.builder()
+ .deviceType("雨量计传感器")
+ .devcode(devcode)
+ .dataValue(String.valueOf(defaultValue))
.channelName(channelName)
.lampSwitch(isAlarm)
.build();
diff --git a/src/main/java/com/casic/server/ReceiverServerHandler.java b/src/main/java/com/casic/server/ReceiverServerHandler.java
index 5346f35..7cd4075 100644
--- a/src/main/java/com/casic/server/ReceiverServerHandler.java
+++ b/src/main/java/com/casic/server/ReceiverServerHandler.java
@@ -5,6 +5,7 @@
import com.casic.enums.RelaySwitchEnums;
import com.casic.model.RelayStatusDTO;
import com.casic.resolver.DatagramResolver;
+import com.casic.util.SendVoice;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
@@ -94,9 +95,13 @@
if (!ObjectUtils.isEmpty(relayStatusDTO)) {
ByteBuf out = ByteBufAllocator.DEFAULT.heapBuffer();
String switchContent = preFix + relayStatusDTO.getChannelName() + "," + relayStatusDTO.getLampSwitch() + postFix;
-// for (int i = 1; i < 6; i++) {
-// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
- log.info(JSON.toJSONString(relayStatusDTO)+"-------"+switchContent);
+// for (int i = 1; i < 6; i++) {
+// switchConent = preFix + relayStatusDTO.getChannelName() + "," + 1 + postFix;
+ log.info(JSON.toJSONString(relayStatusDTO) + "-------" + switchContent);
+ if (relayStatusDTO.getLampSwitch() == 1) {
+ //只推送报警设备
+ SendVoice.send(relayStatusDTO.getDeviceType(), relayStatusDTO.getChannelName());
+ }
out.writeBytes(switchContent.getBytes());
channels.forEach(channel -> {
if (channel.isActive()) {
diff --git a/src/main/java/com/casic/util/SendVoice.java b/src/main/java/com/casic/util/SendVoice.java
new file mode 100644
index 0000000..b88456f
--- /dev/null
+++ b/src/main/java/com/casic/util/SendVoice.java
@@ -0,0 +1,76 @@
+package com.casic.util;
+
+import java.io.IOException;
+
+import com.casic.config.ServerPort;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+//账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html
+//注意事项:
+//(1)调试期间,请仔细阅读接口文档;
+//(2)请使用APIID(查看APIID请登录用户中心->语音通知->产品总览->APIID)及APIkey来调用接口;
+//(3)该代码仅供接入互亿无线语音通知接口参考使用,客户可根据实际需要自行编写;
+
+public class SendVoice {
+
+ private final static String Url = "http://api.vm.ihuyi.com/webservice/voice.php?method=Submit";
+
+ public static void send(String deviceType, String passage) {
+ HttpClient client = new HttpClient();
+ ServerPort serverPort = SpringContextUtil.getBean(ServerPort.class);
+ PostMethod method = new PostMethod(serverPort.getUrl());
+ //client.getParams().setContentCharset("GBK");
+ client.getParams().setContentCharset("UTF-8");
+ method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");
+ NameValuePair[] data = {//提交短信
+ new NameValuePair("account", serverPort.getAppId()),//用户名是登录用户中心->语音通知->产品总览->APIID
+ new NameValuePair("password", serverPort.getAppKey()),//查看密码请登录用户中心->语音通知->产品总览->APIKEY
+ new NameValuePair("mobile", serverPort.getPhone()),//手机号码
+ new NameValuePair("content", deviceType + "的设备,在通道" + passage + "发生了报警,请及时处理!")
+ };
+
+ method.setRequestBody(data);
+
+ try {
+ client.executeMethod(method);
+
+ String SubmitResult = method.getResponseBodyAsString();
+
+ //System.out.println(SubmitResult);
+
+ Document doc = DocumentHelper.parseText(SubmitResult);
+ Element root = doc.getRootElement();
+
+ String code = root.elementText("code");
+ String msg = root.elementText("msg");
+ String voiceid = root.elementText("voiceid");
+
+ System.out.println(code);
+ System.out.println(msg);
+ System.out.println(voiceid);
+
+ if ("2".equals(code)) {
+ System.out.println("短信提交成功");
+ }
+
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (DocumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/casic/util/StringUtil.java b/src/main/java/com/casic/util/StringUtil.java
new file mode 100644
index 0000000..69548a9
--- /dev/null
+++ b/src/main/java/com/casic/util/StringUtil.java
@@ -0,0 +1,46 @@
+package com.casic.util;
+
+import java.security.MessageDigest;
+
+public class StringUtil {
+ public static String str;
+ public static final String EMPTY_STRING = "";
+
+ private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
+ "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
+
+ private static String byteToHexString(byte b) {
+ int n = b;
+ if (n < 0)
+ n = 256 + n;
+ int d1 = n / 16;
+ int d2 = n % 16;
+ return hexDigits[d1] + hexDigits[d2];
+ }
+
+ /**
+ * ת���ֽ�����Ϊ16�����ִ�
+ * @param b �ֽ�����
+ * @return 16�����ִ�
+ */
+ public static String byteArrayToHexString(byte[] b) {
+ StringBuffer resultSb = new StringBuffer();
+ for (int i = 0; i < b.length; i++) {
+ resultSb.append(byteToHexString(b[i]));
+ }
+ return resultSb.toString();
+ }
+
+ public static String MD5Encode(String origin) {
+ String resultString = null;
+ try {
+ resultString = new String(origin);
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ resultString = byteArrayToHexString(md.digest(resultString
+ .getBytes()));
+ } catch (Exception ex) {
+ }
+ return resultString;
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ef11f26..03e581a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -20,9 +20,10 @@
#mybatis-plus:
# sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
+
casic:
alarm:
- rainfall: 20
+ rainfall: 5
humi: 10
temp: 10
pressure: 15
@@ -31,5 +32,9 @@
cron-time: 0 0 */1 * * ?
server:
port: 9393
+ appId: VM00452288
+ appKey: 1d6ea4fd4ae266ea0c7e502d9bf4172a
+ phone: 18611697489
+ url: http://api.vm.ihuyi.com/webservice/voice.php?method=Submit
pdfPath: /casic/testPdf/config/
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index 69f8a23..c292b5b 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -3,13 +3,10 @@
\ No newline at end of file