HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-05-19 e747e6d8524e3146bb48dc304a713f309966b1c6
ZigbeeApp/Shared/Phone/ZigBee/Device/Scene.cs
@@ -330,7 +330,7 @@
        /// 获取所有场景的所有信息
        /// </summary>
        [System.Serializable]
        public class GetSceneAllInfo:CommonDevice
        public class GetSceneAllInfo
        {
            /// <summary>
            ///场景总数
@@ -412,59 +412,6 @@
            public int MemberNumber;
        }
        #endregion
        #region 获取场景列表
        ///<summary >
        ///获取场景列表
        ///</summary>
        public static async System.Threading.Tasks.Task<List<GetSceneAllInfo>> GetSceneListAsync()
        {
            return await System.Threading.Tasks.Task.Run(async () => {
                var dateTime = DateTime.Now;
                GetSceneAllData d = null;
                var mainGateway = ZbGateway.MainGateWay;
                if (mainGateway == null)
                {
                    d = new GetSceneAllData { errorMessageBase = "当前没有主网关" };
                    return null;
                }
                var listScene = new List<GetSceneAllInfo>();
                Action<string, string> action = (topic, message) =>
                {
                    var gatewayID = topic.Split('/')[0];
                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
                    if (topic == gatewayID + "/" + "Scene/GetAllInfo_Respon")
                    {
                        dateTime = DateTime.Now;
                        var sceneGetAllInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetSceneAllInfo>(jobject["Data"].ToString());
                        listScene.Add(sceneGetAllInfo);
                        System.Console.WriteLine($"UI收到通知后的主题_{ topic}");
                    }
                };
                mainGateway.Actions += action;
                System.Console.WriteLine("Scene/GetAllInfo_Actions 启动" + System.DateTime.Now.ToString());
                try
                {
                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 807 } };
                    mainGateway.Send(("Scene/GetAllInfo"),System.Text.Encoding.UTF8.GetBytes(jObject.ToString()));
                }
                catch { }
                while ((DateTime.Now - dateTime).TotalMilliseconds < 1000)
                {
                    await System.Threading.Tasks.Task.Delay(10);
                }
                mainGateway.Actions -= action;
                System.Console.WriteLine("Scene/GetAllInfo_Actions 退出" + System.DateTime.Now.ToString());
                return listScene;
            });
        }
        #endregion
        #region 只能获取场景信息,没有场景中的设备信息
@@ -1815,153 +1762,5 @@
            public int ScenesId;
        }
        //public static string SceneFilePath = "SceneFile";
        //static Scene()
        //{
        //    if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile(SceneFilePath))))
        //    {
        //        //初始化场景列表
        //        Shared.IO.FileUtils.WriteFileByBytes(SceneFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(new List<string>())));
        //    }
        //}
        ///// <summary>
        ///// 保存当前场景
        ///// </summary>
        ///// <param name="scenceFilePath">Scence file path.</param>
        //public void Save(string scenceFilePath)
        //{
        //    Shared.IO.FileUtils.WriteFileByBytes(scenceFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)));
        //}
        /// <summary>
        /// 根据场景路径恢复场景对象
        /// </summary>
        /// <returns>The by file path.</returns>
        /// <param name="sceneFilePath">Room file path.</param>
        //public static Scene GetSceneByFilePath(string sceneFilePath)
        //{
        //    try
        //    {
        //        return Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(System.Text.Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile(sceneFilePath)));
        //    }
        //    catch
        //    {
        //        return new Scene();
        //    }
        //}
        /// <summary>
        /// 场景标识
        /// </summary>
        //public bool SceneLabel = false;
        /// <summary>
        /// 控制目标的文件路径,格式如:RoomScene_+DeviceID_Mac_Epoint
        /// </summary>
        //public readonly List<string> DeviceFilePathList = new List<string>();
        /// <summary>
        /// 场景的背景图
        /// </summary>
        //public string BackgroundImagePath = "Scene/s1.png";
        /// <summary>
        /// 场景中的设备列表
        /// </summary>
        //[Newtonsoft.Json.JsonIgnore]
        //public List<Scene> sceneDeviceList = new List<Scene>();
        //[Newtonsoft.Json.JsonIgnore]
        //public List<Scene> LocalSceneList = new List<Scene>();
        //public SceneId SceneID;
        ///<summary >
        /// 从网关的场景中移除设备
        /// </summary>
        //public static void SceneRemoveMember1(ZigBee.Device.ZbGateway gateway, int ScenesId, string DeviceAddr, int Epoint)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 802 } };
        //    var DeviceList = new JArray
        //                        {
        //                            new JObject {
        //                                { "Type", 0},
        //                                { "DeviceAddr",DeviceAddr},
        //                                { "Epoint",Epoint}
        //                            }
        //                        };
        //    var data = new JObject {
        //        {"ScenesId",ScenesId},
        //                            { "DeviceList", DeviceList }
        //                        };
        //    jobject.Add("Data", data);
        //    gateway.Send(("Scene/RemoveMember"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        /// 删除场景
        /// </summary>
        //public static void SceneRemove1(ZigBee.Device.ZbGateway gateway, int scenesId)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 803 } };
        //    var data = new JObject { { "ScenesId", scenesId } };
        //    jobject.Add("Data", data);
        //    gateway.Send(("Scene/Remove"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        /// 修改场景名称
        /// </summary>
        //public static void SceneRename1(ZigBee.Device.ZbGateway gateway, int scenesId, string scenesName)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 804 } };
        //    var data = new JObject { { "ScenesId", scenesId }, { "ScenesName", scenesName } };
        //    jobject.Add("Data", data);
        //    gateway.Send(("Scene/Rename"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        /// 获取网关中场景信息
        /// </summary>
        //public static void SceneGetInfo1(ZigBee.Device.ZbGateway gateway)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 805 } };
        //    gateway.Send(("Scene/GetInfo"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        ///获取网关中场景的设备列表
        /// </summary>
        //public static void SceneGetDeviceList1(ZigBee.Device.ZbGateway gateway, int ScenesId)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
        //    var data = new JObject { { "ScenesId", ScenesId } };
        //    jobject.Add("Data", data);
        //    gateway.Send(("Scene/GetDeviceList"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        /// 获取所有场景信息(包括场景设备列表)
        /// </summary>
        //public static void SceneGetAllInfo1(ZigBee.Device.ZbGateway gateway)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 807 } };
        //    gateway.Send(("Scene/GetAllInfo"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
        ///<summary >
        ///调用场景
        /// </summary>
        //public static void SceneOpen1(ZigBee.Device.ZbGateway gateway, int ScenesId)
        //{
        //    var jobject = new JObject { { "Cluster_ID", 0 }, { "Command", 808 } };
        //    var data = new JObject { { "ScenesId", ScenesId } };
        //    jobject.Add("Data", data);
        //    gateway.Send(("Scene/Open"), Common.SecuritySet.Encryption((jobject.ToString())));
        //}
    }
}