src/main/java/com/fzzy/api/data/ApiCommonDevice.java
@@ -33,4 +33,6 @@ private Date onlineTime = new Date(); private String cable;//å±-è¡-å } src/main/java/com/fzzy/gateway/entity/GatewayDevice.java
@@ -121,23 +121,23 @@ @PropertyDef(label = "å¨çº¿ç¶æ") private String status = Constant.YN_Y; @Column(name = "CABLE_START_") @Column(name = "CABLE_START_", length = 4) @PropertyDef(label = "çµç¼å¼å§") private int cableStart; private String cableStart; @Column(name = "CABLE_END_") @Column(name = "CABLE_END_", length = 4) @PropertyDef(label = "çµç¼æªè³") private int cableEnd; private String cableEnd; @Column(name = "TH_ADDR_") @Column(name = "TH_ADDR_",length = 4) @PropertyDef(label = "温湿度å°å") private String thAddr; @Column(name = "CABLE_FORMAT", length = 4) @Column(name = "CABLE_FORMAT_", length = 4) @PropertyDef(label = "çµç¼å¶å¼") private String cableFormat; @Column(name = "CABLE_TYPE", length = 4) @Column(name = "CABLE_TYPE_", length = 4) @PropertyDef(label = "çµç¼ç±»å") private String cableType; src/main/java/com/fzzy/protocol/ProtocolRunner.java
@@ -1,7 +1,9 @@ package com.fzzy.protocol; import com.fzzy.protocol.bhzn.server.BhznGrainV2ServerEngine; import com.fzzy.protocol.fzzy.server.FzzyServerEngine; import com.fzzy.protocol.weightyh.YhScaleServerEngine; import com.fzzy.protocol.zldz.server.ZldzServerEngine; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; @@ -25,6 +27,14 @@ //飿£è´è¿æ§å¶æåè®®å¯å¨ FzzyServerEngine.start(null); //æ£æ¥çµåç²®æ å¯å¨ ZldzServerEngine.start(); //馿µ·æºè½çº¯ç½å£è®¾å¤åè®® BhznGrainV2ServerEngine.start(null); } } src/main/java/com/fzzy/protocol/bhzn/server/BhznGrainV2ServerEngine.java
@@ -36,7 +36,8 @@ if (null != port) { ioServerOption.setPort(port); } else { ioServerOption.setPort(PORT); port = PORT; ioServerOption.setPort(port); } //确认ç»å°¾æ å¿ src/main/java/com/fzzy/protocol/bhzn/server/BhznGrainV2SessionListener.java
@@ -32,10 +32,8 @@ session.setBusinessKey(BhznGrainV2ServerUtils.getServerKey(session.getAddress(), session.getPort())); //æ§è¡åæºä¸çº¿ ApiCommonDevice commonDevice = Constant.updateCacheOnline(session.getAddress(), session.getPort()); if (null == commonDevice.getSn()) { log.error("------设å¤ä¸çº¿ï¼ç³»ç»ä¸æªåç°å½åé ç½®-------"); } Constant.updateCacheOnline(session.getAddress(), session.getPort()); } /** src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisConf.java
@@ -1,5 +1,7 @@ package com.fzzy.protocol.zldz.analysis; import com.fzzy.api.Constant; import com.fzzy.api.data.ApiCommonDevice; import com.fzzy.api.utils.BytesUtil; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.gateway.service.GatewayDeviceService; @@ -25,11 +27,11 @@ * è§£æåæºé ç½®ä¿¡æ¯ * * @param message * @param ser * @param device */ public void analysis8816(ReMessage message, GatewayDevice ser) { public void analysis8816(ReMessage message, GatewayDevice device, ApiCommonDevice commonDevice) { log.debug("åæº---->>>å¹³å°ï¼æ¶æ¯ç±»å=8816-----{}", ser.getDeviceName()); log.debug("åæº---->>>å¹³å°ï¼æ¶æ¯ç±»å=8816-----{}", device.getDeviceName()); String content = message.getBody().getContent(); @@ -58,8 +60,9 @@ len = 1; temp = content.substring(start * 2, start * 2 + len * 2); // 屿° //å± -è¡ -å String cable = ""; // 屿° start = 6; len = 1; temp = content.substring(start * 2, start * 2 + len * 2); @@ -77,20 +80,18 @@ temp = content.substring(start * 2, start * 2 + len * 2); cable += "-" + BytesUtil.hexToInt(temp); //å± - è¡ - å é ç½® ser.setCableRule(cable); // çµç¼å¶å¼ start = 9; len = 1; temp = content.substring(start * 2, start * 2 + len * 2); ser.setCableFormat("0" + BytesUtil.hexToInt(temp)); device.setCableFormat("0" + BytesUtil.hexToInt(temp)); // çµç¼ç±»å start = 10; len = 1; temp = content.substring(start * 2, start * 2 + len * 2); ser.setCableType("0" + BytesUtil.hexToInt(temp)); device.setCableType("0" + BytesUtil.hexToInt(temp)); // ä¾çµæ¨¡å¼ start = 11; @@ -98,34 +99,33 @@ temp = content.substring(start * 2, start * 2 + len * 2); //ser.setPowerModel("0" + BytesUtil.hexToInt(temp)); String msg = ser.getDeviceName() + " è¿ç¨è·åé ç½®æåï¼è¯·å·æ°æ°æ®æ¥çï¼"; // ç»ç»ç¼ç start = 12; temp = content.substring(start * 2); if (readTag == 1) {// 表示åçæåè¿å ser.setOrgId(ser.getOrgId()); msg = ser.getDeviceName() + " è¿ç¨åå ¥æåï¼è¯·å·æ°æ°æ®æ¥çï¼"; } else { ser.setOrgId(BytesUtil.hexToInt(BytesUtil.tran_LH(temp)) + ""); if (readTag != 1) {// 表示åçæåè¿å device.setOrgId(BytesUtil.hexToInt(BytesUtil.tran_LH(temp)) + ""); } if (null == ser.getDeviceSn()) { ser.setDeviceSn(ser.getId()); } ser.setIp(message.getIp()); ser.setPort(message.getPort()); device.setIp(message.getIp()); device.setPort(message.getPort()); // å¼å§åé»è®¤=1 if (ser.getCableStart() == 0) { ser.setCableStart(1); if (null == device.getCableStart()) { device.setCableStart("1"); } log.info("åæº---->>>å¹³å°ï¼åæºé 置解æå®æ---{}ï¼æ´æ°å°ææå¡å¨", ser.getDeviceName()); device.getDeviceName()); //æ´æ°è®¾å¤ä¿¡æ¯ gatewayDeviceService.updateData(ser); gatewayDeviceService.updateData(device); //æ´æ°è¿æ¥è®¾å¤ä¿¡æ¯ commonDevice.setSn(device.getDeviceSn()); commonDevice.setCable(cable); commonDevice.setOrgId(device.getOrgId()); Constant.updateCache(commonDevice); } /** src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java
@@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.persistence.criteria.CriteriaBuilder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -294,10 +295,6 @@ /** * å¹³æ¹ä»çè§£æï¼è§£æéè¦èèå½åæ¯å¦å¯ç¨çä¸åæºå¤ä» * * @param depotConf * @param msg * @param ser * @param exeRequest * @param packetMap * @param sumPackets */ @@ -316,7 +313,7 @@ int cableX = Integer.valueOf(attCable[2]); // æ ¹æ®å±è¡åè·åæå®é¿åº¦ int start = 4 * (device.getCableStart() - 1) * cableZ * cableY; int start = 4 * (Integer.valueOf(device.getCableStart()) - 1) * cableZ * cableY; int len = 4 * cableZ * cableY * cableX; log.info("åæº------>>>å¹³å°ï¼è¿åç²®æ 宿´ä¿¡æ¯ï¼åæº={}", device.getDeviceName()); src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisService.java
@@ -78,7 +78,7 @@ analysisConf.analysis1129(reMessage, device); break; case ZldzServerUtil.MSG_TYPE_8816:// è§£æé ç½® analysisConf.analysis8816(reMessage, device); analysisConf.analysis8816(reMessage, device,commonDevice); break; case ZldzServerUtil.MSG_TYPE_8822:// çµç¼åå§åæå analysisConf.analysis8822(reMessage, device); src/main/java/com/fzzy/protocol/zldz/cmd/CommandBuilder1115.java
@@ -76,8 +76,8 @@ MessageBody body = new MessageBody(); body.setLength(2); int start = device.getCableStart(); int end = device.getCableEnd(); int start = Integer.valueOf(device.getCableStart()); int end = Integer.valueOf(device.getCableEnd()); body.setContent(BytesUtil.toHexString(start) + BytesUtil.toHexString(end)); message.setBody(body); } src/main/java/com/fzzy/protocol/zldz/cmd/OnLineCommandBuilder.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.fzzy.protocol.zldz.cmd; import com.fzzy.api.utils.BytesUtil; import com.fzzy.io.request.BaseRequest; import com.fzzy.protocol.zldz.data.Message; import com.fzzy.protocol.zldz.data.MessageBody; import com.fzzy.protocol.zldz.server.ZldzServerUtil; /** * @author Andy */ public class OnLineCommandBuilder extends CommandBuilder { private final static OnLineCommandBuilder instance = new OnLineCommandBuilder(); private OnLineCommandBuilder() { } public static OnLineCommandBuilder getInstance() { return instance; } public void buildHeader(Message message, BaseRequest request) { message.setSourceId("0000"); message.setSendId("0000"); message.setCompanyId("0000"); message.setTargetId("FFFF"); message.setMessageType(BytesUtil.tran_LH(ZldzServerUtil.MSG_TYPE_1116)); } public void buildBody(Message message, BaseRequest request) { MessageBody body = new MessageBody(); body.setContent("0000000000000000000000000000"); body.setLength(14); message.setBody(body); } } src/main/java/com/fzzy/protocol/zldz/server/SessionListener.java
@@ -4,7 +4,10 @@ import com.fzzy.api.data.ApiCommonDevice; import com.fzzy.api.utils.SpringUtil; import com.fzzy.gateway.service.GatewayDeviceService; import com.fzzy.protocol.bhzn.server.BhznGrainV2ServerUtils; import com.fzzy.io.request.BaseRequest; import com.fzzy.protocol.zldz.cmd.OnLineCommandBuilder; import com.fzzy.protocol.zldz.data.Message; import com.ld.io.api.InvokeResult; import com.ld.io.api.IoSession; import com.ld.io.api.IoSessionListener; import lombok.extern.slf4j.Slf4j; @@ -26,13 +29,27 @@ log.info("++++æ°å»ºè¿æ¥++++-IP={}ï¼PORT={}", session.getAddress(), session.getPort()); // æ·»å èªå®ä¹ä¸å¡ID session.setBusinessKey(BhznGrainV2ServerUtils.getServerKey(session.getAddress(), session.getPort())); session.setBusinessKey(ZldzServerUtil.getServerKey(session.getAddress(), session.getPort())); //æ§è¡åæºä¸çº¿ ApiCommonDevice commonDevice = Constant.updateCacheOnline(session.getAddress(), session.getPort()); if (null == commonDevice.getSn()) { log.error("------设å¤ä¸çº¿ï¼ç³»ç»ä¸æªåç°å½åé ç½®-------"); Constant.updateCacheOnline(session.getAddress(), session.getPort()); /***********************设å¤ä¸çº¿å主å¨è·åé 置信æ¯******************/ BaseRequest request = new BaseRequest(); request.setIp(session.getAddress()); request.setPort(session.getPort()); request.setCompanyId(ZldzServerUtil.DEFAULT_COMPANY); // Step1 çæå¨çº¿æµè¯å½ä»¤ Message message = OnLineCommandBuilder.getInstance().buildMessage(request); // åéå½ä»¤ InvokeResult result = session.invoke(message.getByteMsg()); //妿å½ä»¤åé失败ï¼ç´æ¥è¸¢æè¿æ¥ if (!InvokeResult.SUCCESS.getCode().equals(result.getCode())) { session.destroy(); } log.info("å¹³å°------->>åæº---设å¤ä¸çº¿ï¼èªå¨åé设å¤é 置信æ¯è¯·æ±å½ä»¤--{}",message); } /** @@ -51,9 +68,9 @@ if (null == gatewayDeviceService) { gatewayDeviceService = SpringUtil.getBean(GatewayDeviceService.class); gatewayDeviceService.OfflineByCommonDevice(commonDevice); } gatewayDeviceService.OfflineByCommonDevice(commonDevice); } }