Пример #1
0
 /// <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( );
 }
Пример #3
0
 /// <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( );
 }
Пример #6
0
 /// <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";
 }
Пример #7
0
 /// <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;
 }
Пример #8
0
 /// <summary>
 /// 实例化一个日志对象
 /// </summary>
 public LogNetBase()
 {
     m_fileSaveLock     = new SimpleHybirdLock( );
     m_simpleHybirdLock = new SimpleHybirdLock( );
     m_WaitForSave      = new Queue <HslMessageItem>( );
     filtrateKeyword    = new List <string>( );
     filtrateLock       = new SimpleHybirdLock( );
 }
Пример #9
0
        /// <summary>
        /// 实例化一个默认的数据服务器的对象
        /// </summary>
        public NetworkDataServerBase( )
        {
            lock_trusted_clients = new SimpleHybirdLock( );


            lockOnlineClient  = new SimpleHybirdLock( );
            listsOnlineClient = new List <AppSession>( );
        }
Пример #10
0
 /// <summary>
 /// 默认的无参构造方法
 /// </summary>
 public NetworkAlienClient( )
 {
     password      = new byte[6];
     alreadyLock   = new SimpleHybirdLock( );
     alreadyOnline = new List <AlienSession>( );
     trustOnline   = new List <string>( );
     trustLock     = new SimpleHybirdLock( );
     ThreadCheckStart( );
 }
Пример #11
0
 /// <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();
 }
Пример #12
0
        /// <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>( );
        }
Пример #13
0
 /// <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( );
 }
Пример #14
0
        /// <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();
        }
Пример #15
0
        /// <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( );
        }
Пример #16
0
        /// <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( );
        }
Пример #18
0
        /// <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;
            }
        }
Пример #19
0
    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);
    }
Пример #20
0
        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;
            }
        }
Пример #21
0
 /// <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( );
 }
Пример #24
0
 /// <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( );
 }
Пример #26
0
 /// <summary>
 /// 实例化一个无参的构造方法
 /// </summary>
 public SerialBase( )
 {
     SP_ReadData = new SerialPort( );
     hybirdLock  = new SimpleHybirdLock( );
 }
Пример #27
0
 /// <summary>
 /// 默认的无参构造函数
 /// </summary>
 public NetworkDoubleBase( )
 {
     InteractiveLock = new SimpleHybirdLock( );                    // 实例化数据访问锁
     byteTransform   = new TTransform( );                          // 实例化数据转换规则
     connectionId    = BasicFramework.SoftBasic.GetUniqueStringByGuidAndRandom( );
 }
Пример #28
0
 /// <summary>
 /// 实例化一个默认的数据服务器的对象
 /// </summary>
 public NetworkDataServerBase( )
 {
     lock_trusted_clients = new SimpleHybirdLock( );
 }
Пример #29
0
 /// <summary>
 /// 实例化一个构造方法
 /// </summary>
 public AppSession()
 {
     ClientUniqueID = Guid.NewGuid( ).ToString("N");
     HybirdLockSend = new SimpleHybirdLock( );
 }
Пример #30
0
 /// <summary>
 /// 实例化一个通用的设备类
 /// </summary>
 public DeviceNet()
 {
     list      = new List <DeviceState>( );
     lock_list = new SimpleHybirdLock( );
 }