Browse Source

更新agv界面

样式分支
fyf 2 years ago
parent
commit
f21c966b33
5 changed files with 1572 additions and 134 deletions
  1. +4
    -4
      BPASmartClient.CustomResource/Themes/MyStyle.xaml
  2. +73
    -0
      FryPot_DosingSystem/AGV/WhichCart.cs
  3. +990
    -99
      FryPot_DosingSystem/View/AgvView.xaml
  4. +34
    -29
      FryPot_DosingSystem/View/AgvView.xaml.cs
  5. +471
    -2
      FryPot_DosingSystem/ViewModel/AgvViewModel.cs

+ 4
- 4
BPASmartClient.CustomResource/Themes/MyStyle.xaml View File

@@ -451,7 +451,7 @@

<Style x:Key="border碗" TargetType="Border">
<Style.Setters>
<Setter Property="Height" Value="50"/>
<Setter Property="Height" Value="34"/>
<Setter Property="Width" Value="40"/>
<Setter Property="VerticalAlignment" Value="Bottom"/>
<Setter Property="Background">
@@ -464,9 +464,9 @@

<Style x:Key="border菜" TargetType="Border">
<Style.Setters>
<Setter Property="Margin" Value="0,3,0,0"/>
<Setter Property="Height" Value="25"/>
<Setter Property="Width" Value="33"/>
<Setter Property="Margin" Value="0,-7,0,0"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Width" Value="28"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Background">
<Setter.Value>


+ 73
- 0
FryPot_DosingSystem/AGV/WhichCart.cs View File

@@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FryPot_DosingSystem.AGV
{
/// <summary>
/// 控制车辆型号
/// </summary>
public enum WhichCart
{
一号车,
二号车,
三号车,
四号车,
}
/// <summary>
/// 控制车辆运动方式
/// </summary>
public enum CartMotionTrajectory
{
Stop,//停止

qc_1,//取菜品 1号流水线取菜
qc_2,//取菜品 2号流水线取菜
qc_3,//取菜品 3号流水线取菜

yc_1_1,//运输菜品 1号流水线-1号炒锅
yc_1_2,//运输菜品 1号流水线-2号炒锅
yc_1_3,//运输菜品 1号流水线-3号炒锅
yc_1_4,//运输菜品 1号流水线-4号炒锅
yc_1_5,//运输菜品 1号流水线-5号炒锅

yc_2_1,//运输菜品 2号流水线-1号炒锅
yc_2_2,//运输菜品 2号流水线-2号炒锅
yc_2_3,//运输菜品 2号流水线-3号炒锅
yc_2_4,//运输菜品 2号流水线-4号炒锅
yc_2_5,//运输菜品 2号流水线-5号炒锅

yc_3_1,//运输菜品 3号流水线-1号炒锅
yc_3_2,//运输菜品 3号流水线-2号炒锅
yc_3_3,//运输菜品 3号流水线-3号炒锅
yc_3_4,//运输菜品 3号流水线-4号炒锅
yc_3_5,//运输菜品 3号流水线-5号炒锅

hs_1,//1号炒锅-运输空碗到-空碗流水线
hs_2,//2号炒锅-运输空碗到-空碗流水线
hs_3,//3号炒锅-运输空碗到-空碗流水线
hs_4,//4号炒锅-运输空碗到-空碗流水线

hj,//空碗流水线-回到充电桩或者停车桩
}

/// <summary>
/// 是否
/// </summary>
public enum IsBool
{
Yes,
No
}
/// <summary>
/// 是否运行
/// </summary>
public enum IsRun
{
Start,
Stop
}
}

+ 990
- 99
FryPot_DosingSystem/View/AgvView.xaml
File diff suppressed because it is too large
View File


+ 34
- 29
FryPot_DosingSystem/View/AgvView.xaml.cs View File

@@ -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;

}

/// <summary>
/// 路径动画
/// </summary>
/// <param name="cvs">画板</param>
/// <param name="path">路径</param>
/// <param name="target">动画对象</param>
/// <param name="duration">时间</param>
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;

}
}
}

+ 471
- 2
FryPot_DosingSystem/ViewModel/AgvViewModel.cs View File

@@ -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个滚筒线控制
/// <summary>
/// 一号滚筒线
/// </summary>
private RollerLinesModel _RollerLines_1;
public RollerLinesModel RollerLines_1
{
get
{
return _RollerLines_1;
}
set
{
if (_RollerLines_1 == value)
return;
_RollerLines_1 = value;
OnPropertyChanged("RollerLines_1");
}
}
/// <summary>
/// 二号滚筒线
/// </summary>
private RollerLinesModel _RollerLines_2;
public RollerLinesModel RollerLines_2
{
get
{
return _RollerLines_2;
}
set
{
if (_RollerLines_2 == value)
return;
_RollerLines_2 = value;
OnPropertyChanged("RollerLines_2");
}
}
/// <summary>
/// 三号滚筒线
/// </summary>
private RollerLinesModel _RollerLines_3;
public RollerLinesModel RollerLines_3
{
get
{
return _RollerLines_3;
}
set
{
if (_RollerLines_3 == value)
return;
_RollerLines_3 = value;
OnPropertyChanged("RollerLines_3");
}
}
/// <summary>
/// 四号滚筒线
/// </summary>
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<ActionMenu> menus { get; set; } = new ObservableCollection<ActionMenu>();
#region 4个运动小车控制
/// <summary>
/// 一号车控制
/// </summary>
private CartModel _cartModel_1;
public CartModel cartModel_1
{
get
{
return _cartModel_1;
}
set
{
if (_cartModel_1 == value)
return;
_cartModel_1 = value;
OnPropertyChanged("cartModel_1");
}
}
/// <summary>
/// 二号车控制
/// </summary>
private CartModel _cartModel_2;
public CartModel cartModel_2
{
get
{
return _cartModel_2;
}
set
{
if (_cartModel_2 == value)
return;
_cartModel_2 = value;
OnPropertyChanged("cartModel_2");
}
}
/// <summary>
/// 三号车控制
/// </summary>
private CartModel _cartModel_3;
public CartModel cartModel_3
{
get
{
return _cartModel_3;
}
set
{
if (_cartModel_3 == value)
return;
_cartModel_3 = value;
OnPropertyChanged("cartModel_3");
}
}
/// <summary>
/// 四号车控制
/// </summary>
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个停车桩控制
/// <summary>
/// 一号停车装
/// </summary>
private ParkingPileModel _ParkingPileModel_1;
public ParkingPileModel ParkingPileModel_1
{
get
{
return _ParkingPileModel_1;
}
set
{
if (_ParkingPileModel_1 == value)
return;
_ParkingPileModel_1 = value;
OnPropertyChanged("ParkingPileModel_1");
}
}
/// <summary>
/// 二号停车装
/// </summary>
private ParkingPileModel _ParkingPileModel_2;
public ParkingPileModel ParkingPileModel_2
{
get
{
return _ParkingPileModel_2;
}
set
{
if (_ParkingPileModel_2 == value)
return;
_ParkingPileModel_2 = value;
OnPropertyChanged("ParkingPileModel_2");
}
}
/// <summary>
/// 三号停车装
/// </summary>
private ParkingPileModel _ParkingPileModel_3;
public ParkingPileModel ParkingPileModel_3
{
get
{
return _ParkingPileModel_3;
}
set
{
if (_ParkingPileModel_3 == value)
return;
_ParkingPileModel_3 = value;
OnPropertyChanged("ParkingPileModel_3");
}
}
/// <summary>
/// 四号停车装
/// </summary>
private ParkingPileModel _ParkingPileModel_4;
public ParkingPileModel ParkingPileModel_4
{
get
{
return _ParkingPileModel_4;
}
set
{
if (_ParkingPileModel_4 == value)
return;
_ParkingPileModel_4 = value;
OnPropertyChanged("ParkingPileModel_4");
}
}
/// <summary>
/// 五号停车装
/// </summary>
private ParkingPileModel _ParkingPileModel_5;
public ParkingPileModel ParkingPileModel_5
{
get
{
return _ParkingPileModel_5;
}
set
{
if (_ParkingPileModel_5 == value)
return;
_ParkingPileModel_5 = value;
OnPropertyChanged("ParkingPileModel_5");
}
}
/// <summary>
/// 六号停车装
/// </summary>
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

}

/// <summary>
/// 小车控制Model
/// </summary>
public class CartModel : ObservableObject
{

/// <summary>
/// 车上是否有物品
/// </summary>
private IsBool _isBool = IsBool.No;
public IsBool isBool
{
get
{
return _isBool;
}
set
{
_isBool = value;
Text= _isBool.ToString();
OnPropertyChanged("isBool");
}
}
/// <summary>
/// 车运动轨迹方式
/// </summary>
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");
}
}

}
/// <summary>
/// 停车装控制
/// </summary>
public class ParkingPileModel : ObservableObject
{
/// <summary>
/// 是否有小车
/// </summary>
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");
}
}
}
/// <summary>
/// 滚筒线控制
/// </summary>
public class RollerLinesModel : ObservableObject
{
/// <summary>
/// 是否运行
/// </summary>
private IsRun _isRun = IsRun.Stop;
public IsRun isRun
{
get
{
return _isRun;
}
set
{
_isRun = value;
Text= _isRun.ToString();
OnPropertyChanged("isBool");
}
}
/// <summary>
/// 滚筒线上面的数量
/// </summary>
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");
}
}
}


}

Loading…
Cancel
Save