| | |
| | | /// 判断是否有开关功能
|
| | | /// </summary>
|
| | | private bool isHadOpenSwitch = true;
|
| | | /// <summary>
|
| | | /// 当前选择的房间
|
| | | /// </summary>
|
| | | public Common.Room nowSelectRoom = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | /// 初始化控件
|
| | | /// </summary>
|
| | | /// <param name="i_device">指定设备</param>
|
| | | public virtual void InitControl(CommonDevice i_device)
|
| | | /// <param name="i_nowSelectRoom">当前选择的房间(有点用处)</param>
|
| | | public virtual void InitControl(CommonDevice i_device, Common.Room i_nowSelectRoom)
|
| | | {
|
| | | this.device = i_device;
|
| | | this.nowSelectRoom = i_nowSelectRoom;
|
| | | //背景图片
|
| | | this.btnBackGroud = new PicViewControl(this.Width, this.Height, false);
|
| | | btnBackGroud.UnSelectedImagePath = "Item/FunctionCardView.png";
|
| | | btnBackGroud.SelectedImagePath = "Item/FunctionCardViewSelected.png";
|
| | | btnBackGroud.Gravity = Gravity.CenterHorizontal;
|
| | | this.AddChidren(btnBackGroud, ChidrenBindMode.BindEventOnly);
|
| | | this.AddChidren(btnBackGroud, ChidrenBindMode.BindEvent);
|
| | |
|
| | | //设备名称控件
|
| | | this.btnDeviceName = new NormalViewControl(320, 63, true);
|
| | |
| | | btnDeviceName.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnDeviceName.SelectedTextColor = UserCenterColor.Current.White;
|
| | | btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
|
| | | this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
|
| | | this.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
|
| | |
|
| | | //收集控件
|
| | | this.btnCollect = new IconViewControl(107);
|
| | |
| | | {
|
| | | //取消收藏
|
| | | HdlRoomLogic.Current.DeleteLoveDevice(i_device);
|
| | | if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
|
| | | if (this.nowSelectRoom.IsLove == true)
|
| | | {
|
| | | //如果当前房间是我的喜爱的话,回调卡片被删除的事件
|
| | | this.CardNeedRemoveEvent?.Invoke();
|
| | |
| | | fraDeviceRound.X = HdlControlLogic.Current.GetPictrueRealSize(44);
|
| | | fraDeviceRound.Y = HdlControlLogic.Current.GetPictrueRealSize(101);
|
| | | fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
|
| | | this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEventOnly);
|
| | | this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEvent);
|
| | |
|
| | | //设备图标控件
|
| | | this.btnDeviceIcon = new IconViewControl(86);
|
| | | btnDeviceIcon.Gravity = Gravity.Center;
|
| | | fraDeviceRound.AddChidren(btnDeviceIcon);
|
| | | this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEventOnly);
|
| | | this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEvent);
|
| | |
|
| | | //状态文本控件
|
| | | this.btnStatu = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(300), HdlControlLogic.Current.GetPictrueRealSize(63), false);
|
| | |
| | | btnStatu.TextColor = UserCenterColor.Current.TextColor1;
|
| | | btnStatu.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
|
| | | btnStatu.IsBold = true;
|
| | | this.AddChidren(btnStatu, ChidrenBindMode.BindEventOnly);
|
| | | this.AddChidren(btnStatu, ChidrenBindMode.BindEvent);
|
| | |
|
| | | //开关控件(不加入父控件中)
|
| | | this.btnSwitch = new PicViewControl(109, 104);
|
| | |
| | | //如果这个函数被重写的话,则代表这个设备有开关功能
|
| | | this.isHadOpenSwitch = false;
|
| | | //默认用在线状态来判断
|
| | | return i_device.IsOnline == 1;
|
| | | return Common.LocalDevice.Current.CheckDeviceIsOnline(i_device);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | /// 深度卡片信息的返回事件(底层专用)
|
| | | /// </summary>
|
| | | /// <param name="device">设备</param>
|
| | | /// <param name="room">房间</param>
|
| | | public void CardDetailInfoBackEvent(CommonDevice device, Common.Room room)
|
| | | public void CardDetailInfoBackEvent(CommonDevice device)
|
| | | {
|
| | | if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
|
| | | if (this.nowSelectRoom.IsLove == true)
|
| | | {
|
| | | //如果是主页取消搜藏的话,回调卡片被删除的函数
|
| | | if (HdlRoomLogic.Current.IsCollectInRoom(device) == false)
|
| | |
| | | {
|
| | | //如果这个设备改变了房间的话,回调卡片被删除的函数
|
| | | var nowRoom = HdlRoomLogic.Current.GetRoomByDevice(device);
|
| | | if (nowRoom == null || nowRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
|
| | | if (nowRoom == null || nowRoom.Id != this.nowSelectRoom.Id)
|
| | | {
|
| | | this.CardNeedRemoveEvent?.Invoke();
|
| | | return;
|
| | |
| | |
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | int waitime = 30;
|
| | | int waitime = 40;
|
| | | while (waitime > 0)
|
| | | {
|
| | | System.Threading.Thread.Sleep(100);
|
| | |
| | | break;
|
| | | }
|
| | | waitime--;
|
| | | //2秒的时候,还是接受不到的话,强制再次刷新设备状态
|
| | | if (waitime == 20)
|
| | | {
|
| | | //从新发送获取设备的状态(强制)
|
| | | this.device.HadReadDeviceStatu = false;
|
| | | this.SendStatuComand();
|
| | | }
|
| | | }
|
| | | if (waitime <= 0)
|
| | | if (waitime <= 0 && this.Parent != null)
|
| | | {
|
| | | //没有获取得到结果
|
| | | HdlThreadLogic.Current.RunMain(() =>
|