| | |
| | | import java.util.Collection; |
| | | import java.util.HashMap; |
| | | |
| | | import com.dy.common.mw.channel.tcp.TcpIoSessionAttrIdIsRtuAddr; |
| | | import com.dy.common.mw.channel.tcp.TcpIoSessionAttrKeys; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.apache.mina.core.buffer.IoBuffer; |
| | |
| | | PrefixedDataAvailable pda = null ; |
| | | |
| | | //从会话缓存得到上次上行数据确定的协议 |
| | | String protocolName = (String) ioSession.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolName) ; |
| | | Short protocolVersion = (Short) ioSession.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolVersion) ; |
| | | String protocolName = (String) ioSession.getAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName) ; |
| | | Short protocolVersion = (Short) ioSession.getAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolVersion) ; |
| | | //由会话中的协议得到处理类 |
| | | //利用缓存的协议,进而对不符合协议的上行数据也能用该协议处理了,例如RTU采用不同数据协议的嵌入式软件升级协议 |
| | | //即RTU第一包数据确定下来协议,后面数据都用这个协议处理,那么数据可以变化了,可以不符合第一包数据遵守的协议了 |
| | |
| | | PrefixedDataAvailable pda = null ; |
| | | |
| | | //从会话缓存得到上次上行数据确定的协议 |
| | | String protocolName = (String) ioSession.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolName) ; |
| | | Short protocolVersion = (Short) ioSession.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolVersion) ; |
| | | String protocolName = (String) ioSession.getAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolName) ; |
| | | Short protocolVersion = (Short) ioSession.getAttribute(TcpIoSessionAttrKeys.sessionAttrProtocolVersion) ; |
| | | //由会话中的协议得到处理类 |
| | | Object[] objs = this.getClassObjAndAnnotationVo(protocolName, protocolVersion) ; |
| | | if(objs != null && objs[0] != null && objs[1] != null){ |