Administrator
2021-04-16 22fc6f995db492450c28a3982b7dccf9af97d9e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
namespace Bro.Common.Procedure
{
    /// <summary>
    /// 基础单元
    /// </summary>
    public class UnitBase
    {
 
        #region 枚举
        /// <summary>
        /// 单元模块状态定义
        /// </summary>
        public enum UnitStat
        {
            DSUninit = 0,       // 未初始化
            DSInit,             // 已初始化
            DSOpen,             // 已打开
            DSClose,            // 已关闭
            DSExcept            // 异常状态
        }
 
        #endregion
 
        #region 常量定义
 
        #endregion
 
        #region 设备基本属性
 
        // 设备描述
        public string Desp { get;set; } 
        // 设备状态
        public UnitStat Stat { get;set;}
        // 设备是否初始化
        public bool IsInit {
            get { return UnitStat.DSInit == this.Stat; }
        }
        // 设备是否打开
        public bool IsOpen { 
            get { return UnitStat.DSOpen == this.Stat;}
        }
        // 设备ID(可用来唯一指定本设备)
        public int  Id { get;set; }
        // 设备异常描述
        public string  ExceptionDesp { get;set;}
        // 设备携带数据
        public object Data { get;set; }
 
        #endregion
 
        /// <summary>
        /// 设备构造函数
        /// 
        /// 使用了默认的设备id
        /// </summary>
        public UnitBase()
        {
            // 默认描述
            this.Desp = this.GetType().Name;
            // 初始状态
            this.Stat = UnitStat.DSUninit;
            // 默认单元ID
            this.Id  = this.GetHashCode();
        }
 
        #region 基本动作
        /// <summary>
        /// 设备初始化
        /// </summary>
        /// <returns></returns>
        public virtual bool Init()
        {
            Stat = UnitStat.DSInit;
 
            return true;
        }
 
        /// <summary>
        /// 设备销毁
        /// </summary>
        public virtual void Fnit()
        {
            Stat = UnitStat.DSUninit;
        }
 
        /// <summary>
        /// 设备打开
        /// </summary>
        /// <returns></returns>
        public virtual bool Open()
        {
            Stat = UnitStat.DSOpen;
 
            return true;
        }
 
        /// <summary>
        /// 设备关闭
        /// </summary>
        public virtual void Close()
        {
            Stat = UnitStat.DSClose;
        }
 
        /// <summary>
        /// 打开前动作
        /// </summary>
        public virtual void OnBeforeOpen()
        { 
        
        }
 
        /// <summary>
        /// 打开后动作
        /// </summary>
        public virtual void OnAfterOpen()
        { 
        
        }
 
        /// <summary>
        /// 关闭前动作
        /// </summary>
        public virtual void OnBeforeClose()
        { 
        
        }
 
        /// <summary>
        /// 关闭后动作
        /// </summary>
        public virtual void OnAfterClose()
        { 
        
        }
 
        #endregion
 
    }
}