diff --git a/BPASmartClient.CustomResource/Themes/MyStyle.xaml b/BPASmartClient.CustomResource/Themes/MyStyle.xaml index 4cf9e73a..535552ab 100644 --- a/BPASmartClient.CustomResource/Themes/MyStyle.xaml +++ b/BPASmartClient.CustomResource/Themes/MyStyle.xaml @@ -451,7 +451,7 @@ + + + + - - - + + + + + + + - + - + @@ -266,44 +1127,41 @@ - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + - - - + + - + @@ -314,41 +1172,83 @@ - - - + + + + + + + + + + + + + + + + + - - + - - - 炒锅(1)号 + + + + + + + + + + + 炒锅(1)号 - - 炒锅(2)号 + + 炒锅(2)号 - - 炒锅(3)号 + + 炒锅(3)号 - - 炒锅(4)号 + + 炒锅(4)号 - - 炒锅(5)号 + + 炒锅(5)号 - + - - - 满料桶滚筒线 - - - - - 空桶滚筒线 + + + 满料桶滚筒线 + + (1)号 + + (2)号 + + (3)号 + + 空桶滚筒线 @@ -374,21 +1274,12 @@ - - - - - - - - - - - - - - - + + + + + + diff --git a/FryPot_DosingSystem/View/AgvView.xaml.cs b/FryPot_DosingSystem/View/AgvView.xaml.cs index 5792930a..de598ba4 100644 --- a/FryPot_DosingSystem/View/AgvView.xaml.cs +++ b/FryPot_DosingSystem/View/AgvView.xaml.cs @@ -1,4 +1,5 @@ -using FryPot_DosingSystem.ViewModel; +using FryPot_DosingSystem.AGV; +using FryPot_DosingSystem.ViewModel; using System; using System.Collections.Generic; using System.Linq; @@ -30,38 +31,42 @@ namespace FryPot_DosingSystem.View private void Button_Click(object sender, RoutedEventArgs e) { - AnimationByPath(yunshuche,qc_1); + // AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.Stop; + AgvViewModel.GetInstance().ParkingPileModel_1.isBool = IsBool.No; + AgvViewModel.GetInstance().cartModel_1.isBool=IsBool.No; + AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.qc_1; + + } - /// - /// 路径动画 - /// - /// 画板 - /// 路径 - /// 动画对象 - /// 时间 - private void AnimationByPath(TextBox target, Path path, int duration = 5) + private void Button_Click_1(object sender, RoutedEventArgs e) { - target.RenderTransformOrigin = new Point(0.5, 0.5); + AgvViewModel.GetInstance().RollerLines_1.isRun = IsRun.Start; + } - MatrixTransform matrix = new MatrixTransform(); - TransformGroup groups = new TransformGroup(); - groups.Children.Add(matrix); - target.RenderTransform = groups; - string registname = "matrix" + Guid.NewGuid().ToString().Replace("-", ""); - this.RegisterName(registname, matrix); - MatrixAnimationUsingPath matrixAnimation = new MatrixAnimationUsingPath(); - matrixAnimation.PathGeometry = PathGeometry.CreateFromGeometry(Geometry.Parse(path.Data.ToString())); - matrixAnimation.Duration = new Duration(TimeSpan.FromSeconds(duration)); - matrixAnimation.DoesRotateWithTangent = true;//跟随路径旋转 - matrixAnimation.RepeatBehavior = RepeatBehavior.Forever;//循环 - Storyboard story = new Storyboard(); - story.Children.Add(matrixAnimation); - Storyboard.SetTargetName(matrixAnimation, registname); - Storyboard.SetTargetProperty(matrixAnimation, new PropertyPath(MatrixTransform.MatrixProperty)); + private void StopButton_Click(object sender, RoutedEventArgs e) + { + AgvViewModel.GetInstance().RollerLines_1.isRun = IsRun.Stop; + AgvViewModel.GetInstance().cartModel_1.isBool = IsBool.Yes; + AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.yc_1_1; + } + + private void Button_Click_2(object sender, RoutedEventArgs e) + { + AgvViewModel.GetInstance().cartModel_1.isBool = IsBool.No; + AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.hs_1; + } - story.FillBehavior = FillBehavior.Stop; - story.Begin(target, true); - } + private void Button_Click_3(object sender, RoutedEventArgs e) + { + AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.hj; + AgvViewModel.GetInstance().ParkingPileModel_1.isBool = IsBool.Yes; + } + + private void Button_Click_4(object sender, RoutedEventArgs e) + { + AgvViewModel.GetInstance().cartModel_1.cartMotionTrajectory = CartMotionTrajectory.Stop; + + } } } diff --git a/FryPot_DosingSystem/ViewModel/AgvViewModel.cs b/FryPot_DosingSystem/ViewModel/AgvViewModel.cs index a13e0d1c..c6a29caf 100644 --- a/FryPot_DosingSystem/ViewModel/AgvViewModel.cs +++ b/FryPot_DosingSystem/ViewModel/AgvViewModel.cs @@ -1,4 +1,5 @@ -using Microsoft.Toolkit.Mvvm.ComponentModel; +using FryPot_DosingSystem.AGV; +using Microsoft.Toolkit.Mvvm.ComponentModel; using System; using System.Collections.Generic; using System.Linq; @@ -17,11 +18,479 @@ namespace FryPot_DosingSystem.ViewModel public static AgvViewModel GetInstance() => _Instance ?? (_Instance = new AgvViewModel()); public AgvViewModel() { + Init(); + } + #endregion + + #region 私有函数 + public void Init() + { + //初始化车辆控制 + cartModel_1 = new CartModel(); + cartModel_2 = new CartModel(); + cartModel_3 = new CartModel(); + cartModel_4 = new CartModel(); + + RollerLines_1 = new RollerLinesModel(); + RollerLines_2 = new RollerLinesModel(); + RollerLines_3 = new RollerLinesModel(); + RollerLines_4 = new RollerLinesModel(); + + ParkingPileModel_1 = new ParkingPileModel { isBool = IsBool.Yes }; + ParkingPileModel_2 = new ParkingPileModel { isBool = IsBool.Yes }; + ParkingPileModel_3 = new ParkingPileModel { isBool = IsBool.Yes }; + ParkingPileModel_4 = new ParkingPileModel { isBool = IsBool.Yes }; + ParkingPileModel_5 = new ParkingPileModel { isBool = IsBool.No }; + ParkingPileModel_6 = new ParkingPileModel { isBool = IsBool.No }; + + RollerLines_2.DishesNum = "3"; + } + #endregion + + #region 公共函数 + #endregion + + #region 4个滚筒线控制 + /// + /// 一号滚筒线 + /// + private RollerLinesModel _RollerLines_1; + public RollerLinesModel RollerLines_1 + { + get + { + return _RollerLines_1; + } + set + { + if (_RollerLines_1 == value) + return; + _RollerLines_1 = value; + OnPropertyChanged("RollerLines_1"); + } + } + /// + /// 二号滚筒线 + /// + private RollerLinesModel _RollerLines_2; + public RollerLinesModel RollerLines_2 + { + get + { + return _RollerLines_2; + } + set + { + if (_RollerLines_2 == value) + return; + _RollerLines_2 = value; + OnPropertyChanged("RollerLines_2"); + } + } + /// + /// 三号滚筒线 + /// + private RollerLinesModel _RollerLines_3; + public RollerLinesModel RollerLines_3 + { + get + { + return _RollerLines_3; + } + set + { + if (_RollerLines_3 == value) + return; + _RollerLines_3 = value; + OnPropertyChanged("RollerLines_3"); + } + } + /// + /// 四号滚筒线 + /// + private RollerLinesModel _RollerLines_4; + public RollerLinesModel RollerLines_4 + { + get + { + return _RollerLines_4; + } + set + { + if (_RollerLines_4 == value) + return; + _RollerLines_4 = value; + OnPropertyChanged("RollerLines_4"); + } } #endregion - //public ObservableCollection menus { get; set; } = new ObservableCollection(); + #region 4个运动小车控制 + /// + /// 一号车控制 + /// + private CartModel _cartModel_1; + public CartModel cartModel_1 + { + get + { + return _cartModel_1; + } + set + { + if (_cartModel_1 == value) + return; + _cartModel_1 = value; + OnPropertyChanged("cartModel_1"); + } + } + /// + /// 二号车控制 + /// + private CartModel _cartModel_2; + public CartModel cartModel_2 + { + get + { + return _cartModel_2; + } + set + { + if (_cartModel_2 == value) + return; + _cartModel_2 = value; + OnPropertyChanged("cartModel_2"); + } + } + /// + /// 三号车控制 + /// + private CartModel _cartModel_3; + public CartModel cartModel_3 + { + get + { + return _cartModel_3; + } + set + { + if (_cartModel_3 == value) + return; + _cartModel_3 = value; + OnPropertyChanged("cartModel_3"); + } + } + /// + /// 四号车控制 + /// + private CartModel _cartModel_4; + public CartModel cartModel_4 + { + get + { + return _cartModel_4; + } + set + { + if (_cartModel_4 == value) + return; + _cartModel_4 = value; + OnPropertyChanged("cartModel_4"); + } + } + #endregion + + #region 6个停车桩控制 + /// + /// 一号停车装 + /// + private ParkingPileModel _ParkingPileModel_1; + public ParkingPileModel ParkingPileModel_1 + { + get + { + return _ParkingPileModel_1; + } + set + { + if (_ParkingPileModel_1 == value) + return; + _ParkingPileModel_1 = value; + OnPropertyChanged("ParkingPileModel_1"); + } + } + /// + /// 二号停车装 + /// + private ParkingPileModel _ParkingPileModel_2; + public ParkingPileModel ParkingPileModel_2 + { + get + { + return _ParkingPileModel_2; + } + set + { + if (_ParkingPileModel_2 == value) + return; + _ParkingPileModel_2 = value; + OnPropertyChanged("ParkingPileModel_2"); + } + } + /// + /// 三号停车装 + /// + private ParkingPileModel _ParkingPileModel_3; + public ParkingPileModel ParkingPileModel_3 + { + get + { + return _ParkingPileModel_3; + } + set + { + if (_ParkingPileModel_3 == value) + return; + _ParkingPileModel_3 = value; + OnPropertyChanged("ParkingPileModel_3"); + } + } + /// + /// 四号停车装 + /// + private ParkingPileModel _ParkingPileModel_4; + public ParkingPileModel ParkingPileModel_4 + { + get + { + return _ParkingPileModel_4; + } + set + { + if (_ParkingPileModel_4 == value) + return; + _ParkingPileModel_4 = value; + OnPropertyChanged("ParkingPileModel_4"); + } + } + /// + /// 五号停车装 + /// + private ParkingPileModel _ParkingPileModel_5; + public ParkingPileModel ParkingPileModel_5 + { + get + { + return _ParkingPileModel_5; + } + set + { + if (_ParkingPileModel_5 == value) + return; + _ParkingPileModel_5 = value; + OnPropertyChanged("ParkingPileModel_5"); + } + } + /// + /// 六号停车装 + /// + private ParkingPileModel _ParkingPileModel_6; + public ParkingPileModel ParkingPileModel_6 + { + get + { + return _ParkingPileModel_6; + } + set + { + if (_ParkingPileModel_6 == value) + return; + _ParkingPileModel_6 = value; + OnPropertyChanged("ParkingPileModel_6"); + } + } + #endregion + + } + + /// + /// 小车控制Model + /// + public class CartModel : ObservableObject + { + + /// + /// 车上是否有物品 + /// + private IsBool _isBool = IsBool.No; + public IsBool isBool + { + get + { + return _isBool; + } + set + { + _isBool = value; + Text= _isBool.ToString(); + OnPropertyChanged("isBool"); + } + } + + /// + /// 车运动轨迹方式 + /// + private CartMotionTrajectory _cartMotionTrajectory = CartMotionTrajectory.Stop; + public CartMotionTrajectory cartMotionTrajectory + { + get + { + return _cartMotionTrajectory; + } + set + { + _cartMotionTrajectory = value; + Tag= _cartMotionTrajectory.ToString(); + OnPropertyChanged("cartMotionTrajectory"); + } + } + private string _Text = IsBool.No.ToString(); + public string Text + { + get + { + return _Text; + } + set + { + _Text = value; + OnPropertyChanged("Text"); + } + } + private string _Tag = CartMotionTrajectory.Stop.ToString(); + public string Tag + { + get + { + return _Tag; + } + set + { + _Tag = value; + OnPropertyChanged("Tag"); + } + } } + /// + /// 停车装控制 + /// + public class ParkingPileModel : ObservableObject + { + /// + /// 是否有小车 + /// + private IsBool _isBool = IsBool.No; + public IsBool isBool + { + get + { + return _isBool; + } + set + { + _isBool = value; + Text = _isBool.ToString(); + OnPropertyChanged("isBool"); + } + } + private string _Text = IsBool.No.ToString(); + public string Text + { + get + { + return _Text; + } + set + { + _Text = value; + OnPropertyChanged("Text"); + } + } + } + /// + /// 滚筒线控制 + /// + public class RollerLinesModel : ObservableObject + { + /// + /// 是否运行 + /// + private IsRun _isRun = IsRun.Stop; + public IsRun isRun + { + get + { + return _isRun; + } + set + { + _isRun = value; + Text= _isRun.ToString(); + OnPropertyChanged("isBool"); + } + } + /// + /// 滚筒线上面的数量 + /// + private string _DishesNum = "8"; + public string DishesNum + { + get + { + return _DishesNum; + } + set + { + _DishesNum = value; + if (!string.IsNullOrEmpty(_DishesNum)) + { + int count = 1; + try + { + count = int.Parse(_DishesNum); + if (count > 0 && count <= 8) + { + _DishesNum = count.ToString(); + } + else + _DishesNum = 8.ToString(); + } + catch (Exception ex) + { + _DishesNum = 8.ToString(); + } + } + OnPropertyChanged("DishesNum"); + } + } + + + private string _Text = IsRun.Stop.ToString(); + public string Text + { + get + { + return _Text; + } + set + { + _Text = value; + OnPropertyChanged("Text"); + } + } + } + + }