diff --git a/BPASmartClient.CustomResource/Themes/MyStyle.xaml b/BPASmartClient.CustomResource/Themes/MyStyle.xaml
index 535552ab..9bbfa71b 100644
--- a/BPASmartClient.CustomResource/Themes/MyStyle.xaml
+++ b/BPASmartClient.CustomResource/Themes/MyStyle.xaml
@@ -172,6 +172,13 @@
+
diff --git a/FryPot_DosingSystem/View/AgvView.xaml b/FryPot_DosingSystem/View/AgvView.xaml
index 3c826bbe..46863cb7 100644
--- a/FryPot_DosingSystem/View/AgvView.xaml
+++ b/FryPot_DosingSystem/View/AgvView.xaml
@@ -851,8 +851,8 @@
-
-
+
+
@@ -1096,21 +1096,50 @@
-
-
-
-
-
-
+
+ 停车桩测试
+ 1
+
+
+
+
+
+ 料筒控制
+ 1
+
+
+
+
+
+ 设置物料
+ 1
+ 1
+
+
+
+
+
+ 小车测试
+ 1
+
+
+
+
+
+
+ 小车?物品
+ 1
+
+
-
+
@@ -1235,18 +1264,155 @@
炒锅(5)号
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
满料桶滚筒线
- (1)号
+ (1)满料桶滚筒线
- (2)号
+ (2)满料桶滚筒线
- (3)号
+ (3)满料桶滚筒线
空桶滚筒线
@@ -1255,22 +1421,22 @@
- 停车桩(1号)
+ 停车桩(1号)
- 停车桩(2号)
+ 停车桩(2号)
- 停车桩(3号)
+ 停车桩(3号)
- 停车桩(4号)
+ 停车桩(4号)
- 充电桩(1号)
+ 充电桩(5号)
- 充电桩(2号)
+ 充电桩(6号)
diff --git a/FryPot_DosingSystem/View/AgvView.xaml.cs b/FryPot_DosingSystem/View/AgvView.xaml.cs
index de598ba4..43e1283b 100644
--- a/FryPot_DosingSystem/View/AgvView.xaml.cs
+++ b/FryPot_DosingSystem/View/AgvView.xaml.cs
@@ -27,46 +27,135 @@ namespace FryPot_DosingSystem.View
{
InitializeComponent();
this.DataContext = AgvViewModel.GetInstance();
+ 控制命令.ItemsSource = AgvViewModel.GetInstance().GetCommand();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
- // 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;
+ int id = 1;
+ if (sender is Button)
+ {
+ byte[] data;
+ bool istrue = false;
+ Button button = sender as Button;
+ if (button.Tag != null)
+ {
+ switch (button.Tag.ToString())
+ {
+ case "设置有车":
+ try
+ {
+ id=int.Parse(tcz_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-5 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set停车桩(id, IsBool.Yes);
+ break;
+ case "设置无车":
+
+ try
+ {
+ id = int.Parse(tcz_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-5 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set停车桩(id, IsBool.No);
+ break;
+ case "启动":
+ try
+ {
+ id = int.Parse(liaotong_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-5 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set滚筒线状态(id, IsRun.Start);
+ break;
+ case "停止":
+ try
+ {
+ id = int.Parse(liaotong_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-5 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set滚筒线状态(id, IsRun.Stop);
+ break;
+ case "设置物料":
+ try
+ {
+ id = int.Parse(liaotongwuliao_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-8 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set滚筒线上数量(id, liaotongwuliaoshuliang_text.Text);
+ break;
+ case "小车停止":
+ try
+ {
+ id = int.Parse(xiaoche_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-4 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set小车停止(id);
+ break;
+ case "运行小车":
+ try
+ {
+ id = int.Parse(xiaoche_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-4 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set小车运动(id, AgvViewModel.GetInstance().GetCommandValue(控制命令.Text));
+ break;
+ case "有物品":
+ try
+ {
+ id = int.Parse(xiaochewuping_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-4 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set小车是否承载物品(id, IsBool.Yes);
+ break;
+ case "无物品":
+ try
+ {
+ id = int.Parse(xiaochewuping_text.Text.ToString());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("只能输入 1-4 的数字!");
+ return;
+ }
+ AgvViewModel.GetInstance().Set小车是否承载物品(id, IsBool.No);
+ break;
-
+ }
+ }
+ }
}
- private void Button_Click_1(object sender, RoutedEventArgs e)
- {
- AgvViewModel.GetInstance().RollerLines_1.isRun = IsRun.Start;
- }
-
- 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;
- }
-
- 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 c6a29caf..7614df65 100644
--- a/FryPot_DosingSystem/ViewModel/AgvViewModel.cs
+++ b/FryPot_DosingSystem/ViewModel/AgvViewModel.cs
@@ -2,9 +2,12 @@
using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
+using System.Windows;
namespace FryPot_DosingSystem.ViewModel
{
@@ -30,25 +33,304 @@ namespace FryPot_DosingSystem.ViewModel
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 };
+ //初始化炒锅
+ wokModel_1 = new WokModel();
+ wokModel_2 = new WokModel();
+ wokModel_3 = new WokModel();
+ wokModel_4 = new WokModel();
+ wokModel_5 = new WokModel();
+ Test();
+ }
+ #endregion
+ #region 公共调用函数
+ public void Test()
+ {
RollerLines_2.DishesNum = "3";
+
+
+ wokModel_1.goodsName = "番茄炒蛋";
+ wokModel_1.workflows = new ObservableCollection
+ {
+ new WorkflowModel {id=1,Name="取番茄",isBool= IsBool.Yes},
+ new WorkflowModel {id=2,Name="取蛋" } };
}
- #endregion
+ ///
+ /// 设置停车桩或充电桩
+ ///
+ /// 设置哪一个停车桩:1 2 3(5 6 为充电桩)
+ /// 是否有小车
+ public void Set停车桩(int id, IsBool isBool)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ ParkingPileModel_1.isBool = isBool;
+ break;
+ case 2:
+ ParkingPileModel_2.isBool = isBool;
+ break;
+ case 3:
+ ParkingPileModel_3.isBool = isBool;
+ break;
+ case 4:
+ ParkingPileModel_4.isBool = isBool;
+ break;
+ case 5:
+ ParkingPileModel_5.isBool = isBool;
+ break;
+ case 6:
+ ParkingPileModel_6.isBool = isBool;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
- #region 公共函数
+ }
+ }
+ ///
+ /// 小车停止
+ ///
+ /// 默认:1 2 3 4,代表四辆车
+ public void Set小车停止(int id)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ cartModel_1.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ break;
+ case 2:
+ cartModel_2.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ break;
+ case 3:
+ cartModel_3.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ break;
+ case 4:
+ cartModel_4.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ ///
+ /// 控制小车运行
+ ///
+ /// 默认:1 2 3 4,代表四辆车
+ ///
+ public void Set小车运动(int id, CartMotionTrajectory cart)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ cartModel_1.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ Thread.Sleep(10);
+ cartModel_1.cartMotionTrajectory = cart;
+ break;
+ case 2:
+ cartModel_2.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ Thread.Sleep(10);
+ cartModel_2.cartMotionTrajectory = cart;
+ break;
+ case 3:
+ cartModel_3.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ Thread.Sleep(10);
+ cartModel_3.cartMotionTrajectory = cart;
+ break;
+ case 4:
+ cartModel_4.cartMotionTrajectory = CartMotionTrajectory.Stop;
+ Thread.Sleep(10);
+ cartModel_4.cartMotionTrajectory = cart;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ ///
+ /// 小车是否承载物品
+ ///
+ /// 默认:1 2 3 4,代表四辆车
+ ///
+ public void Set小车是否承载物品(int id, IsBool cart)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ cartModel_1.isBool = cart;
+ break;
+ case 2:
+ cartModel_2.isBool = cart;
+ break;
+ case 3:
+ cartModel_3.isBool = cart;
+ break;
+ case 4:
+ cartModel_4.isBool = cart;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ ///
+ /// 小车是否承载物品
+ ///
+ /// 默认:1 2 3 4,代表四条滚筒线,(4 代表空桶线)
+ ///
+ public void Set滚筒线状态(int id, IsRun cart)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ RollerLines_1.isRun = cart;
+ break;
+ case 2:
+ RollerLines_2.isRun = cart;
+ break;
+ case 3:
+ RollerLines_3.isRun = cart;
+ break;
+ case 4:
+ RollerLines_4.isRun = cart;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ ///
+ /// 滚筒线上数量
+ ///
+ /// 默认:1 2 3 4,代表四条滚筒线,(4 代表空桶线)
+ /// 默认: 1 - 8,最多承载 8个菜品或者8个空碗
+ public void Set滚筒线上数量(int id, string cart)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ RollerLines_1.DishesNum = cart;
+ break;
+ case 2:
+ RollerLines_2.DishesNum = cart;
+ break;
+ case 3:
+ RollerLines_3.DishesNum = cart;
+ break;
+ case 4:
+ RollerLines_4.DishesNum = cart;
+ break;
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ ///
+ /// 设置炒锅显示流程
+ ///
+ /// 默认:1 2 3 4 5,代表五个炒锅
+ ///
+ public void Set炒锅显示流程(int id, WokModel mode)
+ {
+ try
+ {
+ switch (id)
+ {
+ case 1:
+ wokModel_1=mode;
+ break;
+ case 2:
+ wokModel_2 = mode;
+ break;
+ case 3:
+ wokModel_3 = mode;
+ break;
+ case 4:
+ wokModel_4 = mode;
+ break;
+ case 5:
+ wokModel_5 = mode;
+ break;
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ ///
+ /// 获取所有命令
+ ///
+ public List GetCommand()
+ {
+ List vs = new List();
+ try
+ {
+ vs = System.Enum.GetNames(typeof(CartMotionTrajectory))?.ToList();
+ }
+ catch (Exception ex)
+ {
+ return vs;
+ }
+ return vs;
+ }
+ ///
+ /// 根据命令获取值
+ ///
+ public CartMotionTrajectory GetCommandValue(string name)
+ {
+ return ToEnumValue(name);
+ }
+ ///
+ /// 根据枚举名称获取枚举值
+ ///
+ public T ToEnumValue(string name)
+ {
+ return (T)Enum.Parse(typeof(T), name);
+ }
#endregion
#region 4个滚筒线控制
@@ -312,6 +594,98 @@ namespace FryPot_DosingSystem.ViewModel
}
#endregion
+ #region 5个炒锅流程控制
+ ///
+ /// 一号炒锅工作流程
+ ///
+ private WokModel _wokModel_1;
+ public WokModel wokModel_1
+ {
+ get
+ {
+ return _wokModel_1;
+ }
+ set
+ {
+ if (_wokModel_1 == value)
+ return;
+ _wokModel_1 = value;
+ OnPropertyChanged("wokModel_1");
+ }
+ }
+ ///
+ /// 二号炒锅工作流程
+ ///
+ private WokModel _wokModel_2;
+ public WokModel wokModel_2
+ {
+ get
+ {
+ return _wokModel_2;
+ }
+ set
+ {
+ if (_wokModel_2 == value)
+ return;
+ _wokModel_2 = value;
+ OnPropertyChanged("wokModel_2");
+ }
+ }
+ ///
+ /// 三号炒锅工作流程
+ ///
+ private WokModel _wokModel_3;
+ public WokModel wokModel_3
+ {
+ get
+ {
+ return _wokModel_3;
+ }
+ set
+ {
+ if (_wokModel_3 == value)
+ return;
+ _wokModel_3 = value;
+ OnPropertyChanged("wokModel_3");
+ }
+ }
+ ///
+ /// 四号炒锅工作流程
+ ///
+ private WokModel _wokModel_4;
+ public WokModel wokModel_4
+ {
+ get
+ {
+ return _wokModel_4;
+ }
+ set
+ {
+ if (_wokModel_4 == value)
+ return;
+ _wokModel_4 = value;
+ OnPropertyChanged("wokModel_4");
+ }
+ }
+ ///
+ /// 五号炒锅工作流程
+ ///
+ private WokModel _wokModel_5;
+ public WokModel wokModel_5
+ {
+ get
+ {
+ return _wokModel_5;
+ }
+ set
+ {
+ if (_wokModel_5 == value)
+ return;
+ _wokModel_5 = value;
+ OnPropertyChanged("wokModel_5");
+ }
+ }
+ #endregion
}
///
@@ -319,7 +693,6 @@ namespace FryPot_DosingSystem.ViewModel
///
public class CartModel : ObservableObject
{
-
///
/// 车上是否有物品
///
@@ -333,11 +706,10 @@ namespace FryPot_DosingSystem.ViewModel
set
{
_isBool = value;
- Text= _isBool.ToString();
+ Text = _isBool.ToString();
OnPropertyChanged("isBool");
}
}
-
///
/// 车运动轨迹方式
///
@@ -351,7 +723,7 @@ namespace FryPot_DosingSystem.ViewModel
set
{
_cartMotionTrajectory = value;
- Tag= _cartMotionTrajectory.ToString();
+ Tag = _cartMotionTrajectory.ToString();
OnPropertyChanged("cartMotionTrajectory");
}
}
@@ -437,7 +809,7 @@ namespace FryPot_DosingSystem.ViewModel
set
{
_isRun = value;
- Text= _isRun.ToString();
+ Text = _isRun.ToString();
OnPropertyChanged("isBool");
}
}
@@ -475,8 +847,6 @@ namespace FryPot_DosingSystem.ViewModel
OnPropertyChanged("DishesNum");
}
}
-
-
private string _Text = IsRun.Stop.ToString();
public string Text
{
@@ -491,6 +861,203 @@ namespace FryPot_DosingSystem.ViewModel
}
}
}
+ ///
+ /// 炒锅 流程控制
+ ///
+ public class WokModel : ObservableObject
+ {
+ ///
+ /// id
+ ///
+ private string _id;
+ public string id
+ {
+ get
+ {
+ return _id;
+ }
+ set
+ {
+ _id = value;
+ OnPropertyChanged("id");
+ }
+ }
+ ///
+ /// 订单id
+ ///
+ private string _orderID;
+ public string orderID
+ {
+ get
+ {
+ return _orderID;
+ }
+ set
+ {
+ _orderID = value;
+ OnPropertyChanged("orderID");
+ }
+ }
+ ///
+ /// 商品名称
+ ///
+ private string _goodsName;
+ public string goodsName
+ {
+ get
+ {
+ return _goodsName;
+ }
+ set
+ {
+ _goodsName = value;
+ OnPropertyChanged("goodsName");
+ }
+ }
+ ///
+ /// 其他信息
+ ///
+ private string _other;
+ public string other
+ {
+ get
+ {
+ return _other;
+ }
+ set
+ {
+ _other = value;
+ OnPropertyChanged("other");
+ }
+ }
+ ///
+ /// 工作流程
+ ///
+ private ObservableCollection _workflows = new ObservableCollection();
+ public ObservableCollection workflows
+ {
+ get
+ {
+ return _workflows;
+ }
+ set
+ {
+ _workflows = value;
+ OnPropertyChanged("workflows");
+ }
+ }
+ public WokModel()
+ {
+ id = Guid.NewGuid().ToString();
+ workflows = new ObservableCollection();
+ }
+ }
+ ///
+ /// 工作流程
+ ///
+ public class WorkflowModel : ObservableObject
+ {
+ ///
+ /// 序号默认:1-10
+ ///
+ private int _id=1;
+ public int id
+ {
+ get
+ {
+ return _id;
+ }
+ set
+ {
+ _id = value;
+ xh = GetXH.ID(_id);
+ OnPropertyChanged("id");
+ }
+ }
+ ///
+ /// 名称
+ ///
+ private string _Name;
+ public string Name
+ {
+ get
+ {
+ return _Name;
+ }
+ set
+ {
+ _Name = value;
+ OnPropertyChanged("Name");
+ }
+ }
+ ///
+ /// 是否已完成当前步骤
+ ///
+ private IsBool _isBool = IsBool.No;
+ public IsBool isBool
+ {
+ get
+ {
+ return _isBool;
+ }
+ set
+ {
+ _isBool = value;
+ if (_isBool == IsBool.Yes)
+ {
+ visibility = Visibility.Visible;
+ }
+ else
+ {
+ visibility = Visibility.Collapsed;
+ }
+ OnPropertyChanged("isBool");
+ }
+ }
+ private Visibility _visibility = Visibility.Collapsed;
+ public Visibility visibility
+ {
+ get
+ {
+ return _visibility;
+ }
+ set
+ {
+ _visibility = value;
+ OnPropertyChanged("visibility");
+ }
+ }
+ private string _xh;
+ public string xh
+ {
+ get
+ {
+ return _xh;
+ }
+ set
+ {
+ _xh = value;
+ OnPropertyChanged("xh");
+ }
+ }
+ }
+ ///
+ /// 获取序号
+ ///
+ static class GetXH
+ {
+ //①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿
+ public static string ID(int i)
+ {
+ string strbu = "① ";
+ string str = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿";
+ if (i <= 50)
+ {
+ strbu= str.Substring(i-1, 1)+" ";
+ }
+ return strbu;
+ }
+ }
}