.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide | 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/GateWay.Droid/Assets/Language.ini | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/Device/Category/Category.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/UserView/UserPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/R.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -199,3 +199,4 @@ *._ *.ide ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -2,17 +2,15 @@ <MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.M7BBB18B19152766" /> <MonoDevelop.Ide.ItemProperties.GateWay.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.8c0bdb303f25d82c2a42fb8bfca449bfaca00260" /> <MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.M7BBB18B19152766" /> <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/UserView/UserPage.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/AC/ACControl.cs"> <Files> <File FileName="Shared/R.cs" /> <File FileName="Shared/R.cs" Line="955" Column="22" /> <File FileName="GateWay.Droid/Assets/Language.ini" /> <File FileName="Shared/Phone/Device/Light/DimmableLightControl.cs" Line="410" Column="1" /> <File FileName="Shared/Phone/Device/Category/Category.cs" Line="366" Column="68" /> <File FileName="Shared/Phone/Device/AC/ACControl.cs" Line="243" Column="33" /> <File FileName="Shared/Phone/UserView/UserHomeView.cs" Line="1" Column="1" /> <File FileName="Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs" Line="44" Column="78" /> <File FileName="Shared/Common/CommonPage.cs" Line="60" Column="99" /> <File FileName="Shared/Phone/UserView/UserPage.cs" Line="251" Column="30" /> <File FileName="Shared/Phone/Device/Category/Category.cs" /> <File FileName="Shared/Phone/Device/AC/ACControl.cs" Line="1" Column="1" /> <File FileName="Shared/Phone/UserView/UserHomeView.cs" /> <File FileName="Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs" /> <File FileName="Shared/Phone/UserView/UserPage.cs" /> </Files> <Pads> <Pad Id="ProjectPad"> @@ -27,7 +25,9 @@ <Node name="Common" expanded="True" /> <Node name="Phone" expanded="True"> <Node name="Device" expanded="True"> <Node name="AC" expanded="True" /> <Node name="AC" expanded="True"> <Node name="ACControl.cs" selected="True" /> </Node> <Node name="Category" expanded="True" /> <Node name="CommonForm" expanded="True" /> <Node name="DeviceLogic" expanded="True" /> @@ -40,9 +40,7 @@ <Node name="Logic" expanded="True" /> </Node> </Node> <Node name="UserView" expanded="True"> <Node name="UserPage.cs" selected="True" /> </Node> <Node name="UserView" expanded="True" /> <Node name="ZigBee" expanded="True"> <Node name="Common" expanded="True" /> <Node name="Device" expanded="True" /> ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ideBinary files differ
ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -705,7 +705,7 @@ 11031=添加执行目标 11032=选择区域 11033=选择场景图片 11034=确定删除吗? 11034=确定要移除该功能? 12100=未知设备 ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs
@@ -170,8 +170,10 @@ return; } deviceUI.CommonDevice.DeviceStatusReport = common.DeviceStatusReport; var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: ac.currentLocalTemperature = curTemp; @@ -211,7 +213,7 @@ case 28: //此属性描述恒温设备正处于哪种模式 //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8 ac.currentSystemMode = attriButeList[0].AttriButeData; ac.currentSystemMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; if (ac.currentSystemMode == 0) { @@ -242,35 +244,33 @@ case 4097: //过虑网清洗标志:42 ac.CleanStatu = attriButeList[0].AttriButeData == 42; ac.CleanStatu = attList.AttriButeData == 42; cleanStatu.Visible = ac.CleanStatu; break; case 4099: var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); var modeStr = value.Substring(value.Length - 5, 5); for (int j = 0; j < modeStr.Length; j++) { ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; } break; } } } if (common.DeviceStatusReport.CluterID == 514) { var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } ac.DeviceStatusReport = common.DeviceStatusReport; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { switch (attList.AttributeId) { case 0: //风扇当前的工作模式 1=Low 2=Medium 3=High ac.currentFanMode = attriButeList[0].AttriButeData; ac.currentFanMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; fanModeBtn.IsSelected = true; fanModeBtn.SelectedImagePath = ACControlBase.GetFanModeSelectedImagePathByFanModeId(ac.currentFanMode); @@ -278,12 +278,13 @@ break; case 4096: //风扇当前的扫风模式 ac.currentFanSwingMode = attriButeList[0].AttriButeData; ac.currentFanSwingMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; FanSwingModeBtn.IsSelected = true; FanSwingModeBtn.SelectedImagePath = ACControlBase.GetFanSwingModeSelectedImagePathByFanSwingModeId(ac.currentFanSwingMode); FanSwingModeBtn.UnSelectedImagePath = ACControlBase.GetFanSwingModeUnSelectedImagePathByFanSwingModeId(ac.currentFanSwingMode); break; } } } //***新改 * **设备状态上报中,当CluterID = 3,证明设备在线,直接标记 @@ -560,7 +561,7 @@ currentModeBtn = new Button() { Y = Application.GetRealHeight(599), Y = Application.GetRealHeight(565), Height = Application.GetRealHeight(80), Width = Application.GetRealWidth(200), TextColor = ZigbeeColor.Current.GXCTextBlackColor, @@ -572,7 +573,7 @@ reduceTemperatureBtn = new Button() { X = Application.GetRealWidth(268), Y = Application.GetRealHeight(680), Y = Application.GetRealHeight(650), Width = Application.GetMinRealAverage(80), Height = Application.GetMinRealAverage(80), UnSelectedImagePath = "AC/Reduce.png" @@ -581,8 +582,8 @@ addTemperatureBtn = new Button() { X = Application.GetRealWidth(628), Y = Application.GetRealHeight(680), X = Application.GetRealWidth(620), Y = Application.GetRealHeight(650), Width = Application.GetMinRealAverage(80), Height = Application.GetMinRealAverage(80), UnSelectedImagePath = "AC/Add.png" ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -149,6 +149,10 @@ { try { if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) { return; } for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) { var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; @@ -169,10 +173,6 @@ { var light = deviceUI.CommonDevice as ToggleLight; light.DeviceStatusReport = common.DeviceStatusReport; if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0) { continue; } light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(light.OnOffStatus == 1); @@ -194,10 +194,6 @@ { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) { return; } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(airSwitch.OnOffStatus == 1); @@ -249,57 +245,47 @@ if (common.DeviceStatusReport.CluterID == 513) { var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.DeviceStatusReport = common.DeviceStatusReport; var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: ac.currentLocalTemperature = curTemp; ac.LastDateTime = DateTime.Now; break; case 17: ac.currentCoolingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 18: ac.currentHeatingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 4096: ac.currentAutoSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 28: //此属性描述恒温设备正处于哪种模式 ac.currentSystemMode = attriButeList[0].AttriButeData; ac.currentSystemMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4099: var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); var modeStr = value.Substring(value.Length - 5, 5); for (int j = 0; j < modeStr.Length; j++) { ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; } break; case 4097: //过虑网清洗标志:42 ac.CleanStatu = attriButeList[0].AttriButeData == 42; ac.CleanStatu = attList.AttriButeData == 42; break; } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(ac.currentSystemMode != 0); row.SetStatuText(deviceUI.GetDeviceStatu()); @@ -309,21 +295,20 @@ { var ac = deviceUI.CommonDevice as ZigBee.Device.AC; var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } ac.DeviceStatusReport = common.DeviceStatusReport; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { switch (attList.AttributeId) { case 0: ac.currentFanMode = attriButeList[0].AttriButeData; ac.currentFanMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4096: ac.currentFanSwingMode = attriButeList[0].AttriButeData; ac.currentFanSwingMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(ac.currentSystemMode != 0); @@ -345,10 +330,6 @@ { var dimmableLight = deviceUI.CommonDevice as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) { continue; } dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(dimmableLight.OnOffStatus == 1); @@ -359,10 +340,6 @@ { var dimmableLight = deviceUI.CommonDevice as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) { continue; } dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(dimmableLight.OnOffStatus == 1); @@ -1032,7 +1009,7 @@ delBtn.MouseUpEventHandler += delEvent; } } else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch) { //空气开关 var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; @@ -1133,7 +1110,7 @@ } } else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight) { //调光灯 var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; @@ -1233,7 +1210,7 @@ delBtn.MouseUpEventHandler += delEvent; } } else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat) { //空调 var ac = deviceUI.CommonDevice as ZigBee.Device.AC; @@ -1335,7 +1312,7 @@ acControl.Show(deviceUI, room); }; } else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice) { //卷帘 var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; @@ -1422,7 +1399,7 @@ rollerShadeControl.Show(deviceUI, room); }; } else if(deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock) else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock) { var deviceTypeRowLayout = new RowLayout() { @@ -1520,7 +1497,6 @@ typeRowLayout.AddChidren(functionTypeIMG); functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; if (deviceType == room.DeviceUIList[0].CommonDevice.Type) { ZigbeeApp/Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs
@@ -38,10 +38,8 @@ new System.Threading.Thread(() => { SendFanStatuComand(device); System.Console.WriteLine("发送时间:" + DateTime.Now.ToString("o")); System.Threading.Thread.Sleep(500); System.Threading.Thread.Sleep(300); SendThermostatStatuComand(device); System.Console.WriteLine("接收时间:" + DateTime.Now.ToString("o")); }) { IsBackground = true }.Start(); } @@ -89,7 +87,6 @@ { { "AttriButeId", (int)AttriButeId.CleanStatu} } }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); @@ -122,7 +119,7 @@ }; var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } }; jObject.Add("Data", data); device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); device.Gateway?.Send("GetDeviceStatus", jObject.ToString()); } #endregion @@ -230,7 +227,6 @@ jObject.Add("Data", data); device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString()); } #endregion } ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -122,22 +122,33 @@ { try { if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) { return; } for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) { var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; var deviceUI = rowFL.Tag as DeviceUI; if (deviceUI.CommonDevice == null || rowFL.ChildrenCount == 0) if (rowFL.ChildrenCount == 0) { //设备为空或者控件为空 continue; } for (int j=0;j<rowFL.ChildrenCount;j++) { var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI; if (deviceUI == null || deviceUI.CommonDevice == null) { //设备为空或者控件为空 continue; } if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) { //判断是否为当前设备 continue; } var frameLayout = rowFL.GetChildren(0) as FrameLayout; switch (deviceUI.CommonDevice.Type) { case DeviceType.OnOffOutput: @@ -146,16 +157,9 @@ { var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport; //记录、更新状态 if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) { continue; } onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); //记录回复时间 (rowFL.GetChildren(j) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); onOffOutputLight.LastDateTime = DateTime.Now; } break; @@ -166,27 +170,10 @@ { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; for (int j = 0; j < frameLayout.ChildrenCount; j++) { var tempView = frameLayout.GetChildren(j); if (tempView.Tag == null) { continue; } if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) { //记录、更新状态 if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) { return; } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; (rowFL.GetChildren(0) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); //记录回复时间 (rowFL.GetChildren(j) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); airSwitch.LastDateTime = DateTime.Now; } } } //当CluterID=3,就证明该设备在线,直接标记 if (common.DeviceStatusReport.CluterID == 3) @@ -206,8 +193,18 @@ rollerShade.DeviceStatusReport = common.DeviceStatusReport; rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; rollerShade.LastDateTime = DateTime.Now; (rowFL.GetChildren(0) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8) { //窗帘百分比 var rollerShade = deviceUI.CommonDevice as Rollershade; rollerShade.DeviceStatusReport = common.DeviceStatusReport; rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; rollerShade.LastDateTime = DateTime.Now; (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } } if (common.DeviceStatusReport.CluterID == 3) @@ -224,32 +221,26 @@ var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = ac.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) foreach(var attList in attriButeList) { continue; } var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attriButeList[0].AttributeId) var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃ ac.currentLocalTemperature = curTemp; ac.LastDateTime = DateTime.Now; break; case 17: //此属性表明此设备当前的制冷温度,实际温度为“CoolingSetpoint / 100”,单位:℃。 ac.currentCoolingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 18: //此属性表明此设备当前的制热温度,实际温度为“HeatingSetpoint / 100”,单位:℃。 ac.currentHeatingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 4096: //此属性表明此设备当前的自动温度,实际温度为“AutoSetpoint / 100”,单位:℃。 ac.currentAutoSetpoint = curTemp; @@ -258,44 +249,43 @@ case 28: //此属性描述恒温设备正处于哪种模式 ac.currentSystemMode = attriButeList[0].AttriButeData; ac.currentSystemMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4099: var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); var modeStr = value.Substring(value.Length - 5, 5); for (int j = 0; j < modeStr.Length; j++) for (int k = 0; k < modeStr.Length; k++) { ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; ac.listSupportMode[k] = Convert.ToInt32(modeStr[k]) == 49 ? 1 : 0; } break; } (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } if (common.DeviceStatusReport.CluterID == 514) { var ac = deviceUI.CommonDevice as ZigBee.Device.AC; var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } ac.DeviceStatusReport = common.DeviceStatusReport; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { switch (attList.AttributeId) { case 0: ac.currentFanMode = attriButeList[0].AttriButeData; ac.currentFanMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4096: ac.currentFanSwingMode = attriButeList[0].AttriButeData; ac.currentFanSwingMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; } (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } //当CluterID=3,就证明该设备在线,直接标记 if (common.DeviceStatusReport.CluterID == 3) @@ -308,20 +298,13 @@ case DeviceType.DimmableLight: //调光灯功能 //开关功能 if (common.DeviceStatusReport.CluterID == 6) { var dimmableLight = deviceUI.CommonDevice as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; //记录、更新状态 if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) { return; } dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); //记录回复时间 (rowFL.GetChildren(j) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); dimmableLight.LastDateTime = DateTime.Now; } @@ -331,22 +314,19 @@ var dimmableLight = deviceUI.CommonDevice as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { continue; } switch (attriButeList[0].AttributeId) { case 0: //此属性表明当前亮度程度 dimmableLight.Level = attriButeList[0].AttriButeData; dimmableLight.LastDateTime = DateTime.Now; (rowFL.GetChildren(0) as FunctionMainView).IsSelected = true; (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); (rowFL.GetChildren(j) as FunctionMainView).IsSelected = true; (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); break; } } break; } } } } @@ -963,7 +943,6 @@ itemView = new FrameLayout() { Height = Application.GetRealHeight(14 + 348), Tag = device }; deviceVerticalScrolViewLayout.AddChidren(itemView); } @@ -1013,6 +992,7 @@ } } var lightView = new FunctionMainView(xx, yy); lightView.Tag = device; itemView.AddChidren(lightView); lightView.Init(); lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); @@ -1121,6 +1101,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); @@ -1255,6 +1236,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(airSwitch.DeviceEpointName); @@ -1360,6 +1342,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); @@ -1464,6 +1447,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); @@ -1562,6 +1546,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); @@ -1593,6 +1578,7 @@ var lightView = new FunctionMainView(xx, yy); itemView.AddChidren(lightView); lightView.Init(); lightView.Tag = device; lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); lightView.SetStatuText(device.GetDeviceStatu()); lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -79,6 +79,10 @@ { try { if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) { return; } switch (myDevice.Type) { case DeviceType.OnOffOutput: @@ -87,11 +91,6 @@ { var onOffOutputLight = (ToggleLight)myDevice; onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport; //记录、更新状态 if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) { return; } onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; onOffOutputLight.LastDateTime = DateTime.Now; } @@ -109,13 +108,8 @@ { var airSwitch = (AirSwitch)myDevice; airSwitch.DeviceStatusReport = common.DeviceStatusReport; if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) { return; } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; airSwitch.LastDateTime = DateTime.Now; } //当CluterID=3,就证明该设备在线,直接标记 if (common.DeviceStatusReport.CluterID == 3) @@ -131,10 +125,6 @@ var rollershade = (Rollershade)myDevice; rollershade.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = rollershade.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } switch (attriButeList[0].AttributeId) { case 0: @@ -157,50 +147,44 @@ var ac = (AC)myDevice; ac.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = ac.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) foreach(var attList in attriButeList) { return; } //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃ var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attriButeList[0].AttributeId) var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: ac.currentLocalTemperature = curTemp; ac.LastDateTime = DateTime.Now; break; case 17: ac.currentCoolingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 18: ac.currentHeatingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 4096: ac.currentAutoSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 28: ac.currentSystemMode = attriButeList[0].AttriButeData; ac.currentSystemMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4099: var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); var modeStr = value.Substring(value.Length - 5, 5); for (int j = 0; j < modeStr.Length; j++) { ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; } break; case 4097: ac.CleanStatu = attriButeList[0].AttriButeData == 42; ac.CleanStatu = attList.AttriButeData == 42; break; } } } @@ -208,21 +192,20 @@ { var ac = (AC)myDevice; var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } ac.DeviceStatusReport = common.DeviceStatusReport; switch (attriButeList[0].AttributeId) foreach(var attList in attriButeList) { switch (attList.AttributeId) { case 0: ac.currentFanMode = attriButeList[0].AttriButeData; ac.currentFanMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; case 4096: ac.currentFanSwingMode = attriButeList[0].AttriButeData; ac.currentFanSwingMode = attList.AttriButeData; ac.LastDateTime = DateTime.Now; break; } } } @@ -241,11 +224,6 @@ { var dimmableLight = (DimmableLight)myDevice; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; //记录、更新状态 if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) { return; } dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; dimmableLight.LastDateTime = DateTime.Now; } @@ -255,10 +233,6 @@ var dimmableLight = (DimmableLight)myDevice; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } switch (attriButeList[0].AttributeId) { case 0: ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -22,10 +22,10 @@ #if DEBUG if (flage == true) { if (msg.Contains("DeviceStatusReport") == false) { //if (msg.Contains("DeviceStatusReport") == false) //{ System.Console.WriteLine(msg + " " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond); } //} } #endif } ZigbeeApp/Shared/R.cs
@@ -952,7 +952,7 @@ /// </summary> public const int SelectScenePic = 11033; /// <summary> /// 确定删除吗? /// 确定要移除该功能? /// </summary> public const int DeleteFunction = 11034;