陈嘉乐
2020-08-27 c7f2e3791f931d18c6ab3b1b215e57a1101e0389
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -23,7 +23,9 @@
            return await System.Threading.Tasks.Task.Run(async () =>
            {
                List<int> logicIdList = new List<int>();
                bool if_theme = false;
                int if_number = -1;
                Action<string, string> action = (topic, data) =>
                {
                    var gatewayID = topic.Split('/')[0];
@@ -35,19 +37,19 @@
                    
                    if (topic == $"{gatewayID}/Logic/GetLogicList_Respon")
                    {
                        var list = jObjectdata["Data"]["LogicList"];
                        if (list == null)
                        if_theme = true;
                        var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jObjectdata["Data"]["LogicList"].ToString());
                        if_number = list.Count;
                        if (list.Count == 0)
                        {
                            return;
                        }
                        foreach (var listIfon in list)
                        {
                            var logicId = int.Parse(listIfon["LogicId"].ToString());
                            var logicId = int.Parse(listIfon["LogicId"]);
                            logicIdList.Add(logicId);
                           
                        }
                    }
                };
                var mainGateWay = ZbGateway.MainGateWay;
@@ -73,9 +75,13 @@
                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
                {
                    await System.Threading.Tasks.Task.Delay(100);
                    if (logicIdList.Count != 0)
                    if (if_theme)
                    {
                        break;
                        if (if_number == 0 || if_number == logicIdList.Count)
                        {
                            break;//回复没有数据立刻返回
                        }
                    }
                }
                ZbGateway.MainGateWay.GwResDataAction -= action;
@@ -104,7 +110,6 @@
                    if (topic == $"{gatewayID}/Logic/GetLogicInfo_Respon")
                    {
                        logic = new Common.Logic();
                        var Logicifon = jObjectdata["Data"];
                        logic.LogicId = int.Parse(Logicifon["LogicId"]?.ToString());
@@ -249,7 +254,6 @@
                    {
                        try
                        {
                            Logicifon = new Common.Logic();
                            Logicifon = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Logic>(jObjectdata["Data"].ToString());
                        }
                        catch (Exception ex)
@@ -652,8 +656,7 @@
            return await System.Threading.Tasks.Task.Run(async () =>
            {
                var listLogic = new List<Common.Logic>();
                // bool @bool = false;
                var listLogic = new List<Common.Logic>();
                Action<string, string> action = (topic, data) =>
                {
                    var gatewayID = topic.Split('/')[0];
@@ -665,7 +668,6 @@
                    if (topic == $"{gatewayID}/Logic/GetAllLogicListInfo_Respon")
                    {
                        var logic = new Common.Logic();
                        var Logicifon = jObjectdata["Data"];
                        logic.LogicId = int.Parse(Logicifon["LogicId"].ToString());
@@ -724,10 +726,7 @@
                        }
                    }
                    //if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon")
                    //{
                    //    @bool = true;
                    //}
                };
                var mainGateWay = ZbGateway.MainGateWay;
                if (mainGateWay == null)
@@ -752,10 +751,6 @@
                    {
                        break;
                    }
                    //if (@bool)
                    //{
                    //    break;
                    //}
                }
                ZbGateway.MainGateWay.GwResDataAction -= action;
                return listLogic;
@@ -805,7 +800,7 @@
                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
                {
                    await System.Threading.Tasks.Task.Delay(100);
                    if (sceneui != null)
                    if (sceneui != null && sceneui.Id > 0)
                    {
                        break;
                    }
@@ -1332,8 +1327,9 @@
        {
            get
            {
                string value = ReadLocalFile("GPS_File");
                //读取本地GPS服务状态
                if (ReadLocalFile("GPS_File") == "0")
                if (value == "0"||string.IsNullOrEmpty(value))
                {
                    return "0";
                }