| | |
| | | package com.dy.common.mw.channel.tcp; |
| | | |
| | | /** |
| | | * TCP Session中放入的属性的ID就是水表号 |
| | | * 当应用rtuMw时用到,应用aepMw时用不到 |
| | | * TCP Session中放入的属性的key |
| | | * |
| | | */ |
| | | public class TcpIoSessionAttrKeys { |
| | |
| | | * @param protocolVersion |
| | | * @throws Exception |
| | | */ |
| | | public void setIoSessionArrs(IoSession session, String rtuAddr, String protocolName, Short protocolVersion) throws Exception { |
| | | public void setIoSessionAttrs(IoSession session, String rtuAddr, String protocolName, Short protocolVersion) throws Exception { |
| | | session.setAttribute(TcpIoSessionAttrKeys.sessionAttrRtuAddr, rtuAddr) ; |
| | | session.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName, protocolName) ; |
| | | session.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolVersion, protocolVersion) ; |
| | |
| | | package com.dy.common.mw.protocol.p206V2; |
| | | |
| | | import com.dy.common.mw.channel.tcp.TcpIoSessionAttrKeys; |
| | | import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import com.dy.common.util.CRC16; |
| | | import com.dy.common.util.CRC8_for_2_0; |
| | | import org.apache.mina.core.session.IoSession; |
| | | |
| | | |
| | | public class CommonV2 { |
| | | |
| | | /** |
| | | * 在Io会话中设置协议名称及版本号 |
| | | * @param ioSession 会话 |
| | | */ |
| | | public void setThisProtocolArr2IoSession(IoSession ioSession){ |
| | | ioSession.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName, ProtocolConstantV206V1.protocolName) ; |
| | | ioSession.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName, ProtocolConstantV206V1.protocolVer) ; |
| | | } |
| | | /** |
| | | * 检查头 |
| | | * @param bs 上行字节数组 |
| | |
| | | public class CommonV202404 { |
| | | |
| | | /** |
| | | * 在Io会话中设置协议名称及版本号 |
| | | * @param ioSession 会话 |
| | | */ |
| | | public void setThisProtocolArr2IoSession(IoSession ioSession){ |
| | | ioSession.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName, ProtocolConstantV206V202404.protocolName) ; |
| | | ioSession.setAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName, ProtocolConstantV206V202404.protocolVer) ; |
| | | } |
| | | /** |
| | | * 检查头 |
| | | * @param bs 上行字节数组 |
| | | * @return true是,false否 |
| | |
| | | |
| | | if(rtuAddr != null && protocolName != null && protocolVersion != null){ |
| | | //设置session的属性ID |
| | | TcpUnit.getInstance().setIoSessionArrs(session, rtuAddr, protocolName, protocolVersion) ; |
| | | TcpUnit.getInstance().setIoSessionAttrs(session, rtuAddr, protocolName, protocolVersion) ; |
| | | //缓存session |
| | | TcpSessionCache.putNewTcpSession(rtuAddr, session); |
| | | |