| | |
| | | { |
| | | case DeviceType.OnOffOutput: |
| | | //开关功能 |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | if ((common as ToggleLight).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var light = deviceUI.CommonDevice as ToggleLight; |
| | | light.DeviceStatusReport = common.DeviceStatusReport; |
| | | light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | if ((common as ToggleLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var light = deviceUI.CommonDevice as ToggleLight; |
| | | light.IsOnline = 1; |
| | |
| | | |
| | | case DeviceType.AirSwitch: |
| | | //开关功能 |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; |
| | | airSwitch.DeviceStatusReport = common.DeviceStatusReport; |
| | | airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; |
| | | airSwitch.IsOnline = 1; |
| | |
| | | } |
| | | break; |
| | | case DeviceType.WindowCoveringDevice: |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | if ((common as Rollershade).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var rollerShape = deviceUI.CommonDevice as Rollershade; |
| | | //记录回复时间 |
| | |
| | | |
| | | case DeviceType.Thermostat: |
| | | //AC功能 |
| | | if (common.DeviceStatusReport.CluterID == 513) |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) |
| | | { |
| | | var attriButeList = common.DeviceStatusReport.AttriBute; |
| | | var attriButeList = (common as ZigBee.Device.AC).DeviceStatusReport.AttriBute; |
| | | if (attriButeList == null || attriButeList.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.DeviceStatusReport = common.DeviceStatusReport; |
| | | ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; |
| | | switch (attriButeList[0].AttributeId) |
| | | { |
| | | case 0: |
| | |
| | | } |
| | | |
| | | } |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.IsOnline = 1; |
| | |
| | | break; |
| | | case DeviceType.DimmableLight: |
| | | //调光灯功能 |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.IsOnline = 1; |
| | |
| | | /// <param name="selectedBtn">选中那个界面 0--功能 1--场景 2--自动化 </param> |
| | | public void Show(int selectedBtn = 1) |
| | | { |
| | | |
| | | |
| | | ZbGateway.StatusList.Add(this); |
| | | RemoveAll(); |
| | | |
| | |
| | | lightControl.action = RefreshBodyView; |
| | | lightControl.Show(deviceUI, room); |
| | | }; |
| | | |
| | | |
| | | var editBtn = new CommonForm.RowLayoutEditButton() |
| | | { |
| | | Tag = deviceUI, |
| | |
| | | typeRowLayout.AddChidren(functionTypeIMG); |
| | | |
| | | functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; |
| | | |
| | | |
| | | |
| | | if (deviceType == room.DeviceUIList[0].CommonDevice.Type) |
| | | { |
| | |
| | | { |
| | | RefreshFunction(room); |
| | | } |
| | | |
| | | |
| | | } |
| | | roomBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | |
| | | } |
| | | }; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | Tag = scene |
| | | }; |
| | | leftFL.AddChidren(collectionBtn); |
| | | |
| | | |
| | | var sceneNameBtn = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(176), |
| | |
| | | } |
| | | }; |
| | | } |
| | | |
| | | |
| | | }; |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | //编辑场景 |
| | |
| | | /// <summary> |
| | | /// 自动化 |
| | | /// </summary> |
| | | private async void ShowAutotion() |
| | | {
|
| | |
|
| | | functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
|
| | |
|
| | | var bjFrameLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(1080 - 58), |
| | | Height = Application.GetRealHeight(170), |
| | | BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, |
| | | X = Application.GetRealWidth(58), |
| | | Radius = (uint)Application.GetRealHeight(50), |
| | | Y = Application.GetRealHeight(30), |
| | | }; |
| | | functionSceneAutoBodyView.AddChidren(bjFrameLayout); |
| | | |
| | | var sigBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(84), |
| | | Height = Application.GetMinRealAverage(84), |
| | | UnSelectedImagePath = "ZigeeLogic/sign.png", |
| | | X = Application.GetRealWidth(58), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | bjFrameLayout.AddChidren(sigBtn); |
| | | |
| | | var recommendtextBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(300), |
| | | Height = Application.GetMinRealAverage(84), |
| | | X = sigBtn.Right + Application.GetRealWidth(35), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | //Text = "推荐模板", |
| | | TextID = MyInternationalizationString.logictemplate, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, |
| | | }; |
| | | bjFrameLayout.AddChidren(recommendtextBtn); |
| | | |
| | | var recommendswitchBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(104), |
| | | Height = Application.GetMinRealAverage(63), |
| | | UnSelectedImagePath = "ZigeeLogic/logicclose.png", |
| | | SelectedImagePath = "ZigeeLogic/logicopen.png", |
| | | X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | bjFrameLayout.AddChidren(recommendswitchBtn); |
| | | |
| | | |
| | | var scenehorizontalScrol = new HorizontalScrolViewLayout |
| | | { |
| | | Width = Application.GetRealWidth(1080 - 58), |
| | | X = Application.GetRealWidth(58), |
| | | Y = bjFrameLayout.Bottom + Application.GetRealHeight(30), |
| | | Height = Application.GetRealHeight(0), |
| | | }; |
| | | functionSceneAutoBodyView.AddChidren(scenehorizontalScrol); |
| | | |
| | | var logicScrolView = new VerticalScrolViewLayout |
| | | { |
| | | Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), |
| | | BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, |
| | | X = Application.GetRealWidth(58), |
| | | Radius = (uint)Application.GetRealHeight(50), |
| | | Y = scenehorizontalScrol.Bottom, |
| | | }; |
| | | public async void ShowAutotion() |
| | | { |
| | | var logicScrolView = new VerticalScrolViewLayout { }; |
| | | functionSceneAutoBodyView.AddChidren(logicScrolView); |
| | | |
| | | |
| | | recommendswitchBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | int Yheight = 0; |
| | | recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected; |
| | | scenehorizontalScrol.RemoveAll(); |
| | | if (recommendswitchBtn.IsSelected) |
| | | { |
| | | scenehorizontalScrol.Height = Application.GetRealHeight(246); |
| | | Yheight = 20; |
| | | for (int i = 1; i < 4; i++) |
| | | { |
| | | |
| | | var frameLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetMinRealAverage(369 + 46), |
| | | Height = Application.GetMinRealAverage(246), |
| | | }; |
| | | scenehorizontalScrol.AddChidren(frameLayout); |
| | | var logiciocnBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(369), |
| | | Height = Application.GetMinRealAverage(246), |
| | | UnSelectedImagePath = "ZigeeLogic/" + i + ".png", |
| | | Tag = i, |
| | | }; |
| | | frameLayout.AddChidren(logiciocnBtn); |
| | | |
| | | var logicnameBtn = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(80), |
| | | X = Application.GetRealWidth(23), |
| | | Y = Application.GetRealHeight(246 - 23 - 80), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, |
| | | }; |
| | | frameLayout.AddChidren(logicnameBtn); |
| | | |
| | | if (i == 1) |
| | | { |
| | | logicnameBtn.Text = Language.StringByID(MyInternationalizationString.onlight); |
| | | } |
| | | else if (i == 2) |
| | | { |
| | | logicnameBtn.Text = Language.StringByID(MyInternationalizationString.offlight); |
| | | } |
| | | else if (i == 3) |
| | | { |
| | | logicnameBtn.Text = Language.StringByID(MyInternationalizationString.automation1); |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> iconclick = (sender1, e1) => |
| | | { |
| | | Common.Logic.CurrentLogic = new Common.Logic(); |
| | | Common.Logic.CurrentLogic.IsEnable = 1;//默认为开 |
| | | if (logiciocnBtn.Tag.ToString() == "3") |
| | | { |
| | | Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;// Language.StringByID(MyInternationalizationString.automation1); |
| | | var addLogicPage = new Logic.AddLogicPage(); |
| | | HomePage.Instance.AddChidren(addLogicPage); |
| | | HomePage.Instance.PageIndex += 1; |
| | | addLogicPage.Show(); |
| | | } |
| | | else |
| | | { |
| | | Common.Logic.LogicDviceList.Clear(); |
| | | if (Common.Logic.LogicDviceList.Count == 0) |
| | | { |
| | | Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); |
| | | } |
| | | Common.Logic.CurrentLogic.LogicType = 2; |
| | | Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text; |
| | | Logic.TemplatePage templatePage = new Logic.TemplatePage(); |
| | | Logic.TemplatePage.s = logiciocnBtn.Tag.ToString(); |
| | | HomePage.Instance.AddChidren(templatePage); |
| | | HomePage.Instance.PageIndex += 1; |
| | | templatePage.Show(); |
| | | } |
| | | }; |
| | | logiciocnBtn.MouseUpEventHandler += iconclick; |
| | | logicnameBtn.MouseUpEventHandler += iconclick; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | scenehorizontalScrol.Height = Application.GetRealHeight(0); |
| | | Yheight = 0; |
| | | } |
| | | logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight; |
| | | logicScrolView.Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight; |
| | | Automationview(logicScrolView); |
| | | }; |
| | | |
| | | CommonPage.Loading.Start(); |
| | | if (Common.Logic.LogicList.Count == 0) |
| | | { |
| | | var Idlist = await Logic.Send.GetLogicId(0); |
| | | //var Idlist = await Logic.Send.GetLogicId(); |
| | | //if (Idlist.Count != 0) |
| | | //{ |
| | | // foreach (var LogicId in Idlist) |
| | | // { |
| | | // var logic = await Logic.Send.GetLogic(LogicId); |
| | | // if (logic != null) |
| | | // { |
| | | // Common.Logic.LogicList.Add(logic); |
| | | // } |
| | | // } |
| | | //} |
| | | var Idlist = await Logic.Send.GetLogicId(); |
| | | if (Idlist.Count != 0) |
| | | { |
| | | var listlogic = await Logic.Send.ReadList(Idlist.Count,0); |
| | | //foreach可能集合已被修改,枚举操作可能不会执行,可能出现崩溃(建议for)。 |
| | | for (int j = 0; j < listlogic.Count; j++) |
| | | var listlogic = await Logic.Send.ReadList(Idlist.Count); |
| | | foreach (var LogicId in Idlist) |
| | | { |
| | | var logic = listlogic[j]; |
| | | if (logic.LogicType != 0) |
| | | foreach (var logic in listlogic) |
| | | { |
| | | continue; |
| | | if (logic.LogicId == LogicId) |
| | | { |
| | | Common.Logic.LogicList.Add(logic); |
| | | } |
| | | } |
| | | Common.Logic.LogicList.Add(logic); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //自动化 |
| | | Automationview(logicScrolView); |
| | | CommonPage.Loading.Hide(); |
| | |
| | | /// 自动化列表界面 |
| | | /// </summary> |
| | | /// <param name="refresview">Refresview.</param> |
| | | private async void Automationview(VerticalScrolViewLayout refresview) |
| | | public async void Automationview(VerticalScrolViewLayout refresview) |
| | | { |
| | | refresview.RemoveAll(); |
| | | foreach (var logic in Common.Logic.LogicList) |
| | | { |
| | | var bjRow = new RowLayout |
| | | var logicrowlayout = new RowLayout |
| | | { |
| | | Width = Application.GetRealWidth(1080 - 58), |
| | | Height = Application.GetRealHeight(220), |
| | | LineColor = ZigbeeColor.Current.LogicBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, |
| | | |
| | | Height = Application.GetRealHeight(180), |
| | | LineColor = ZigbeeColor.Current.LogicLineColor, |
| | | }; |
| | | refresview.AddChidren(bjRow); |
| | | refresview.AddChidren(logicrowlayout); |
| | | |
| | | var logicRowlayout = new RowLayout |
| | | var btnname = new Button |
| | | { |
| | | Y = Application.GetRealHeight(220 - 190), |
| | | Height = Application.GetRealHeight(190), |
| | | Width = Application.GetRealWidth(1080 - 58 - 46), |
| | | LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, |
| | | X = Application.GetRealWidth(46), |
| | | }; |
| | | bjRow.AddChidren(logicRowlayout); |
| | | |
| | | var logicnameBtn = new Button |
| | | { |
| | | Height = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(350), |
| | | //Text = "逻辑一", |
| | | Text = logic.LogicName, |
| | | X = Application.GetRealWidth(12), |
| | | X = Application.GetRealWidth(50), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = ZigbeeColor.Current.LogicTextBlackColor, |
| | | }; |
| | | logicRowlayout.AddChidren(logicnameBtn); |
| | | logicrowlayout.AddChidren(btnname); |
| | | |
| | | |
| | | var logicswitchBtn = new Button |
| | | var btnswitch = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(104), |
| | | Height = Application.GetMinRealAverage(63), |
| | | UnSelectedImagePath = "ZigeeLogic/logicclose.png", |
| | | SelectedImagePath = "ZigeeLogic/logicopen.png", |
| | | X = logicRowlayout.Width - Application.GetRealWidth(104 + 58), |
| | | Y = Application.GetRealHeight(58 + 30 + 9), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "ZigeeLogic/Switch.png", |
| | | SelectedImagePath = "ZigeeLogic/SwitchSelected.png", |
| | | X = Application.GetRealWidth(1080 - 200), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | logicRowlayout.AddChidren(logicswitchBtn); |
| | | logicrowlayout.AddChidren(btnswitch); |
| | | |
| | | |
| | | |
| | | logicswitchBtn.MouseUpEventHandler += (sender1, e1) => |
| | | btnswitch.MouseUpEventHandler += (sender1, e1) => |
| | | { |
| | | logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected; |
| | | if (logicswitchBtn.IsSelected) |
| | | btnswitch.IsSelected = !btnswitch.IsSelected; |
| | | if (btnswitch.IsSelected) |
| | | { |
| | | //逻辑开 |
| | | logic.IsEnable = 1; |
| | | StatusColor(logic, logicRowlayout, 1); |
| | | } |
| | | else |
| | | { |
| | | //逻辑关 |
| | | logic.IsEnable = 0; |
| | | StatusColor(logic, logicRowlayout, 0); |
| | | } |
| | | Logic.Send.LogicControlSwitch(logic); |
| | | //Logic.Send.AddModifyLogic(logic); |
| | | }; |
| | | if (logic.IsEnable == 1) |
| | | { |
| | | logicswitchBtn.IsSelected = true; |
| | | StatusColor(logic, logicRowlayout, 1); |
| | | btnswitch.IsSelected = true; |
| | | } |
| | | else if (logic.IsEnable == 0) |
| | | { |
| | | logicswitchBtn.IsSelected = false; |
| | | StatusColor(logic, logicRowlayout, 0); |
| | | btnswitch.IsSelected = false; |
| | | } |
| | | ///编辑 |
| | | var edit = new Button |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1, |
| | | //TextID = MyInternationalizationString.Musicdel |
| | | BackgroundColor = 0xFF00aaf0, |
| | | Text = Language.StringByID(MyInternationalizationString.edit), |
| | | TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, |
| | | TextColor = ZigbeeColor.Current.LogicTextBlackColor, |
| | | }; |
| | | logicRowlayout.AddRightView(edit); |
| | | logicrowlayout.AddRightView(edit); |
| | | edit.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | Common.Logic.LogicDviceList.Clear(); |
| | |
| | | } |
| | | Common.Logic.CurrentLogic = logic; |
| | | var logicCommunalPage = new Logic.LogicCommunalPage(); |
| | | HomePage.Instance.AddChidren(logicCommunalPage); |
| | | HomePage.Instance.PageIndex += 1; |
| | | logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview); }); |
| | | UserView.HomePage.Instance.AddChidren(logicCommunalPage); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | logicCommunalPage.Show(() => { btnname.Text = logic.LogicName; Automationview(refresview); }); |
| | | |
| | | }; |
| | | |
| | |
| | | ///删除 |
| | | var del = new Button |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1, |
| | | //TextID = MyInternationalizationString.Musicdel, |
| | | BackgroundColor = 0xFFFF0000, |
| | | Text = Language.StringByID(MyInternationalizationString.del), |
| | | TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, |
| | | }; |
| | | logicRowlayout.AddRightView(del); |
| | | logicrowlayout.AddRightView(del); |
| | | del.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), |
| | | Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim)); |
| | | alert.ResultEventHandler += (sender1, e1) => |
| | | { |
| | | if (e1) |
| | | { |
| | | Common.Logic.LogicList.Remove(logic); |
| | | Automationview(refresview); |
| | | Logic.Send.DelLogic(logic.LogicId); |
| | | } |
| | | }; |
| | | alert.Show(); |
| | | |
| | | Common.Logic.LogicList.Remove(logic); |
| | | Automationview(refresview); |
| | | Logic.Send.DelLogic(logic.LogicId); |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 控制状态_________________________ |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue) |
| | | { |
| | | |
| | | var logictimeBtn = new Button |
| | | { |
| | | Height = Application.GetRealHeight(58), |
| | | Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350), |
| | | X = Application.GetRealWidth(365), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = ZigbeeColor.Current.LogicListWeekTextColor, |
| | | }; |
| | | logicRowlayout.AddChidren(logictimeBtn); |
| | | |
| | | ///显示执行周期 |
| | | switch (logic.TimeAttribute.Repeat) |
| | | { |
| | | ///0:只执行一次,执行后IsEnable值置;1,今年内执行;2:每天执行;3:每月执行;4:每年执行;5:周重复。 |
| | | case 0: |
| | | { |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.executeonce); |
| | | }; break; |
| | | case 1: { }; break; |
| | | case 2: |
| | | { |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyday); |
| | | }; break; |
| | | case 3: |
| | | { |
| | | |
| | | string len = "", value = ""; |
| | | var stringvalue = Convert.ToString(logic.TimeAttribute.MonthDate, 2); |
| | | var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length)); |
| | | for (int j = 31; j >= 0; j--) |
| | | { |
| | | len += str.Substring(j, 1); |
| | | } |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | value += (j + 1).ToString() + ","; |
| | | } |
| | | } |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day); |
| | | |
| | | }; break; |
| | | case 4: |
| | | { |
| | | |
| | | Dictionary<int, int> dictionary = new Dictionary<int, int>(); |
| | | ///找出执行的月份和天数 |
| | | if (logic.TimeAttribute.SelectMonDate.Count != 0) |
| | | { |
| | | for (int i = 0; i < logic.TimeAttribute.SelectMonDate.Count; i++) |
| | | { |
| | | var dayvalue = logic.TimeAttribute.SelectMonDate[i]; |
| | | if (dayvalue != 0) |
| | | { |
| | | dictionary.Add(i + 1, dayvalue); |
| | | } |
| | | } |
| | | } |
| | | if (dictionary.Count != 0 && dictionary.Count == 1) |
| | | { |
| | | string len = "", leng = ""; |
| | | int minvalue = 0, Maximum = 0; |
| | | foreach (var value in dictionary) |
| | | { |
| | | ///取出月份 |
| | | var month = value.Key; |
| | | ///取出日数 |
| | | var day = value.Value; |
| | | var maxvalue = Convert.ToString(day, 2); |
| | | var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length)); |
| | | for (int j = 31; j >= 0; j--) |
| | | { |
| | | len += str.Substring(j, 1); |
| | | } |
| | | |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | minvalue = j + 1; |
| | | break; |
| | | } |
| | | } |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | Maximum = j + 1; |
| | | } |
| | | } |
| | | |
| | | if (month.ToString().Length < 2) |
| | | { |
| | | leng = "0" + month.ToString(); |
| | | } |
| | | else |
| | | { |
| | | leng = month.ToString(); |
| | | } |
| | | if (minvalue == Maximum) |
| | | { |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()); |
| | | } |
| | | else |
| | | { |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | int b = 0; |
| | | string stringtext = ""; |
| | | foreach (var value in dictionary) |
| | | { |
| | | string len = "", leng = ""; |
| | | int minvalue = 0, Maximum = 0; |
| | | ///取出月份 |
| | | var month = value.Key; |
| | | ///取出日数 |
| | | var day = value.Value; |
| | | var maxvalue = Convert.ToString(day, 2); |
| | | var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length)); |
| | | for (int j = 31; j >= 0; j--) |
| | | { |
| | | len += str.Substring(j, 1); |
| | | } |
| | | |
| | | |
| | | if (month.ToString().Length < 2) |
| | | { |
| | | leng = "0" + month.ToString(); |
| | | } |
| | | else |
| | | { |
| | | leng = month.ToString(); |
| | | } |
| | | |
| | | |
| | | |
| | | if (b == 0) |
| | | { |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | minvalue = j + 1; |
| | | break; |
| | | } |
| | | } |
| | | stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-"; |
| | | |
| | | } |
| | | |
| | | if (b == dictionary.Count - 1) |
| | | { |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | Maximum = j + 1; |
| | | } |
| | | } |
| | | stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString()); |
| | | |
| | | } |
| | | b++; |
| | | } |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext; |
| | | } |
| | | |
| | | }; break; |
| | | case 5: |
| | | { |
| | | string len = "", text = ""; |
| | | List<int> listvalueInt = new List<int>(); |
| | | listvalueInt.Clear(); |
| | | var maxvalue = Convert.ToString(logic.TimeAttribute.WeekDay, 2); |
| | | var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length)); |
| | | for (int j = 7; j >= 0; j--) |
| | | { |
| | | len += str.Substring(j, 1); |
| | | } |
| | | |
| | | for (int j = 0; j < len.Length; j++) |
| | | { |
| | | var strvalue = len.Substring(j, 1); |
| | | if (strvalue == "1") |
| | | { |
| | | listvalueInt.Add(j + 1); |
| | | |
| | | |
| | | if ((j + 1) == 1) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.mon) + ","; |
| | | } |
| | | else if ((j + 1) == 2) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.tue) + ","; |
| | | } |
| | | else if ((j + 1) == 3) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.wed) + ","; |
| | | } |
| | | else if ((j + 1) == 4) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.thu) + ","; |
| | | } |
| | | else if ((j + 1) == 5) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.frl) + ","; |
| | | } |
| | | else if ((j + 1) == 6) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.sat) + ","; |
| | | } |
| | | else if ((j + 1) == 7) |
| | | { |
| | | text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ","; |
| | | //text += Language.StringByID(MyInternationalizationString.sun) + ","; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | //暂时隐藏掉,需要显示周末和工作日再放开; |
| | | //if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7)) |
| | | //{ |
| | | // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday); |
| | | //} |
| | | //else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7)) |
| | | //{ |
| | | // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend); |
| | | //} |
| | | //else if (listvalueInt.Count == 7) |
| | | //{ |
| | | // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday); |
| | | //} |
| | | //else |
| | | //{ |
| | | // btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(','); |
| | | //} |
| | | logictimeBtn.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(','); |
| | | //btndisplaycycle.Text = text.TrimEnd(','); |
| | | }; break; |
| | | } |
| | | |
| | | List<string> indexlist = new List<string>(); |
| | | List<string> iconIndexlist = new List<string>(); |
| | | for (int i = 0; i < logic.Actions.Count; i++) |
| | | { |
| | | var linkType = logic.Actions[i]["LinkType"].ToString(); |
| | | var d = indexlist.Find((value) => { return value == linkType; }); |
| | | if (d == null) |
| | | { |
| | | indexlist.Add(linkType); |
| | | } |
| | | } |
| | | if (indexlist.Contains("0")) |
| | | { |
| | | iconIndexlist.Add("0"); |
| | | } |
| | | if (indexlist.Contains("2")) |
| | | { |
| | | iconIndexlist.Add("2"); |
| | | } |
| | | if (indexlist.Contains("6")) |
| | | { |
| | | iconIndexlist.Add("6"); |
| | | } |
| | | if (indexlist.Contains("7")) |
| | | { |
| | | iconIndexlist.Add("7"); |
| | | } |
| | | for (int i = 0; i < iconIndexlist.Count; i++) |
| | | { |
| | | var iconindex = iconIndexlist[i]; |
| | | var typebjBtn = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(82), |
| | | Height = Application.GetRealHeight(82), |
| | | X = Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i), |
| | | Y = Application.GetRealHeight(58 + 30), |
| | | Radius = (uint)Application.GetRealHeight(41), |
| | | BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, |
| | | }; |
| | | logicRowlayout.AddChidren(typebjBtn); |
| | | |
| | | var typeIconBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(58), |
| | | Height = Application.GetRealHeight(58), |
| | | Gravity = Gravity.Center, |
| | | |
| | | }; |
| | | typebjBtn.AddChidren(typeIconBtn); |
| | | |
| | | var connectIconBtn = new Button |
| | | { |
| | | Y = typebjBtn.Y + Application.GetRealHeight(35), |
| | | X = Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i), |
| | | Width = Application.GetRealWidth(48), |
| | | Height = Application.GetRealHeight(15), |
| | | UnSelectedImagePath = "ZigeeLogic/connect.png", |
| | | }; |
| | | logicRowlayout.AddChidren(connectIconBtn); |
| | | if (iconIndexlist.Count - 1 == i) |
| | | { |
| | | connectIconBtn.Visible = false; |
| | | } |
| | | switch (iconindex) |
| | | { |
| | | case "0": |
| | | { |
| | | if (intvalue == 1) |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color; |
| | | } |
| | | else |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; |
| | | } |
| | | } |
| | | break; |
| | | case "2": |
| | | { |
| | | |
| | | if (intvalue == 1) |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/scene1.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicScene1Color; |
| | | } |
| | | else |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/noscene.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case "6": |
| | | { |
| | | if (intvalue == 1) |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/security1.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicSecurity1Color; |
| | | |
| | | } |
| | | else |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nosecurity.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case "7": |
| | | { |
| | | if (intvalue == 1) |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/delay1.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicDelay1Color; |
| | | } |
| | | else |
| | | { |
| | | typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nodelay.png"; |
| | | typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; |
| | | } |
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |