黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
 
namespace Shared.Phone
{
    /// <summary>
    /// 安防传感器状态的自定义控件
    /// </summary>
    public class SafetySensorStatuControl : FrameLayout
    {
        #region ■ 变量声明___________________________
 
        /// <summary>
        /// 在线状态
        /// </summary>
        private NormalViewControl btnOnline = null;
        /// <summary>
        /// 信息提示图标
        /// </summary>
        private IconViewControl btnMsgIcon = null;
        /// <summary>
        /// 信息
        /// </summary>
        private NormalViewControl btnMsg = null;
 
        #endregion
 
        #region ■ 初始化_____________________________
 
        /// <summary>
        /// 安防传感器状态的自定义控件
        /// </summary>
        public SafetySensorStatuControl()
        {
            this.Height = Application.GetRealHeight(256);
            this.Width = Application.GetRealWidth(968);
            this.Gravity = Gravity.CenterHorizontal;
            this.BackgroundColor = UserCenterColor.Current.White;
            this.Radius = (uint)Application.GetRealHeight(17);
        }
 
        /// <summary>
        /// 初始化控件
        /// </summary>
        /// <param name="device">设备对象</param>
        public void InitControl(CommonDevice device)
        {
            //区域
            var btnArea = new NormalViewControl(400, 49, true);
            btnArea.Y = Application.GetRealHeight(40);
            btnArea.X = Application.GetRealWidth(46);
            btnArea.TextSize = 12;
            btnArea.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnArea.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device);
            this.AddChidren(btnArea);
            //状态
            var btnStatu = new NormalViewControl(200, 49, true);
            btnStatu.Y = btnArea.Y;
            btnStatu.X = this.Width - Application.GetRealWidth(200 + 46);
            btnStatu.TextSize = 12;
            btnStatu.TextAlignment = TextAlignment.CenterRight;
            btnStatu.TextColor = UserCenterColor.Current.TextGrayColor1;
            btnStatu.TextID = R.MyInternationalizationString.uStatu;
            this.AddChidren(btnStatu);
            //线
            var btnLine = new NormalViewControl(Application.GetRealWidth(876), HdlControlResourse.BottomLineHeight, false);
            btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            btnLine.X = Application.GetRealWidth(46);
            btnLine.Y = Application.GetRealHeight(104);
            this.AddChidren(btnLine);
            //设备名称
            var btnDeviceName = new NormalViewControl(400, 58, true);
            btnDeviceName.X = Application.GetRealWidth(46);
            btnDeviceName.Y = Application.GetRealHeight(141);
            btnDeviceName.Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
            this.AddChidren(btnDeviceName);
            //在线状态
            btnOnline = new NormalViewControl(200, 58, true);
            btnOnline.X = this.Width - Application.GetRealWidth(200 + 46);
            btnOnline.Y = btnDeviceName.Y;
            btnOnline.TextAlignment = TextAlignment.CenterRight;
            this.SetOnlineStatu(HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(device));
            this.AddChidren(btnOnline);
        }
 
        #endregion
 
        #region ■ 一般方法___________________________
 
        /// <summary>
        /// 设置在线状态
        /// </summary>
        /// <param name="online"></param>
        public void SetOnlineStatu(bool online)
        {
            if (online == false)
            {
                //离线
                btnOnline.TextID = R.MyInternationalizationString.uOffLine;
                btnOnline.TextColor = UserCenterColor.Current.TextGrayColor1;
            }
            else
            {
                //在线
                btnOnline.TextID = R.MyInternationalizationString.uOnline;
                btnOnline.TextColor = UserCenterColor.Current.TextColor1;
            }
        }
 
        /// <summary>
        /// 设置传感器报警信息
        /// </summary>
        /// <param name="reportInfo"></param>
        public void SetSensoReportInfo(IASZoneReportInfo reportInfo)
        {
            if (reportInfo == null)
            {
                return;
            }
            string strMsg = reportInfo.AlarmMsg;
            if (reportInfo.DemolishmenMsg != null)
            {
                //被拆报警
                strMsg = reportInfo.DemolishmenMsg;
            }
            else if (reportInfo.BatteryMsg != null)
            {
                //电池报警
                strMsg = reportInfo.BatteryMsg;
            }
            if (strMsg == null || strMsg == string.Empty)
            {
                //不是在册的报警消息
                return;
            }
 
            //在线状态的控件隐藏
            btnOnline.Visible = false;
 
            if (btnMsg == null)
            {
                //图标
                btnMsgIcon = new IconViewControl(58);
                btnMsgIcon.X = Application.GetRealWidth(864);
                btnMsgIcon.Y = Application.GetRealHeight(141);
                btnMsgIcon.UnSelectedImagePath = "Item/Tips.png";
                this.AddChidren(btnMsgIcon);
                //信息
                btnMsg = new NormalViewControl(400, 58, true);
                btnMsg.TextAlignment = TextAlignment.CenterRight;
                btnMsg.TextColor = 0xfff34747;
                btnMsg.X = this.Width - Application.GetRealWidth(400 + 115);
                btnMsg.Y = Application.GetRealHeight(141);
                this.AddChidren(btnMsg);
            }
            btnMsg.Text = strMsg;
        }
 
        #endregion
    }
}