From 30a98516836150f87e10cf01d41b4dd0ddcca01a Mon Sep 17 00:00:00 2001 From: ZhaoGang <15196688790@163.com> Date: Tue, 18 Jul 2023 15:39:40 +0800 Subject: [PATCH] 1 --- BPASmartClient.MorkCL/Control_MorkCL.cs | 74 ++++++++++--------- .../Converter/DataGridIndexConverter.cs | 28 +++++++ .../View/FryPanSelectView.xaml.cs | 1 + BPASmartClient.MorkCL/View/Test.xaml | 49 +++++++----- 4 files changed, 101 insertions(+), 51 deletions(-) create mode 100644 BPASmartClient.MorkCL/Converter/DataGridIndexConverter.cs diff --git a/BPASmartClient.MorkCL/Control_MorkCL.cs b/BPASmartClient.MorkCL/Control_MorkCL.cs index 0a38a247..5e2fc095 100644 --- a/BPASmartClient.MorkCL/Control_MorkCL.cs +++ b/BPASmartClient.MorkCL/Control_MorkCL.cs @@ -179,32 +179,32 @@ namespace BPASmartClient.MorkCL case EFunc.搅拌启动: device.StirStartOrStop = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入搅拌频率-{fm.funcPars.ElementAt(0).ParValue.ToString()}HZ。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入搅拌频率-{fm.funcPars.ElementAt(0).ParValue.ToString()}HZ。"); device.MixingFrequencySet(fm.funcPars.ElementAt(0).ParValue.ToString()); DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入搅拌频率-{fm.funcPars.ElementAt(0).ParValue.ToString()}HZ完成。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入开始搅拌。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入开始搅拌。"); device.StirStartOrStop = true; DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入开始搅拌完成。"); break; case EFunc.搅拌停止: - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入停止搅拌。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入停止搅拌。"); device.StirStartOrStop = false; DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-写入停止搅拌完成。"); break; case EFunc.加热启动: device.HeatStartOrStop = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热挡位-【{fm.funcPars.ElementAt(0).ParValue.ToString()}】。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热挡位-【{fm.funcPars.ElementAt(0).ParValue.ToString()}】。"); device.HeatingGearSet(fm.funcPars.ElementAt(0).ParValue.ToString()); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热挡位完成,设置加热启动。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热挡位-【{fm.funcPars.ElementAt(0).ParValue.ToString()}】完成,等待设置加热启动。"); device.HeatStartOrStop = true; DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热启动完成。"); break; case EFunc.加热停止: - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热停止。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热停止。"); device.HeatStartOrStop = false; DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置加热停止完成。"); break; @@ -215,9 +215,9 @@ namespace BPASmartClient.MorkCL { device.FryingPanToSeasoningLoc = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置。"); device.FryingPanToSeasoningLoc = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置完成,等待炒锅到达调料投料位置。"); //回到投料位置就复位。 @@ -252,16 +252,16 @@ namespace BPASmartClient.MorkCL DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-执行下料,控制取{ingre_index + 1}库物料,下料名称:{ingredientes.Name.ToString()},下料重量:【{fm.funcPars.ElementAt(1).ParValue.ToString()}】。"); device.FryingPanHome = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(ingre_index + 1).ToString()}】,子任务【{et}】。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(ingre_index + 1).ToString()}】,子任务【{et}】。"); robot.RobotTaskControl((ingre_index + 1).ToString(), et); DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(ingre_index + 1).ToString()}】,子任务【{et}】完成。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置。"); device.FryingPanHome = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置完成,等待炒锅回到主料辅料投料位置"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置。"); device.FeedingLocFB.Wait(Cts: TaskList[et].Cts);//等待炒锅到投料位置 device.FryingPanHome = false; DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置完成。"); @@ -269,14 +269,14 @@ namespace BPASmartClient.MorkCL DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置。"); robot.MaterialPouringRequest[index].Wait(Cts: TaskList[et].Cts); //等待机器人到投料位置也就是发出倒料请求。 - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置完成。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置完成。"); //目前程序在炒锅在投料位置时,会自动发出允许倒料信息。 //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置允许机器人开始投料。"); //robot.AllowPourVegetables(et);//允许机器人开始投料 //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置允许机器人开始投料完成。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-开始等待机器人投料完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-机器人已到达投料位置,等待机器人投料完成。"); robot.MaterialPouringComplete[index].Wait(Cts: TaskList[et].Cts); //等待机器人投料完成 DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-机器人投料完成。"); @@ -299,28 +299,28 @@ namespace BPASmartClient.MorkCL //先复位变量。防止上一次是异常结束,设为True时,不会响应。 device.FryingPanHome = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(mb.Loc + 12).ToString()}】,子任务【{et}】。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(mb.Loc + 12).ToString()}】,子任务【{et}】。"); robot.RobotTaskControl((mb.Loc + 12).ToString(), et); DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置机器人任务【{(mb.Loc + 12).ToString()}】,子任务【{et}】完成。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置。"); device.FryingPanHome = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回投料位置完成,开始等待炒锅到投料位置。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置。"); device.FeedingLocFB.Wait(Cts: TaskList[et].Cts);//等待炒锅到投料位置 device.FryingPanHome = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待炒锅到投料位置完成,等待机器人到投料位置。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置。"); robot.MaterialPouringRequest[index].Wait(Cts: TaskList[et].Cts); //等待机器人到投料位置 - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待机器人到投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-机器人到达投料位置完成,开始等待机器人投料完成。"); //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置允许机器人开始投料。"); //robot.AllowPourVegetables(et);//允许机器人开始投料 //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置允许机器人开始投料完成。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-开始等待机器人投料完成。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-开始等待机器人投料完成。"); robot.MaterialPouringComplete[index].Wait(Cts: TaskList[et].Cts); //等待机器人投料完成 DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-机器人投料完成。"); @@ -334,14 +334,14 @@ namespace BPASmartClient.MorkCL case EFunc.炒锅回原点位: device.FryingPanFeedingLoc = false; device.FryingPanHome = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回原点。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回原点。"); device.FryingPanHome = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回原点完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅回原点完成,等待炒锅回原点。"); - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待回原点完成。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-等待回原点完成。"); device.FeedingLocFB.Wait(Cts: TaskList[et].Cts); device.FryingPanHome = false; - + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅回原点完成。"); break; case EFunc.出餐启动: @@ -382,31 +382,36 @@ namespace BPASmartClient.MorkCL case EFunc.炒锅清洗: device.FryingPanClear = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅清洗。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅清洗。"); device.FryingPanClear = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅清洗已写入。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅清洗已写入,等待炒锅清洗完成。"); Thread.Sleep(500); device.CleanFinish.Wait(Cts: TaskList[et].Cts); device.FryingPanClear = false; + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅清洗完成。"); break; case EFunc.炒锅回调料投料位置: device.FryingPanToSeasoningLoc = false; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置。"); device.FryingPanToSeasoningLoc = true; - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置完成。"); + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置炒锅到调料投料位置完成,等待回到调料投料位置。"); //回到投料位置就复位。 Thread.Sleep(50); device.FeedingSeasoningLocFB.Wait(Cts: TaskList[et].Cts); device.FryingPanToSeasoningLoc = false; + DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅回到调料投料位置完成。"); break; case EFunc.去指定炒制位: - DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置去指定炒制位。"); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置去指定炒制位。"); device.SetStirFryingLoc(fm.funcPars.ElementAt(0).ParValue.ToString()); DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-设置去指定炒制位【{fm.funcPars.ElementAt(0).ParValue.ToString()}】完成。"); + //TODO:根据情况看是否需要等待反馈变量。 + //device.StirFryingLocFB[int.Parse(fm.funcPars.ElementAt(0).ParValue.ToString())].Wait(); + //DeviceProcessLogShow($"{cd.Name}-任务执行-{fm.eFunc.ToString()}-炒锅到达炒制位【{fm.funcPars.ElementAt(0).ParValue.ToString()}】。"); break; case EFunc.炒制: @@ -588,9 +593,10 @@ namespace BPASmartClient.MorkCL item.Weight = ((OtherServer)devices[EDeviceType.外部设备]).CurrentWeight; var loc = (index + 1).ToString(); - //var robot = (RobotServer)devices[EDeviceType.机器人]; - //robot.WarehousingControl(loc); - //robot.WarehousingComplete[(Convert.ToInt32(loc) - 1)].Wait(); + var robot = (RobotServer)devices[EDeviceType.机器人]; + robot.WarehousingControl(loc); + DeviceProcessLogShow($"已下发机器人物料入{loc}号库任务,等待机器人入库操作完成"); + robot.WarehousingComplete[(Convert.ToInt32(loc) - 1)].Wait(); Json.Save(); diff --git a/BPASmartClient.MorkCL/Converter/DataGridIndexConverter.cs b/BPASmartClient.MorkCL/Converter/DataGridIndexConverter.cs new file mode 100644 index 00000000..b021e74f --- /dev/null +++ b/BPASmartClient.MorkCL/Converter/DataGridIndexConverter.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Controls; +using System.Windows.Data; + +namespace BPASmartClient.MorkCL.Converter +{ + public class DataGridIndexConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + DataGridRow row = value as DataGridRow; + if (row != null) + return row.GetIndex() + 1; + else + return -1; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/BPASmartClient.MorkCL/View/FryPanSelectView.xaml.cs b/BPASmartClient.MorkCL/View/FryPanSelectView.xaml.cs index 9edc186c..c5b1e07a 100644 --- a/BPASmartClient.MorkCL/View/FryPanSelectView.xaml.cs +++ b/BPASmartClient.MorkCL/View/FryPanSelectView.xaml.cs @@ -22,6 +22,7 @@ namespace BPASmartClient.MorkCL.View public FryPanSelectView() { InitializeComponent(); + this.br.MouseLeftButtonDown += (o, e) => { if (e.LeftButton == MouseButtonState.Pressed) this.DragMove(); }; ActionManage.GetInstance.Register((object o) => { this.DialogResult = (bool)o; this.Close(); }, "CloseFryPanSelectView", true); } } diff --git a/BPASmartClient.MorkCL/View/Test.xaml b/BPASmartClient.MorkCL/View/Test.xaml index fcf7ae14..9c3b7fba 100644 --- a/BPASmartClient.MorkCL/View/Test.xaml +++ b/BPASmartClient.MorkCL/View/Test.xaml @@ -6,6 +6,8 @@ xmlns:local="clr-namespace:BPASmartClient.MorkCL.View" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:vm="clr-namespace:BPASmartClient.MorkCL.ViewModel" + xmlns:conv="clr-namespace:BPASmartClient.MorkCL.Converter" + xmlns:cu="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" Name="测试" d:DesignHeight="450" d:DesignWidth="800" @@ -20,20 +22,36 @@ + - + @@ -103,18 +121,15 @@ + Height="500" Style="{StaticResource DataGridStyle}" BorderThickness="0" + ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle}" + ItemsSource="{Binding TBS}"> + +