wxr
2022-03-08 f8bafd162ad7adf2f21986389568d650b71f976b
Merge remote-tracking branch 'origin/wjc' into release0123
5个文件已修改
268 ■■■■■ 已修改文件
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -9,14 +9,7 @@
        {
            Tag = "Logic";
        }
        /// <summary>
        /// 默认选中是房间时:全部区域
        /// </summary>
        private Entity.Room selectedRoom = new Entity.Room { roomId = "6688" };
        /// <summary>
        /// 表示是(条件/目标)
        /// </summary>
        private string if_type = LogicMethod.condition_if;
        public void Show()
        {
            LogicView.TopView topView = new LogicView.TopView();
HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -5,11 +5,10 @@
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class FunTpye : FrameLayout
    public class FunTpye
    {
        public FunTpye(string str)
        {
            Tag = "Logic";
            if_type = str;
        }
        /// <summary>
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -939,6 +939,7 @@
                            targetView.btnText.Text = device.name;
                            //改变设备名称显示控件宽度
                            targetView.btnText.Width = Application.GetRealWidth(80);
                            targetView.btnDelay.Visible = false;
                            //区别不同设备,显示不同设备状态
                            switch (device.spk)
                            {
@@ -1361,7 +1362,7 @@
                {
                    InpOrOutLogicMethod inpOrOutLogicMethod = new InpOrOutLogicMethod();
                    inpOrOutLogicMethod.Delayed(thisView, outputTarget, (value) =>
                    inpOrOutLogicMethod.Delayed(thisView, outputTarget.delay, (value) =>
                    {
                        outputTarget.delay = value.ToString();
                        if (outputTarget.target_type == "1")
@@ -2092,10 +2093,10 @@
        /// <summary>
        /// 延时时间方法
        /// </summary>
        /// <param name="fLayout">在哪个界面显示</param>
        /// <param name="edit">(true=编辑;false=新建)</param>
        /// <param name="index">编辑条件的索引</param>
        private void Delayed(FrameLayout thisFLayout, Output output, Action<int> action)
        /// <param name="thisFLayout">在哪个界面显示</param>
        /// <param name="delay">当前延时时间</param>
        /// <param name="action">回调函数</param>
        public void Delayed(FrameLayout thisFLayout, string delay, Action<int> action)
        {
            FrameLayout fLayout = new FrameLayout
            {
@@ -2119,9 +2120,9 @@
            //定义一个局部变量记录选中时间
            int timepoint = 5;
            if (output.delay != "0")
            if (delay != "0")
            {
                int intValue = int.Parse(output.delay);
                int intValue = int.Parse(delay);
                var m = intValue / 60;
                var s = intValue % 60;
@@ -2137,8 +2138,8 @@
            //选中时间回调方法,时间变化一次回调一次
            timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
            {
                string minuet = timePointView.GethStringList0()[index1].Split(' ')[0];
                string second = timePointView.GetmStringList()[index2].Split(' ')[0];
                string minuet = timePointView.GetmStringList()[index1].Split(' ')[0];
                string second = timePointView.GetsStringList()[index2].Split(' ')[0];
                int minuetIntValue = int.Parse(minuet);
                int secondIntValue = int.Parse(second);
                timepoint = minuetIntValue * 60 + secondIntValue;
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -494,74 +494,119 @@
    public List<string> GetDeviceTypeFunctionList(string deviceType)
    {
      List<string> functionTypeList = new List<string>();
      ///灯光类
      if (deviceType == Language.StringByID(StringId.Lights))
      {
        functionTypeList.Add(SPK.LightSwitch);
        functionTypeList.Add(SPK.LightDimming);
        functionTypeList.Add(SPK.LightRGB);
        functionTypeList.Add(SPK.LightRGBW);
        functionTypeList.Add(SPK.LightCCT);
        functionTypeList.Add(SPK.AirSwitch);
        functionTypeList.Add(SPK.PanelSocket);
        functionTypeList.Add(SPK.ElectricSocket);
      }
      ///窗帘类
      else if (deviceType == Language.StringByID(StringId.Curtain))
      {
        functionTypeList.Add(SPK.CurtainSwitch);
        functionTypeList.Add(SPK.CurtainRoller);
        functionTypeList.Add(SPK.CurtainTrietex);
      }
      ///空调类
      else if (deviceType == Language.StringByID(StringId.AC))
      {
        functionTypeList.Add(SPK.AcStandard);
        functionTypeList.Add(SPK.HvacAC);
      }
      ///地暖类
      else if (deviceType == Language.StringByID(StringId.FloorHeating))
      {
        functionTypeList.Add(SPK.FloorHeatStandard); functionTypeList.Add(SPK.HvacFloorHeat);
      }
      ///新风类
      else if (deviceType == Language.StringByID(StringId.AirFresh))
      {
        functionTypeList.Add(SPK.AirFreshStandard); functionTypeList.Add(SPK.HvacAirFresh);
      }
      ///传感器类
      else if (deviceType == Language.StringByID(StringId.Sensor))
      {
        functionTypeList.Add(SPK.SensorSmoke);
        functionTypeList.Add(SPK.SensorWater);
        functionTypeList.Add(SPK.SensorGas);
        functionTypeList.Add(SPK.SensorDryContact); functionTypeList.Add(SPK.SensorDryContact2);
        functionTypeList.Add(SPK.SensorShanLan);
        functionTypeList.Add(SPK.SensorDuiShe);
        functionTypeList.Add(SPK.SensorPir);
        functionTypeList.Add(SPK.SensorDoorWindow);
        functionTypeList.Add(SPK.SensorUtrasonic);
        functionTypeList.Add(SPK.SenesorMegahealth);
        functionTypeList.Add(SPK.SenesorMegahealth2);
        functionTypeList.Add(SPK.SensorEnvironment);
        functionTypeList.Add(SPK.SensorEnvironment2);
        functionTypeList.Add(SPK.SensorEnvironment3);
        functionTypeList.Add(SPK.SensorTemperature);
        functionTypeList.Add(SPK.SensorHumidity);
        functionTypeList.Add(SPK.SensorCO2);
        functionTypeList.Add(SPK.SensorPm25);
        functionTypeList.Add(SPK.SensorTVOC);
        functionTypeList.Add(SPK.SensorHcho);
            ///灯光类
            if (deviceType == Language.StringByID(StringId.Lights))
            {
                functionTypeList.Add(SPK.LightSwitch);
                functionTypeList.Add(SPK.LightDimming);
                functionTypeList.Add(SPK.LightRGB);
                functionTypeList.Add(SPK.LightRGBW);
                functionTypeList.Add(SPK.LightCCT);
                functionTypeList.Add(SPK.AirSwitch);
                functionTypeList.Add(SPK.PanelSocket);
                functionTypeList.Add(SPK.ElectricSocket);
            }
            ///窗帘类
            else if (deviceType == Language.StringByID(StringId.Curtain))
            {
                functionTypeList.Add(SPK.CurtainSwitch);
                functionTypeList.Add(SPK.CurtainRoller);
                functionTypeList.Add(SPK.CurtainTrietex);
            }
            ///空调类
            else if (deviceType == Language.StringByID(StringId.AC))
            {
                functionTypeList.Add(SPK.AcStandard);
                functionTypeList.Add(SPK.HvacAC);
            }
            ///地暖类
            else if (deviceType == Language.StringByID(StringId.FloorHeating))
            {
                functionTypeList.Add(SPK.FloorHeatStandard); functionTypeList.Add(SPK.HvacFloorHeat);
            }
            ///新风类
            else if (deviceType == Language.StringByID(StringId.AirFresh))
            {
                functionTypeList.Add(SPK.AirFreshStandard); functionTypeList.Add(SPK.HvacAirFresh);
            }
            ///传感器类
            else if (deviceType == Language.StringByID(StringId.Sensor))
            {
                functionTypeList.Add(SPK.SensorSmoke);
                functionTypeList.Add(SPK.SensorWater);
                functionTypeList.Add(SPK.SensorGas);
                functionTypeList.Add(SPK.SensorDryContact); functionTypeList.Add(SPK.SensorDryContact2);
                functionTypeList.Add(SPK.SensorShanLan);
                functionTypeList.Add(SPK.SensorDuiShe);
                functionTypeList.Add(SPK.SensorPir);
                functionTypeList.Add(SPK.SensorDoorWindow);
                functionTypeList.Add(SPK.SensorUtrasonic);
                functionTypeList.Add(SPK.SenesorMegahealth);
                functionTypeList.Add(SPK.SenesorMegahealth2);
                functionTypeList.Add(SPK.SensorEnvironment);
                functionTypeList.Add(SPK.SensorEnvironment2);
                functionTypeList.Add(SPK.SensorEnvironment3);
                functionTypeList.Add(SPK.SensorTemperature);
                functionTypeList.Add(SPK.SensorHumidity);
                functionTypeList.Add(SPK.SensorCO2);
                functionTypeList.Add(SPK.SensorPm25);
                functionTypeList.Add(SPK.SensorTVOC);
                functionTypeList.Add(SPK.SensorHcho);
      }
      ///家电类
      else if (deviceType == Language.StringByID(StringId.Electric))
      {
        functionTypeList.Add(SPK.AirSwitch);
        functionTypeList.Add(SPK.PanelSocket);
        functionTypeList.Add(SPK.ElectricSocket);
      }
            }
            ///家电类
            else if (deviceType == Language.StringByID(StringId.Electric))
            {
                functionTypeList.Add(SPK.AirSwitch);
                functionTypeList.Add(SPK.PanelSocket);
                functionTypeList.Add(SPK.ElectricSocket);
            }
            else {
                functionTypeList.Add(SPK.LightSwitch);
                functionTypeList.Add(SPK.LightDimming);
                functionTypeList.Add(SPK.LightRGB);
                functionTypeList.Add(SPK.LightRGBW);
                functionTypeList.Add(SPK.LightCCT);
                functionTypeList.Add(SPK.AirSwitch);
                functionTypeList.Add(SPK.PanelSocket);
                functionTypeList.Add(SPK.ElectricSocket);
                functionTypeList.Add(SPK.CurtainSwitch);
                functionTypeList.Add(SPK.CurtainRoller);
                functionTypeList.Add(SPK.CurtainTrietex);
                functionTypeList.Add(SPK.AcStandard);
                functionTypeList.Add(SPK.HvacAC);
                functionTypeList.Add(SPK.FloorHeatStandard);
                functionTypeList.Add(SPK.HvacFloorHeat);
                functionTypeList.Add(SPK.AirFreshStandard);
                functionTypeList.Add(SPK.HvacAirFresh);
                functionTypeList.Add(SPK.SensorSmoke);
                functionTypeList.Add(SPK.SensorWater);
                functionTypeList.Add(SPK.SensorGas);
                functionTypeList.Add(SPK.SensorDryContact);
                functionTypeList.Add(SPK.SensorDryContact2);
                functionTypeList.Add(SPK.SensorShanLan);
                functionTypeList.Add(SPK.SensorDuiShe);
                functionTypeList.Add(SPK.SensorPir);
                functionTypeList.Add(SPK.SensorDoorWindow);
                functionTypeList.Add(SPK.SensorUtrasonic);
                functionTypeList.Add(SPK.SenesorMegahealth);
                functionTypeList.Add(SPK.SenesorMegahealth2);
                functionTypeList.Add(SPK.SensorEnvironment);
                functionTypeList.Add(SPK.SensorEnvironment2);
                functionTypeList.Add(SPK.SensorEnvironment3);
                functionTypeList.Add(SPK.SensorTemperature);
                functionTypeList.Add(SPK.SensorHumidity);
                functionTypeList.Add(SPK.SensorCO2);
                functionTypeList.Add(SPK.SensorPm25);
                functionTypeList.Add(SPK.SensorTVOC);
                functionTypeList.Add(SPK.SensorHcho);
                functionTypeList.Add(SPK.AirSwitch);
                functionTypeList.Add(SPK.PanelSocket);
                functionTypeList.Add(SPK.ElectricSocket);
            }
      return functionTypeList;
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -12,6 +12,14 @@
            Tag = "Logic";
        }
        /// <summary>
        /// 设备延时时间
        /// </summary>
        private string strdelay = "0";
        /// <summary>
        /// 显示设备延时时间
        /// </summary>
        private Button btnDelay =null;
        /// <summary>
        /// 定义一个记录选中设备状态列表;
        /// </summary>
        private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
@@ -59,6 +67,9 @@
                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
                        lightSwitchView.btnText.TextID = StringId.switchLogic;
                        fLayout.AddChidren(lightSwitchView.FLayoutView());
                        ///设备延时iewv
                        DelayView(fLayout, lightSwitchView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -91,6 +102,8 @@
                        brightnessView.btnText.TextID = StringId.brightnesLogic;
                        fLayout.AddChidren(brightnessView.FLayoutView());
                        brightnessView.btnState.Text = "5%";//产品经理晓辉要求改的 2021-11-06
                        ///设备延时iewv
                        DelayView(fLayout, brightnessView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -122,6 +135,8 @@
                        LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
                        curtainSwitchView.btnText.TextID = StringId.switchLogic;
                        fLayout.AddChidren(curtainSwitchView.FLayoutView());
                        ///设备延时iewv
                        DelayView(fLayout, curtainSwitchView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -163,6 +178,8 @@
                        acSpeedView.frameLayout.Y = acModehView.frameLayout.Bottom;
                        acSpeedView.btnText.TextID = StringId.speedLogic;
                        fLayout.AddChidren(acSpeedView.FLayoutView());
                        ///设备延时iewv
                        DelayView(fLayout, acModehView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -260,7 +277,8 @@
                        floorHeatingModehView.btnText.TextID = StringId.modeLogic;
                        fLayout.AddChidren(floorHeatingModehView.FLayoutView());
                        ///设备延时iewv
                        DelayView(fLayout, floorHeatingModehView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -333,6 +351,9 @@
                        AirFreshSpeedView.frameLayout.Y = AirFreshSwitchVie.frameLayout.Bottom;
                        AirFreshSpeedView.btnText.TextID = StringId.speedLogic;
                        fLayout.AddChidren(AirFreshSpeedView.FLayoutView());
                        ///设备延时iewv
                        DelayView(fLayout, AirFreshSpeedView.frameLayout.Bottom);
                        #endregion
                        #region 点击事件
                        ///开关点击事件
@@ -413,6 +434,7 @@
                    Output outputDevice = new Output();
                    outputDevice.target_type = "1";
                    outputDevice.sid = device.sid;
                    outputDevice.delay= strdelay;
                    switch (device.spk)
                    {
                        case SPK.LightDimming:
@@ -477,7 +499,7 @@
                    if (edit)
                    {
                        //更新延时时间
                        outputDevice.delay = Logic.currlogic.output[index].delay;
                        outputDevice.delay = strdelay;//Logic.currlogic.output[index].delay;
                        //移除旧数据
                        Logic.currlogic.output.RemoveAt(index);
                        //新数据插入旧数据的位置;
@@ -508,6 +530,34 @@
            #endregion
        }
        /// <summary>
        /// 延时View
        /// </summary>
        /// <param name="fLayout">父控件</param>
        /// <param name="bottomY">在哪个控件下面</param>
        private void DelayView(FrameLayout fLayout, int bottomY)
        {
            LogicView.FunTypeView delayView = new LogicView.FunTypeView();
            delayView.frameLayout.Y = bottomY;
            delayView.btnText.TextID = StringId.Delay;
            delayView.btnState.Text = strdelay + "s";
            fLayout.AddChidren(delayView.FLayoutView());
            ///赋值对象
            this.btnDelay = delayView.btnState;
            ///延时点击事件
            delayView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                InpOrOutLogicMethod inpOrOutLogicMethod = new InpOrOutLogicMethod();
                inpOrOutLogicMethod.Delayed(this, strdelay, (value) =>
                {
                    selectedState = "delay_" + strdelay;
                    strdelay = value.ToString();
                    delayView.btnState.Text = strdelay + "s";
                });
            };
        }
        /// <summary>
        /// 开关=功能下一级界面
        /// </summary>
@@ -613,6 +663,12 @@
                //有数据重新赋值
                dicSateteList = dicList;
            }
            if (this.btnDelay != null)
            {
                ///延时显示文本
                this.btnDelay.Text = outputs.delay + "s";
                this.strdelay = outputs.delay;
            }
            InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4);
        }
        /// <summary>