wxr
2022-06-30 8784b669c284e02f0a4d2d9aacefc408196c8583
Merge remote-tracking branch 'origin/wjc' into release0123
10个文件已修改
461 ■■■■■ 已修改文件
HDL-ON_Android/Assets/Language.ini 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini
@@ -1070,6 +1070,9 @@
7156=Distress
7157=whether to unlock
7158=is
7159=Fall in the alarm
7160=Someone called the police
@@ -2240,6 +2243,8 @@
7156=求救
7157=是否开锁时
7158=是
7159=跌倒报警
7160=有人报警
 
HDL-ON_iOS/Resources/Language.ini
@@ -1049,6 +1049,8 @@
7156=Distress
7157=whether to unlock
7158=is
7159=Fall in the alarm
7160=Someone called the police
@@ -2193,6 +2195,8 @@
7156=求救
7157=是否开锁时
7158=是
7159=跌倒报警
7160=有人报警
 
HDL_ON/Common/R.cs
@@ -2858,6 +2858,14 @@
        /// 是
        /// </summary>
        public const int shi = 7158;
        /// <summary>
        /// 跌倒报警
        /// </summary>
        public const int diedaobaojing = 7159;
        /// <summary>
        /// 有人报警
        /// </summary>
        public const int yourenbaojing = 7160;
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -24,10 +24,20 @@
        /// 定义一个变量,记录选中状态
        /// </summary>
        private string selectedState = "unknown";
        /// <summary>
        /// 是不是再次编辑
        /// </summary>
        private bool mEdit;
        /// <summary>
        /// 输入条件列表索引值
        /// </summary>
        private int mIndex;
        public void Show(Entity.Function device, int index, bool edit)
        {
            this.function = device;
            this.mEdit = edit;
            this.mIndex = index;
            #region 界面布局
            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
            LogicView.TopView topView = new LogicView.TopView();
@@ -200,8 +210,36 @@
                        }
                    }
                    break;
                //毫米波传感器
                //毫米波传感器(自研北邮)
                case SPK.SenesorMegahealth:
                    {
                        LogicView.FunTypeView view1= new LogicView.FunTypeView();
                        view1.btnText.TextID = StringId.diedaobaojing;
                        view1.btnState.Name = Language.StringByID(StringId.diedaobaojing);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
                        view2.frameLayout.Y = view1.frameLayout.Bottom;
                        view2.btnText.TextID = StringId.yourenbaojing;
                        view2.btnState.Name = Language.StringByID(StringId.yourenbaojing);
                        fLayout.AddChidren(view2.FLayoutView());
                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view2.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view1.btnState, view2.btnState, null, null);
                        }
                    }
                    break;
                //毫米波传感器(兆观专用云云对接)
                case SPK.SenesorMegahealth2:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
@@ -532,6 +570,23 @@
                        }
                        break;
                    case SPK.SenesorMegahealth:
                        {
                            if (button != null)
                            {
                                if (button.Name == Language.StringByID(StringId.yourenbaojing))
                                {
                                    keyVlaue = "people_status";
                                }
                                else
                                {
                                    keyVlaue = "target_status";
                                }
                            }
                        }
                        break;
                    case SPK.SenesorMegahealth2:
                        {
                            keyVlaue = "action_state";
@@ -590,6 +645,25 @@
                        }
                        break;
                    case StringId.shi:
                        {
                            value = "open";
                            if (button != null)
                            {
                                if (button.Name == Language.StringByID(StringId.yourenbaojing))
                                {
                                    //状态(有人)
                                    value = "true";
                                }
                                else if(button.Name == Language.StringByID(StringId.diedaobaojing))
                                {
                                    //跌倒
                                    value = "4";
                                }
                            }
                        }
                        break;
                    case StringId.kaiqi:
                        {
                            value = "open";
@@ -621,6 +695,17 @@
                button.TextID = intValue;
                selectedState = device.spk + "_" + value;
                AddDictionary(keyVlaue, value, "string");
                if (button != null)
                {
                    if (button.Name == Language.StringByID(StringId.yourenbaojing)
                    || (button.Name == Language.StringByID(StringId.diedaobaojing)))
                    {
                        //只有毫米波传感器(自研)
                        Save(device, mIndex, mEdit);
                    }
                }
            });
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -176,6 +176,23 @@
                                    }
                                    break;
                                //传感器
                                case SPK.SensorHelp:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "alarm")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.qiujiu);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.zhengchang);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensorSmoke:
                                case SPK.SensorGas:
                                    {
@@ -311,6 +328,33 @@
                                    }
                                    break;
                                case SPK.SenesorMegahealth:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            switch (dic["key"])
                                            {
                                                case "people_status":
                                                    {
                                                        if (value == "true")
                                                        {
                                                            inputView.btnState.Text = Language.StringByID(StringId.shi);
                                                        }
                                                    }
                                                    break;
                                                case "target_status":
                                                    {
                                                        if (value == "4")
                                                        {
                                                            inputView.btnState.Text = Language.StringByID(StringId.shi);
                                                        }
                                                    }
                                                    break;
                                            }
                                        }
                                    }break;
                                case SPK.SenesorMegahealth2:
                                    {
                                        foreach (var dic in dicList)
@@ -992,8 +1036,6 @@
                                    }
                                    break;
                                case SPK.CurtainSwitch:
                                case SPK.CurtainTrietex:
                                case SPK.CurtainRoller:
                                    {
                                        foreach (var dic in dicList)
                                        {
@@ -1016,6 +1058,48 @@
                                                    }
                                                    break;
                                            }
                                        }
                                    }
                                    break;
                                case SPK.CurtainTrietex:
                                case SPK.CurtainRoller:
                                    {
                                        string on_off = GetKeyValue("on_off", dicList);
                                        string percent = GetKeyValue("percent", dicList);
                                        if (on_off == "on" && percent != "")
                                        {
                                            stateStr = Language.StringByID(StringId.onLogic) + percent + "%";
                                        }
                                        else if (on_off == "on")
                                        {
                                            stateStr = Language.StringByID(StringId.onLogic);
                                        }
                                        else if (on_off == "off")
                                        {
                                            stateStr = Language.StringByID(StringId.offLogic);
                                        }
                                        else if (percent != "")
                                        {
                                            stateStr = percent + "%";
                                        }
                                    }
                                    break;
                                case SPK.CurtainDream:
                                    {
                                        string percent = GetKeyValue("percent", dicList);
                                        string angle = GetKeyValue("angle", dicList);
                                        if (percent != "" && angle != "")
                                        {
                                            stateStr += Language.StringByID(StringId.onLogic) + percent + "%;";
                                            stateStr +=Language.StringByID(StringId.Angle)+angle + "°";
                                        }
                                        else if (percent != "")
                                        {
                                            stateStr = Language.StringByID(StringId.onLogic) + percent + "%";
                                        }
                                        else if (angle != "")
                                        {
                                            stateStr = Language.StringByID(StringId.onLogic) + Language.StringByID(StringId.Angle) + angle + "°";
                                        }
                                    }
                                    break;
@@ -1455,8 +1539,6 @@
                    }
                    break;
                case SPK.CurtainSwitch:
                case SPK.CurtainTrietex:
                case SPK.CurtainRoller:
                    {
                        foreach (var dic in dicList)
                        {
@@ -1480,6 +1562,85 @@
                                    break;
                            }
                        }
                    }
                    break;
                case SPK.CurtainTrietex:
                case SPK.CurtainRoller:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                            case "stop":
                                                {
                                                    button1.Text = Language.StringByID(StringId.stop);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "percent":
                                    {
                                        if (button2 == null)
                                        {
                                            //怕调试软件乱上东西导致抛异常
                                            break;
                                        }
                                        button2.Text = value + "%";
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case SPK.CurtainDream:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "percent":
                                    {
                                        if (button1 == null)
                                        {
                                            //怕调试软件乱上东西导致抛异常
                                            break;
                                        }
                                        button1.Text = value + "%";
                                    }
                                    break;
                                case "angle":
                                    {
                                        if (button2 == null)
                                        {
                                            //怕调试软件乱上东西导致抛异常
                                            break;
                                        }
                                        button2.Text = value + "°";
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case SPK.AcStandard:
@@ -1745,6 +1906,22 @@
                    }
                    break;
                case SPK.SensorHelp:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "alarm")
                            {
                                button1.Text = Language.StringByID(StringId.qiujiu);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.zhengchang);
                            }
                        }
                    }
                    break;
                case SPK.SensorGas:
                case SPK.SensorSmoke:
                    {
@@ -1870,6 +2047,34 @@
                    }
                    break;
                case SPK.SenesorMegahealth:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "people_status":
                                    {
                                        if (value == "true")
                                        {
                                            button1.Text = Language.StringByID(StringId.shi);
                                        }
                                    }
                                    break;
                                case "target_status":
                                    {
                                        if (value == "4")
                                        {
                                            button2.Text = Language.StringByID(StringId.shi);
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case SPK.SenesorMegahealth2:
                    {
                        foreach (var dic in dicList)
@@ -2160,11 +2365,11 @@
            //确定点击事件
            timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) =>
            {
                if (timepoint == 0)
                {
                    //提示
                    return;
                }
                //if (timepoint == 0)
                //{
                //    //提示
                //    return;
                //}
                fLayout.RemoveFromParent();
                action(timepoint);
            };
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -346,6 +346,7 @@
                case SPK.CurtainSwitch:
                case SPK.CurtainRoller:
                case SPK.CurtainTrietex:
                case SPK.CurtainDream:
                    {
                        strPath = "LogicIcon/curtainlogic.png";
                    }
@@ -432,7 +433,8 @@
            var curtainjosn = deviceList.Find((device) =>
            device.spk == SPK.CurtainSwitch
            || device.spk == SPK.CurtainTrietex
            || device.spk == SPK.CurtainRoller);
            || device.spk == SPK.CurtainRoller
            || device.spk == SPK.CurtainDream);
            if (curtainjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
@@ -528,6 +530,7 @@
                functionTypeList.Add(SPK.CurtainSwitch);
                functionTypeList.Add(SPK.CurtainRoller);
                functionTypeList.Add(SPK.CurtainTrietex);
                functionTypeList.Add(SPK.CurtainDream);
            }
            ///空调类
            else if (deviceType == Language.StringByID(StringId.AC))
@@ -704,6 +707,7 @@
                        deviceTypeList.Add(SPK.AirSwitch);
                        deviceTypeList.Add(SPK.PanelSocket);
                        deviceTypeList.Add(SPK.ElectricSocket);
                        deviceTypeList.Add(SPK.CurtainDream);
                    }
                    break;
            }
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/brightnessView.cs
@@ -130,7 +130,7 @@
        /// <param name="titleName">标题名称</param>
        /// <param name="stateValue">之前状态值</param>
        /// <param name="action">返回回调</param>
        public void FLayoutView(FrameLayout frame, string titleName,string stateValue, Action<string> action)
        public void FLayoutView(FrameLayout frame, string titleName,string stateValue, Action<string,string> action)
        {
            FrameLayout fLayout = new FrameLayout
            {
@@ -147,14 +147,33 @@
            frameLayout.AddChidren(btn_add);
            frameLayout.AddChidren(btn_add_click);
            btnTitle.Text = titleName;
            //进来的状态
            if (stateValue.Contains("%"))
            {
                //百分比
            }
            else if (stateValue.Contains("°"))
            {
                //角度
                //角度取值范围
                seekBarVol.MinValue = 0;
                seekBarVol.MaxValue = 180;
                seekBarVol.ProgressBarUnitSring = "°";
            }
            else
            {
                //音量没有单位
                seekBarVol.MinValue = 0;
                seekBarVol.MaxValue = 100;
                seekBarVol.ProgressBarUnitSring = "";
            }
            //第一个变化记录选中值
            int brightnesValue = 0;
            if (stateValue != "")
            {
                try
                {
                    //进来的状态
                    brightnesValue = int.Parse(stateValue.Replace("%", ""));
                    brightnesValue = int.Parse(UnitDisposeSring(stateValue));
                    seekBarVol.Progress = brightnesValue;
                }
                catch { }
@@ -198,16 +217,63 @@
                //{
                //    return;
                //}
                action(brightnesValue.ToString());
                action(brightnesValue.ToString(), UnitSring(stateValue));
                //移除fLayout界面
                fLayout.RemoveFromParent();
            };
        }
        /// <summary>
        //进度值显示单位
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string UnitSring(string str)
        {
            //进来的状态
            if (str.Contains("%"))
            {
                //百分比
                return "%";
            }
            else if (str.Contains("°"))
            {
                //角度
                return "°";
            }
            else {
                //没有单位
                return "";
            }
        }
        /// <summary>
        ///去单位
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string UnitDisposeSring(string str)
        {
            //进来的状态
            if (str.Contains("%"))
            {
                //百分比
                return str.Replace("%", "");
            }
            else if (str.Contains("°"))
            {
                //角度
                return str.Replace("°", "");
            }
            else
            {
                //没有单位
                return str;
            }
        }
        ///// <summary>
        ///// View的方法
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -78,6 +78,7 @@
      ResponsePackNew responsePackNew = null;
      try
      {
        var cycleJObject = new JObject { };
        var cyclevaluejArray = new JArray { };
        cycleJObject.Add("type", logic.cycle.type);
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -152,6 +152,43 @@
                        #endregion
                    }
                    break;
                case SPK.CurtainDream:
                    {
                        #region 界面
                        ///百分比
                        LogicView.FunTypeView crtainPercentumView = new LogicView.FunTypeView();
                        crtainPercentumView.btnText.TextID = StringId.percentum;
                        fLayout.AddChidren(crtainPercentumView.FLayoutView());
                        crtainPercentumView.btnState.Text = "5%";//产品经理晓辉要求改的 2021-11-06
                        ///角度
                        LogicView.FunTypeView AngleView = new LogicView.FunTypeView();
                        AngleView.frameLayout.Y = crtainPercentumView.frameLayout.Bottom;
                        AngleView.btnText.TextID = StringId.Angle;
                        fLayout.AddChidren(AngleView.FLayoutView());
                        AngleView.btnState.Text = "10°";
                        ///设备延时iewv
                        DelayView(fLayout, AngleView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///百分比点击事件
                        crtainPercentumView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            BrightnessMethod(device, crtainPercentumView.btnState, crtainPercentumView.btnText.Text);
                        };
                        ///角度点击事件
                        AngleView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            BrightnessMethod(device, AngleView.btnState, AngleView.btnText.Text);
                        };
                        if (edit)
                        {
                            //显示编辑之前的设备状态
                            GetEditState(device, index, crtainPercentumView.btnState, AngleView.btnState, null, null);
                        }
                        #endregion
                    }
                    break;
                case SPK.AcStandard:
                case SPK.HvacAC:
                    {
@@ -612,10 +649,10 @@
            //之前的状态值
            string stateVlaue = button.Text;
            LogicView.BrightnessView brightness = new LogicView.BrightnessView();
            brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue) =>
            brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue, unitStr) =>
            {
                //界面显示选中值
                button.Text = brightnesValue + "%";
                button.Text = brightnesValue + unitStr;
                selectedState = device.spk + brightnesValue.ToString();
                //设备属性值,云雀上定义好的;
                string keyVlaue = "";
@@ -632,8 +669,14 @@
                        break;
                    case SPK.CurtainRoller:
                    case SPK.CurtainTrietex:
                    case SPK.CurtainDream:
                        {
                            keyVlaue = "percent";
                            if (unitStr == "°")
                            {
                                //角度
                                keyVlaue = "angle";
                            }
                        }
                        break;
                }
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -291,9 +291,11 @@
        /// <returns></returns>
        public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20)
        {
            MainPage.Log("请求数据=="+o.ToString());
            MainPage.Log("红外宝请求数据:"+api_Url+"\r\n"+o.ToString());
            var requestJson = HttpUtil.GetSignRequestJson(o);
            return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
            var responsePackNew=  HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
            MainPage.Log("回复红外宝请求数据:" + "\r\n"+ Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew));
            return responsePackNew;
        }
        /// <summary>