| | |
| | | Tag = "Logic"; |
| | | } |
| | | /// <summary> |
| | | /// 当前选中的功能 |
| | | /// </summary> |
| | | private Entity.Function function = null; |
| | | /// <summary> |
| | | /// 定义一个记录选中设备状态列表; |
| | | /// </summary> |
| | | private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>(); |
| | |
| | | |
| | | public void Show(Entity.Function device, int index, bool edit) |
| | | { |
| | | this.function = device; |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | LogicView.TopView topView = new LogicView.TopView(); |
| | |
| | | switch (device.spk) |
| | | { |
| | | //开关灯光 light.Switch |
| | | case SPK.AirSwitch: |
| | | case SPK.LightDimming: |
| | | case SPK.LightRGB: |
| | | case SPK.LightRGBW: |
| | |
| | | case SPK.CurtainTrietex: |
| | | //空调 |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | //地热 |
| | | case SPK.FloorHeatStandard: |
| | | case SPK.HvacFloorHeat: |
| | | //新风 |
| | | case SPK.AirFreshStandard: |
| | | case SPK.HvacAirFresh: |
| | | //插座 |
| | | case SPK.PanelSocket: |
| | | case SPK.ElectricSocket: |
| | | { |
| | | |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | |
| | | break; |
| | | //干接点 |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorDryContact2: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.switchLogic; |
| | |
| | | break; |
| | | //毫米波传感器 |
| | | case SPK.SenesorMegahealth: |
| | | case SPK.SenesorMegahealth2: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.mubiaozhuangtai;//目标状态 |
| | |
| | | } |
| | | break; |
| | | //甲醛 |
| | | case SPK.: |
| | | case SPK.SensorHcho: |
| | | { |
| | | ///tvoc |
| | | LogicView.FunTypeView tvocView = new LogicView.FunTypeView(); |
| | | tvocView.btnText.TextID = StringId.tvoc; |
| | | fLayout.AddChidren(tvocView.FLayoutView()); |
| | | |
| | | ///tvoc点击事件 |
| | | tvocView.btnClick.MouseUpEventHandler += (sender, e) => |
| | | ///hcho |
| | | LogicView.FunTypeView hchoView = new LogicView.FunTypeView(); |
| | | hchoView.btnText.TextID = StringId.Formaldehyde; |
| | | fLayout.AddChidren(hchoView.FLayoutView()); |
| | | ///hcho点击事件 |
| | | hchoView.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | PmCo2TvocAction(this, device, "tvoc", StringId.tvoc, index, edit); |
| | | PmCo2TvocAction(this, device, "hcho", StringId.Formaldehyde, index, edit); |
| | | |
| | | }; |
| | | } |
| | |
| | | switch (device.spk) |
| | | { |
| | | //传感器 |
| | | case SPK.SensorGas: |
| | | case SPK.SensorWater: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorGas: |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | { |
| | | keyVlaue = "status"; |
| | | if (!Is_SpkAttribute(keyVlaue)) { |
| | | keyVlaue = "alarm_status"; |
| | | } |
| | | }; |
| | | break; |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorDryContact2: |
| | | { |
| | | keyVlaue = "status"; |
| | | if (!Is_SpkAttribute(keyVlaue)) |
| | | { |
| | | keyVlaue = "contact_status"; |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorUtrasonic: |
| | | { |
| | | keyVlaue = "status"; |
| | | if (!Is_SpkAttribute(keyVlaue)) |
| | | { |
| | | keyVlaue = "people_status"; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case SPK.SenesorMegahealth: |
| | | case SPK.SenesorMegahealth2: |
| | | { |
| | | keyVlaue = "action_state"; |
| | | if (!Is_SpkAttribute(keyVlaue)) |
| | | { |
| | | keyVlaue = "megahealth_state"; |
| | | } |
| | | } |
| | | break; |
| | | |
| | |
| | | break; |
| | | case StringId.wuren: |
| | | { |
| | | if (device.spk == SPK.SenesorMegahealth) |
| | | if (device.spk == SPK.SenesorMegahealth || device.spk == SPK.SenesorMegahealth2) |
| | | { |
| | | value = "uninhabited"; |
| | | } |
| | |
| | | /// <param name="index"></param> |
| | | /// <param name="edit"></param> |
| | | /// <param name="stateValue">编辑之前的状态值,默认为""</param> |
| | | public void PmCo2TvocAction(FrameLayout frame, Entity.Function device,string key,int title, int index, bool edit, string stateValue = "") |
| | | public void PmCo2TvocAction(FrameLayout frame, Entity.Function device, string key, int title, int index, bool edit, string stateValue = "") |
| | | { |
| | | if (edit) |
| | | { |
| | |
| | | dicSateteList = inputs.condition; |
| | | } |
| | | } |
| | | PublicInterface view = new PublicInterface(); |
| | | var listStr = view.GetViewList(key); |
| | | PublicInterface view = new PublicInterface(); |
| | | var listStr = view.GetViewList(key); |
| | | view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetString(key, stateValue) |
| | | , (text) => |
| | | { |
| | | |
| | | var value = view.GetValue(key, text); |
| | | selectedState = device.spk + "_"+ key; |
| | | AddDictionary(key, value, "integer","in"); |
| | | Save(device,index, edit); |
| | | selectedState = device.spk + "_" + key; |
| | | switch (device.spk) |
| | | { |
| | | case SPK.SensorTemperature: |
| | | case SPK.SensorHumidity: |
| | | case SPK.SensorCO2: |
| | | case SPK.SensorPm25: |
| | | case SPK.SensorTVOC: |
| | | case SPK.SensorHcho: |
| | | { |
| | | if (!Is_SpkAttribute(key)) |
| | | { |
| | | key = "value"; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | AddDictionary(key, value, "integer", "in"); |
| | | Save(device, index, edit); |
| | | }); |
| | | } |
| | | /// <summary> |
| | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 识别使用功能是否存在属性 |
| | | /// </summary> |
| | | /// <param name="key">设备属性,云雀上定义好的</param> |
| | | /// <returns></returns> |
| | | private bool Is_SpkAttribute(string key) { |
| | | ///修改新属性 |
| | | ///识别使用功能是否存在属性 |
| | | var job = this.function.GetAttribute(key); |
| | | if (job != null) |
| | | { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | } |