| | |
| | | /// </summary> |
| | | public bool IsSearchLocalGatewaySuccessful = false; |
| | | |
| | | ///// <summary> |
| | | ///// |
| | | ///// </summary> |
| | | //bool _gatewayOnline1 = false; |
| | | ///// <summary> |
| | | ///// 网关是否在线 |
| | | ///// </summary> |
| | | //public bool GatewayOnline1 |
| | | //{ |
| | | // get |
| | | // { |
| | | // return _gatewayOnline; |
| | | // } |
| | | // set |
| | | // { |
| | | // if (_gatewayOnline != value) |
| | | // { |
| | | // if(value) |
| | | // { |
| | | // if (IsRemote)//如果是远程 |
| | | // { |
| | | // if(DB_ResidenceData.Instance.HomeGateway == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // if (!DB_ResidenceData.Instance.HomeGateway.gatewayStatus)//远程情况下,网关未链接服务器不能修改主页网关状态 |
| | | // { |
| | | // new System.Threading.Thread(() => { |
| | | // System.Threading.Thread.Sleep(3000); |
| | | // var pm = new DAL.Server.HttpServerRequest(); |
| | | // pm.GetGatewayInfo(); |
| | | // }) { IsBackground = true }.Start(); |
| | | // return; |
| | | // } |
| | | // } |
| | | // _gatewayOnline = value; |
| | | // //修改主页连接状态 |
| | | // HomePage.LoadEvent_CheckLinkStatus(); |
| | | // MainPage.Log($"网关在线,刷新设备状态"); |
| | | // new System.Threading.Thread(() => |
| | | // { |
| | | // System.Threading.Thread.Sleep(1000); |
| | | // FunctionList.List.ReadAllFunctionStatus(); |
| | | // }) |
| | | // { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); |
| | | // } |
| | | // else |
| | | // { |
| | | // _gatewayOnline = value; |
| | | // //修改主页连接状态 |
| | | // HomePage.LoadEvent_CheckLinkStatus(); |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | |
| | | bool _GatewayOnline_Local = false; |
| | | /// <summary> |
| | | /// 网关在线-局域网 |
| | |
| | | var pack = pm.GetDeviceInfoList(functionIds); |
| | | if(pack!= null&& pack.Data!=null) |
| | | { |
| | | var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(pack.Data.ToString()); |
| | | //待测试2021-03-04 |
| | | var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AlinkStatusData>>(pack.Data.ToString()); |
| | | if(ddd!= null) |
| | | { |
| | | foreach(var function in ddd) |
| | |
| | | var temp = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.deviceId == function.deviceId); |
| | | if(temp!= null) |
| | | { |
| | | temp = function; |
| | | if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(temp.spk)) |
| | | { |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(temp.sid, temp.status); |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(temp.sid, function.status); |
| | | } |
| | | } |
| | | } |
| | |
| | | var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); |
| | | } |
| | | } |
| | | ///// <summary> |
| | | ///// 发送A协议读取命令 |
| | | ///// </summary> |
| | | //public void SendReadCommand(List<Dictionary<string, string>> keyValuePairs) |
| | | //{ |
| | | // var readDataObj = new GatewayAlinkReadObj() |
| | | // { |
| | | // id = Ins.msg_id.ToString(), |
| | | // objects = keyValuePairs, |
| | | // time_stamp = Utlis.GetTimestamp() |
| | | // }; |
| | | // var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); |
| | | // var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); |
| | | // Ins.myUdp.SendLocalHdlLinkData(sendBytes); |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// a协议控制场景 |
| | |
| | | { |
| | | if (!Ins.GatewayOnline_Local)//网关本地不在线 |
| | | { |
| | | //云端做处理发送一端口场景 |
| | | //if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | //{ |
| | | // new Control_Udp().ControlBusScenes(scene); |
| | | //} |
| | | //else |
| | | { |
| | | var pm = new DAL.Server.HttpServerRequest(); |
| | | var result = pm.ExecuteScene(scene.userSceneId); |
| | | } |
| | | var pm = new DAL.Server.HttpServerRequest(); |
| | | var result = pm.ExecuteScene(scene.userSceneId); |
| | | } |
| | | else |
| | | { |
| | |
| | | //MainPage.Log($"A协议更新状态:{revString}"); |
| | | foreach (var attr in updateTemp.status) |
| | | { |
| | | var attrState = localFunction.status.Find((func) => func.key == attr.key); |
| | | if(attrState!= null) |
| | | { |
| | | attrState.value = attr.value; |
| | | } |
| | | localFunction.SetAttrState(attr.key,attr.value); |
| | | } |
| | | |
| | | if (localFunction != null) |
| | |
| | | localAttr.curValue = attr.value; |
| | | } |
| | | } |
| | | //rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + rgb.brightness + "%"; |
| | | RelayPage.UpdataState(localSwitch); |
| | | } |
| | | break; |
| | |
| | | } |
| | | } |
| | | ac.lastState = ""; |
| | | switch (ac.trait_mode.curValue.ToString()) |
| | | switch (ac.GetAttrState(FunctionAttributeKey.Mode)) |
| | | { |
| | | case "cool": |
| | | ac.lastState = Language.StringByID(StringId.Cool); |
| | |
| | | ac.lastState = Language.StringByID(StringId.AirSupply); |
| | | break; |
| | | } |
| | | switch (ac.trait_fan.curValue.ToString()) |
| | | switch (ac.GetAttrState(FunctionAttributeKey.FanSpeed)) |
| | | { |
| | | case "high": |
| | | ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed); |
| | |
| | | ac.lastState += " " + Language.StringByID(StringId.Auto); |
| | | break; |
| | | } |
| | | ac.lastState += " " + ac.trait_temp.curValue + ac.tempUnitString; |
| | | ac.lastState += " " + ac.GetAttrState(FunctionAttributeKey.SetTemp) + ac.tempUnitString; |
| | | ACPage.UpdataStates(ac); |
| | | } |
| | | break; |
| | |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.ClothesHanger: |
| | | case SPK.IrAC: |
| | | //设备状态推送 |
| | | var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); |
| | | if (myDevice != null)
|
| | | {
|
| | | localObj = myDevice;
|
| | | } |
| | | break; |
| | | default: |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); |
| | | break; |
| | | } |
| | | if (localObj != null)
|