| | |
| | | return false ; |
| | | } |
| | | |
| | | Long lastSendStamp = tcpSe.lastDownComTime ; |
| | | Long lastDownComTime = tcpSe.lastDownComTime ; |
| | | boolean nowSend = false ; |
| | | if(this.result.isQuickSend || lastSendStamp == null || (this.result.isFastCom && now - lastSendStamp >= ServerProperties.fastCommandSendInterval)){ |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,当前是速发命令,或者是快速命令超过命令下发间隔,以上满足发送命令条件,执行发送命令 |
| | | if(this.result.isQuickSend){ |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,离上行数据时刻不近,当前是速发命令,满足发送命令条件,执行发送命令 |
| | | nowSend = true ; |
| | | }else if(this.result.isQuickSend || lastSendStamp == null || (now - lastSendStamp >= ServerProperties.commandSendInterval)) { |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,当前是速发命令,或者是命令超过命令下发间隔,以上满足发送命令条件,执行发送命令 |
| | | }else if(lastDownComTime == null){ |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,离上行数据时刻不近,当前RTU上线以来未曾下发过命令,满足发送命令条件,执行发送命令 |
| | | nowSend = true ; |
| | | }else if(this.result.isFastCom && now - lastDownComTime >= ServerProperties.fastCommandSendInterval){ |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,离上行数据时刻不近,RTU上线以来曾下发过命令,当前命令是快速命令且超过命令下发间隔,满足发送命令条件,执行发送命令 |
| | | nowSend = true ; |
| | | }else if(!this.result.isFastCom && now - lastDownComTime >= ServerProperties.commandSendInterval){ |
| | | //未收到命令结果,未达到最大发送次数,RTU在线,离上行数据时刻不近,RTU上线以来曾下发过命令,当前命令非快速命令,RTU下发命令间隔超过命令下发间隔,满足发送命令条件,执行发送命令 |
| | | nowSend = true ; |
| | | } |
| | | |
| | | if(nowSend){ |
| | | tcpSe.ioSession.write(this.result.downBuffer) ; |
| | | tcpSe.lastDownComTime = now ; |