using Shared; using HDL_ON.Stan; using System; using System.Collections.Generic; using System.Text; using HDL_ON.UI.CSS; using HDL_ON.Entity; using HDL_ON.DriverLayer; namespace HDL_ON.UI { /// /// 涂鸦扫地机器人的控制界面 /// public class TuyaWeepRobotPage : DeviceFunctionCardCommonForm { #region ■ 变量声明___________________________ /// /// 电池控件 /// private BatteryPersentControl btnBattery = null; /// /// 吸力调节图标 /// private IconViewControl btnSuctionIcon = null; /// /// 吸力调节文本控件 /// private NormalViewControl btnSuctionView = null; /// /// 充电图标 /// private IconViewControl btnChargeIcon = null; /// /// 声音图标 /// private IconViewControl btnVoiceIcon = null; /// /// 声音文本控件 /// private NormalViewControl btnVoiceView = null; /// /// 清扫模式图标 /// private IconViewControl btnModeIcon = null; /// /// 清扫模式文本控件 /// private NormalViewControl btnModeView = null; /// /// 图像控制控件 /// private DirectionImageControl ImageControl = null; /// /// 扫地机器人数据 /// private WeepRobotData weepRobotData = new WeepRobotData(); /// /// 是否在控制方向中 /// private bool directionControling = false; /// /// 方向控制结束时间 /// private DateTime directionFinishTime = DateTime.Now.AddDays(-1); #endregion #region ■ 初始化_____________________________ /// /// 初始化白色区域的内容 /// public override void InitFrameWhiteContent() { base.SetTitleText(Language.StringByID(StringId.WeepRobot)); //添加第二索引页 this.AddSecondPage(); //初始化第一个索引页的内容 this.InitFrameWhiteContent1(); //初始化第二个索引页的内容 this.InitFrameWhiteContent2(); //刷新当前设备的状态缓存 this.RefreshNowDeviceStatuMemory(this.device); //刷新界面状态 this.RefreshFormStatu(); } /// /// 初始化第一个索引页的内容 /// private void InitFrameWhiteContent1() { //电池控件 this.btnBattery = new BatteryPersentControl(); btnBattery.X = base.btnRoomName.Right + Application.GetRealWidth(24); FrameWhiteCentet1.AddChidren(btnBattery); btnBattery.Y = base.btnRoomName.Y - (btnBattery.Height - base.btnRoomName.Height) / 2; btnBattery.InitControl(); //配置变更事件 base.SettionFinishEvent += () => { btnBattery.X = base.btnRoomName.Right + Application.GetRealWidth(24); }; //初始化中间的那个图像控制控件 this.ImageControl = new DirectionImageControl(); ImageControl.Y = Application.GetRealHeight(108); ImageControl.Width = Application.GetRealWidth(198); ImageControl.Height = Application.GetRealWidth(198); ImageControl.Gravity = Gravity.CenterHorizontal; FrameWhiteCentet1.AddChidren(ImageControl); //初始化控件 ImageControl.InitControl("FunctionIcon/Electrical/WeepRobot/ControlEnable.png", "FunctionIcon/Electrical/WeepRobot/ControlDisable.png", "FunctionIcon/Electrical/WeepRobot/ControlUp.png", "FunctionIcon/Electrical/WeepRobot/ControlDown.png", "FunctionIcon/Electrical/WeepRobot/ControlLeft.png", "FunctionIcon/Electrical/WeepRobot/ControlRight.png"); //控制事件(只有enable,Mid,left,right,up,down。 enable:手指松开方向键后触发) ImageControl.NotRecoverControlEvent += (select) => { //发送控制方向命令 this.SendDirectionControlComand(select); }; //吸力调节 this.btnSuctionIcon = new IconViewControl(28); btnSuctionIcon.Y = ImageControl.Bottom + Application.GetRealHeight(64); //btnSuctionIcon.X = Application.GetRealWidth(33); btnSuctionIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Suction.png"; btnSuctionIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png"; FrameWhiteCentet1.AddChidren(btnSuctionIcon); btnSuctionIcon.ButtonClickEvent += (sender, e) => { //显示吸力调节选择界面 this.ShowSuctionSelectView(); }; this.btnSuctionView = new NormalViewControl(80, 54, true); btnSuctionView.Y = btnSuctionIcon.Bottom + Application.GetRealHeight(10); //btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2; btnSuctionView.TextAlignment = TextAlignment.TopCenter; btnSuctionView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnSuctionView.Text = Language.StringByID(StringId.SuctionAdjustment); btnSuctionView.IsMoreLines = true; FrameWhiteCentet1.AddChidren(btnSuctionView); //充电图标 this.btnChargeIcon = new IconViewControl(28); btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png"; btnChargeIcon.Y = btnSuctionIcon.Y; //btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50); btnChargeIcon.Gravity = Gravity.CenterHorizontal; FrameWhiteCentet1.AddChidren(btnChargeIcon); btnChargeIcon.ButtonClickEvent += (sender, e) => { //发送充电命令 this.SendComand("mode", "chargego"); }; var btnChargeView = new NormalViewControl(80, 18, true); btnChargeView.Y = btnSuctionView.Y; btnChargeView.X = btnChargeIcon.X - (Application.GetRealWidth(80) - btnChargeIcon.Width) / 2; btnChargeView.TextAlignment = TextAlignment.TopCenter; btnChargeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnChargeView.TextID = StringId.Charge; FrameWhiteCentet1.AddChidren(btnChargeView); //2021.03.09 舍弃掉静音功能 btnSuctionIcon.X = btnChargeIcon.X - btnSuctionIcon.IconSize - Application.GetRealWidth(50); btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2; //声音图标 this.btnVoiceIcon = new IconViewControl(28); btnVoiceIcon.Y = btnSuctionIcon.Y; btnVoiceIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50); btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png"; btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png"; btnVoiceIcon.IsSelected = true; //FrameWhiteCentet1.AddChidren(btnVoiceIcon); btnVoiceIcon.ButtonClickEvent += (sender, e) => { //发送静音命令 this.SendComand("voice_switch", this.weepRobotData.VoiceSwitch == true ? "false" : "true"); }; this.btnVoiceView = new NormalViewControl(80, 18, true); btnVoiceView.Y = btnSuctionView.Y; btnVoiceView.X = btnVoiceIcon.X - (Application.GetRealWidth(80) - btnVoiceIcon.Width) / 2; btnVoiceView.TextAlignment = TextAlignment.TopCenter; btnVoiceView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnVoiceView.TextID = StringId.Mute; //FrameWhiteCentet1.AddChidren(btnVoiceView); //清扫模式图标 this.btnModeIcon = new IconViewControl(28); btnModeIcon.Y = btnSuctionIcon.Y; //btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50); btnModeIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50); btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Clean.png"; FrameWhiteCentet1.AddChidren(btnModeIcon); btnModeIcon.ButtonClickEvent += (sender, e) => { //显示清扫模式选择 this.ShowCleanModeSelectView(); }; this.btnModeView = new NormalViewControl(80, 54, true); btnModeView.Y = btnSuctionView.Y; btnModeView.X = btnModeIcon.X - (Application.GetRealWidth(80) - btnModeIcon.Width) / 2; btnModeView.TextAlignment = TextAlignment.TopCenter; btnModeView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnModeView.TextID = StringId.CleanMode; btnModeView.IsMoreLines = true; FrameWhiteCentet1.AddChidren(btnModeView); } /// /// 初始化第二个索引页的内容 /// private void InitFrameWhiteContent2() { //扫地机器人 var btnTitleName = new NormalViewControl(270, 37, true); btnTitleName.X = Application.GetRealWidth(16); btnTitleName.Y = Application.GetRealHeight(18); btnTitleName.TextColor = CSS_Color.FirstLevelTitleColor; btnTitleName.TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel; btnTitleName.TextID = StringId.WeepRobot; FrameWhiteCentet2.AddChidren(btnTitleName); //2021.03.09 舍弃耗材管理 //耗材管理 //var rowManment = new FrameRowControl(); //rowManment.Height = Application.GetRealHeight(50); //rowManment.Width = FrameWhiteCentet2.Width; //rowManment.Y = Application.GetRealHeight(75); //FrameWhiteCentet2.AddChidren(rowManment); //rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200); //rowManment.AddBottomLine(); //rowManment.AddRightArrow(); //rowManment.ButtonClickEvent += (sender, e) => //{ // var form = new TuyaWeepRobotConsumablesMagPage(); // form.AddForm(this.device, this.weepRobotData); //}; //历史记录 var rowHistory = new FrameRowControl(); rowHistory.Height = Application.GetRealHeight(50); rowHistory.Width = FrameWhiteCentet2.Width; //rowHistory.Y = rowManment.Bottom; rowHistory.Y = Application.GetRealHeight(75); FrameWhiteCentet2.AddChidren(rowHistory); rowHistory.AddLeftCaption(Language.StringByID(StringId.HistoryLog), 200); rowHistory.AddBottomLine(); rowHistory.AddRightArrow(); rowHistory.ButtonClickEvent += (sender, e) => { var form = new TuyaWeepRobotHistoryPage(); form.AddForm(this.weepRobotData); }; } #endregion #region ■ 吸力调节选择_______________________ /// /// 显示吸力调节选择界面 /// private void ShowSuctionSelectView() { //整个灰色界面 var frameBack = new Dialog(); var dialogBody = new NormalFrameLayout(); frameBack.AddChidren(dialogBody); dialogBody.ButtonClickEvent = (sender, e) => { frameBack.Close(); }; frameBack.Show(); //菜单控件(吸力调节) var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.SuctionAdjustment)); menuContr.X = Application.GetRealWidth(5); menuContr.Y = Application.GetRealHeight(241); menuContr.Width = Application.GetRealWidth(160); menuContr.Height = Application.GetRealHeight(200); dialogBody.AddChidren(menuContr); //吸力1档 var iconPath = this.weepRobotData.Suction == "quiet" ? "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png" : "FunctionIcon/Electrical/WeepRobot/Suction.png"; menuContr.AddRowMenu(Language.StringByID(StringId.SuctionOneGear), iconPath, this.weepRobotData.Suction == "quiet", () => { frameBack.Close(); //发送吸力命令 this.SendComand("suction", "quiet"); }); //吸力2档 iconPath = this.weepRobotData.Suction == "normal" ? "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png" : "FunctionIcon/Electrical/WeepRobot/Suction.png"; menuContr.AddRowMenu(Language.StringByID(StringId.SuctionTwoGear), iconPath, this.weepRobotData.Suction == "normal", () => { frameBack.Close(); //发送吸力命令 this.SendComand("suction", "normal"); }); //吸力3档 iconPath = this.weepRobotData.Suction == "strong" ? "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png" : "FunctionIcon/Electrical/WeepRobot/Suction.png"; menuContr.AddRowMenu(Language.StringByID(StringId.SuctionThreeGear), iconPath, this.weepRobotData.Suction == "strong", () => { frameBack.Close(); //发送吸力命令 this.SendComand("suction", "strong"); }); } #endregion #region ■ 清扫模式选择_______________________ /// /// 显示清扫模式选择界面 /// private void ShowCleanModeSelectView() { //整个灰色界面 var frameBack = new Dialog(); var dialogBody = new NormalFrameLayout(); frameBack.AddChidren(dialogBody); dialogBody.ButtonClickEvent = (sender, e) => { frameBack.Close(); }; frameBack.Show(); //2021.03.09 舍弃随机清扫 //菜单控件(清扫模式) //var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.CleanMode)); var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.CleanMode)); menuContr.X = Application.GetRealWidth(210); menuContr.Y = Application.GetRealHeight(197); menuContr.Width = Application.GetRealWidth(160); //menuContr.Height = Application.GetRealHeight(243); menuContr.Height = Application.GetRealHeight(203); dialogBody.AddChidren(menuContr); //自动清扫 var iconPath = this.weepRobotData.Mode == "smart" ? "FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/AutoMode.png"; menuContr.AddRowMenu(Language.StringByID(StringId.AutoClean), iconPath, this.weepRobotData.Mode == "smart", () => { frameBack.Close(); //发送模式命令 this.SendComand("mode", "smart"); }); //随机清扫 //iconPath = this.weepRobotData.Mode == "random" ? "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png"; //menuContr.AddRowMenu(Language.StringByID(StringId.RandomClean), iconPath, this.weepRobotData.Mode == "random", () => //{ // frameBack.Close(); // //发送模式命令 // this.SendComand("mode", "random"); //}); //螺旋清扫 iconPath = this.weepRobotData.Mode == "spiral" ? "FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/AreaMode.png"; menuContr.AddRowMenu(Language.StringByID(StringId.SpiralClean), iconPath, this.weepRobotData.Mode == "spiral", () => { frameBack.Close(); //发送模式命令 this.SendComand("mode", "spiral"); }); //沿墙清扫 iconPath = this.weepRobotData.Mode == "wall_follow" ? "FunctionIcon/Electrical/WeepRobot/WallModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/WallMode.png"; menuContr.AddRowMenu(Language.StringByID(StringId.WallClean), iconPath, this.weepRobotData.Mode == "wall_follow", () => { frameBack.Close(); //发送模式命令 this.SendComand("mode", "wall_follow"); }); } #endregion #region ■ 设备状态反馈_______________________ /// /// 设备状态反馈 /// /// public override void DeviceStatuPush(Function i_LocalDevice) { //不是同一个东西 if (this.device.sid != i_LocalDevice.sid) { return; } //刷新当前设备的状态缓存 this.RefreshNowDeviceStatuMemory(i_LocalDevice); //刷新界面状态 this.RefreshFormStatu(); } #endregion #region ■ 发送各种命令_______________________ /// /// 发送控制方向命令 /// /// 只有enable,Mid,left,right,up,down。 enable:手指松开方向键后触发 private void SendDirectionControlComand(DirectionEnum direction) { if (direction == DirectionEnum.Mid) { //发送开关命令 this.SendComand(FunctionAttributeKey.OnOff, this.weepRobotData.Cleaning == true ? "off" : "on"); } else if (direction == DirectionEnum.Enable) { //停 this.directionControling = false; this.directionFinishTime = DateTime.Now; this.SendComand("direction_control", "stop"); } else if (direction == DirectionEnum.Left) { //左 this.directionControling = true; this.SendComand("direction_control", "turn_left"); } else if (direction == DirectionEnum.Right) { //右 this.directionControling = true; this.SendComand("direction_control", "turn_right"); } else if (direction == DirectionEnum.Up) { //上 this.directionControling = true; this.SendComand("direction_control", "forward"); } else if (direction == DirectionEnum.Down) { //下 this.directionControling = true; this.SendComand("direction_control", "backward"); } } /// /// 发送命令 /// private void SendComand(string key, string i_value) { HdlThreadLogic.Current.RunThread(() => { var dic = new Dictionary(); dic.Add(key, i_value); Control.Ins.SendWriteCommand(this.device, dic, true); }, ShowErrorMode.NO); } #endregion #region ■ 刷新界面状态_______________________ /// /// 刷新界面状态 /// private void RefreshFormStatu() { //静音(它有四个图标) if (this.weepRobotData.VoiceSwitch == true) { //需要切换图标 this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Mute.png"; this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/MuteSelect.png"; } else { //需要切换图标 this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png"; this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png"; } //如果是清扫状态 if (this.weepRobotData.Cleaning == true) { //吸力调节可用 this.btnSuctionIcon.IsSelected = true; this.btnSuctionIcon.CanClick = true; //声音不可用 //this.btnVoiceIcon.IsSelected = false; //this.btnVoiceIcon.CanClick = false; //清扫模式不可用 this.btnModeIcon.IsSelected = false; this.btnModeIcon.CanClick = false; //方向按键不可用 if (this.directionControling == false && (DateTime.Now - this.directionFinishTime).TotalSeconds >= 2) { //在手动控制方向的过程中,不允许变更图片,并且结束之后,2秒内不接受任何反馈 this.ImageControl.SetDirectionImage(DirectionEnum.Disable); } } else { //吸力调节不可用 this.btnSuctionIcon.IsSelected = false; this.btnSuctionIcon.CanClick = false; //声音可用 //this.btnVoiceIcon.IsSelected = true; //this.btnVoiceIcon.CanClick = true; //清扫模式可用 this.btnModeIcon.IsSelected = true; this.btnModeIcon.CanClick = true; //变更控制控件的图片 if (this.directionControling == false && (DateTime.Now - this.directionFinishTime).TotalSeconds >= 2) { //在手动控制方向的过程中,不允许变更图片,并且结束之后,2秒内不接受任何反馈 this.ImageControl.SetDirectionImage(DirectionEnum.Enable); } } //清扫模式 if (this.weepRobotData.Mode == "random") { //自动清扫 this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AutoMode.png"; this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png"; this.btnModeView.TextID = StringId.AutoClean; } //2021.03.09 舍弃随机清扫 //else if (this.weepRobotData.Mode == "smart") //{ // //随机清扫 // this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png"; // this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png"; // this.btnModeView.TextID = StringId.RandomClean; //} else if (this.weepRobotData.Mode == "wall_follow") { //沿墙清扫 this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/WallMode.png"; this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/WallModeSelect.png"; this.btnModeView.TextID = StringId.WallClean; } else if (this.weepRobotData.Mode == "spiral") { //螺旋清扫 this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AreaMode.png"; this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png"; this.btnModeView.TextID = StringId.SpiralClean; } else { //清扫模式 this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Clean.png"; this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/CleanSelect.png"; this.btnModeView.TextID = StringId.CleanMode; } //电池电量 this.btnBattery.SetValue(this.weepRobotData.ElectricityLeft); } #endregion #region ■ 一般方法___________________________ /// /// 刷新当前设备的状态缓存 /// private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) { for (int i = 0; i < i_LocalDevice.attributes.Count; i++) { var data = i_LocalDevice.attributes[i]; //开关 if (data.key == "on_off") { this.weepRobotData.Cleaning = data.state.ToLower() == "on"; } //寻找机器 else if (data.key == "seek") { this.weepRobotData.SearchRobot = data.state.ToLower() == "true"; } //边刷重置 else if (data.key == "reset_edge_brush") { this.weepRobotData.ResetEdgeBrush = data.state.ToLower() == "true"; } //滚刷重置 else if (data.key == "reset_roll_brush") { this.weepRobotData.ResetRollBrush = data.state.ToLower() == "true"; } //滤网重置 else if (data.key == "reset_filter") { this.weepRobotData.ResetFilter = data.state.ToLower() == "true"; } //吸力选择 else if (data.key == "suction") { this.weepRobotData.Suction = data.state; } //工作模式 else if (data.key == "mode") { this.weepRobotData.Mode = data.state; } //清扫方向 else if (data.key == "direction_control") { this.weepRobotData.DirectionControl = data.state; } //声音开关 else if (data.key == "voice_switch") { this.weepRobotData.VoiceSwitch = data.state.ToLower() == "true"; } //清扫面积 else if (data.key == "clean_area") { var value = data.state; if (value != string.Empty) { this.weepRobotData.CleanArea = Convert.ToInt32(value); } } //清扫记录 else if (data.key == "clean_record") { this.weepRobotData.CleanRecord = data.state; } //边刷寿命 else if (data.key == "edge_brush") { var value = data.state; if (value != string.Empty) { this.weepRobotData.EdgeBrush = Convert.ToInt32(value); } } //滚刷寿命 else if (data.key == "roll_brush") { var value = data.state; if (value != string.Empty) { this.weepRobotData.RollBrush = Convert.ToInt32(value); } } //滤网寿命 else if (data.key == "filter") { var value = data.state; if (value != string.Empty) { this.weepRobotData.Filter = Convert.ToInt32(value); } } //清扫时间 else if (data.key == "clean_time") { var value = data.state; if (value != string.Empty) { this.weepRobotData.CleanTime = Convert.ToInt32(value); } } //剩余电量 else if (data.key == "electricity_left") { var value = data.state; if (value != string.Empty) { this.weepRobotData.ElectricityLeft = Convert.ToInt32(value); } } } } #endregion #region ■ 结构体_____________________________ /// /// 扫地机器人的数据 /// public class WeepRobotData { /// /// 是否处于清扫中 /// public bool Cleaning = false; /// /// 寻找机器 /// public bool SearchRobot = false; /// /// 边刷重置 /// public bool ResetEdgeBrush = false; /// /// 滚刷重置 /// public bool ResetRollBrush = false; /// /// 滤网重置 /// public bool ResetFilter = false; /// /// 吸力选择(strong:一档 normal:二挡 quiet:三挡) /// public string Suction = string.Empty; /// /// 工作模式(smart:自动清扫 random:随机清扫 wall_follow:沿墙清扫 spiral:螺旋清扫 chargego:充电) /// public string Mode = string.Empty; /// /// 清扫方向(forward:向前 backward:向后 turn_left:向左 turn_right:向右 stop:停止) /// public string DirectionControl = string.Empty; /// /// 静音 /// public bool VoiceSwitch = false; /// /// 清扫面积 /// public int CleanArea = 0; /// /// 清扫记录(目前都是空的) /// public string CleanRecord = string.Empty; /// /// 边刷寿命(百分比) /// public int EdgeBrush = 0; /// /// 滚刷寿命(百分比) /// public int RollBrush = 0; /// /// 滤网寿命(百分比) /// public int Filter = 0; /// /// 清扫时间(0-432000) 单位为分钟 /// public int CleanTime = 0; /// /// 剩余电量(百分比) /// public int ElectricityLeft = 0; } #endregion } }