| | |
| | | using System.Collections.Generic;
|
| | | using System.Threading.Tasks;
|
| | | using Shared.Common;
|
| | | using Shared.Phone.UserView;
|
| | | using ZigBee.Device;
|
| | |
|
| | | namespace Shared.Phone.UserCenter.Device
|
| | |
| | | /// 设备具体类型的信息
|
| | | /// </summary>
|
| | | private DeviceEnumInfo deviceEnumInfo = null;
|
| | | /// <summary>
|
| | | /// 中央空调的版本控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnAirConditionerVersion = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void AddAllMenuRow()
|
| | | {
|
| | | bool isHdlDevice = Common.LocalDevice.Current.IsHdlDevice(listNewDevice[0]);
|
| | | if (deviceEnumInfo.BeloneType == DeviceBeloneType.A智能门锁)
|
| | | {
|
| | | //只有是河东的设备的时候
|
| | | if (isHdlDevice == true)
|
| | | if (deviceEnumInfo.IsHdlDevice == true)
|
| | | {
|
| | | //添加【用户管理】行
|
| | | this.AddUserManageRow();
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | //添加【工作模式】行(pir传感器专用)
|
| | | this.AddPirSensorWorkModeRow();
|
| | | //添加【绑定目标】行(pir传感器专用)
|
| | | this.AddPirSensorBindRow();
|
| | | //添加【方向与限位】行(开合帘,卷帘专用)
|
| | |
| | | //添加【干接点设置】行
|
| | | this.AddDryContactSettionRow();
|
| | | }
|
| | | //添加【功能类型】行(空气开关专用)
|
| | | this.AddAirSwitchFunctionTypeRow();
|
| | | //添加【通用信息】行
|
| | | this.AddGeneralInformationRow();
|
| | |
|
| | | if (isHdlDevice == true)
|
| | | //添加【空调模块版本(空调专用)】行
|
| | | this.AddAirConditionerModelVersionRow();
|
| | |
|
| | | if (deviceEnumInfo.IsHdlDevice == true)
|
| | | {
|
| | | //添加【固件升级】行
|
| | | this.AddFirmwareUpdateRow();
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 工作模式(pir传感器专用)____________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加【工作模式】行(pir传感器专用)
|
| | | /// </summary>
|
| | | private void AddPirSensorWorkModeRow()
|
| | | {
|
| | | if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir
|
| | | || deviceEnumInfo.IsHdlDevice == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //工作模式
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uWorkMode);
|
| | | var btnFunction = new FrameRowControl(listview.rowSpace / 2);
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.AddLeftCaption(caption, 600);
|
| | | //向右图标
|
| | | btnFunction.AddRightArrow();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var form = new DevicePirSensor.PirSensorWorkModeMenuForm();
|
| | | form.AddForm((IASZone)this.listNewDevice[0]);
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion;
|
| | |
|
| | | #region ■ 绑定目标(pir传感器专用)____________
|
| | |
|
| | | /// <summary>
|
| | |
| | | //手拉控制
|
| | | if (0 < (attriBute.AttriButeData & 0x04))
|
| | | {
|
| | | btnSwitch.IsSelected = true;
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | btnSwitch.IsSelected = true;
|
| | | });
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 功能类型(空气开关专用)_____________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加【功能类型】行(空气开关专用)
|
| | | /// </summary>
|
| | | private void AddAirSwitchFunctionTypeRow()
|
| | | {
|
| | | if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A智能空开)
|
| | | {
|
| | | //不是空气开关
|
| | | return;
|
| | | }
|
| | |
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | var DfunctionType = this.listNewDevice[0].DfunctionType;
|
| | |
|
| | | //功能类型的翻译名字
|
| | | int nowSelectNo = 1;
|
| | | string strType = string.Empty;
|
| | | if (DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | nowSelectNo = 0;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | nowSelectNo = 2;
|
| | | }
|
| | |
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = true;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | //右箭头
|
| | | btnFunction.AddRightArrow();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示列表
|
| | | var listText = new List<string>();
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座
|
| | | //标题:选择功能类型
|
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
|
| | |
|
| | | var form = new BottomItemSelectForm();
|
| | | form.AddForm(title, listText, nowSelectNo);
|
| | | form.FinishSelectEvent += (selectNo) =>
|
| | | {
|
| | | btnFunction.Text = listText[selectNo];
|
| | | nowSelectNo = selectNo;
|
| | | //记录起当前选择的功能类型
|
| | | if (selectNo == 0)
|
| | | {
|
| | | this.listNewDevice[0].DfunctionType = DeviceFunctionType.A开关;
|
| | | if (this.listNewDevice[0].IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.listNewDevice[0].IconPath = "Device/Switch.png";
|
| | | }
|
| | | }
|
| | | else if (selectNo == 1)
|
| | | {
|
| | | this.listNewDevice[0].DfunctionType = DeviceFunctionType.A灯光;
|
| | | if (this.listNewDevice[0].IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.listNewDevice[0].IconPath = "Device/Light.png";
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | this.listNewDevice[0].DfunctionType = DeviceFunctionType.A插座;
|
| | | if (this.listNewDevice[0].IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.listNewDevice[0].IconPath = "Device/Socket1.png";
|
| | | }
|
| | | }
|
| | | this.listNewDevice[0].ReSave();
|
| | | };
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 通用信息___________________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | var form = new DeviceGeneralInformationForm();
|
| | | form.AddForm(listNewDevice[0].DeviceAddr);
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 空调模块版本(空调专用)_____________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加【空调模块版本】行(河东的中央空调)
|
| | | /// </summary>
|
| | | private void AddAirConditionerModelVersionRow()
|
| | | {
|
| | | if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
|
| | | {
|
| | | //不是中央空调
|
| | | return;
|
| | | }
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uAirConditionerModelVersion);
|
| | | var rowVersion = new FrameRowControl(listview.rowSpace / 2);
|
| | | rowVersion.UseClickStatu = false;
|
| | | listview.AddChidren(rowVersion);
|
| | | rowVersion.AddLeftCaption(caption, 600);
|
| | | //版本
|
| | | this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
|
| | | //底线
|
| | | rowVersion.AddBottomLine();
|
| | |
|
| | | //获取中央空调模块的版本
|
| | | this.ReadAirConditionerVersion();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | |
|
| | | rowUpDate.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
|
| | | {
|
| | | //这个是一般设备的升级
|
| | | var form = new DeviceFirmwareUpdateForm();
|
| | | form.AddForm(listNewDevice[0].DeviceAddr);
|
| | | }
|
| | | else
|
| | | {
|
| | | //中央空调的升级的话,是特殊的
|
| | | var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
|
| | | form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible);
|
| | | }
|
| | | btnNewVersion.Visible = false;
|
| | | var form = new DeviceFirmwareInfoForm();
|
| | | form.AddForm(listNewDevice[0].DeviceAddr);
|
| | | };
|
| | |
|
| | | //设置设备的版本信息
|
| | |
| | | /// </summary>
|
| | | private void ShowTopRightMenu()
|
| | | {
|
| | | int menuCount = 1;
|
| | | string deviceMenu = string.Empty;
|
| | | //检测此回路是否拥有定位功能(拿端点最小的那个回路去定位)
|
| | | bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
|
| | | if (canTest == true)
|
| | | if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A智能门锁)
|
| | | {
|
| | | menuCount = 2;
|
| | | canTest = false;
|
| | | }
|
| | | var frame = new TopRightMenuControl(menuCount);
|
| | | else if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A传感器
|
| | | && this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
|
| | | {
|
| | | //传感器除了Pir都没有定位功能
|
| | | canTest = false;
|
| | | }
|
| | | var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
|
| | |
|
| | | string deviceMenu = string.Empty;
|
| | | if (canTest == true)
|
| | | {
|
| | | //定位
|
| | |
| | | /// <summary>
|
| | | /// 删除指定设备
|
| | | /// </summary>
|
| | | private async void DoDeleteDevice()
|
| | | private void DoDeleteDevice()
|
| | | {
|
| | | //删除设备
|
| | | bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
|
| | | if (result == false)
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | return;
|
| | | }
|
| | | //关闭界面
|
| | | this.CloseForm();
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | //删除设备
|
| | | bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //关闭界面
|
| | | this.CloseForm();
|
| | | });
|
| | | });
|
| | | }
|
| | | #endregion
|
| | |
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 界面重新激活事件___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
| | | /// </summary>
|
| | | public override int FormActionAgainEvent()
|
| | | {
|
| | | //重新获取中央空调模块的版本
|
| | | this.ReadAirConditionerVersion();
|
| | |
|
| | | return 0;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 获取中央空调模块的版本
|
| | | /// </summary>
|
| | | private void ReadAirConditionerVersion()
|
| | | {
|
| | | if (this.btnAirConditionerVersion == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //获取中....
|
| | | this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | //读取空调模块版本
|
| | | var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync();
|
| | | if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //获取失败
|
| | | btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
|
| | | });
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|