package com.dy.common.mw.protocol; import com.dy.common.mw.protocol.p206V1_0_0.*; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd97Vo; import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd98Vo; /** * 从RTU收到数据 */ public class MidResultFromRtu implements MidResult{ public static final long serialVersionUID; static { serialVersionUID = 201606271057002L; } public String commandId ;//发送命令的ID,如果是命令结果,并且匹配了下发命令,此值不为空 public String rtuResultSendWebUrl ;//rtu返回命令结果 发向目的地web URL public String protocolName ;//协议名称 public String rtuAddr ;//Rtu地址 public String upCode ;//上行数据中的功能码 public String upHex ;//上行数据十六进制形式 public byte[] upBuffer ;//上行数据字节数组 public Data data ;//解析后的数据 public Boolean reportOrResponse_trueOrFalse ;//数据是自动上报还是命令应答,自动上报(report)为true,命令应答(response)为false @Override public void action() { ProtocolUnit.getInstance().adapter.getSingleActionFromRtu(this.protocolName).doAction(this); } public void matchedCommand(String commandId, Object toRtuMidResultParam, String rtuResultSendWebUrl){ this.commandId = commandId ; if(this.data != null){ this.data.setCommandId(commandId); } if(toRtuMidResultParam != null){ if(protocolName != null && protocolName.equals(ProtocolConstantV206V1_0_0.protocolName)){ if(upCode != null && upCode.equals(CodeV1_0_1.cd_97)){ if(data.subData != null && data.subData instanceof DataV1_0_1){ DataV1_0_1 dataV1_0_1 = (DataV1_0_1)data.subData ; if(dataV1_0_1 != null && dataV1_0_1.subData != null && dataV1_0_1.subData instanceof DataCd97Vo){ DataCd97Vo dataCd97Vo = (DataCd97Vo)dataV1_0_1.subData ; if(dataCd97Vo != null && dataCd97Vo.cardNo != null){ dataCd97Vo.cardNo = (String)toRtuMidResultParam + dataCd97Vo.cardNo ; } } } }else if(upCode != null && upCode.equals(CodeV1_0_1.cd_98)){ if(data.subData != null && data.subData instanceof DataV1_0_1){ DataV1_0_1 dataV1_0_1 = (DataV1_0_1)data.subData ; if(dataV1_0_1 != null && dataV1_0_1.subData != null && dataV1_0_1.subData instanceof DataCd98Vo){ DataCd98Vo dataCd98Vo = (DataCd98Vo)dataV1_0_1.subData ; if(dataCd98Vo != null && dataCd98Vo.cardNo != null){ dataCd98Vo.cardNo = (String)toRtuMidResultParam + dataCd98Vo.cardNo ; } } } } } } this.rtuResultSendWebUrl = rtuResultSendWebUrl ; if(this.data != null){ this.data.setRtuResultSendWebUrl(rtuResultSendWebUrl); } } }