Plugins/Drivers/DriverModbusMaster/NModbus4/Device/ModbusTcpSlave.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace Modbus.Device
{
using System;
using System.Collections.Concurrent;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Net.Sockets;
using System.Threading.Tasks;
#if TIMER
using System.Timers;
#endif
using IO;
/// <summary>
/// Modbus TCP slave device.
/// </summary>
public class ModbusTcpSlave : ModbusSlave
{
private const int TimeWaitResponse = 1000;
private readonly object _serverLock = new object();
private readonly ConcurrentDictionary<string, ModbusMasterTcpConnection> _masters =
new ConcurrentDictionary<string, ModbusMasterTcpConnection>();
private TcpListener _server;
#if TIMER
private Timer _timer;
#endif
private ModbusTcpSlave(byte unitId, TcpListener tcpListener)
: base(unitId, new EmptyTransport())
{
if (tcpListener == null)
{
throw new ArgumentNullException(nameof(tcpListener));
}
_server = tcpListener;
}
#if TIMER
private ModbusTcpSlave(byte unitId, TcpListener tcpListener, double timeInterval)
: base(unitId, new EmptyTransport())
{
if (tcpListener == null)
{
throw new ArgumentNullException(nameof(tcpListener));
}
_server = tcpListener;
_timer = new Timer(timeInterval);
_timer.Elapsed += OnTimer;
_timer.Enabled = true;
}
#endif
/// <summary>
/// Gets the Modbus TCP Masters connected to this Modbus TCP Slave.
/// </summary>
public ReadOnlyCollection<TcpClient> Masters
后面还有 143 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
