| | |
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 电池图标
|
| | | /// 电池控件
|
| | | /// </summary>
|
| | | private IconViewControl btnBatteryIcon = null;
|
| | | /// <summary>
|
| | | /// 电池百分比控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnBatteryView = null;
|
| | | private BatteryPersentControl btnBattery = null;
|
| | | /// <summary>
|
| | | /// 吸力调节图标
|
| | | /// </summary>
|
| | |
| | | /// 扫地机器人数据
|
| | | /// </summary>
|
| | | private WeepRobotData weepRobotData = new WeepRobotData();
|
| | | /// <summary>
|
| | | /// 是否在控制方向中
|
| | | /// </summary>
|
| | | private bool directionControling = false;
|
| | | /// <summary>
|
| | | /// 方向控制结束时间
|
| | | /// </summary>
|
| | | private DateTime directionFinishTime = DateTime.Now.AddDays(-1);
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void InitFrameWhiteContent1()
|
| | | {
|
| | | //电池图标
|
| | | this.btnBatteryIcon = new IconViewControl(24);
|
| | | btnBatteryIcon.X = base.btnRoomName.Right + Application.GetRealWidth(24);
|
| | | btnBatteryIcon.Y = base.btnRoomName.Y - (btnBatteryIcon.IconSize - base.btnRoomName.Height) / 2;
|
| | | btnBatteryIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Battery.png";
|
| | | FrameWhiteCentet1.AddChidren(btnBatteryIcon);
|
| | | //电池百分比
|
| | | this.btnBatteryView = new NormalViewControl(30, 16, true);
|
| | | btnBatteryView.X = btnBatteryIcon.Right + Application.GetRealWidth(4);
|
| | | btnBatteryView.Y = btnBatteryIcon.Y + (btnBatteryIcon.Height - Application.GetRealHeight(16)) / 2;
|
| | | btnBatteryView.Text = this.weepRobotData.ElectricityLeft + "%";
|
| | | btnBatteryView.TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel;
|
| | | btnBatteryView.TextColor = CSS_Color.PromptingColor1;
|
| | | FrameWhiteCentet1.AddChidren(btnBatteryView);
|
| | | //电池控件
|
| | | 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 += () =>
|
| | | {
|
| | | btnBatteryIcon.X = base.btnRoomName.Right + Application.GetRealWidth(24);
|
| | | btnBatteryView.X = btnBatteryIcon.Right + Application.GetRealWidth(4);
|
| | | btnBattery.X = base.btnRoomName.Right + Application.GetRealWidth(24);
|
| | | };
|
| | |
|
| | | //初始化中间的那个图像控制控件
|
| | |
| | | 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和Disable,都归为Mid)
|
| | | ImageControl.ControlEvent += (select) =>
|
| | | //控制事件(只有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.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.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);
|
| | |
| | |
|
| | | //充电图标
|
| | | this.btnChargeIcon = new IconViewControl(28);
|
| | | btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Charge.png";
|
| | | btnChargeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png";
|
| | | btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png";
|
| | | btnChargeIcon.Y = btnSuctionIcon.Y;
|
| | | btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
|
| | | //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.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";
|
| | | FrameWhiteCentet1.AddChidren(btnVoiceIcon);
|
| | | 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.TextAlignment = TextAlignment.TopCenter;
|
| | | btnVoiceView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
| | | btnVoiceView.TextID = StringId.Mute;
|
| | | FrameWhiteCentet1.AddChidren(btnVoiceView);
|
| | | //FrameWhiteCentet1.AddChidren(btnVoiceView);
|
| | |
|
| | | //清扫模式图标
|
| | | this.btnModeIcon = new IconViewControl(28);
|
| | | btnModeIcon.Y = btnSuctionIcon.Y;
|
| | | btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
|
| | | //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;
|
| | |
| | | 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 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 = 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 ■ 吸力调节选择_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示吸力调节选择界面
|
| | | /// </summary>
|
| | | 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 ■ 清扫模式选择_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示清扫模式选择界面
|
| | | /// </summary>
|
| | | 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 ■ 发送各种命令_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 发送开关命令
|
| | | /// 发送控制方向命令
|
| | | /// </summary>
|
| | | private void SendSwitchComand()
|
| | | /// <param name="direction">只有enable,Mid,left,right,up,down。 enable:手指松开方向键后触发</param>
|
| | | private void SendDirectionControlComand(DirectionEnum direction)
|
| | | {
|
| | | //this.btnSwitch.CanClick = false;
|
| | | 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");
|
| | | }
|
| | | }
|
| | |
|
| | | //string statu = this.btnSwitch.IsSelected == true ? "off" : "on";
|
| | | //HdlThreadLogic.Current.RunThread(() =>
|
| | | //{
|
| | | // var dic = new Dictionary<string, string>();
|
| | | // dic.Add(FunctionAttributeKey.OnOff, statu);
|
| | | // Control.Ins.SendWriteCommand(this.device, dic, true);
|
| | | // HdlThreadLogic.Current.RunMain(() =>
|
| | | // {
|
| | | // this.btnSwitch.CanClick = true;
|
| | | // });
|
| | | //});
|
| | | /// <summary>
|
| | | /// 发送命令
|
| | | /// </summary>
|
| | | private void SendComand(string key, string i_value)
|
| | | {
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | var dic = new Dictionary<string, string>();
|
| | | dic.Add(key, i_value);
|
| | | Control.Ins.SendWriteCommand(this.device, dic, true);
|
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | if (this.weepRobotData.VoiceSwitch == true)
|
| | | {
|
| | | //需要切换图标
|
| | | if (this.btnVoiceIcon.UnSelectedImagePath != "FunctionIcon/Electrical/WeepRobot/Mute.png")
|
| | | {
|
| | | this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Mute.png";
|
| | | this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/MuteSelect.png";
|
| | | }
|
| | | this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Mute.png";
|
| | | this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/MuteSelect.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | //需要切换图标
|
| | | if (this.btnVoiceIcon.UnSelectedImagePath != "FunctionIcon/Electrical/WeepRobot/Voice.png")
|
| | | 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)
|
| | | {
|
| | | this.btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
|
| | | this.btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
|
| | | //在手动控制方向的过程中,不允许变更图片,并且结束之后,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
|
| | |
| | | /// </summary>
|
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
|
| | | {
|
| | | foreach (var data in i_LocalDevice.attributes)
|
| | | for (int i = 0; i < i_LocalDevice.attributes.Count; i++)
|
| | | {
|
| | | var data = i_LocalDevice.attributes[i];
|
| | | //开关
|
| | | if (data.key == "on_off") { this.weepRobotData.Open = data.realValue.ToLower() == "on"; }
|
| | | if (data.key == "on_off") { this.weepRobotData.Cleaning = data.state.ToLower() == "on"; }
|
| | | //寻找机器
|
| | | else if (data.key == "seek") { this.weepRobotData.SearchRobot = data.realValue.ToLower() == "true"; }
|
| | | else if (data.key == "seek") { this.weepRobotData.SearchRobot = data.state.ToLower() == "true"; }
|
| | | //边刷重置
|
| | | else if (data.key == "reset_edge_brush") { this.weepRobotData.ResetEdgeBrush = data.realValue.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.realValue.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.realValue.ToLower() == "true"; }
|
| | | else if (data.key == "reset_filter") { this.weepRobotData.ResetFilter = data.state.ToLower() == "true"; }
|
| | | //吸力选择
|
| | | else if (data.key == "suction") { this.weepRobotData.Suction = data.realValue; }
|
| | | else if (data.key == "suction") { this.weepRobotData.Suction = data.state; }
|
| | | //工作模式
|
| | | else if (data.key == "mode") { this.weepRobotData.Mode = data.realValue; }
|
| | | else if (data.key == "mode") { this.weepRobotData.Mode = data.state; }
|
| | | //清扫方向
|
| | | else if (data.key == "direction_control") { this.weepRobotData.DirectionControl = data.realValue; }
|
| | | else if (data.key == "direction_control") { this.weepRobotData.DirectionControl = data.state; }
|
| | | //声音开关
|
| | | else if (data.key == "voice_switch") { this.weepRobotData.VoiceSwitch = data.realValue.ToLower() == "true"; }
|
| | | else if (data.key == "voice_switch") { this.weepRobotData.VoiceSwitch = data.state.ToLower() == "true"; }
|
| | | //清扫面积
|
| | | else if (data.key == "clean_area")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.CleanArea = Convert.ToInt32(value);
|
| | | }
|
| | | }
|
| | | //清扫记录
|
| | | else if (data.key == "clean_record") { this.weepRobotData.CleanRecord = data.realValue; }
|
| | | else if (data.key == "clean_record") { this.weepRobotData.CleanRecord = data.state; }
|
| | | //边刷寿命
|
| | | else if (data.key == "edge_brush")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.EdgeBrush = Convert.ToInt32(value);
|
| | |
| | | //滚刷寿命
|
| | | else if (data.key == "roll_brush")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.RollBrush = Convert.ToInt32(value);
|
| | |
| | | //滤网寿命
|
| | | else if (data.key == "filter")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.Filter = Convert.ToInt32(value);
|
| | |
| | | //清扫时间
|
| | | else if (data.key == "clean_time")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.CleanTime = Convert.ToInt32(value);
|
| | |
| | | //剩余电量
|
| | | else if (data.key == "electricity_left")
|
| | | {
|
| | | var value = data.realValue;
|
| | | var value = data.state;
|
| | | if (value != string.Empty)
|
| | | {
|
| | | this.weepRobotData.ElectricityLeft = Convert.ToInt32(value);
|
| | |
| | | /// <summary>
|
| | | /// 扫地机器人的数据
|
| | | /// </summary>
|
| | | private class WeepRobotData
|
| | | public class WeepRobotData
|
| | | {
|
| | | /// <summary>
|
| | | /// 是否打开
|
| | | /// 是否处于清扫中
|
| | | /// </summary>
|
| | | public bool Open = true;
|
| | | public bool Cleaning = false;
|
| | | /// <summary>
|
| | | /// 寻找机器
|
| | | /// </summary>
|
| | |
| | | /// </summary>
|
| | | public string Suction = string.Empty;
|
| | | /// <summary>
|
| | | /// 工作模式(random:自动清扫 smart:定点清扫 wall_follow:沿墙清扫 spiral:区域清扫 chargego:充电)
|
| | | /// 工作模式(smart:自动清扫 random:随机清扫 wall_follow:沿墙清扫 spiral:螺旋清扫 chargego:充电)
|
| | | /// </summary>
|
| | | public string Mode = string.Empty;
|
| | | /// <summary>
|
| | |
| | | /// </summary>
|
| | | public int Filter = 0;
|
| | | /// <summary>
|
| | | /// 清扫时间(0-432000)
|
| | | /// 清扫时间(0-432000) 单位为分钟
|
| | | /// </summary>
|
| | | public int CleanTime = 0;
|
| | | /// <summary>
|