|  |  | 
 |  |  | import com.dy.common.mw.protocol.Driver; | 
 |  |  | import com.dy.common.mw.protocol.OnLine; | 
 |  |  | import com.dy.common.mw.protocol.OnLineHandle; | 
 |  |  | import com.dy.common.mw.protocol.ProtocolCach; | 
 |  |  | import com.dy.common.mw.protocol.ProtocolCache; | 
 |  |  | import com.dy.aceMw.server.ServerProperties; | 
 |  |  | import com.dy.aceMw.server.forTcp.RtuLogDealer; | 
 |  |  | import com.dy.aceMw.server.forTcp.RtuStatusDealer; | 
 |  |  | 
 |  |  |     * @throws Exception 异常 | 
 |  |  |     */ | 
 |  |  |    private void dealUpData(IoSession session, String rtuAddrAtHead, String protocolName, boolean isOnLine, byte[] upBuf, String upHex) throws Exception{ | 
 |  |  |       Driver dri = ProtocolCach.getDriver(protocolName) ; | 
 |  |  |       Driver dri = ProtocolCache.getDriver(protocolName) ; | 
 |  |  |       if(dri == null){ | 
 |  |  |          log.error("严重错误,未能得到协议" + protocolName + "驱动类实例!"); | 
 |  |  |       }else{ | 
 |  |  |          MidResult[] midRs = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){ | 
 |  |  |             @Override | 
 |  |  |             public void callback(String rtuAddrAtHead, String meterNoAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData, String meterNoInData) { | 
 |  |  |             public void callback(String rtuAddrAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) { | 
 |  |  |                //更新终端状态 | 
 |  |  |                if(rtuAddrInData != null && !rtuAddrInData.equals(rtuAddrAtHead)){ | 
 |  |  |                   //数据头中的RTU地址与数据中的RTU地址不一致,更换成数据中的RTU地址 |