JLChen
2021-02-05 1a0a7f736c6d2e7129e7591d40bed67ec7c0f09a
HDL_ON/DAL/DriverLayer/Control.cs
@@ -279,8 +279,9 @@
        /// </summary>
        /// <param name="commandString"></param>
        /// <param name="function"></param>
        /// <param name="useRemote">是否直接使用远程发送</param>
        /// <returns></returns>
        public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary)
        public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary, bool useRemote = false)
        {
            function.controlCounter++;
            function.refreshTime = DateTime.Now;
@@ -309,8 +310,9 @@
            MainPage.Log($"发送数据:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
            //useRemote = true;
            //远程通讯
            if (Ins.IsRemote)
            if (Ins.IsRemote || useRemote == true)
            {
                DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
                //ALink控制、Bus控制使用同一个接口控制,由云端负责解析
@@ -379,6 +381,34 @@
        {
            var pm = new DAL.Server.HttpServerRequest();
            var pack = pm.RefreshDeviceStatus(functionIds);
        }
        /// <summary>
        /// 读取功能详细数据
        /// </summary>
        /// <param name="functionIds"></param>
        public void ReadFunctionsInfo(List<string> functionIds)
        {
            var pm = new DAL.Server.HttpServerRequest();
            var pack = pm.GetDeviceInfoList(functionIds);
            if(pack!= null&& pack.Data!=null)
            {
                var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(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);
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
@@ -875,14 +905,28 @@
                                    }
                                    break;
                                case SPK.ElectricTV:
                                    break;
                                case SPK.ElectricTuyaAirCleaner:
                                case SPK.ElectricTuyaFan:
                                case SPK.ElectricTuyaWeepRobot:
                                case SPK.ElectricTuyaWaterValve:
                                    //设备状态推送
                                    var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status);
                                    if (myDevice != null)
                                    {
                                        localObj = myDevice;
                                    }
                                    break;
                                default:
                                    break;
                            }
                            HomePage.UpdataFunctionStates(localObj);
                            RoomPage.UpdataStates(localObj);
                            FunctionPage.UpdataStates(localObj);
                            ClassificationPage.UpdataInfo(localObj);
                            if (localObj != null)
                            {
                                HomePage.UpdataFunctionStates(localObj);
                                RoomPage.UpdataStates(localObj);
                                FunctionPage.UpdataStates(localObj);
                                ClassificationPage.UpdataInfo(localObj);
                            }
                        }
                    }
                    catch (Exception ex)