4
wei
2021-03-16 63a1e0dd7fcda5948c26490d5d7e4c84d6dbf99f
HDL_ON/DAL/DriverLayer/Control.cs
@@ -229,7 +229,7 @@
        public void SearchLoaclGateway()
        {
            //2021-01-15 : 住宅没有绑定网关的时候不用搜索,并且不能链接mqtt
            if(DB_ResidenceData.Instance.HomeGateway == null)
            if(DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
            {
                return;
            }
@@ -602,7 +602,8 @@
                    }
                }
                //MainPage.Log($"局域网信息: {receiveObj.Topic}");
                MainPage.Log($"局域网信息: {receiveObj.Topic}");
                MainPage.Log($"内容: {res[1]}");
                //验证有效数据长度
@@ -613,17 +614,18 @@
                //}
                receiveObj.BodyDataString = res[1];
                var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
                if (bodyJObj == null)
                {
                    return receiveObj;
                }
                if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply)
                {
                    var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
                    if (bodyJObj == null)
                    {
                        return receiveObj;
                    }
                    var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
                    if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
                    {
                        //MainPage.Log("本地搜索网关成功");
                        MainPage.Log("本地搜索网关成功");
                        Ins.IsSearchLocalGatewaySuccessful = true;
                        Ins.GatewayOnline_Local = true;
                        if (!string.IsNullOrEmpty(device.gatewayId))
@@ -643,6 +645,11 @@
                {
                    //TODO 暂时不传正确的数据上去,如果后面要优化前面这些代码
                    UpdataFunctionStatus(receiveObj.BodyDataString, null);
                }
                else
                {
                    //一些特殊的主题处理(为了执行速度,尽可能的别加耗时的操作)
                    Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(receiveObj.Topic, receiveObj.BodyDataString);
                }
            }
            return receiveObj;
@@ -845,7 +852,7 @@
                            case SPK.SensorSmoke:
                            case SPK.SensorWater:
                            case SPK.ClothesHanger:
                            case SPK.IrAC:
                            case SPK.AcIr:
                                //设备状态推送
                                Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
                                break;