| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- using Prism.Commands;
- using Prism.Ioc;
- using Prism.Mvvm;
- using Prism.Services.Dialogs;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Windows;
- using TeamAAS_VP.Core;
- using TeamAAS_VP.Interfaces;
- using TeamAAS_VP.Models;
- using TeamAAS_VP.Models.PLC;
- using TeamAAS_VP.Resources.Languages;
- using TouchSocket.Core;
- namespace TeamAAS_VP.ViewModels.Setting
- {
- public class AddRobotViewModel : BindableBase, IDialogAware
- {
- private readonly IConfigService _configService;
- private RobotInfo _Robot;
- /// <summary>
- /// 机器人
- /// </summary>
- public RobotInfo Robot
- {
- get { return _Robot; }
- set
- {
- SetProperty(ref _Robot, value);
- }
- }
- private ObservableCollection<PlcInfo> _AllPlc;
- public ObservableCollection<PlcInfo> AllPlc
- {
- get { return _AllPlc; }
- set { SetProperty(ref _AllPlc, value); }
- }
- private PlcInfo _SelectedPlc;
- public PlcInfo SelectedPlc
- {
- get { return _SelectedPlc; }
- set
- {
- SetProperty(ref _SelectedPlc, value);
- if (value != null)
- {
- Robot.PLC = value.Id;
- if (Robot.PlcRobotParameter == null)
- {
- Robot.PlcRobotParameter = new PlcRobotParameter();
- }
- if (Robot.PlcRobotParameter.AxixList == null)
- {
- Robot.PlcRobotParameter.AxixList = new List<Core.Robots.Axis>();
- if (Robot.RobotBrand == Enums.RobotBrand.XYZ_Platform)
- {
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("X", 1));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Y", 2));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Z", 3));
- }
- else
- {
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("X", 1));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Y", 2));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Z", 3));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("U", 4));
- }
- }
- }
- else
- {
- Robot.PLC = Guid.Empty;
- Robot.PlcRobotParameter = null;
- }
- }
- }
- private DelegateCommand _ConfirmCommand;
- public DelegateCommand ConfirmCommand =>
- _ConfirmCommand ?? (_ConfirmCommand = new DelegateCommand(ExecuteConfirmCommand, CanExecuteConfirmCommand).ObservesProperty(() => Robot.RobotName));
- private DelegateCommand _CancelCommand;
- public DelegateCommand CancelCommand =>
- _CancelCommand ?? (_CancelCommand = new DelegateCommand(ExecuteCancelCommand));
- public AddRobotViewModel(IConfigService configService)
- {
- _configService = configService;
- }
- /// <summary>
- /// 确认按钮
- /// </summary>
- /// <returns></returns>
- bool CanExecuteConfirmCommand()
- {
- return Robot != null && Robot.RobotName != null && !string.IsNullOrEmpty(Robot.RobotName.Trim());
- }
- void ExecuteConfirmCommand()
- {
- if (string.IsNullOrEmpty(Robot.RobotName))
- {
- return;
- }
- if (!FileHelper.CheckFileName(Robot.RobotName))
- {
- MessageBox.Show(Lang.AddCameraVM_message1, "AAS", MessageBoxButton.OK, MessageBoxImage.Error);
- return;
- }
- if (Robot.RobotBrand == Enums.RobotBrand.XYZ_Platform)
- {
- if (Robot.PlcRobotParameter == null)
- {
- Robot.PlcRobotParameter = new PlcRobotParameter();
- }
- if (Robot.PlcRobotParameter.AxixList == null)
- {
- Robot.PlcRobotParameter.AxixList = new List<Core.Robots.Axis>();
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("X", 1));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Y", 2));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Z", 3));
- }
- }
- else if (Robot.RobotBrand == Enums.RobotBrand.XYZU_Platform)
- {
- if (Robot.PlcRobotParameter == null)
- {
- Robot.PlcRobotParameter = new PlcRobotParameter();
- }
- if (Robot.PlcRobotParameter.AxixList == null)
- {
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("X", 1));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Y", 2));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("Z", 3));
- Robot.PlcRobotParameter.AxixList.Add(new Core.Robots.Axis("U", 4));
- }
- }
- else
- {
- Robot.PlcRobotParameter = null;
- }
- IDialogParameters parameters = new DialogParameters();
- parameters.Add("Robot", Robot);
- Tuple<bool, RobotInfo> rest = new Tuple<bool, RobotInfo>(false, Robot);
- RequestClose?.Invoke(new DialogResult(ButtonResult.OK, parameters));
- }
- /// <summary>
- /// 取消按钮
- /// </summary>
- void ExecuteCancelCommand()
- {
- IDialogParameters parameters = new DialogParameters();
- parameters.Add("Robot", Robot);
- Tuple<bool, RobotInfo> rest = new Tuple<bool, RobotInfo>(false, Robot);
- RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel, parameters));
- }
- public string Title { get; set; } = "添加机器人";
- public event Action<IDialogResult> RequestClose;
- public bool CanCloseDialog()
- {
- return true;
- }
- public void OnDialogClosed()
- {
- }
- public void OnDialogOpened(IDialogParameters parameters)
- {
- Title = Lang.增加机器人;
- Robot = new RobotInfo() { Id = Guid.NewGuid(), RobotBrand = Enums.RobotBrand.Default, ConnectType = Enums.TCPConnectType.Client, Terminator = Enums.Terminator.CRLF, DataEncoding = Enums.DataEncoding.Default };
- AllPlc = new ObservableCollection<PlcInfo>(_configService.GetAllPlcs());
- }
- }
- }
|