黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -103,8 +103,8 @@
                };
            }
            //初始化网关行控件
            GatewayResourse.NowSelectGatewayId = GatewayResourse.AppOldSelectGatewayId;
            var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.AppOldSelectGatewayId);
            HdlGatewayResourse.NowSelectGatewayId = HdlGatewayResourse.AppOldSelectGatewayId;
            var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(HdlGatewayResourse.AppOldSelectGatewayId);
            this.gatewayViewRow = new MyGatewayControl(nowGateway);
            bodyFrameLayout.AddChidren(gatewayViewRow);
            gatewayViewRow.InitControl();
@@ -171,8 +171,8 @@
        private void InitDeviceListControl()
        {
            //获取设备列表
            var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(GatewayResourse.NowSelectGatewayId);
            var listSpecialOta = Common.LocalDevice.Current.GetSpecialOtaDevice(GatewayResourse.NowSelectGatewayId);
            var listDevice = HdlDeviceCommonLogic.Current.GetDeviceByGatewayID(HdlGatewayResourse.NowSelectGatewayId);
            var listSpecialOta = HdlDeviceCommonLogic.Current.GetSpecialOtaDevice(HdlGatewayResourse.NowSelectGatewayId);
            listDevice.AddRange(listSpecialOta);
            this.dicRowInfo.Clear();
@@ -196,7 +196,7 @@
                foreach (var macAddress in this.dicRowInfo.Keys)
                {
                    //获取ota设备
                    var ota = Common.LocalDevice.Current.GetOTADevice(macAddress);
                    var ota = HdlDeviceCommonLogic.Current.GetOTADevice(macAddress);
                    if (ota != null)
                    {
                        listOta.Add(ota);
@@ -229,7 +229,7 @@
            //创建一个可以展开和收缩的FrameLayout,相当于菜单栏
            var frameTable = new FrameListControl(29);
            frameTable.Height = ControlCommonResourse.ListViewRowHeight + frameTable.rowSpace;
            frameTable.Height = HdlControlResourse.ListViewRowHeight + frameTable.rowSpace;
            listView.AddChidren(frameTable);
            rowInfo.frameTable = frameTable;
@@ -252,8 +252,8 @@
            rowMenu.AddTag("btnNew", btnNew);
            //检测设备是否拥有定位的功能
            var listdevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
            if (listdevice.Count > 0 && Common.LocalDevice.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
            var listdevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
            if (listdevice.Count > 0 && HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
            {
                //定位
                var btnPosition = rowMenu.AddEditorControl(false);
@@ -261,7 +261,7 @@
                btnPosition.ButtonClickEvent += (sender, e) =>
                {
                    //定位
                    Common.LocalDevice.Current.SetFixedPositionCommand(listdevice[0], true);
                    HdlDeviceCommonLogic.Current.SetFixedPositionCommand(listdevice[0], true);
                };
            }
@@ -269,7 +269,7 @@
            btnRight.ButtonClickEvent += (sender, e) =>
            {
                //回路数大于1才展开
                var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
                var listMacDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac, false);
                if (listMacDevice.Count > 1)
                {
                    btnRight.IsSelected = !btnRight.IsSelected;
@@ -278,7 +278,7 @@
                }
                else
                {
                    if (LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
                    if (HdlDeviceCommonLogic.Current.IsMiniLight(listMacDevice[0]) == true)
                    {
                        //mini夜灯的功能设置界面
                        var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
@@ -302,14 +302,14 @@
                //隐藏菜单
                rowMenu.HideMenu();
                //强制跳转真实设备界面
                if (UserCenterResourse.HideOption.GotoRealDeviceForm == 1)
                if (HdlUserCenterResourse.HideOption.GotoRealDeviceForm == 1)
                {
                    var form2 = new DeviceAddSuccessForm();
                    form2.AddForm(deviceMac);
                    return;
                }
                var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
                if (listMacDevice.Count > 0 && LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
                var listMacDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac, false);
                if (listMacDevice.Count > 0 && HdlDeviceCommonLogic.Current.IsMiniLight(listMacDevice[0]) == true)
                {
                    //mini夜灯的功能设置界面
                    var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
@@ -354,18 +354,18 @@
            //它原来的高度
            int oldHeight = rowInfo.frameTable.Height;
            //变更的高度,默认为列表隐藏
            int heightValue = ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace;
            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
            int heightValue = HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace;
            var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
            if (isShow == true)
            {
                //备注:面板中只显示真实的设备,其他属于绑定的回路不显示
                //获取这一堆设备时属于什么类型的
                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(listDevice);
                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                {
                    var listTemp = Common.LocalDevice.Current.GetMutilfunctionPanelByMac(listDevice);
                    var listTemp = HdlDeviceCommonLogic.Current.GetMutilfunctionPanelByMac(listDevice);
                    //展开模式时,扩大依据为:它有几个子控件
                    heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    heightValue = (listTemp.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    //标题自己就是一个子控件
                    if (rowInfo.frameTable.ChildrenCount == 1)
                    {
@@ -380,9 +380,9 @@
                       || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment
                       || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
                {
                    var listTemp = Common.LocalDevice.Current.GetPanelMatchEpointByMac(listDevice);
                    var listTemp = HdlDeviceCommonLogic.Current.GetPanelMatchEpointByMac(listDevice);
                    //展开模式时,扩大依据为:它有几个子控件
                    heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    heightValue = (listTemp.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    //标题自己就是一个子控件
                    if (rowInfo.frameTable.ChildrenCount == 1)
                    {
@@ -396,7 +396,7 @@
                else
                {
                    //展开模式时,扩大依据为:它有几个子控件
                    heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    heightValue = (listDevice.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
                    //标题自己就是一个子控件
                    if (rowInfo.frameTable.ChildrenCount == 1)
                    {
@@ -428,9 +428,9 @@
            //行控件
            var rowDevice = new DeviceRoomControl(device, frame.rowSpace / 2);
            rowDevice.MainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
            rowDevice.MainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
            frame.AddChidren(rowDevice);
            rowDevice.frameTable.LeftOffset = Application.GetRealWidth(173) - ControlCommonResourse.XXLeft;
            rowDevice.frameTable.LeftOffset = Application.GetRealWidth(173) - HdlControlResourse.XXLeft;
            rowDevice.InitControl();
            //底线
            rowDevice.frameTable.AddBottomLine();
@@ -439,11 +439,11 @@
            //在线状态
            rowDevice.IsOnline = rowInfo.MenuRow.IsOnline;
            //保存控件
            string maikey = Common.LocalDevice.Current.GetDeviceMainKeys(device);
            string maikey = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
            rowInfo.dicDetailRow[maikey] = rowDevice;
            //检测设备是否拥有定位的功能
            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(device) == true)
            if (HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(device) == true)
            {
                //定位
                var btnPosition = rowDevice.AddEditorControl(false);
@@ -451,7 +451,7 @@
                btnPosition.ButtonClickEvent += (sender, e) =>
                {
                    //定位
                    Common.LocalDevice.Current.SetFixedPositionCommand(device);
                    HdlDeviceCommonLogic.Current.SetFixedPositionCommand(device);
                };
            }
@@ -489,16 +489,6 @@
        {
            //智能门锁
            if (deviceEnumInfo.BeloneType == DeviceBeloneType.A智能门锁)
            {
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(device.DeviceAddr);
            }
            else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A晾衣架)
            {
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(device.DeviceAddr);
            }
            else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A空气质量)
            {
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(device.DeviceAddr);
@@ -719,7 +709,7 @@
                return;
            }
            //如果是在线的
            var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.NowSelectGatewayId);
            var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(HdlGatewayResourse.NowSelectGatewayId);
            if (HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(nowGateway) == true)
            {
                //检测广播到的这个网关是否拥有住宅ID
@@ -752,7 +742,7 @@
            }
            //获取全部设备
            int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(nowGateway.GwId, false);
            int result = HdlDeviceCommonLogic.Current.SetDeviceToMemmoryByGateway(nowGateway.GwId, false);
            if (this.Parent == null)
            {
                return;
@@ -778,7 +768,7 @@
        /// </summary>
        private void StartGatewayOnlieCheckThread()
        {
            string selectGwId = GatewayResourse.NowSelectGatewayId;
            string selectGwId = HdlGatewayResourse.NowSelectGatewayId;
            HdlThreadLogic.Current.RunThread(() =>
            {
                ZbGateway zbGateway = HdlGatewayLogic.Current.GetLocalGateway(selectGwId);
@@ -858,12 +848,12 @@
        /// </summary>
        private void RefreshDeviceOnlineStatu()
        {
            string gwId = GatewayResourse.NowSelectGatewayId;
            string gwId = HdlGatewayResourse.NowSelectGatewayId;
            HdlThreadLogic.Current.RunThread(() =>
            {
                if (this.Parent == null) { return; }
                //获取设备列表
                var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(gwId);
                var listDevice = HdlDeviceCommonLogic.Current.GetDeviceByGatewayID(gwId);
                var listCheck = new List<string>();
                foreach (var device in listDevice)
                {
@@ -872,7 +862,7 @@
                    {
                        //只要一个回路即可
                        listCheck.Add(device.DeviceAddr);
                        var deviceInfo = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
                        var deviceInfo = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
                        if (deviceInfo != null)
                        {
                            //变更在线状态
@@ -905,15 +895,15 @@
                return;
            }
            //刷新设备的在线状态
            string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
            var localDevice = Common.LocalDevice.Current.GetDevice(mainkeys);
            string mainkeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
            var localDevice = HdlDeviceCommonLogic.Current.GetDevice(mainkeys);
            if (localDevice != null)
            {
                //保存状态
                localDevice.IsOnline = device.IsOnline;
            }
            rowInfo.MenuRow.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
            rowInfo.MenuRow.IsOnline = HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(device);
            if (rowInfo.dicDetailRow != null)
            {
                foreach (var detailRow in rowInfo.dicDetailRow.Values)
@@ -989,10 +979,10 @@
                        return;
                    }
                    //添加升级固件信息(成不成功都无所谓)
                    var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A设备, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
                    var result = HdlFirmwareUpdateLogic.Current.AddFirmwareVersionInfo(FirmwareLevelType.A设备, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
                    //获取设备最新版本
                    var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A设备,
                    var deviceFirmware = HdlFirmwareUpdateLogic.Current.GetFirmwareMostVersionInfo(FirmwareLevelType.A设备,
                        ota.HwVersion.ToString(),
                        ota.ImgTypeId.ToString(),
                        ota.ImgVersion);
@@ -1035,11 +1025,11 @@
            //新建一个对象
            if (this.dicRowInfo.ContainsKey(deviceAddr) == false)
            {
                var localDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr);
                var localDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceAddr);
                if (localDevice.Count == 0)
                {
                    //针对单纯只有一个200端点的设备
                    var ota = Common.LocalDevice.Current.GetOTADevice(deviceAddr);
                    var ota = HdlDeviceCommonLogic.Current.GetOTADevice(deviceAddr);
                    if (ota == null)
                    {
                        //入网之后,又把它删了
@@ -1049,8 +1039,8 @@
                }
                var rowNewInfo = new DeviceObjRowInfo();
                rowNewInfo.DeviceMac = deviceAddr;
                rowNewInfo.MacName = Common.LocalDevice.Current.GetDeviceMacName(localDevice[0]);
                rowNewInfo.DeviveTypeName = Common.LocalDevice.Current.GetDeviceObjectText(localDevice);
                rowNewInfo.MacName = HdlDeviceCommonLogic.Current.GetDeviceMacName(localDevice[0]);
                rowNewInfo.DeviveTypeName = HdlDeviceCommonLogic.Current.GetDeviceObjectText(localDevice);
                this.dicRowInfo[deviceAddr] = rowNewInfo;
                //创建新的行
@@ -1071,8 +1061,8 @@
            {
                var rowInfo = this.dicRowInfo[deviceAddr];
                //检测这个设备是否被删除 2020.01.13变更:追加Ota设备的判断
                if (LocalDevice.Current.GetDevicesByMac(deviceAddr).Count == 0
                    && LocalDevice.Current.GetOTADevice(deviceAddr) == null)
                if (HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceAddr).Count == 0
                    && HdlDeviceCommonLogic.Current.GetOTADevice(deviceAddr) == null)
                {
                    //移除控件
                    rowInfo.dicDetailRow = null;
@@ -1115,8 +1105,8 @@
                }
                //获取设备类型的
                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleEnvironment)
                var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment)
                {
                    foreach (var outClu in device.OutClusterList)
                    {
@@ -1138,8 +1128,8 @@
            {
                var info = new DeviceObjRowInfo();
                info.DeviceMac = mac;
                info.MacName = Common.LocalDevice.Current.GetDeviceMacName(dic[mac][0]);
                info.DeviveTypeName = Common.LocalDevice.Current.GetDeviceObjectText(dic[mac]);
                info.MacName = HdlDeviceCommonLogic.Current.GetDeviceMacName(dic[mac][0]);
                info.DeviveTypeName = HdlDeviceCommonLogic.Current.GetDeviceObjectText(dic[mac]);
                this.dicRowInfo[mac] = info;
            }
        }
@@ -1153,17 +1143,15 @@
        /// </summary>
        public override int FormActionAgainEvent()
        {
            if (GatewayResourse.AppOldSelectGatewayId != this.gatewayViewRow.zbGatewayId)
            if (HdlGatewayResourse.AppOldSelectGatewayId != this.gatewayViewRow.zbGatewayId)
            {
                //这个网关被整掉了,需要重新初始化界面
                this.nowActionDeviceMac = null;
                this.oldShowRightMuneRow = null;
                //重新选择网关
                HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
                //初始化界面
                this.InitMiddleFrame();
                return 1;
            }