/// <summary> /// 实例化一个Modbus Tcp的服务器,支持数据读写操作 /// </summary> public ModBusTcpServer() { Coils = new bool[65536]; Register = new byte[65536 * 2]; hybirdLockCoil = new SimpleHybirdLock(); hybirdLockRegister = new SimpleHybirdLock(); }
/// <summary> /// 实例化一个自增信息的对象,包括最大值 /// </summary> /// <param name="max">数据的最大值,必须指定</param> /// <param name="start">数据的起始值,默认为0</param> public SoftIncrementCount(long max, long start = 0) { this.start = start; this.max = max; current = start; hybirdLock = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个无参的构造方法 /// </summary> public SerialBase( ) { SP_ReadData = new SerialPort( ); resetEvent = new AutoResetEvent(false); buffer = new byte[4096]; hybirdLock = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个默认的对象,并指定IP地址和端口号,端口号通常为8008 /// </summary> /// <param name="ipAddress">Ip地址</param> /// <param name="port">端口号</param> public ER7BC10Previous(string ipAddress, int port) { IpAddress = ipAddress; Port = port; hybirdLock = new SimpleHybirdLock( ); // 实例化一个数据锁 }
/// <summary> /// 使用指定的容量初始化缓存数据块 /// </summary> /// <param name="capacity">初始化的容量</param> public SoftBuffer(int capacity) { buffer = new byte[capacity]; this.capacity = capacity; hybirdLock = new SimpleHybirdLock( ); byteTransform = new RegularByteTransform( ); }
/// <summary> /// 实例化一个ModBusTcp的客户端,需要指定服务器的地址及端口,默认端口为502 /// </summary> /// <param name="ipAddress">服务器的IP地址</param> /// <param name="port">服务器的端口</param> /// <param name="station">客户端的站号,可以用来标识不同的客户端,默认255</param> public ModBusTcpClient(string ipAddress, int port = 502, byte station = 0xFF) { serverEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ipAddress), port); simpleHybird = new SimpleHybirdLock(); this.station = station; LogHeaderText = "ModBusTcpClient"; }
/// <summary> /// 实例化一个ModBusTcp的客户端,需要指定服务器的地址及端口,默认端口为502 /// </summary> /// <param name="ipAddress">服务器的IP地址</param> /// <param name="port">服务器的端口</param> /// <param name="station">客户端的站号,可以用来标识不同的客户端,默认255</param> public ModBusTcpClient(string ipAddress, int port = 502, byte station = 0xFF) { iPEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ipAddress), port); simpleHybird = new SimpleHybirdLock(); readModbusLock = new SimpleHybirdLock(); this.station = station; }
/// <summary> /// 实例化一个日志对象 /// </summary> public LogNetBase() { m_fileSaveLock = new SimpleHybirdLock( ); m_simpleHybirdLock = new SimpleHybirdLock( ); m_WaitForSave = new Queue <HslMessageItem>( ); filtrateKeyword = new List <string>( ); filtrateLock = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个默认的数据服务器的对象 /// </summary> public NetworkDataServerBase( ) { lock_trusted_clients = new SimpleHybirdLock( ); lockOnlineClient = new SimpleHybirdLock( ); listsOnlineClient = new List <AppSession>( ); }
/// <summary> /// 默认的无参构造方法 /// </summary> public NetworkAlienClient( ) { password = new byte[6]; alreadyLock = new SimpleHybirdLock( ); alreadyOnline = new List <AlienSession>( ); trustOnline = new List <string>( ); trustLock = new SimpleHybirdLock( ); ThreadCheckStart( ); }
/// <summary> /// 实例化一个对象,需要传入配置文件的路径,根据配置文件的信息即可创建一个节点服务器 /// </summary> public SharpNodeServer() { Token = Guid.Empty; deviceCores = new List <DeviceCore>(); networkAliens = new List <NetworkAlienClient>(); modbusTcpServers = new List <ModbusTcpServer>(); dictDeviceCores = new Dictionary <string, DeviceCore>(); settingsLock = new SimpleHybirdLock(); }
/// <summary> /// 实例化一个对象 /// </summary> public NetPushServer() { dictPushClients = new Dictionary <string, PushGroupClient>( ); dicHybirdLock = new SimpleHybirdLock( ); sendAction = new Action <AppSession, string>(SendString); hybirdLock = new SimpleHybirdLock( ); pushClients = new List <NetPushClient>( ); }
/// <summary> /// 使用默认的无参构造方法 /// </summary> public DeviceCore( ) { ActiveTime = DateTime.Now.AddDays(-1); autoResetQuit = new AutoResetEvent(false); JObjectData = new JObject( ); jsonTmp = JObjectData.ToString( ); jsonLock = new SimpleHybirdLock( ); dictDynamicValues = new Dictionary <string, dynamic>( ); dictLock = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个Modbus Tcp的服务器,支持数据读写操作 /// </summary> public ModBusTcpServer() { Coils = new bool[65536]; Register = new byte[65536 * 2]; hybirdLockCoil = new SimpleHybirdLock(); hybirdLockRegister = new SimpleHybirdLock(); LogHeaderText = "ModBusTcpServer"; subscriptions = new List <ModBusMonitorAddress>(); subcriptionHybirdLock = new SimpleHybirdLock(); }
/// <summary> /// 实例化一个Modbus Tcp的服务器,支持数据读写操作 /// </summary> public ModbusTcpServer( ) { Coils = new bool[65536]; Register = new byte[65536 * 2]; hybirdLockCoil = new SimpleHybirdLock( ); hybirdLockRegister = new SimpleHybirdLock( ); lock_trusted_clients = new SimpleHybirdLock( ); subscriptions = new List <ModBusMonitorAddress>( ); subcriptionHybirdLock = new SimpleHybirdLock( ); byteTransform = new ReverseWordTransform( ); }
/// <summary> /// 实例化一个S7协议的服务器,支持I,Q,M,DB1.X 数据区块的读写操作 /// </summary> public SiemensS7Server( ) { // 四个数据池初始化,输入寄存器,输出寄存器,中间寄存器,DB块寄存器 inputBuffer = new SoftBuffer(DataPoolLength); outputBuffer = new SoftBuffer(DataPoolLength); memeryBuffer = new SoftBuffer(DataPoolLength); dbBlockBuffer = new SoftBuffer(DataPoolLength); WordLength = 2; ByteTransform = new ReverseBytesTransform( ); lockOnlineClient = new SimpleHybirdLock( ); listsOnlineClient = new List <AppSession>( ); }
/// <summary> /// 实例化一个Modbus Tcp的服务器,支持数据读写操作 /// </summary> public ModbusTcpServer( ) { // 四个数据池初始化,线圈,输入线圈,寄存器,只读寄存器 coilBuffer = new SoftBuffer(DataPoolLength); inputBuffer = new SoftBuffer(DataPoolLength); registerBuffer = new SoftBuffer(DataPoolLength * 2); inputRegisterBuffer = new SoftBuffer(DataPoolLength * 2); subscriptions = new List <ModBusMonitorAddress>( ); subcriptionHybirdLock = new SimpleHybirdLock( ); ByteTransform = new ReverseWordTransform( ); WordLength = 1; serialPort = new SerialPort( ); }
/// <summary> /// 实例化一个对象,需要指定数组的最大数据对象 /// </summary> /// <param name="count">数据的个数</param> /// <param name="appendLast">是否从最后一个数添加</param> public SharpList(int count, bool appendLast = false) { if (count > 8192) { capacity = 4096; } array = new T[capacity + count]; hybirdLock = new SimpleHybirdLock( ); this.count = count; if (appendLast) { this.lastIndex = count; } }
public static void Go() { Int32 x = 0; const Int32 iterations = 1000000; // about 14ms for ++ SimpleHybirdLock hybirdLock = new SimpleHybirdLock(); hybirdLock.Enter(); x++; hybirdLock.Leave(); Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i < iterations; i++) { hybirdLock.Enter(); i++; hybirdLock.Leave(); } //hybirdLock.Leave(); Console.WriteLine("Incrementing x in SimpleHybridLock: {0:N0}", sw.ElapsedMilliseconds); }
private bool disposedValue = false; // 要检测冗余调用 /// <summary> /// 释放资源 /// </summary> /// <param name="disposing"></param> protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: 释放托管状态(托管对象)。 m_simpleHybirdLock.Dispose(); m_WaitForSave.Clear(); m_fileSaveLock.Dispose(); } // TODO: 释放未托管的资源(未托管的对象)并在以下内容中替代终结器。 // TODO: 将大型字段设置为 null。 m_simpleHybirdLock = null; m_WaitForSave = null; m_fileSaveLock = null; disposedValue = true; } }
/// <summary> /// 实例化一个对象 /// </summary> public ModBusState( ) { hybirdLock = new SimpleHybirdLock( ); ConnectTime = DateTime.Now; HeadByte = new byte[6]; }
/// <summary> /// 实例化一个默认的对象 /// </summary> public NetAccountManager() { OnlineClients = new List <NetAccount>( ); hybirdLock = new SimpleHybirdLock( ); m_ClientsOnlineCache = "[]"; }
/// <summary> /// 使用默认的大小初始化缓存空间 /// </summary> public SoftBuffer( ) { buffer = new byte[capacity]; hybirdLock = new SimpleHybirdLock( ); byteTransform = new RegularByteTransform( ); }
/// <summary> /// 实例化一个网络服务器类对象 /// </summary> public NetComplexServer( ) { appSessions = new List <AppSession>( ); lockSessions = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个通用的设备类 /// </summary> public DeviceNet() { LogHeaderText = "DeviceNet"; list = new List <DeviceState>( ); lock_list = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个无参的构造方法 /// </summary> public SerialBase( ) { SP_ReadData = new SerialPort( ); hybirdLock = new SimpleHybirdLock( ); }
/// <summary> /// 默认的无参构造函数 /// </summary> public NetworkDoubleBase( ) { InteractiveLock = new SimpleHybirdLock( ); // 实例化数据访问锁 byteTransform = new TTransform( ); // 实例化数据转换规则 connectionId = BasicFramework.SoftBasic.GetUniqueStringByGuidAndRandom( ); }
/// <summary> /// 实例化一个默认的数据服务器的对象 /// </summary> public NetworkDataServerBase( ) { lock_trusted_clients = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个构造方法 /// </summary> public AppSession() { ClientUniqueID = Guid.NewGuid( ).ToString("N"); HybirdLockSend = new SimpleHybirdLock( ); }
/// <summary> /// 实例化一个通用的设备类 /// </summary> public DeviceNet() { list = new List <DeviceState>( ); lock_list = new SimpleHybirdLock( ); }