| | |
| | | using System.Collections.Generic; |
| | | using Shared; |
| | | using Shared.IO; |
| | | using Shared.SimpleControl; |
| | | |
| | | namespace Shared |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 一键将本地回路设备和场景数据转换 |
| | | /// 然后上传oid、sid、以及场景列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public void OneclickUpload (bool isMigrate = false) |
| | | { |
| | | if (isMigrate) { |
| | | var res = false; |
| | | res = UploadOidAndSidList (); |
| | | if (res) { |
| | | res = GetFunctionList (); |
| | | if (res) { |
| | | res = UploadSecneList (); |
| | | } |
| | | } |
| | | return; |
| | | } |
| | | MainPage.Loading.Start ("Uploading..."); |
| | | System.Threading.Tasks.Task.Run (() => { |
| | | try { |
| | | var res = false; |
| | | res = UploadOidAndSidList (); |
| | | if (res) { |
| | | res = GetFunctionList (); |
| | | if (res) { |
| | | res = UploadSecneList (); |
| | | } |
| | | } |
| | | |
| | | if (res) { |
| | | Utlis.ShowAlertOnMainThread (Language.StringByID (SimpleControl.R.MyInternationalizationString.SuccessfullySynchronizedToTheCloud)); |
| | | } else { |
| | | Utlis.ShowAlertOnMainThread (Language.StringByID (SimpleControl.R.MyInternationalizationString.FailedToSyncToTheCloud)); |
| | | } |
| | | |
| | | } catch { |
| | | |
| | | } finally { |
| | | Application.RunOnMainThread (() => { |
| | | MainPage.Loading.Hide (); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public bool GetFunctionList () |
| | | { |
| | | var res = false; |
| | | try { |
| | | var revertObj = HttpServerRequest.Current.GetDeviceList (); |
| | | if (revertObj.Code == StateCode.SUCCESS) { |
| | | var devcieFunctionRes = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieFunctionRes> (revertObj.Data.ToString ()); |
| | | if (devcieFunctionRes != null && devcieFunctionRes.list != null && devcieFunctionRes.list.Count > 0) { |
| | | CommonConfig.Current.FunctionList = devcieFunctionRes.list; |
| | | } else { |
| | | CommonConfig.Current.FunctionList = new List<Function> (); |
| | | } |
| | | CommonConfig.Current.Save (); |
| | | res = true; |
| | | } else { |
| | | //提示错误 |
| | | IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); |
| | | } |
| | | } catch { |
| | | |
| | | } |
| | | |
| | | return res; |
| | | } |
| | | |
| | | #region ■ 上传场景列表___________________________ |
| | | /// <summary> |
| | | /// 上传场景列表 |
| | |
| | | } |
| | | return res; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取所有场景列表 |
| | |
| | | return res; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="mScene"></param> |
| | | bool UpdateSceneList (List<HDLLinkScene> updateLinkSceneList) |
| | | { |
| | | var res = false; |
| | | try { |
| | | var revertObj = HttpServerRequest.Current.EditScene (updateLinkSceneList); |
| | | if (revertObj.Code == StateCode.SUCCESS) { |
| | | res = true; |
| | | } else { |
| | | IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); |
| | | } |
| | | } catch { |
| | | ///// <summary> |
| | | ///// |
| | | ///// </summary> |
| | | ///// <param name="mScene"></param> |
| | | //bool UpdateSceneList (List<HDLLinkScene> updateLinkSceneList) |
| | | //{ |
| | | // var res = false; |
| | | // try { |
| | | // var revertObj = HttpServerRequest.Current.EditScene (updateLinkSceneList); |
| | | // if (revertObj.Code == StateCode.SUCCESS) { |
| | | // res = true; |
| | | // } else { |
| | | // IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); |
| | | // } |
| | | // } catch { |
| | | |
| | | } |
| | | return res; |
| | | } |
| | | // } |
| | | // return res; |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// 原生协议Scene 转换成 HDLLinkScene数据格式 |
| | |
| | | var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDimming> (jsonInfo); |
| | | var mSceneFunction = new SceneFunction (); |
| | | mSceneFunction.sid = function.sid; |
| | | //1.Brightness |
| | | //1.on_off |
| | | var status = new List<SceneFunctionStatus> (); |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.OnOff, |
| | | value = commonNew.CurrentBrightness > 0 ? "on" : "off", |
| | | }); |
| | | //2.Brightness |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.Brightness, |
| | | value = commonNew.CurrentBrightness.ToString(), |
| | | }); |
| | | //2.Delay |
| | | //3.Delay |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.Delay, |
| | | value = (commonNew.DelayTimeHeight * 256 + commonNew.DelayTimeLow).ToString (), |
| | |
| | | var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightLogic> (jsonInfo); |
| | | var mSceneFunction = new SceneFunction (); |
| | | mSceneFunction.sid = function.sid; |
| | | //1.Brightness |
| | | //1.on_off |
| | | var status = new List<SceneFunctionStatus> (); |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.OnOff, |
| | | value = commonNew.CurrentBrightness > 0 ? "on" : "off", |
| | | }); |
| | | //2.Brightness |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.Brightness, |
| | | value = commonNew.CurrentBrightness.ToString (), |
| | | }); |
| | | //2.Delay |
| | | //3.Delay |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.Delay, |
| | | value = (commonNew.DelayTimeHeigh * 256 + commonNew.DelayTimeLow).ToString (), |
| | | }); |
| | | |
| | | //3.rgb |
| | | //4.rgb |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.RGB, |
| | | value = commonNew.RStatus + "," + commonNew.GStatus + "," + commonNew.BStatus, |
| | |
| | | var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (jsonInfo); |
| | | var mSceneFunction = new SceneFunction (); |
| | | mSceneFunction.sid = function.sid; |
| | | //1.Brightness |
| | | //1.OnOff |
| | | var status = new List<SceneFunctionStatus> (); |
| | | status.Add (new SceneFunctionStatus () { |
| | | key = FunctionAttributeKey.OnOff, |
| | |
| | | IotCloud currentProject = new IotCloud (); |
| | | var list = GetAllDeviceList (); |
| | | ConvertOidListToIotStruct (UserConfig.Instance.CurrentRegion.Id, UserConfig.Instance.HomeGateway.gatewayId, list, ref currentProject); |
| | | //2022-06-21 13:10:07 mac不能为空,否则云端有问题 |
| | | foreach (var bean in currentProject.modules.devices) { |
| | | if (string.IsNullOrEmpty (bean.mac)) { |
| | | bean.mac = bean.oid; |
| | | } |
| | | } |
| | | |
| | | Utlis.WriteLine ("list: " + list.Count + "currentProject : " + currentProject.functions.devices.Count); |
| | | |
| | | var revertObj = HttpServerRequest.Current.UploadDeviceOidList (currentProject.modules); |
| | |
| | | } else { |
| | | IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); |
| | | } |
| | | } catch { |
| | | |
| | | } catch(Exception EX) { |
| | | Utlis.WriteLine ("catch: " + EX.ToString()); |
| | | } |
| | | return res; |
| | | } |