This commit is contained in:
谢洪龙 2017-08-23 12:18:07 +08:00
parent b2a04aa3bc
commit 921f5b6d38
4 changed files with 4 additions and 267 deletions

View File

@ -281,27 +281,6 @@ public class ServerDecode implements ProtocolDecoder {
} }
break; break;
} }
//睿芯独立返回信息
case 84: {
//log.info("limit:【{}】,HexDump:【{}】",buf.limit(),buf.getHexDump());
//设备返回信息
String hexDump = buf.getHexDump();
byte[] hexByte = ByteUtil.hexStringToBytes(hexDump);
//mac地址
byte[] srcByte = new byte[6];
for (int i = 2; i < 8; i++) {
srcByte[i - 2] = hexByte[i];
}
String strSrc = ByteUtil.bytesToHexString(srcByte);
String type = SomeServer.hardwareTypeMap.get(strSrc);
//睿芯独立
if (type != null && type.equals("2a")) {
decode86ByRuixinDuli(buf, out);
} else {
decode84(buf, out);
}
break;
}
default: { default: {
//log.error("length:【{}】,limit:【{}】,HexDump:【{}】",length,buf.limit(),buf.getHexDump()); //log.error("length:【{}】,limit:【{}】,HexDump:【{}】",length,buf.limit(),buf.getHexDump());
@ -2146,152 +2125,6 @@ public class ServerDecode implements ProtocolDecoder {
out.write(model); out.write(model);
} }
/**
* 设备返回信息(84字节睿芯独立)
*
* @param buf
* @param out
*/
private void decode84(IoBuffer buf, ProtocolDecoderOutput out) {
//实例化一个对象
BackBytes84 model = new BackBytes84();
//buf.get()取到的都是通信协议中从上往下的每段字节信息所以要对应通信协议去插入每段数据特别要注意前后顺序不然会将A功能的状态插入到B功能
//读取15字节头开始插入数据
//发送消息类型,1回复类型,0发送类型
model.setType(buf.get());
//功能码 对应通信协议的暗红黄色部分发送返回的功能码
model.setCheck_code(buf.get());
//读取发送端的mac地址对象结构
byte[] src = model.getSrc();
//循环读取每一字节插入mac地址对象结构中
for (int i = 0; i < src.length; i++) {
src[i] = buf.get();
}
//将mac地址插入到对象中
model.setSrc(src);
//读取接收端的mac地址,如上
byte[] dest = model.getDest();
for (int i = 0; i < dest.length; i++) {
dest[i] = buf.get();
}
model.setDest(dest);
//整个包长度
model.setRemote_len(buf.get());
//灯1编号和开关
model.setNumber1(buf.get());
model.setOnoff1(buf.get());
//灯2编号和开关
model.setNumber2(buf.get());
model.setOnoff2(buf.get());
//灯3编号和开关
model.setNumber3(buf.get());
model.setOnoff3(buf.get());
//灯4编号和开关
model.setNumber4(buf.get());
model.setOnoff4(buf.get());
//定时器编号
byte timer_number1 = model.getTimer_number1();
byte timer_number2 = model.getTimer_number2();
byte timer_number3 = model.getTimer_number3();
byte timer_number4 = model.getTimer_number4();
byte timer_number5 = model.getTimer_number5();
byte timer_number6 = model.getTimer_number6();
byte timer_number7 = model.getTimer_number7();
byte timer_number8 = model.getTimer_number8();
//定时器开关
byte timer_onoff1 = model.getTimer_onoff1();
byte timer_onoff2 = model.getTimer_onoff2();
byte timer_onoff3 = model.getTimer_onoff3();
byte timer_onoff4 = model.getTimer_onoff4();
byte timer_onoff5 = model.getTimer_onoff5();
byte timer_onoff6 = model.getTimer_onoff6();
byte timer_onoff7 = model.getTimer_onoff7();
byte timer_onoff8 = model.getTimer_onoff8();
//定时器时间
byte[] timer_time1 = model.getTimer_time1();
byte[] timer_time2 = model.getTimer_time2();
byte[] timer_time3 = model.getTimer_time3();
byte[] timer_time4 = model.getTimer_time4();
byte[] timer_time5 = model.getTimer_time5();
byte[] timer_time6 = model.getTimer_time6();
byte[] timer_time7 = model.getTimer_time7();
byte[] timer_time8 = model.getTimer_time8();
byte[] timer_numbers = {timer_number1, timer_number2, timer_number3, timer_number4, timer_number5, timer_number6, timer_number7, timer_number8};
byte[] timer_onoffs = {timer_onoff1, timer_onoff2, timer_onoff3, timer_onoff4, timer_onoff5, timer_onoff6, timer_onoff7, timer_onoff8};
byte[][] timers = {timer_time1, timer_time2, timer_time3, timer_time4, timer_time5, timer_time6, timer_time7, timer_time8};
for (int i = 0; i < timer_numbers.length; i++) {
//定时器编号
timer_numbers[i] = buf.get();
//定时器开关
timer_onoffs[i] = buf.get();
for (int j = 0; j < timers[i].length; j++) {
timers[i][j] = buf.get();
}
}
//定时器编号
model.setTimer_number1(timer_numbers[0]);
model.setTimer_number2(timer_numbers[1]);
model.setTimer_number3(timer_numbers[2]);
model.setTimer_number4(timer_numbers[3]);
model.setTimer_number5(timer_numbers[4]);
model.setTimer_number6(timer_numbers[5]);
model.setTimer_number7(timer_numbers[6]);
model.setTimer_number8(timer_numbers[7]);
//定时器开关
model.setTimer_onoff1(timer_onoffs[0]);
model.setTimer_onoff2(timer_onoffs[1]);
model.setTimer_onoff3(timer_onoffs[2]);
model.setTimer_onoff4(timer_onoffs[3]);
model.setTimer_onoff5(timer_onoffs[4]);
model.setTimer_onoff6(timer_onoffs[5]);
model.setTimer_onoff7(timer_onoffs[6]);
model.setTimer_onoff8(timer_onoffs[7]);
//定时器时间
model.setTimer_time1(timers[0]);
model.setTimer_time2(timers[1]);
model.setTimer_time3(timers[2]);
model.setTimer_time4(timers[3]);
model.setTimer_time5(timers[4]);
model.setTimer_time6(timers[5]);
model.setTimer_time7(timers[6]);
model.setTimer_time8(timers[7]);
//加热状态
model.setHeatStatus(buf.get());
//温度
model.setWendu(buf.getShort());
//加热温度
model.setHeatWendu(buf.getShort());
//柜灯
model.setSarkLamp(buf.get());
//报警开关
model.setWarn_onoff(buf.get());
//最低报警温度
model.setLow_wendu(buf.getShort());
//最高报警温度
model.setHigh_wendu(buf.getShort());
//15字节头的校验码
byte[] crc16_code = model.getCrc16_code();
for (int i = 0; i < crc16_code.length; i++) {
crc16_code[i] = buf.get();
}
out.write(model);
}
@Override @Override
public void dispose(IoSession session) throws Exception { public void dispose(IoSession session) throws Exception {
Context ctx = (Context) session.getAttribute(CONTEXT); Context ctx = (Context) session.getAttribute(CONTEXT);

View File

@ -1,97 +0,0 @@
package com.ifish.websocket;
//@ServerEndpoint(value="/webSokcetServer")
public class WebSocketServerNew {/*
public static ConcurrentMap<String,Session> webSessions = new ConcurrentHashMap<String,Session>();
private static Logger log = LoggerFactory.getLogger(WebSocketServerNew.class);
@OnMessage
public void onMessage(String s, Session session) throws Exception{
JSONObject json = new JSONObject(s);
String caozuo = json.getString("caozuo");
if(caozuo.equals("allBut")){
Integer interval = Float.valueOf(json.getString("interval")).intValue();
sendOrder(0);
Thread.sleep(interval);
//切换手动模式
sendOrder(1);
Thread.sleep(interval);
//
sendOrder(2);
Thread.sleep(interval);
//
sendOrder(3);
Thread.sleep(interval);
//
sendOrder(4);
Thread.sleep(interval);
//
sendOrder(5);
Thread.sleep(interval);
//
sendOrder(6);
Thread.sleep(interval);
//
sendOrder(7);
Thread.sleep(interval);
//修改时间
sendOrder(8);
Thread.sleep(interval);
//温度报警
sendOrder(9);
Thread.sleep(interval);
//定时器开关
sendOrder(10);
}
else if(caozuo.equals("clear")){
SomeServer.remoteAddress.clear();
}
}
@OnOpen
public void OnOpen(Session session) throws Exception{
webSessions.put(session.getId(), session);
//log.info("WebSocket is open:{}",session.getId());
Map<String,String> macMap = new HashMap<String, String>();
Map<String,String> macStatus = new HashMap<String, String>();
//Session
for (Map.Entry<String, SocketAddress> ioSession: SomeServer.remoteAddress.entrySet()) {
if(ioSession.getValue()!=null){
macMap.put(ioSession.getKey(), ioSession.getValue().toString());
macStatus.put(ioSession.getKey(), "<span class='label label-success'>连接正常</span>");
}
else{
macMap.put(ioSession.getKey(), "");
macStatus.put(ioSession.getKey(), "<span class='label label-danger'>连接断开</span>");
}
}
//json数据
JSONObject json = new JSONObject();
json.put("result", "query");
json.put("lineCount", SomeServer.remoteAddress.size());
json.put("data", macMap);
json.put("status", macStatus);
String serverIp = InetAddress.getLocalHost().getHostAddress();
json.put("serverIp", serverIp);
session.getBasicRemote().sendText(json.toString());
}
@OnClose
public void OnClose(CloseReason c,Session session) throws IOException {
webSessions.remove(session.getId());
log.info("WebSocket is close:{}",session.getId());
}
@OnError
public void OnError(Throwable t) {
log.info("WebSocket error:{}",t.getMessage());
}
*//**
* 发送指令
* @param src
*//*
public void sendOrder(Integer i){
SomeServer.sendToDevice(i);
}
*/}

View File

@ -881,7 +881,8 @@ function changeColor() {
function getFactoryInfo() { function getFactoryInfo() {
$.ajax({ $.ajax({
//url: "https://bg.zhangxinyanv5.top/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(), //url: "https://bg.zhangxinyanv5.top/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(),
url: "http://192.168.199.129:7080/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(), //url: "http://192.168.199.129:7080/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(),
url: "http://192.168.199.129:8080/IfishSystem/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(),
//url: "https://bg.ifish7.com/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(), //url: "https://bg.ifish7.com/page/public/getVenderList.do?rm=" + Math.random() + "&factoryCode=" + $("#factoryCode").val(),
type: "get", type: "get",
dataType: "json", dataType: "json",

View File

@ -52,8 +52,8 @@ String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.
var data = obj(id,mac.toString(),hardType.toString()); var data = obj(id,mac.toString(),hardType.toString());
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
//url: "http://192.168.61.130:8080/ifishSystem/page/public/saveMacAddress.do?rm="+Math.random(), url: "http://192.168.199.129:8080/IfishSystemEnglish/saveMacAddress?rm="+Math.random(),
url: "https://bg.ifish7.com/page/public/saveMacAddress.do?rm="+Math.random(), //url: "https://bg.ifish7.com/page/public/saveMacAddress.do?rm="+Math.random(),
data: {"subStr":data}, data: {"subStr":data},
dataType: "json", dataType: "json",
success:function(re){ success:function(re){