1. 程式人生 > >《連載 | 物聯網框架ServerSuperIO教程》2.服務例項的配置引數說明

《連載 | 物聯網框架ServerSuperIO教程》2.服務例項的配置引數說明

#region 全域性
        [Category("1.全域性"),
         DisplayName("ServerSession"),
         Description("標識服務的唯ID,一般為Guid"),
         DefaultValue(""),
         ReadOnly(true)]
         public string ServerSession { get; set; }

        [Category("1.全域性"),
        DisplayName("ServerName"),
        Description("標識服務的標題名稱"),
        DefaultValue("")]
        public string ServerName { get; set; }

        [Category("1.全域性"),
        DisplayName("DeliveryMode"),
        Description("接收資料後的分佈策略,包括:按裝置IP分發(DeviceIP)、按裝置編碼分發(DeviceCode)"),
        DefaultValue(DeliveryMode.DeviceIP)]
        public DeliveryMode DeliveryMode { get; set; }

        [Category("1.全域性"),
         DisplayName("ControlMode"),
         Description("排程裝置驅動和IO例項的策略,包括:迴圈模式(Loop)、併發模式(Parallel)、自主模式(Self)和單例模式(Singleton)"),
         DefaultValue(ControlMode.Loop)]
        public ControlMode ControlMode { get; set; }

        [Category("1.全域性"),
         DisplayName("StartReceiveDataFliter"),
         Description("標識接收資料後是否按協議過濾器的規劃過濾資料,不啟用則直接返回資料"),
         DefaultValue(false)]
        public bool StartReceiveDataFliter { get; set; }

        [Category("1.全域性"),
        DisplayName("StartCheckPackageLength"),
        Description("標識是否檢測資料長度,如果開啟,那麼會呼叫協議驅動的GetPackageLength介面,直到接收返回的資料長度的資料"),
        DefaultValue(false)]
        public bool StartCheckPackageLength { get; set; }
        #endregion

        #region 串列埠
        [Category("2.串列埠"),
         DisplayName("ComReadBufferSize"),
         Description("設定一次接收資料的位元組陣列最大值"),
         DefaultValue(1024)]
        public int ComReadBufferSize { get; set; }

        [Category("2.串列埠"),
        DisplayName("ComWriteBufferSize"),
        Description("設定一次傳送資料的位元組陣列最大值"),
        DefaultValue(1024)]
        public int ComWriteBufferSize { get; set; }

        [Category("2.串列埠"),
        DisplayName("ComReadTimeout"),
        Description("設定一次讀取資料的超時時間"),
        DefaultValue(1000)]
        public int ComReadTimeout { get; set; }

        [Category("2.串列埠"),
        DisplayName("ComWriteTimeout"),
        Description("設定一次傳送資料的超時時間"),
        DefaultValue(1000)]
        public int ComWriteTimeout { get; set; }

        [Category("2.串列埠"),
        DisplayName("ComLoopInterval"),
        Description("輪詢模式下,傳送和接收資料中間的等待時間,串列埠通訊不支援其他控制模式"),
        DefaultValue(1000)]
        public int ComLoopInterval { get; set; }
        #endregion

        #region 網路
        [Category("3.網路"),
         DisplayName("NetReceiveBufferSize"),
         Description("設定一次接收資料的位元組陣列最大值"),
         DefaultValue(1024)]
        public int NetReceiveBufferSize { get; set; }

        [Category("3.網路"),
        DisplayName("NetSendBufferSize"),
        Description("設定一次傳送資料的位元組陣列最大值"),
        DefaultValue(1024)]
        public int NetSendBufferSize { get; set; }

        [Category("3.網路"),
        DisplayName("NetReceiveTimeout"),
        Description("設定一次讀取資料的超時時間"),
        DefaultValue(1000)]
        public int NetReceiveTimeout { get; set; }

        [Category("3.網路"),
         DisplayName("NetSendTimeout"),
         Description("設定一次傳送資料的超時時間"),
         DefaultValue(1000)]
        public int NetSendTimeout { get; set; }

        [Category("3.網路"),
        DisplayName("NetLoopInterval"),
        Description("輪詢模式下,傳送和接收資料中間的等待時間"),
        DefaultValue(1000)]
        public int NetLoopInterval { get; set; }

        [Category("3.網路"),
        DisplayName("MaxConnects"),
        Description("允許客戶端最大的連線數,超取最大值,自動關閉遠端連線"),
        DefaultValue(1000)]
        public int MaxConnects { get; set; }

        [Category("3.網路"),
        DisplayName("KeepAlive"),
        Description("檢測死連線、半連線的一種機制"),
        DefaultValue(5000)]
        public uint KeepAlive { get; set; }

        [Category("3.網路"),
        DisplayName("ListenPort"),
        Description("偵聽接收資料的埠"),
        DefaultValue(6699)]
        public int ListenPort { get; set; }

        [Category("3.網路"),
        DisplayName("BackLog"),
        Description("定佇列中最多可容納的等待接受的傳入連線數"),
        DefaultValue(1000)]
        public int BackLog { get; set; }

        [Category("3.網路"),
        DisplayName("CheckSameSocketSession"),
        Description("對一個固定的裝置,只允許有一個有效連線,重複IP多次連線,將斷開之前的連線"),
        DefaultValue(true)]
        public bool CheckSameSocketSession { get; set; }

        [Category("3.網路"),
        DisplayName("SocketMode"),
        Description("標識裝置是TcpServer、TcpClient模式,如果標識TcpClient模式,會主動連線遠端IP和埠"),
        DefaultValue(SocketMode.Tcp)]
        public SocketMode SocketMode { get; set; }


        [Category("3.網路"),
        DisplayName("ClearSocketSession"),
        Description("標識是否清理連線,如果一個連線在一定時間範圍內沒有接收到資料,將主動斷開連線"),
        DefaultValue(false)]
        public bool ClearSocketSession { get; set; }

        [Category("3.網路"),
        DisplayName("ClearSocketSessionInterval"),
        Description("如果標識清理連線,那麼在此標識清理連線間隔時間"),
        DefaultValue(10)]
        public int ClearSocketSessionInterval { get; set; }

        [Category("3.網路"),
        DisplayName("ClearSocketSessionTimeOut"),
        Description("如果標識清理連線,那麼在此標識多長時間沒有接收到資料進行清理"),
        DefaultValue(30)]
        public int ClearSocketSessionTimeOut { get; set; }
        #endregion