| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(rtuAddr != null){ |
| | | if(protocolName == null){ |
| | | protocolName = TcpSessionCache.getTcpProtocolName(rtuAddr) ; |
| | | boolean toDeal = true ; |
| | | if(ServerProperties.onlyDealRtusTest){ |
| | | boolean find = false ; |
| | | for(String testRtu : ServerProperties.onlyDealRtus){ |
| | | if(testRtu.equals(rtuAddr)){ |
| | | find = true ; |
| | | break ; |
| | | } |
| | | } |
| | | if(!find){ |
| | | //不在处理范围内 |
| | | toDeal = false ; |
| | | } |
| | | } |
| | | |
| | | //设置收到数据时刻 |
| | | TcpSessionCache.cacheUpDataTime(rtuAddr); |
| | | |
| | | if(protocolName != null){ |
| | | //对上行数据进行处理 |
| | | this.dealUpData(session, rtuAddr, protocolName, isOnLine, upBuf, upHex) ; |
| | | if(toDeal){ |
| | | if(protocolName == null){ |
| | | protocolName = TcpSessionCache.getTcpProtocolName(rtuAddr) ; |
| | | } |
| | | |
| | | //设置收到数据时刻 |
| | | TcpSessionCache.cacheUpDataTime(rtuAddr); |
| | | |
| | | if(protocolName != null){ |
| | | //对上行数据进行处理 |
| | | this.dealUpData(session, rtuAddr, protocolName, isOnLine, upBuf, upHex) ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | }else{ |
| | | MidResult[] midRs = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){ |
| | | @Override |
| | | public void callback(String rtuAddrAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) { |
| | | public void callback(String rtuAddrAtHead, String code, String codeName, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) { |
| | | //更新终端状态 |
| | | if(rtuAddrInData != null && !rtuAddrInData.equals(rtuAddrAtHead)){ |
| | | //数据头中的RTU地址与数据中的RTU地址不一致,更换成数据中的RTU地址 |
| | |
| | | |
| | | //记录日志 |
| | | if(parseFail){ |
| | | RtuLogDealer.log(rtuAddr, (isOnLine?"上线数据 ":"上行数据 ") + "" + code + ":" + upHex + "(解析失败)"); |
| | | RtuLogDealer.log(rtuAddr, (isOnLine?"上线数据 ":"上行数据 ") + code + ("(" + codeName + ")") + ":" + upHex + "(解析失败)"); |
| | | }else{ |
| | | RtuLogDealer.log(rtuAddr, (isOnLine?"上线数据 ":"上行数据 ") + "" + code + ":" + upHex); |
| | | RtuLogDealer.log(rtuAddr, (isOnLine?"上线数据 ":"上行数据 ") + code + ("(" + codeName + ")") + ":" + upHex); |
| | | } |
| | | } |
| | | }) ; |