@@ -44,7 +44,8 @@ namespace BPASmartClient.Helper | |||
public void Send(string key, object par, Action Callback = null) | |||
{ | |||
lock (SendLock) | |||
if (actions.ContainsKey(key)) actions[key].ActionPar.Invoke(par, Callback); | |||
if (actions.ContainsKey(key)) | |||
actions[key].ActionPar.Invoke(par, Callback); | |||
} | |||
public async void SendAsync(string key, object par, Action Callback = null) | |||
@@ -11,6 +11,7 @@ namespace BPASmartClient.Model.大炒 | |||
public string GoodName { get; set; } | |||
public string GoodKey { get; set; } | |||
public List<FryPotProcess> fryPotProcesses { get; set; } = new List<FryPotProcess>(); | |||
public int FryOffStirTime;//关火翻炒时间; | |||
} | |||
public class FryPotProcess | |||
@@ -1,10 +1,10 @@ | |||
using BPA.Helper; | |||
using BPA.Message; | |||
using BPA.Message; | |||
using BPA.Message.Enum; | |||
using BPASmartClient.Business; | |||
using BPASmartClient.Device; | |||
using BPASmartClient.EventBus; | |||
using BPASmartClient.Helper; | |||
using BPASmartClient.Message; | |||
using BPASmartClient.Model; | |||
using BPASmartClient.Model.大炒; | |||
using BPASmartClient.MorkBF.Model; | |||
@@ -17,8 +17,6 @@ using System.Threading; | |||
using System.Threading.Tasks; | |||
using static BPASmartClient.EventBus.EventBus; | |||
using static BPASmartClient.Model.大炒.FryPotMessages; | |||
using ActionManage = BPA.Helper.ActionManage; | |||
using ThreadManage = BPA.Helper.ThreadManage; | |||
namespace BPASmartClient.MorkBF | |||
{ | |||
@@ -28,15 +26,30 @@ namespace BPASmartClient.MorkBF | |||
public override DeviceClientType DeviceType => DeviceClientType.MORKCS; | |||
int RobotLeadTime = 5;//机器人提前动作时间 s | |||
public override void DoMain() | |||
{ | |||
IsHealth = true; | |||
BPASmartClient.Helper.Json<LocalFryPotMessage>.Read(); | |||
MonitorViewModel.DeviceId = DeviceId; | |||
ActionManage.GetInstance.Register(new Action(() => | |||
{ | |||
GlobalFoodMenu.LocalFoodMenus.Clear(); | |||
if(BPASmartClient.Helper.Json<LocalFryPotMessage>.Data.FryPotMessage.Count>0) | |||
{ | |||
foreach (var item in BPASmartClient.Helper.Json<LocalFryPotMessage>.Data.FryPotMessage) | |||
{ | |||
GlobalFoodMenu.LocalFoodMenus.Add(new FoodMenuModel { GoodKey = item.GoodKey, GoodName = item.GoodName }); | |||
} | |||
} | |||
}), "更新菜单"); | |||
CommandRegist();//调试 | |||
ServerInit(); | |||
DataParse();//数据解析 | |||
ScreenDataServer();//大屏数据上报 | |||
ActionManage.GetInstance.Send("更新菜单"); | |||
DeviceProcessLogShow("MORKF 设备初始化完成"); | |||
} | |||
@@ -109,7 +122,7 @@ namespace BPASmartClient.MorkBF | |||
ActionManage.GetInstance.Register(FirePot_PotGotoP2, "FirePot_PotGotoP2");//炒锅去位置2 | |||
ActionManage.GetInstance.Register(FirePot_PotGotoP3, "FirePot_PotGotoP3");//炒锅去位置3 | |||
ActionManage.GetInstance.Register(FirePot_PotGotoP4, "FirePot_PotGotoP4");//炒锅去位置4 | |||
ActionManage.GetInstance.Register(FirePot_PotGotoOutFoodPositiong, "FirePot_PotGotoOutFoodPositiong");//炒锅去出餐位置 | |||
//ActionManage.GetInstance.Register(FirePot_PotGotoOutFoodPosition, "FirePot_PotGotoOutFoodPositiong");//炒锅去出餐位置 | |||
ActionManage.GetInstance.Register(FirePot_PotGotoInFoodPosition, "FirePot_PotGotoInFoodPosition");//炒锅去投料位置 | |||
ActionManage.GetInstance.Register(FirePot_StartOutFood, "FirePot_StartOutFood");//出餐启动 | |||
ActionManage.GetInstance.Register(FirePot_Clean, "FirePot_Clean");//清洗 | |||
@@ -156,27 +169,33 @@ namespace BPASmartClient.MorkBF | |||
if(morkBF.FirePan1_Order.TryDequeue(out FryPotMessages result)) | |||
{ | |||
morkBF.FirePan1_Busy = true; | |||
morkBF.FryPot1_CurrentProcess = result.fryPotProcesses; | |||
foreach (var item in result.fryPotProcesses) | |||
{ | |||
switch (item.fryActions) | |||
{ | |||
case FryAction.冷锅加热: | |||
FirePot_PotPerHeat(item, 1); | |||
MessageLog.GetInstance.Show("炒锅1---冷锅加热完成"); | |||
break; | |||
case FryAction.热油: | |||
FirePot_HeatOil(item,1); | |||
MessageLog.GetInstance.Show("炒锅1---热油完成"); | |||
break; | |||
case FryAction.加调料: | |||
FirePot_AddSeasoning(item, 1); | |||
MessageLog.GetInstance.Show("炒锅1---加调料完成"); | |||
break; | |||
case FryAction.加辅料: | |||
FirePot_AddAccessories(item,1); | |||
MessageLog.GetInstance.Show("炒锅1---加辅料完成"); | |||
break; | |||
case FryAction.炒制菜品: | |||
FirePot_FryFood(item,1); | |||
MessageLog.GetInstance.Show("炒锅1---炒制菜品完成"); | |||
break; | |||
default: | |||
@@ -194,24 +213,45 @@ namespace BPASmartClient.MorkBF | |||
#region 炒锅流程功能 | |||
private bool IsRobotNextWork(List<FryPotProcess> currentProcess, int currentFryTime) | |||
{ | |||
bool res = false; | |||
if(currentProcess.Count> currentFryTime) | |||
{ | |||
if (currentProcess[currentFryTime + 1].fryActions == FryAction.加调料 || | |||
currentProcess[currentFryTime + 1].fryActions == FryAction.加辅料 || | |||
currentProcess[currentFryTime + 1].fryActions == FryAction.炒制菜品) | |||
{ | |||
res = true; | |||
} | |||
} | |||
return res; | |||
} | |||
/// <summary> | |||
/// 冷锅预热 | |||
/// </summary> | |||
private void FirePot_PotPerHeat(FryPotProcess item,int i) | |||
{ | |||
bool isRobotWork = false; | |||
if(i == 1)//炒锅1 | |||
{ | |||
FirePot1_SetFireGear(item.FryGear); | |||
Thread.Sleep(200); | |||
FirePot1_StartFire(true); | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot1_CurrentProcess,item.FryTime); | |||
} | |||
else if(i == 2)//炒锅2 | |||
{ | |||
FirePot2_SetFireGear(item.FryGear); | |||
FirePot2_StartFire(true); | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot2_CurrentProcess, item.FryTime); | |||
} | |||
Thread.Sleep(item.FryDuration); | |||
if (isRobotWork && item.FryDuration > RobotLeadTime) Thread.Sleep((item.FryDuration - RobotLeadTime) * 1000);//提前10秒机器人去取物料 | |||
else Thread.Sleep(item.FryDuration * 1000); | |||
} | |||
/// <summary> | |||
@@ -219,17 +259,21 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void FirePot_HeatOil(FryPotProcess item, int i) | |||
{ | |||
bool isRobotWork = false; | |||
if (item.FryGear != 0) | |||
{ | |||
FirePot1_SetFireGear(item.FryGear);//设定加热挡位 | |||
FirePot1_StartFire(true);//开启加热 | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot1_CurrentProcess, item.FryTime); | |||
} | |||
if (item.StirGear != 0) | |||
{ | |||
FirePot1_SetStirGear(item.StirGear);//设定搅拌挡位 | |||
FirePot1_StartFire(true);//开启搅拌 | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot2_CurrentProcess, item.FryTime); | |||
} | |||
Thread.Sleep(item.FryDuration);//加热时间; | |||
if (isRobotWork && item.FryDuration > RobotLeadTime) Thread.Sleep((item.FryDuration - RobotLeadTime) * 1000);//提前10秒机器人去取物料 | |||
else Thread.Sleep(item.FryDuration * 1000);//加热时间; | |||
} | |||
/// <summary> | |||
@@ -237,6 +281,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void FirePot_AddSeasoning(FryPotProcess item,int i) | |||
{ | |||
if(i == 1) | |||
{ | |||
@@ -260,7 +305,7 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
if (i == 1) | |||
{ | |||
morkBF.RobotActinQueue.Enqueue(new RobotAction_Pot { Pot = 1, robotActionModel = RobotActionModel.取1号炒锅辅料盆1倒入1号炒锅 }); | |||
Thread.Sleep(item.FryDuration); | |||
@@ -279,6 +324,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void FirePot_FryFood(FryPotProcess item, int i) | |||
{ | |||
bool isRobotWork = false; | |||
if (i == 1) | |||
{ | |||
morkBF.RobotActinQueue.Enqueue(new RobotAction_Pot { Pot = 1, robotActionModel = (RobotActionModel)item.accessories[0].Loc }); | |||
@@ -286,7 +332,8 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
Thread.Sleep(item.FryDuration); | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot2_CurrentProcess, item.FryTime); | |||
} | |||
@@ -297,8 +344,11 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
Thread.Sleep(item.FryDuration); | |||
isRobotWork = IsRobotNextWork(morkBF.FryPot2_CurrentProcess, item.FryTime); | |||
} | |||
if (isRobotWork && item.FryDuration > RobotLeadTime) Thread.Sleep((item.FryDuration - RobotLeadTime) * 1000);//提前10秒机器人去取物料 | |||
else Thread.Sleep(item.FryDuration * 1000);//加热时间; | |||
} | |||
#endregion | |||
@@ -317,27 +367,28 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
if (robotAction.robotActionModel == RobotActionModel.取1号空盆出餐) | |||
{ | |||
Robot_Write("GM521", true);//炒锅去投料位置 | |||
Robot_Write("GM520", true);//机器人去出餐倒料减速位置 | |||
while(!morkBF.Robot_ArriveFirePot1)//机器人到位,请求1#炒锅倒菜 | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
FirePot_Write("M11.6", true);//炒锅去出餐倒料位置 | |||
FirePot_StartOutFood(1);//炒锅出餐; | |||
while (!morkBF.FirePot1_PotOnOutFoodPosition)//炒锅在出餐倒料位置反馈 | |||
{ | |||
Thread.Sleep(1000); | |||
} | |||
Thread.Sleep(20 * 1000);//等待20s出餐 | |||
Thread.Sleep(6 * 1000);//等待6s出餐 | |||
Robot_Write("GM521", true);//机器人出餐到料完成 | |||
} | |||
else | |||
{ | |||
FirePot_Write("M11.7", true);//炒锅去投料位置 | |||
FirePot_Write("M11.6", true);//炒锅去投料位置 | |||
while (!morkBF.FirePot1_PotOnIntoFoodPosition)//等待炒锅允许倒料 | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
Robot_Write("GM520", true);//机器人投料 | |||
Robot_Write("GM531", true);//机器人投料 | |||
} | |||
} | |||
@@ -345,17 +396,18 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
if (robotAction.robotActionModel == RobotActionModel.取1号空盆出餐) | |||
{ | |||
Robot_Write("GM531", true);//炒锅去投料位置 | |||
Robot_Write("GM522", true);//炒锅去出餐倒料减速位置 | |||
while (!morkBF.Robot_ArriveFirePot2)//机器人到位,请求1#炒锅倒菜 | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
FirePot_Write("M16.6", true);//炒锅去出餐倒料位置 | |||
FirePot_StartOutFood(2);//炒锅去出餐倒料位置 | |||
while (!morkBF.FirePot2_PotOnOutFoodPosition)//炒锅在出餐倒料位置反馈 | |||
{ | |||
Thread.Sleep(1000); | |||
} | |||
Thread.Sleep(20 * 1000);//等待20s出餐 | |||
Thread.Sleep(6 * 1000);//等待20s出餐 | |||
Robot_Write("GM523", true);//机器人出餐倒料完成 | |||
} | |||
else | |||
@@ -365,7 +417,7 @@ namespace BPASmartClient.MorkBF | |||
{ | |||
Thread.Sleep(100); | |||
} | |||
Robot_Write("GM530", true); | |||
Robot_Write("GM531", true); | |||
} | |||
} | |||
@@ -550,9 +602,9 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot1_SetFireGear(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int value) | |||
if (int.TryParse(o.ToString(), out int value)) | |||
{ | |||
FirePot_Write("VW100", value); | |||
FirePot_Write("VW100", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
} | |||
@@ -563,11 +615,12 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot1_StartFire(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is bool value) | |||
if (bool.TryParse(o.ToString(), out bool value)) | |||
{ | |||
FirePot_Write("M10.0", value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M10.2", true); | |||
} | |||
/// <summary> | |||
/// 炒锅1设置搅拌挡位 | |||
@@ -576,11 +629,12 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot1_SetStirGear(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int value) | |||
if (int.TryParse(o.ToString(), out int value)) | |||
{ | |||
FirePot_Write("VW102", value); | |||
FirePot_Write("VW102", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M10.3", true); | |||
} | |||
/// <summary> | |||
/// 炒锅1搅拌启停 | |||
@@ -589,7 +643,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot1_StartStir(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is bool value) | |||
if (bool.TryParse(o.ToString(), out bool value)) | |||
{ | |||
FirePot_Write("M10.1", value); | |||
} | |||
@@ -602,11 +656,13 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot1_SetTurnSpeed(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int value) | |||
if (int.TryParse(o.ToString(), out int value)) | |||
{ | |||
FirePot_Write("VW104", value); | |||
FirePot_Write("VW104", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M10.4", true); | |||
Thread.Sleep(200); | |||
} | |||
#endregion | |||
@@ -618,11 +674,12 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot2_SetFireGear(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int value) | |||
if (int.TryParse(o.ToString(), out int value)) | |||
{ | |||
FirePot_Write("VW130", value); | |||
FirePot_Write("VW130", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M15.2", true); | |||
} | |||
/// <summary> | |||
/// 炒锅2加热启停 | |||
@@ -646,9 +703,11 @@ namespace BPASmartClient.MorkBF | |||
if (o == null) return; | |||
if (o is int value) | |||
{ | |||
FirePot_Write("VW132", value); | |||
FirePot_Write("VW132", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M15.3", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
/// 炒锅2搅拌启停 | |||
@@ -672,9 +731,11 @@ namespace BPASmartClient.MorkBF | |||
if (o == null) return; | |||
if (o is int value) | |||
{ | |||
FirePot_Write("VW134", value); | |||
FirePot_Write("VW134", (ushort)value); | |||
} | |||
Thread.Sleep(200); | |||
FirePot_Write("M15.4", true); | |||
Thread.Sleep(200); | |||
} | |||
#endregion | |||
@@ -687,7 +748,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_Reset(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -708,7 +769,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoOrigin(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -728,7 +789,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoP1(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -748,7 +809,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoP2(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -768,7 +829,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoP3(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -788,7 +849,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoP4(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -801,26 +862,26 @@ namespace BPASmartClient.MorkBF | |||
} | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
/// 炒锅去出餐位置 | |||
/// </summary> | |||
/// <param name="o"></param> | |||
private void FirePot_PotGotoOutFoodPositiong(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
{ | |||
if (i == 1) | |||
{ | |||
FirePot_Write("M11.6", true); | |||
} | |||
else if (i == 2) | |||
{ | |||
FirePot_Write("M16.6", true); | |||
} | |||
} | |||
Thread.Sleep(200); | |||
} | |||
///// <summary> | |||
///// 炒锅去出餐位置 | |||
///// </summary> | |||
///// <param name="o"></param> | |||
//private void FirePot_PotGotoOutFoodPositiong(object o) | |||
//{ | |||
// if (o == null) return; | |||
// if (o is int i) | |||
// { | |||
// if (i == 1) | |||
// { | |||
// FirePot_Write("M11.6", true); | |||
// } | |||
// else if (i == 2) | |||
// { | |||
// FirePot_Write("M16.6", true); | |||
// } | |||
// } | |||
// Thread.Sleep(200); | |||
//} | |||
/// <summary> | |||
/// 炒锅去投料位置 | |||
/// </summary> | |||
@@ -828,15 +889,15 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_PotGotoInFoodPosition(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString() ,out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
FirePot_Write("M11.7", true); | |||
FirePot_Write("M11.6", true); | |||
} | |||
else if (i == 2) | |||
{ | |||
FirePot_Write("M16.7", true); | |||
FirePot_Write("M16.6", true); | |||
} | |||
} | |||
Thread.Sleep(200); | |||
@@ -848,7 +909,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_StartOutFood(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -869,7 +930,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_Clean(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -890,7 +951,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_StartPumpWater(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -910,7 +971,7 @@ namespace BPASmartClient.MorkBF | |||
private void FirePot_StartPumpOil(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is int i) | |||
if (int.TryParse(o.ToString(), out int i)) | |||
{ | |||
if (i == 1) | |||
{ | |||
@@ -963,7 +1024,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void Robot_Pot1AllowInMaterail() | |||
{ | |||
Robot_Write("GM520", true); | |||
Robot_Write("GM531", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
@@ -971,7 +1032,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void Robot_Pot1OutFoodInSlowDown() | |||
{ | |||
Robot_Write("GM621", true); | |||
Robot_Write("GM620", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
@@ -979,7 +1040,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void Robot_Pot1OutFood() | |||
{ | |||
Robot_Write("GM522", true); | |||
Robot_Write("GM521", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
@@ -995,7 +1056,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void Robot_Pot2OutFoodInSlowDown() | |||
{ | |||
Robot_Write("GM531", true); | |||
Robot_Write("GM522", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
@@ -1003,7 +1064,7 @@ namespace BPASmartClient.MorkBF | |||
/// </summary> | |||
private void Robot_Pot2OutFood() | |||
{ | |||
Robot_Write("GM532", true); | |||
Robot_Write("GM523", true); | |||
Thread.Sleep(200); | |||
} | |||
/// <summary> | |||
@@ -1012,7 +1073,7 @@ namespace BPASmartClient.MorkBF | |||
private void RobotActionStart(object o) | |||
{ | |||
if (o == null) return; | |||
if(o is int value) | |||
if(int.TryParse(o.ToString(), out int value)) | |||
{ | |||
Robot_Write("GI0",value); | |||
} | |||
@@ -32,6 +32,15 @@ namespace BPASmartClient.MorkBF | |||
/// 炒锅2忙碌 | |||
/// </summary> | |||
public bool FirePan2_Busy = false; | |||
/// <summary> | |||
/// 炒锅1当前流程 | |||
/// </summary> | |||
public List<FryPotProcess> FryPot1_CurrentProcess; | |||
/// <summary> | |||
/// 炒锅2当前流程 | |||
/// </summary> | |||
public List<FryPotProcess> FryPot2_CurrentProcess; | |||
#region 炒锅1读取数据 | |||
/// <summary> | |||
@@ -21,13 +21,11 @@ | |||
</UserControl.Resources> | |||
<Grid> | |||
<Grid.RowDefinitions> | |||
<RowDefinition Height="40"/> | |||
<RowDefinition Height="2*"/> | |||
<RowDefinition Height="*"/> | |||
<RowDefinition Height="*"/> | |||
<RowDefinition Height="*"/> | |||
</Grid.RowDefinitions> | |||
<Button Content="添加新菜品" Width="200" Click="Button_Click"/> | |||
<!--<Button Content="添加新菜品" Width="200" Click="Button_Click"/> | |||
<ListBox Grid.Row="1" ItemsSource="{Binding fryPotMessages}"> | |||
<ListBox.Template> | |||
<ControlTemplate TargetType="{x:Type ListBox}"> | |||
@@ -51,18 +49,18 @@ | |||
</DataTemplate> | |||
</ListBox.ItemTemplate> | |||
</ListBox> | |||
</ListBox>--> | |||
<GroupBox Grid.Row="2" Header="炒锅1" FontSize="22"> | |||
<GroupBox Grid.Row="0" Header="炒锅1" FontSize="22"> | |||
<WrapPanel Orientation="Horizontal"> | |||
<Button Content="复位" Width="110" Margin="10,5" Command="{Binding FirePot_ResetCommand}" CommandParameter="1"/> | |||
<TextBlock Text="加热挡位" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding FireGear}" Margin="10,5" SelectedItem="{Binding FirePot1_FireGear}"/> | |||
<ComboBox Width="80" ItemsSource="{Binding FireGear}" Margin="10,5" SelectedItem="{Binding FirePot1_FireGear}" SelectedIndex="0" /> | |||
<Button Content="加热档位设定" Width="110" Margin="10,5" Command="{Binding FirePot1_SetFireGearCommand}"/> | |||
<Button Content="加热启动" Width="80" Margin="10,5" Command="{Binding FirePot1_StartFireCommand}"/> | |||
<Button Content="加热停止" Width="80" Margin="10,5,30,5" Command="{Binding FirePot1_StopFireCommand}"/> | |||
<TextBlock Text="搅拌挡位" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding StirGear}" SelectedItem="{Binding FirePot1_StirGear}" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding StirGear}" SelectedItem="{Binding FirePot1_StirGear}" Margin="10,5" SelectedIndex="0" /> | |||
<Button Content="搅拌档位设定" Width="110" Margin="10,5" Command="{Binding FirePot1_SetStirGearCommand}"/> | |||
<Button Content="搅拌启动" Width="80" Margin="10,5" Command="{Binding FirePot1_StartStirCommand}"/> | |||
<Button Content="搅拌停止" Width="80" Margin="10,5,30,5" Command="{Binding FirePot1_StopStirCommand}"/> | |||
@@ -83,16 +81,16 @@ | |||
</WrapPanel> | |||
</GroupBox> | |||
<GroupBox Grid.Row="3" Header="炒锅2" FontSize="22"> | |||
<GroupBox Grid.Row="1" Header="炒锅2" FontSize="22"> | |||
<WrapPanel Grid.Row="1" Orientation="Horizontal"> | |||
<Button Content="复位" Width="110" Margin="10,5" Command="{Binding FirePot_ResetCommand}" CommandParameter="1"/> | |||
<TextBlock Text="加热挡位" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding FireGear}" Margin="10,5" SelectedItem="{Binding FirePot2_FireGear}"/> | |||
<ComboBox Width="80" ItemsSource="{Binding FireGear}" Margin="10,5" SelectedItem="{Binding FirePot2_FireGear}" SelectedIndex="0" /> | |||
<Button Content="加热档位设定" Width="110" Margin="10,5" Command="{Binding FirePot2_SetFireGearCommand}"/> | |||
<Button Content="加热启动" Width="80" Margin="10,5" Command="{Binding FirePot2_StartFireCommand}"/> | |||
<Button Content="加热停止" Width="80" Margin="10,5,30,5" Command="{Binding FirePot2_StopFireCommand}"/> | |||
<TextBlock Text="搅拌挡位" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding StirGear}" SelectedItem="{Binding FirePot2_StirGear}" Margin="10,5"/> | |||
<ComboBox Width="80" ItemsSource="{Binding StirGear}" SelectedItem="{Binding FirePot2_StirGear}" Margin="10,5" SelectedIndex="0" /> | |||
<Button Content="搅拌档位设定" Width="110" Margin="10,5" Command="{Binding FirePot2_SetStirGearCommand}"/> | |||
<Button Content="搅拌启动" Width="80" Margin="10,5" Command="{Binding FirePot2_StartStirCommand}"/> | |||
<Button Content="搅拌停止" Width="80" Margin="10,5,30,5" Command="{Binding FirePot2_StopStirCommand}"/> | |||
@@ -112,14 +110,14 @@ | |||
<Button Content="炒锅去投料位置" Width="110" Margin="10,5" Command="{Binding FirePot_PotGotoInFoodPositionCommand}" CommandParameter="2"/> | |||
</WrapPanel> | |||
</GroupBox> | |||
<GroupBox Grid.Row="4" Header="机器人" FontSize="22"> | |||
<GroupBox Grid.Row="2" Header="机器人" FontSize="22"> | |||
<WrapPanel Orientation="Horizontal"> | |||
<Button Content="机器人启动" Width="110" Margin="10,5" Command="{Binding RobotStartCommand}"/> | |||
<Button Content="复位" Width="110" Margin="10,5" Command="{Binding RobotResetCommand}"/> | |||
<Button Content="程序启动" Width="110" Margin="10,5" Command="{Binding RobotProgramStartCommand}"/> | |||
<Button Content="机器人停止" Width="110" Margin="10,5" Command="{Binding RobotStopCommand}"/> | |||
<Button Content="1号炒锅允许机器人投料" Width="160" Margin="10,5" Command="{Binding Robot_Pot1AllowInMaterailCommand}"/> | |||
<Button Content="1号炒锅出餐倒料到减速位" Width="160" Margin="10,5" Command="{Binding Robot_Pot1OutFoodInSlowDownCommand}"/> | |||
<Button Content="1号炒锅允许机器人投料" Width="160" Margin="10,5" Command="{Binding Robot_Pot1AllowInMaterailCommand}" Cursor="Hand"/> | |||
<Button Content="1号炒锅出餐倒料到减速位" Width="160" Margin="10,5" Command="{Binding Robot_Pot1OutFoodInSlowDownCommand}" Cursor="Hand"/> | |||
<Button Content="1号炒锅出餐倒料完成" Width="160" Margin="10,5" Command="{Binding Robot_Pot1OutFoodCommand}"/> | |||
<Button Content="2号炒锅允许机器人投料" Width="160" Margin="10,5" Command="{Binding Robot_Pot2AllowInMaterailCommand}"/> | |||
<Button Content="2号炒锅出餐倒料到减速位" Width="160" Margin="10,5" Command="{Binding Robot_Pot2OutFoodInSlowDownCommand}"/> | |||
@@ -30,6 +30,7 @@ | |||
<Grid.RowDefinitions> | |||
<RowDefinition Height="50"/> | |||
<RowDefinition Height="*"/> | |||
<RowDefinition Height="50"/> | |||
</Grid.RowDefinitions> | |||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Height="45"> | |||
<TextBlock Text="菜品名称:" Margin="10,0"/> | |||
@@ -70,6 +71,12 @@ | |||
</ListBox.ItemTemplate> | |||
</ListBox> | |||
</Grid> | |||
<StackPanel Orientation="Horizontal" Grid.Row="2" Margin="70,0" > | |||
<TextBlock Text="关火搅拌时间" Margin="10,0"/> | |||
<TextBox Text="{Binding FryOffStirTime}" Width="60"/> | |||
<TextBlock Text="秒" Margin="10"/> | |||
</StackPanel> | |||
</Grid> | |||
</Border> | |||
</Window> |
@@ -0,0 +1,68 @@ | |||
<UserControl x:Class="BPASmartClient.MorkBF.VIew.MenuView" | |||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||
xmlns:local="clr-namespace:BPASmartClient.MorkBF.VIew" | |||
xmlns:vm="clr-namespace:BPASmartClient.MorkBF.ViewModel" | |||
x:Name="菜单" | |||
mc:Ignorable="d" | |||
d:DesignHeight="450" d:DesignWidth="800"> | |||
<UserControl.DataContext> | |||
<vm:MenuViewModel/> | |||
</UserControl.DataContext> | |||
<UserControl.Resources> | |||
<ResourceDictionary> | |||
<ResourceDictionary.MergedDictionaries> | |||
<ResourceDictionary Source="/BPASmartClient.CustomResource;component/Themes/GenricStyle.xaml" /> | |||
<ResourceDictionary Source="/BPASmartClient.CustomResource;component/Themes/MyStyle.xaml" /> | |||
</ResourceDictionary.MergedDictionaries> | |||
</ResourceDictionary> | |||
</UserControl.Resources> | |||
<Grid> | |||
<Grid.RowDefinitions> | |||
<RowDefinition Height="100"/> | |||
<RowDefinition Height="*"/> | |||
</Grid.RowDefinitions> | |||
<Button Content="添加新菜品" Width="200" Click="Button_Click"/> | |||
<ListBox Grid.Row="1" ItemsSource="{Binding fryPotMessages}"> | |||
<ListBox.Template> | |||
<ControlTemplate TargetType="{x:Type ListBox}"> | |||
<WrapPanel Orientation="Horizontal" IsItemsHost="True"></WrapPanel> | |||
</ControlTemplate> | |||
</ListBox.Template> | |||
<ListBox.ItemTemplate> | |||
<DataTemplate> | |||
<Border Margin="5,10"> | |||
<Border.Background> | |||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/矩形.png"/> | |||
</Border.Background> | |||
<Grid Margin="0,5,0,10"> | |||
<Grid.RowDefinitions> | |||
<RowDefinition Height="*"/> | |||
<RowDefinition Height="*"/> | |||
</Grid.RowDefinitions> | |||
<StackPanel Orientation="Horizontal" Margin="10"> | |||
<TextBlock Text="{Binding GoodName}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" Margin="10,0"/> | |||
<Button Content="编辑" Command="{Binding DataContext.MenuEditCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||
CommandParameter="{Binding DataContext , RelativeSource={RelativeSource AncestorType=ListBoxItem,Mode=FindAncestor}}" Margin="10,0"/> | |||
<Button Content="删除 " Command="{Binding DataContext.MenuDeleteCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||
CommandParameter="{Binding DataContext , RelativeSource={RelativeSource AncestorType=ListBoxItem,Mode=FindAncestor}}" Margin="10,0"/> | |||
</StackPanel> | |||
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"> | |||
<Button Grid.Row="1" Content="下单_炒锅1" Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" | |||
Command="{Binding DataContext.FryPot1_StartOrderCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||
CommandParameter="{Binding DataContext , RelativeSource={RelativeSource AncestorType=ListBoxItem,Mode=FindAncestor}}" Margin="5,5"/> | |||
<Button Grid.Row="1" Content="下单_炒锅2" Width="120" HorizontalAlignment="Center" VerticalAlignment="Center" | |||
Command="{Binding DataContext.FryPot2_StartOrderCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||
CommandParameter="{Binding DataContext , RelativeSource={RelativeSource AncestorType=ListBoxItem,Mode=FindAncestor}}" Margin="5,5"/> | |||
</StackPanel> | |||
</Grid> | |||
</Border> | |||
</DataTemplate> | |||
</ListBox.ItemTemplate> | |||
</ListBox> | |||
</Grid> | |||
</UserControl> |
@@ -0,0 +1,36 @@ | |||
using BPASmartClient.MorkBF.Model; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using System.Windows; | |||
using System.Windows.Controls; | |||
using System.Windows.Data; | |||
using System.Windows.Documents; | |||
using System.Windows.Input; | |||
using System.Windows.Media; | |||
using System.Windows.Media.Imaging; | |||
using System.Windows.Navigation; | |||
using System.Windows.Shapes; | |||
namespace BPASmartClient.MorkBF.VIew | |||
{ | |||
/// <summary> | |||
/// MenuView.xaml 的交互逻辑 | |||
/// </summary> | |||
public partial class MenuView : UserControl | |||
{ | |||
public MenuView() | |||
{ | |||
InitializeComponent(); | |||
} | |||
private void Button_Click(object sender, RoutedEventArgs e) | |||
{ | |||
Global.GLoFryMessage = null; | |||
FoodManagerView foodManagerView = new FoodManagerView(); | |||
foodManagerView.ShowDialog(); | |||
} | |||
} | |||
} |
@@ -17,30 +17,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
partial class DebugViewModel | |||
{ | |||
public ObservableCollection<FryPotMessages> fryPotMessages { get; set; } = Json<LocalFryPotMessage>.Data.FryPotMessage; | |||
[RelayCommand] | |||
private void MenuEdit(object o) | |||
{ | |||
if (o == null) return; | |||
if(o is FryPotMessages value) | |||
{ | |||
Global.GLoFryMessage = value; | |||
FoodManagerView foodManagerView = new FoodManagerView(); | |||
foodManagerView.ShowDialog(); | |||
} | |||
} | |||
[RelayCommand] | |||
private void MenuDelete(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is FryPotMessages value) | |||
{ | |||
fryPotMessages.Remove(value); | |||
} | |||
Json<LocalFryPotMessage>.Save(); | |||
} | |||
@@ -55,13 +32,13 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
public ObservableCollection<int> StirGear { get; set; } = new ObservableCollection<int>() { 1, 2, 3, 4, 5 }; | |||
[ObservableProperty] | |||
private int _firePot1_FireGear = 0; | |||
private int _firePot1_FireGear = 1; | |||
[ObservableProperty] | |||
private int _firePot2_FireGear = 0; | |||
private int _firePot2_FireGear = 1; | |||
[ObservableProperty] | |||
private int _firePot1_StirGear = 0; | |||
private int _firePot1_StirGear = 1; | |||
[ObservableProperty] | |||
private int _firePot2_StirGear = 0; | |||
private int _firePot2_StirGear = 1; | |||
[ObservableProperty] | |||
private int _firePot1_TurnSpeed; | |||
[ObservableProperty] | |||
@@ -74,7 +51,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot1_SetFireGear() | |||
{ | |||
ActionManage.GetInstance.Send("FirePot1_SetFireGear",new List<int> { FirePot1_FireGear}); | |||
ActionManage.GetInstance.Send("FirePot1_SetFireGear", FirePot1_FireGear); | |||
} | |||
/// <summary> | |||
/// 加热启动 | |||
@@ -98,7 +75,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot1_SetStirGear() | |||
{ | |||
ActionManage.GetInstance.Send("FirePot1_SetStirGear",new List<int> { FirePot1_StirGear}); | |||
ActionManage.GetInstance.Send("FirePot1_SetStirGear", FirePot1_StirGear); | |||
} | |||
/// <summary> | |||
/// 搅拌启动 | |||
@@ -123,7 +100,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
private void FirePot1_SetTurnSpeed() | |||
{ | |||
if (FirePot1_TurnSpeed > 800) FirePot1_TurnSpeed = 800; | |||
ActionManage.GetInstance.Send("FirePot1_SetTurnSpeed",new List<int> { FirePot1_TurnSpeed}); | |||
ActionManage.GetInstance.Send("FirePot1_SetTurnSpeed", FirePot1_TurnSpeed); | |||
} | |||
#endregion | |||
@@ -134,7 +111,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot2_SetFireGear() | |||
{ | |||
ActionManage.GetInstance.Send("FirePot2_SetFireGear", new List<int> { FirePot2_FireGear }); | |||
ActionManage.GetInstance.Send("FirePot2_SetFireGear", FirePot2_FireGear ); | |||
} | |||
/// <summary> | |||
/// 加热启动 | |||
@@ -158,7 +135,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot2_SetStirGear() | |||
{ | |||
ActionManage.GetInstance.Send("FirePot2_SetStirGear", new List<int> { FirePot2_StirGear }); | |||
ActionManage.GetInstance.Send("FirePot2_SetStirGear", FirePot2_StirGear); | |||
} | |||
/// <summary> | |||
/// 搅拌启动 | |||
@@ -174,7 +151,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot2_StopStir() | |||
{ | |||
ActionManage.GetInstance.Send("FirePot1_StopStir", false); | |||
ActionManage.GetInstance.Send("FirePot2_StopStir", false); | |||
} | |||
/// <summary> | |||
/// 翻转频率设定 | |||
@@ -183,7 +160,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
private void FirePot2_SetTurnSpeed() | |||
{ | |||
if (FirePot1_TurnSpeed > 800) FirePot1_TurnSpeed = 800; | |||
ActionManage.GetInstance.Send("FirePot2_SetTurnSpeed", new List<int> { FirePot2_TurnSpeed }); | |||
ActionManage.GetInstance.Send("FirePot2_SetTurnSpeed", FirePot2_TurnSpeed ); | |||
} | |||
#endregion | |||
@@ -250,6 +227,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
[RelayCommand] | |||
private void FirePot_PotGotoInFoodPosition(object o) | |||
{ | |||
ActionManage.GetInstance.Send("FirePot_PotGotoInFoodPosition", o); | |||
} | |||
/// <summary> | |||
@@ -16,7 +16,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
/// <summary> | |||
/// 菜品步骤 | |||
/// </summary> | |||
public ObservableCollection<FryPotProcess> FryPotProcesses { get; set; } =new ObservableCollection<FryPotProcess>(); | |||
public ObservableCollection<FryPotProcess> FryPotProcesses { get; set; } = new ObservableCollection<FryPotProcess>(); | |||
public ObservableCollection<FryAction> FryAction { get; set; } = new ObservableCollection<FryAction>(); | |||
@@ -59,6 +59,7 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
}); | |||
} | |||
Json<LocalFryPotMessage>.Save(); | |||
ActionManage.GetInstance.Send("更新菜单"); | |||
ActionManage.GetInstance.Send("FoodManagerViewClose"); | |||
} | |||
@@ -70,7 +71,8 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
{ | |||
FryPotProcesses.Remove(value); | |||
} | |||
ActionManage.GetInstance.Send("更新菜单"); | |||
} | |||
@@ -87,7 +89,6 @@ namespace BPASmartClient.MorkBF.ViewModel | |||
GoodName = Global.GLoFryMessage.GoodName; | |||
FryPotProcesses = new ObservableCollection<FryPotProcess>(Global.GLoFryMessage.fryPotProcesses); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,62 @@ | |||
using BPASmartClient.Helper; | |||
using BPASmartClient.Model.大炒; | |||
using BPASmartClient.MorkBF.Model; | |||
using BPASmartClient.MorkBF.VIew; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Collections.ObjectModel; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPASmartClient.MorkBF.ViewModel | |||
{ | |||
[INotifyPropertyChanged] | |||
partial class MenuViewModel | |||
{ | |||
public ObservableCollection<FryPotMessages> fryPotMessages { get; set; } = Json<LocalFryPotMessage>.Data.FryPotMessage; | |||
[RelayCommand] | |||
private void MenuEdit(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is FryPotMessages value) | |||
{ | |||
Global.GLoFryMessage = value; | |||
FoodManagerView foodManagerView = new FoodManagerView(); | |||
foodManagerView.ShowDialog(); | |||
} | |||
} | |||
[RelayCommand] | |||
private void MenuDelete(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is FryPotMessages value) | |||
{ | |||
fryPotMessages.Remove(value); | |||
} | |||
Json<LocalFryPotMessage>.Save(); | |||
} | |||
[RelayCommand] | |||
private void FryPot1_StartOrder(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is FryPotMessages value) | |||
{ | |||
ActionManage.GetInstance.Send("FryPot1StartLocalOrder", value.fryPotProcesses); | |||
} | |||
} | |||
[RelayCommand] | |||
private void FryPot2_StartOrder(object o) | |||
{ | |||
if (o == null) return; | |||
if (o is FryPotMessages value) | |||
{ | |||
ActionManage.GetInstance.Send("FryPot2StartLocalOrder", value.fryPotProcesses); | |||
} | |||
} | |||
} | |||
} |