@@ -32,17 +32,10 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
*/ | */ | ||||
public class Control_MORKJC2 : BaseDevice | public class Control_MORKJC2 : BaseDevice | ||||
{ | { | ||||
//private CoffeEndCook coffeEndCook = new CoffeEndCook();//模拟咖啡制作成功 | |||||
//咖啡机主控程序 | |||||
//private CoffeeMachine coffeeMachine; | |||||
//物料存放位置 | //物料存放位置 | ||||
private Dictionary<string, PolymerBatching> batchings = new Dictionary<string, PolymerBatching>(); | private Dictionary<string, PolymerBatching> batchings = new Dictionary<string, PolymerBatching>(); | ||||
//容器位置 | //容器位置 | ||||
private string holderLoc; | private string holderLoc; | ||||
/// <summary> | |||||
/// 获取乐百机器人的数据 | |||||
/// </summary> | |||||
//SignalResult lebai = new SignalResult(); | |||||
//主料位置 | //主料位置 | ||||
private string mainMaterialLoc; | private string mainMaterialLoc; | ||||
//子订单ID | //子订单ID | ||||
@@ -64,49 +57,9 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
ConcurrentQueue<MorkOrderPush> morkOrderPushes = new ConcurrentQueue<MorkOrderPush>(); | ConcurrentQueue<MorkOrderPush> morkOrderPushes = new ConcurrentQueue<MorkOrderPush>(); | ||||
public void Init() | public void Init() | ||||
{ | { | ||||
//ActionManage.GetInstance.Register(new Action<object>((s) => | |||||
//{ | |||||
// if (s is DrCoffeeDrinksCode cf) | |||||
// { | |||||
// DoCoffee(); | |||||
// } | |||||
// else if (s is Dictionary<string, string> ms) | |||||
// { | |||||
// if (ms.ContainsKey("Button")) | |||||
// { | |||||
// switch (ms["Button"]) | |||||
// { | |||||
// case "启动示教": | |||||
// JuicerModel.GetInstance.StartTeachMode(); | |||||
// break; | |||||
// case "停止示教": | |||||
// JuicerModel.GetInstance.EndtTeachMode(); | |||||
// break; | |||||
// case "启动机器人": | |||||
// JuicerModel.GetInstance.StartRobot(); | |||||
// break; | |||||
// case "急停": | |||||
// JuicerModel.GetInstance.EStopRobot(); | |||||
// break; | |||||
// default: | |||||
// break; | |||||
// } | |||||
// } | |||||
// } | |||||
//}), "SimCoffee"); | |||||
//构建所有商品物料信息 | //构建所有商品物料信息 | ||||
batchings = PolymerBatching.BuildAll(); | batchings = PolymerBatching.BuildAll(); | ||||
EventBus.EventBus.GetInstance().Subscribe<DRCoffee_CoffeEndCookEvent>(DeviceId, CoffeEndCookHandle); | |||||
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None); | |||||
//一系列外围基础配置 | |||||
var com_Coffee = config.AppSettings.Settings["COM_Coffee"].Value; | |||||
var baud_Coffee = config.AppSettings.Settings["BAUD_Coffee"].Value; | |||||
//咖啡机创建 | |||||
//coffeeMachine = new CoffeeMachine(com_Coffee, (BaudRates)Enum.Parse(typeof(BaudRates), baud_Coffee)); | |||||
EventBus.EventBus.GetInstance().Subscribe<DRCoffee_CoffeEndCookEvent>(DeviceId, DRCoffee_CoffeEndCookEventHandle); | |||||
Main(); | Main(); | ||||
ReadData(); | ReadData(); | ||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
@@ -116,7 +69,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
working = true; | working = true; | ||||
if (morkOrderPushes.TryDequeue(out MorkOrderPush order)) | if (morkOrderPushes.TryDequeue(out MorkOrderPush order)) | ||||
{ | { | ||||
MessageLog.GetInstance.Show($"开始制作订单[{order.SortNum}]"); | |||||
DeviceProcessLogShow($"开始制作订单[{order.SortNum}]"); | |||||
//商品类型 | //商品类型 | ||||
GOODS_TYPE currentGoodsType = GOODS_TYPE.NEITHER; | GOODS_TYPE currentGoodsType = GOODS_TYPE.NEITHER; | ||||
//子订单ID | //子订单ID | ||||
@@ -134,7 +87,6 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
holderLoc = res.BatchingLoc; | holderLoc = res.BatchingLoc; | ||||
break; | break; | ||||
case BATCHING_CLASS.MAIN_MATERIAL: | case BATCHING_CLASS.MAIN_MATERIAL: | ||||
// mainMaterialLoc ="1"; | |||||
mainMaterialLoc = res.BatchingLoc; | mainMaterialLoc = res.BatchingLoc; | ||||
//验证商品是咖啡还是冰淇淋 | //验证商品是咖啡还是冰淇淋 | ||||
if (ValidateGoodsByBatching(res.BatchingLoc) != GOODS_TYPE.NEITHER) | if (ValidateGoodsByBatching(res.BatchingLoc) != GOODS_TYPE.NEITHER) | ||||
@@ -164,7 +116,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
DoWater(); | DoWater(); | ||||
break; | break; | ||||
case GOODS_TYPE.NEITHER: | case GOODS_TYPE.NEITHER: | ||||
MessageLog.GetInstance.Show("未知的商品类型"); | |||||
DeviceProcessLogShow("未知的商品类型"); | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
@@ -177,27 +129,12 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
public void Main() | public void Main() | ||||
{ | { | ||||
//咖啡机开启主线程 | |||||
//coffeeMachine.Start(); | |||||
//开始心跳刷新,根据咖啡机及冰淇淋机来判断 | //开始心跳刷新,根据咖啡机及冰淇淋机来判断 | ||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
{ | { | ||||
//GeneralConfig.Healthy = | |||||
// JuicerModel.GetInstance.IsConnected && | |||||
// MorkCStatus.GetInstance().CanDo && | |||||
// JuicerHelper.GetInstance.IsOpen && | |||||
// MCUSerialHelper.GetInstance.IsOpen; | |||||
//GeneralConfig.Healthy = true; | |||||
IsHealth = GetStatus<bool>("JuicerIsConnected"); | |||||
Thread.Sleep(100); | Thread.Sleep(100); | ||||
}), "MORK-IC心跳刷新"); | }), "MORK-IC心跳刷新"); | ||||
//ThreadManage.GetInstance.Start(new Action(() => | |||||
//{ | |||||
// while (!JuicerModel.GetInstance.IsConnected) | |||||
// { | |||||
// Thread.Sleep(10); | |||||
// } | |||||
// //Sence(JuicerModel.SENCE_欢迎); | |||||
//}), "MORK-JC欢迎"); | |||||
} | } | ||||
private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS) | private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS) | ||||
@@ -267,13 +204,12 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
/// </summary> | /// </summary> | ||||
private void DoCoffee() | private void DoCoffee() | ||||
{ | { | ||||
#region 接咖啡流程 | #region 接咖啡流程 | ||||
are.Reset(); | are.Reset(); | ||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -281,7 +217,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
int resultTakeCup = takeCup(); | int resultTakeCup = takeCup(); | ||||
if (resultTakeCup == 1) | if (resultTakeCup == 1) | ||||
{ | { | ||||
MessageLog.GetInstance.Show("咖啡杯取杯完成"); | |||||
DeviceProcessLogShow("咖啡杯取杯完成"); | |||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_接咖啡); | Sence(JuicerModel.JUICE2_接咖啡); | ||||
Wait(); | Wait(); | ||||
@@ -293,14 +229,14 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -308,8 +244,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
Sence(JuicerModel.JUICE2_放咖啡杯); | Sence(JuicerModel.JUICE2_放咖啡杯); | ||||
Wait(); | Wait(); | ||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | ||||
MessageLog.GetInstance.Show("咖啡制作完成"); | |||||
DeviceProcessLogShow("咖啡制作完成"); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -326,7 +261,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -334,7 +269,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
int resultTakeCup = takeCup(); | int resultTakeCup = takeCup(); | ||||
if (resultTakeCup == 1) | if (resultTakeCup == 1) | ||||
{ | { | ||||
MessageLog.GetInstance.Show("取茶杯完成"); | |||||
DeviceProcessLogShow("取茶杯完成"); | |||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_接茶叶); | Sence(JuicerModel.JUICE2_接茶叶); | ||||
Wait(); | Wait(); | ||||
@@ -368,7 +303,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -378,7 +313,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | ||||
MessageLog.GetInstance.Show("茶水制作完成"); | |||||
DeviceProcessLogShow("茶水制作完成"); | |||||
} | } | ||||
else | else | ||||
@@ -397,7 +332,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -425,7 +360,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -434,7 +369,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
Sence(JuicerModel.JUICE2_放水杯); | Sence(JuicerModel.JUICE2_放水杯); | ||||
Wait(); | Wait(); | ||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | ||||
MessageLog.GetInstance.Show("纯净水制作完成"); | |||||
DeviceProcessLogShow("纯净水制作完成"); | |||||
} | } | ||||
else | else | ||||
@@ -457,7 +392,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COOKING); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COOKING); | ||||
@@ -575,7 +510,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
{ | { | ||||
if (!outCupCheck) | if (!outCupCheck) | ||||
MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
outCupCheck = true; | outCupCheck = true; | ||||
} | } | ||||
outCupCheck = false; | outCupCheck = false; | ||||
@@ -584,7 +519,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
Wait(); | Wait(); | ||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | ||||
MessageLog.GetInstance.Show("果汁制作完成"); | |||||
DeviceProcessLogShow("果汁制作完成"); | |||||
} | } | ||||
////模拟果汁 | ////模拟果汁 | ||||
@@ -592,7 +527,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
//while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | //while (GetStatus<bool>("RobotValue1"))//判断放杯位置是否有物品 | ||||
//{ | //{ | ||||
// if (!outCupCheck) | // if (!outCupCheck) | ||||
// MessageLog.GetInstance.ShowEx("成品处有纸杯存在,请取走!!"); | |||||
// DeviceProcessLogShow("成品处有纸杯存在,请取走!!"); | |||||
// outCupCheck = true; | // outCupCheck = true; | ||||
//} | //} | ||||
//outCupCheck = false; | //outCupCheck = false; | ||||
@@ -601,7 +536,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
//Wait(); | //Wait(); | ||||
//OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | //OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COMPLETED_TAKE); | ||||
//MessageLog.GetInstance.Show("果汁制作完成"); | |||||
//DeviceProcessLogShow("果汁制作完成"); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -625,22 +560,16 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
nCnt = 0; | nCnt = 0; | ||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_初始位); | Sence(JuicerModel.JUICE2_初始位); | ||||
Wait(); | Wait(); | ||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_取纸杯); | Sence(JuicerModel.JUICE2_取纸杯); | ||||
Wait(); | Wait(); | ||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_纸杯检测); | Sence(JuicerModel.JUICE2_纸杯检测); | ||||
Wait(); | Wait(); | ||||
nCnt++; | nCnt++; | ||||
Thread.Sleep(2000); | Thread.Sleep(2000); | ||||
while (checkCnt < 3) | while (checkCnt < 3) | ||||
@@ -663,7 +592,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
if (nCnt > 3) | if (nCnt > 3) | ||||
{ | { | ||||
nCnt = 0; | nCnt = 0; | ||||
MessageLog.GetInstance.ShowEx("三次取杯失败,回原点"); | |||||
DeviceProcessLogShow("三次取杯失败,回原点"); | |||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_检测位回原点); | Sence(JuicerModel.JUICE2_检测位回原点); | ||||
Wait(); | Wait(); | ||||
@@ -671,8 +600,6 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
nCnt++; | nCnt++; | ||||
new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | new LebaiRobot_SetValueEvent { DeviceId = DeviceId, RobotSetValue = 0 }.Publish(); | ||||
Sence(JuicerModel.JUICE2_二次取杯); | Sence(JuicerModel.JUICE2_二次取杯); | ||||
@@ -694,20 +621,17 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
{ | { | ||||
checkCnt = 0; | checkCnt = 0; | ||||
return 1; | return 1; | ||||
} | } | ||||
checkCnt++; | checkCnt++; | ||||
} | } | ||||
} | } | ||||
Thread.Sleep(1000); | Thread.Sleep(1000); | ||||
} | } | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
MessageLog.GetInstance.Show(ex.ToString()); | |||||
DeviceProcessLogShow(ex.ToString()); | |||||
} | } | ||||
return 1; | return 1; | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
@@ -736,7 +660,7 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
MessageLog.GetInstance.Show(ex.ToString()); | |||||
DeviceProcessLogShow(ex.ToString()); | |||||
return 0; | return 0; | ||||
} | } | ||||
} | } | ||||
@@ -754,12 +678,12 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
Thread.Sleep(100); | Thread.Sleep(100); | ||||
if (DateTime.Now.Subtract(delayTimeOut).TotalSeconds >= 1) return 2; | if (DateTime.Now.Subtract(delayTimeOut).TotalSeconds >= 1) return 2; | ||||
} | } | ||||
MessageLog.GetInstance.Show("放杯位有杯子未取走,等待取走,最多等待60s,即跳出流程"); | |||||
DeviceProcessLogShow("放杯位有杯子未取走,等待取走,最多等待60s,即跳出流程"); | |||||
return 1; | return 1; | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
MessageLog.GetInstance.Show(ex.ToString()); | |||||
DeviceProcessLogShow(ex.ToString()); | |||||
return 0; | return 0; | ||||
} | } | ||||
} | } | ||||
@@ -823,7 +747,10 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
// } | // } | ||||
// } | // } | ||||
//} | //} | ||||
private void DRCoffee_CoffeEndCookEventHandle(IEvent @event, EventCallBackHandle callBack) | |||||
{ | |||||
are.Set(); | |||||
} | |||||
public override void DoMain() | public override void DoMain() | ||||
{ | { | ||||
} | } | ||||
@@ -844,7 +771,6 @@ namespace BPASmartClient.MorkTLebaiJC | |||||
public override void ResetProgram() | public override void ResetProgram() | ||||
{ | { | ||||
} | } | ||||
public override void SimOrder() | public override void SimOrder() | ||||
{ | { | ||||
} | } | ||||
@@ -7,9 +7,13 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\BPASmartClient.Business\BPASmartClient.Business.csproj" /> | |||||
<ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | <ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.DRCoffee\BPASmartClient.DRCoffee.csproj" /> | |||||
<ProjectReference Include="..\BPASmartClient.GSIceCream\BPASmartClient.GSIceCream.csproj" /> | |||||
<ProjectReference Include="..\BPASmartClient.JAKA\BPASmartClient.JAKA.csproj" /> | <ProjectReference Include="..\BPASmartClient.JAKA\BPASmartClient.JAKA.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.Juicer\BPASmartClient.Juicer.csproj" /> | <ProjectReference Include="..\BPASmartClient.Juicer\BPASmartClient.Juicer.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.LebaiRobot\BPASmartClient.LebaiRobot.csproj" /> | |||||
<ProjectReference Include="..\BPASmartClient.MCU\BPASmartClient.MCU.csproj" /> | <ProjectReference Include="..\BPASmartClient.MCU\BPASmartClient.MCU.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -16,28 +16,13 @@ using BPASmartClient.EventBus; | |||||
using static BPASmartClient.EventBus.EventBus; | using static BPASmartClient.EventBus.EventBus; | ||||
using BPASmartClient.Model.PLC; | using BPASmartClient.Model.PLC; | ||||
using BPASmartClient.Model.单片机; | using BPASmartClient.Model.单片机; | ||||
using BPASmartClient.Message; | |||||
namespace BPASmartClient.MorktJAKAJC | namespace BPASmartClient.MorktJAKAJC | ||||
{ | { | ||||
/* | |||||
* 冰淇淋咖啡机组合套装 | |||||
* 物料位置: | |||||
* 1:冰淇料 | |||||
* 2:冰淇淋杯 | |||||
* 5:咖啡 | |||||
* 6:咖啡杯 | |||||
* 9: 茶 | |||||
* 10: 茶杯 | |||||
*/ | |||||
public class Control_MORKJC : BaseDevice | public class Control_MORKJC : BaseDevice | ||||
{ | { | ||||
GVL_MORKJC mORKD = new GVL_MORKJC(); | GVL_MORKJC mORKD = new GVL_MORKJC(); | ||||
//咖啡机主控程序 | |||||
//private CoffeeMachine coffeeMachine; | |||||
////果汁机主控程序 | |||||
//private JuicerMachine juicerMachine; | |||||
////单片机主控程序 | |||||
//private ICChipMachine icchipMachine; | |||||
//物料存放位置 | //物料存放位置 | ||||
private Dictionary<string, PolymerBatching> batchings = new Dictionary<string, PolymerBatching>(); | private Dictionary<string, PolymerBatching> batchings = new Dictionary<string, PolymerBatching>(); | ||||
//容器位置 | //容器位置 | ||||
@@ -80,13 +65,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
//构建所有商品物料信息 | //构建所有商品物料信息 | ||||
batchings = PolymerBatching.BuildAll(); | batchings = PolymerBatching.BuildAll(); | ||||
EventBus.EventBus.GetInstance().Subscribe<DRCoffee_CoffeEndCookEvent>(DeviceId, DRCoffee_CoffeEndCookEventHandle); | EventBus.EventBus.GetInstance().Subscribe<DRCoffee_CoffeEndCookEvent>(DeviceId, DRCoffee_CoffeEndCookEventHandle); | ||||
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None); | |||||
//一系列外围基础配置 | |||||
var com_Coffee = config.AppSettings.Settings["COM_Coffee"].Value; | |||||
var baud_Coffee = config.AppSettings.Settings["BAUD_Coffee"].Value; | |||||
//咖啡机创建 | |||||
//coffeeMachine = new CoffeeMachine(com_Coffee, (BaudRates)Enum.Parse(typeof(BaudRates), baud_Coffee)); | |||||
Main(); | Main(); | ||||
ReadData(); | ReadData(); | ||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
@@ -99,9 +77,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
if (morkOrderPushes.TryDequeue(out MorkOrderPush order)) | if (morkOrderPushes.TryDequeue(out MorkOrderPush order)) | ||||
{ | { | ||||
DeviceProcessLogShow($"开始制作订单[{order.SortNum}]"); | DeviceProcessLogShow($"开始制作订单[{order.SortNum}]"); | ||||
//商品类型 | //商品类型 | ||||
GOODS_TYPE currentGoodsType = GOODS_TYPE.NEITHER; | GOODS_TYPE currentGoodsType = GOODS_TYPE.NEITHER; | ||||
//子订单ID | //子订单ID | ||||
@@ -131,7 +106,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
} | } | ||||
} | } | ||||
} | } | ||||
//根据商品类型执行具体制作流程 | //根据商品类型执行具体制作流程 | ||||
switch (currentGoodsType) | switch (currentGoodsType) | ||||
{ | { | ||||
@@ -162,8 +136,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
public void Main() | public void Main() | ||||
{ | { | ||||
//咖啡机开启主线程 | |||||
//coffeeMachine.Start(); | |||||
//开始心跳刷新,根据咖啡机及冰淇淋机来判断 | //开始心跳刷新,根据咖啡机及冰淇淋机来判断 | ||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
{ | { | ||||
@@ -175,14 +147,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
//GeneralConfig.Healthy = true; | //GeneralConfig.Healthy = true; | ||||
Thread.Sleep(100); | Thread.Sleep(100); | ||||
}), "MORK-IC心跳刷新"); | }), "MORK-IC心跳刷新"); | ||||
//ThreadManage.GetInstance().Start(new Action(() => | |||||
//{ | |||||
// while (!Write.IsConnected) | |||||
// { | |||||
// Thread.Sleep(10); | |||||
// } | |||||
// //LebaiHelper.GetInstance.Scene(LebaiHelper.SENCE_欢迎); | |||||
//}), "MORK-JC欢迎"); | |||||
} | } | ||||
public void DataParse<T>(T order) | public void DataParse<T>(T order) | ||||
@@ -242,14 +206,12 @@ namespace BPASmartClient.MorktJAKAJC | |||||
{ | { | ||||
#region 接咖啡流程 | #region 接咖啡流程 | ||||
are.Reset(); | are.Reset(); | ||||
// OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COOKING); | |||||
OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COOKING); | OrderChange(subOrderId, BPA.Message.Enum.ORDER_STATUS.COOKING); | ||||
int resultTakeCup = takeCup(); | int resultTakeCup = takeCup(); | ||||
if (resultTakeCup == 1) | if (resultTakeCup == 1) | ||||
{ | { | ||||
DeviceProcessLogShow("咖啡杯取杯完成"); | DeviceProcessLogShow("咖啡杯取杯完成"); | ||||
new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_接咖啡 }.Publish(); | new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_接咖啡 }.Publish(); | ||||
// Write("JaKaProgramName",JakaModel.SENCE_接咖啡); | |||||
Wait(int.Parse(JakaModel.SENCE_接咖啡)); | Wait(int.Parse(JakaModel.SENCE_接咖啡)); | ||||
new DRCoffee_MakeCoffeeEvent() { DeviceId = DeviceId, DrinkCode = (DrCoffeeDrinksCode)int.Parse(mainMaterialLoc) }.Publish(); //接咖啡控制 //DrCoffeeDrinksCode.热水 | new DRCoffee_MakeCoffeeEvent() { DeviceId = DeviceId, DrinkCode = (DrCoffeeDrinksCode)int.Parse(mainMaterialLoc) }.Publish(); //接咖啡控制 //DrCoffeeDrinksCode.热水 | ||||
are.WaitOne(1000 * 180); | are.WaitOne(1000 * 180); | ||||
@@ -351,7 +313,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
int resultTakeCup = takeCup(); | int resultTakeCup = takeCup(); | ||||
if (resultTakeCup == 1) | if (resultTakeCup == 1) | ||||
{ | { | ||||
new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_接水 }.Publish(); | new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_接水 }.Publish(); | ||||
Wait(int.Parse(JakaModel.SENCE_接水)); | Wait(int.Parse(JakaModel.SENCE_接水)); | ||||
@@ -616,13 +577,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_取杯检测 }.Publish(); | new WriteJaka() { TagName = "JaKaProgramName", Value = JakaModel.SENCE_取杯检测 }.Publish(); | ||||
Wait(int.Parse(JakaModel.SENCE_取杯检测)); | Wait(int.Parse(JakaModel.SENCE_取杯检测)); | ||||
bSensorInput = sensor_Sign(1); | bSensorInput = sensor_Sign(1); | ||||
/*delayTimeOut = DateTime.Now; | |||||
bSensorInput = sensor_Sign(1); | |||||
while (bSensorInput == 3) | |||||
{ | |||||
Thread.Sleep(100); | |||||
bSensorInput = sensor_Sign(1); | |||||
}*/ | |||||
while (getCup_cnt < 4 && (bSensorInput == 2 || bSensorInput == 3)) | while (getCup_cnt < 4 && (bSensorInput == 2 || bSensorInput == 3)) | ||||
{ | { | ||||
DeviceProcessLogShow($"第{getCup_cnt}次取杯失败"); | DeviceProcessLogShow($"第{getCup_cnt}次取杯失败"); | ||||
@@ -654,7 +608,7 @@ namespace BPASmartClient.MorktJAKAJC | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
DeviceProcessLogShow(ex.ToString()); | |||||
MessageLog.GetInstance.ShowEx(ex.ToString()); | |||||
return 0; | return 0; | ||||
} | } | ||||
} | } | ||||
@@ -697,7 +651,7 @@ namespace BPASmartClient.MorktJAKAJC | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
DeviceProcessLogShow(ex.ToString()); | |||||
MessageLog.GetInstance.ShowEx(ex.ToString()); | |||||
return 0; | return 0; | ||||
} | } | ||||
} | } | ||||
@@ -713,7 +667,6 @@ namespace BPASmartClient.MorktJAKAJC | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
//cnt_Check = 0; | |||||
bSensorInput = sensor_Sign(2); | bSensorInput = sensor_Sign(2); | ||||
if (bSensorInput == 2) | if (bSensorInput == 2) | ||||
{ | { | ||||
@@ -729,7 +682,7 @@ namespace BPASmartClient.MorktJAKAJC | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
DeviceProcessLogShow(ex.ToString()); | |||||
MessageLog.GetInstance.ShowEx(ex.ToString()); | |||||
return 0; | return 0; | ||||
} | } | ||||
} | } | ||||
@@ -0,0 +1,397 @@ | |||||
<UserControl x:Class="BPASmartClient.MorkTJAKAJC.View.DebugView" | |||||
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:vm="clr-namespace:BPASmartClient.MorkTJAKAJC.ViewModel" | |||||
mc:Ignorable="d" | |||||
Name="调试界面" | |||||
d:DesignHeight="500" d:DesignWidth="1000" Unloaded="Dubug_Unloaded"> | |||||
<UserControl.DataContext> | |||||
<vm:DebugViewModel/> | |||||
</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.ColumnDefinitions> | |||||
<ColumnDefinition Width="10*"/> | |||||
<ColumnDefinition Width="10*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="10*"/> | |||||
<RowDefinition Height="10*"/> | |||||
<RowDefinition Height="20*"/> | |||||
</Grid.RowDefinitions> | |||||
<GroupBox Grid.ColumnSpan="2" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Header=" 乐白机器人 "> | |||||
<Grid Margin="10"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="*"/> | |||||
<RowDefinition Height="*"/> | |||||
<RowDefinition Height="3*"/> | |||||
</Grid.RowDefinitions> | |||||
<StackPanel Orientation="Horizontal"> | |||||
<TextBlock Text="连接状态" /> | |||||
<TextBlock Text="{Binding RobotConnected}" | |||||
Margin="40,0"/> | |||||
<TextBlock Text="机器人模式:"/> | |||||
<TextBlock Text="{Binding RobotMode}" | |||||
Margin="40,0"/> | |||||
</StackPanel> | |||||
<TextBlock Text="连接状态" /> | |||||
<TextBlock Text="{Binding RobotConnected}" | |||||
Margin="120,0,0,0"/> | |||||
<ListBox Grid.Row="2" Background="Transparent" Margin="0,0,0,-9"> | |||||
<ListBox.Template> | |||||
<ControlTemplate TargetType="{x:Type ListBox}"> | |||||
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> | |||||
<WrapPanel Orientation="Horizontal" IsItemsHost="True" ScrollViewer.CanContentScroll="True"/> | |||||
</ScrollViewer> | |||||
</ControlTemplate> | |||||
</ListBox.Template> | |||||
<Button Content="机器人启动" | |||||
Margin="20,5" Width="80" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="机器人启动"> | |||||
</Button> | |||||
<Button Content="启动示教" | |||||
Margin="20,5" Width="80" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="启动示教"/> | |||||
<Button Content="停止示教" | |||||
Margin="20,5" Width="80" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="停止示教"/> | |||||
<Button Content="机器人急停" | |||||
Margin="20,5" Width="80" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="机器人急停"/> | |||||
<Button Content="暂停" | |||||
Margin="10,5" Width="40" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="机器人急停"/> | |||||
<Button Content="恢复" | |||||
Margin="10,5" Width="40" Height="40" | |||||
Command="{Binding Button_RobotControlCommand}" | |||||
CommandParameter="机器人急停"/> | |||||
</ListBox> | |||||
<Grid Margin="629,-24,19,0" Grid.RowSpan="3"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid Grid.Row="0"> | |||||
<TextBlock>DI</TextBlock> | |||||
<CheckBox Margin="50,0,0,0" IsEnabled="false" Name="Robot_DI0">DI0</CheckBox> | |||||
<CheckBox Margin="120,0,0,0" IsEnabled="false" Name="Robot_DI1">DI1</CheckBox> | |||||
<CheckBox Margin="190,0,0,0" IsEnabled="false" Name="Robot_DI2">DI2</CheckBox> | |||||
<CheckBox Margin="260,0,0,0" IsEnabled="false" Name="Robot_DI3">DI3</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Row="1"> | |||||
<TextBlock Width="50">DO</TextBlock> | |||||
<ComboBox Width="70" Margin="50,12,268,10"> | |||||
<ComboBoxItem IsSelected="true">DO0</ComboBoxItem> | |||||
<ComboBoxItem>DO1</ComboBoxItem> | |||||
<ComboBoxItem>DO2</ComboBoxItem> | |||||
<ComboBoxItem>DO3</ComboBoxItem> | |||||
</ComboBox> | |||||
<ComboBox Margin="142,12,108,10" Width="70"> | |||||
<ComboBoxItem IsSelected="true">true</ComboBoxItem> | |||||
<ComboBoxItem>false</ComboBoxItem> | |||||
</ComboBox> | |||||
<Button Width="50" Margin="260,12,10,10">输出</Button> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</GroupBox> | |||||
<GroupBox Grid.Row="2" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Header=" 果汁机 "> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="3*"/> | |||||
<RowDefinition Height="3*"/> | |||||
<RowDefinition Height="3*"/> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock Text="连接状态" /> | |||||
<TextBlock Text="{Binding IceCreamConnected}" | |||||
Margin="120,0,0,0"/> | |||||
<Grid Grid.Row="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="120"/> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="设备状态" /> | |||||
<Grid Grid.Column="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Grid.Column="0" Name="Heating" HorizontalAlignment="Center">制热</TextBlock> | |||||
<TextBlock Grid.Column="1" Name="cooling" HorizontalAlignment="Center">制冷</TextBlock> | |||||
<TextBlock Grid.Column="2" Name="LackOfWater" HorizontalAlignment="Center">缺水</TextBlock> | |||||
<TextBlock Grid.Column="3" Name="ChildLocks" HorizontalAlignment="Center">童锁</TextBlock> | |||||
<TextBlock Grid.Column="4" Name="Use" HorizontalAlignment="Center">使用</TextBlock> | |||||
</Grid> | |||||
</Grid> | |||||
<StackPanel Grid.Row="2" Orientation="Vertical"> | |||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal"> | |||||
<TextBlock>果汁</TextBlock> | |||||
<ComboBox Margin="100,0,0,0" | |||||
Width="100" > | |||||
<ComboBoxItem IsSelected="true">饮品1</ComboBoxItem> | |||||
<ComboBoxItem>饮品2</ComboBoxItem> | |||||
<ComboBoxItem>饮品3</ComboBoxItem> | |||||
<ComboBoxItem>饮品4</ComboBoxItem> | |||||
</ComboBox> | |||||
<ComboBox Margin="20,0,0,0" Width="100"> | |||||
<ComboBoxItem IsSelected="true">冷饮</ComboBoxItem> | |||||
<ComboBoxItem>热饮</ComboBoxItem> | |||||
</ComboBox> | |||||
<Button Command="{Binding Button_MakeIceCreamCommand}" | |||||
Margin="20,0" | |||||
Content="制作" /> | |||||
</StackPanel> | |||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal"> | |||||
</StackPanel> | |||||
</StackPanel> | |||||
</Grid> | |||||
</GroupBox> | |||||
<GroupBox Grid.Row="2" Grid.Column="1" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Header=" 咖啡机"> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="30"/> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock Text="连接状态" /> | |||||
<TextBlock Text="{Binding CoffeeConnected}" | |||||
Margin="120,0,0,0"/> | |||||
<Grid Grid.Row="1"> | |||||
<Grid.Resources> | |||||
<Style TargetType="TextBlock"> | |||||
<Setter Property="HorizontalAlignment" Value="Left" /> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
</Style> | |||||
</Grid.Resources> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="99" /> | |||||
<ColumnDefinition Width="140" /> | |||||
<ColumnDefinition Width="100" /> | |||||
<ColumnDefinition Width="171" /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Height="23" Width="100" FontSize="18" HorizontalAlignment="Center">咖啡机状态</TextBlock> | |||||
<TextBlock FontSize="18" | |||||
Grid.Column="1" | |||||
Text="{Binding CoffeeStatus}" Height="23" /> | |||||
<TextBlock Grid.Column="2" Height="23" Width="80" FontSize="18">应用状态</TextBlock> | |||||
<TextBlock FontSize="18" | |||||
Grid.Column="3" | |||||
Text="{Binding AppStatus}" Height="23"/> | |||||
<TextBlock Grid.Row="1" Grid.Column="0" Height="22" Width="80" FontSize="18">告警信息</TextBlock> | |||||
<TextBlock FontSize="15" | |||||
Grid.Row="1" | |||||
Grid.Column="1" | |||||
Text="{Binding Warning}" /> | |||||
<TextBlock Grid.Row="1" Grid.Column="2" Height="22" Width="80" FontSize="18">故障信息</TextBlock> | |||||
<TextBlock FontSize="18" | |||||
Grid.Row="1" | |||||
Grid.Column="3" | |||||
Text="{Binding CaffeeFault}" Height="22" Width="60" /> | |||||
</Grid> | |||||
<StackPanel Grid.Row="2" Orientation="Vertical"> | |||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal"> | |||||
<TextBlock>饮品</TextBlock> | |||||
<ComboBox Margin="10,0" | |||||
Width="100" | |||||
ItemsSource="{Binding Coffees}" | |||||
SelectedItem="{Binding SelectedCoffee}" /> | |||||
<Button Margin="10,0" | |||||
Command="{}" | |||||
Content="制作"/> | |||||
<Button Margin="10,0" | |||||
Command="{}" | |||||
Content="停止制作"/> | |||||
</StackPanel> | |||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal"> | |||||
<TextBlock>模式</TextBlock> | |||||
<ComboBox Margin="10,0" | |||||
Width="100" | |||||
ItemsSource="{Binding CoffeeCmds}" | |||||
SelectedItem="{Binding SelectedCoffeeCmd}"/> | |||||
<Button Margin="10,0" | |||||
Command="{}" | |||||
Content="设置" Cursor="Hand"/> | |||||
</StackPanel> | |||||
</StackPanel> | |||||
</Grid> | |||||
</GroupBox> | |||||
<GroupBox Header="单片机控制" | |||||
FontSize="18" | |||||
Grid.Row="1" Grid.ColumnSpan="2" | |||||
Margin="0,0,0,10"> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="5*"/> | |||||
<ColumnDefinition Width="5*"/> | |||||
<ColumnDefinition Width="13*"/> | |||||
<ColumnDefinition Width="7*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Column="0" > | |||||
<TextBlock FontSize="12">连接状态</TextBlock> | |||||
<TextBlock FontSize="12"></TextBlock> | |||||
</Grid> | |||||
<Grid Grid.Column="1" > | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Row="0" Grid.Column="0" > | |||||
<TextBlock FontSize="12" HorizontalAlignment="Center">舵机控制</TextBlock> | |||||
</Grid> | |||||
<Grid Grid.Row="0" Grid.Column="1"> | |||||
<ComboBox Margin="0,0,0,0" FontSize="12" Width="60"> | |||||
<ComboBoxItem IsSelected="true">舵机1</ComboBoxItem> | |||||
<ComboBoxItem>舵机2</ComboBoxItem> | |||||
<ComboBoxItem>舵机3</ComboBoxItem> | |||||
<ComboBoxItem>舵机4</ComboBoxItem> | |||||
</ComboBox> | |||||
</Grid> | |||||
<Grid Grid.Row="1" Grid.Column="0"> | |||||
<Button FontSize="15" HorizontalAlignment="Center">输出</Button> | |||||
</Grid> | |||||
<Grid Grid.Row="1" Grid.Column="1" Width="60"> | |||||
<TextBox>1</TextBox> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
<Grid Grid.Column="2" > | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Row="0" Grid.Column="0" > | |||||
<TextBlock FontSize="12" HorizontalAlignment="Center">DI输入</TextBlock> | |||||
</Grid> | |||||
<Grid Grid.Row="1" Grid.Column="0" Width="400"> | |||||
<Grid> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Column="0"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH0">DI0</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="1"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH1">DI1</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="2"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH2">DI2</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="3"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH3">DI3</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="4"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH4">DI4</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="5"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH5">DI5</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="6"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH6">DI6</CheckBox> | |||||
</Grid> | |||||
<Grid Grid.Column="7"> | |||||
<CheckBox FontSize="12" IsEnabled="false" Name="CH7">DI7</CheckBox> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
<Grid Grid.Column="3" > | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Column="0"> | |||||
<TextBlock FontSize="12" HorizontalAlignment="Center">DO输出</TextBlock> | |||||
</Grid> | |||||
<Grid Grid.Column="1" Grid.Row="0"> | |||||
<ComboBox Width="50" FontSize="12" HorizontalAlignment="Center"> | |||||
<ComboBoxItem IsSelected="true">DO0</ComboBoxItem> | |||||
<ComboBoxItem>DO1</ComboBoxItem> | |||||
<ComboBoxItem>DO2</ComboBoxItem> | |||||
<ComboBoxItem>DO3</ComboBoxItem> | |||||
<ComboBoxItem>DO4</ComboBoxItem> | |||||
<ComboBoxItem>DO5</ComboBoxItem> | |||||
<ComboBoxItem>DO6</ComboBoxItem> | |||||
<ComboBoxItem>DO7</ComboBoxItem> | |||||
</ComboBox> | |||||
</Grid> | |||||
<Grid Grid.Column="0" Grid.Row="1"> | |||||
<Button Width="50">输出</Button> | |||||
</Grid> | |||||
<Grid Grid.Column="1" Grid.Row="1"> | |||||
<RadioButton FontSize="12" IsChecked="true">True</RadioButton> | |||||
<RadioButton Margin="50,0,0,0" FontSize="12">false</RadioButton> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</GroupBox> | |||||
</Grid> | |||||
</UserControl> |
@@ -0,0 +1,35 @@ | |||||
using BPASmartClient.Helper; | |||||
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.MorkTJAKAJC.View | |||||
{ | |||||
/// <summary> | |||||
/// DebugView.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class DebugView : UserControl | |||||
{ | |||||
public DebugView() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
private void Dubug_Unloaded(object sender, RoutedEventArgs e) | |||||
{ | |||||
ThreadManage.GetInstance().StopTask("MorkT-状态刷新"); | |||||
ThreadManage.GetInstance().StopTask("MorkT-传感器监视"); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,237 @@ | |||||
using BPASmartClient.Business; | |||||
using BPASmartClient.Device; | |||||
using BPASmartClient.DRCoffee; | |||||
using BPASmartClient.EventBus; | |||||
using BPASmartClient.GSIceCream; | |||||
using BPASmartClient.Helper; | |||||
using BPASmartClient.LebaiRobot; | |||||
using BPASmartClient.Message; | |||||
using BPASmartClient.Model; | |||||
using BPASmartClient.Model.乐白机器人; | |||||
using BPASmartClient.Model.冰淇淋.Enum; | |||||
using BPASmartClient.Model.单片机; | |||||
using BPASmartClient.Model.单片机.Enum; | |||||
using BPASmartClient.Model.咖啡机.Enum; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using Microsoft.Toolkit.Mvvm.Input; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Collections.ObjectModel; | |||||
using System.Linq; | |||||
using System.Threading; | |||||
namespace BPASmartClient.MorkTJAKAJC.ViewModel; | |||||
public class DebugViewModel : ObservableObject | |||||
{ | |||||
#region 乐白机器人 | |||||
/// <summary> | |||||
/// 乐白机器人连接状态 | |||||
/// </summary> | |||||
public string RobotConnected { get { return _robotConnected; } set { _robotConnected = value; OnPropertyChanged(); } } | |||||
private string _robotConnected { get; set; } | |||||
/// <summary> | |||||
/// 乐白机器人的模式状态 | |||||
/// </summary> | |||||
public string RobotMode { get { return _robotMode; } set { _robotMode = value; OnPropertyChanged(); } } | |||||
private string _robotMode { get; set; } | |||||
/// <summary> | |||||
/// 机器人控制指令 | |||||
/// </summary> | |||||
public RelayCommand<object> Button_RobotControlCommand { get; set; } | |||||
/// <summary> | |||||
/// 机器人控制 | |||||
/// </summary> | |||||
/// <param name="o"></param> | |||||
private void Button_RobotControl(object o) | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new LebaiRobot_LebaiControlEvent { DeviceId = DeviceId, LebaiControl = o.ToString() }); | |||||
} | |||||
#endregion | |||||
#region 果汁机 | |||||
/// <summary> | |||||
/// 果汁机的连接状态 | |||||
/// </summary> | |||||
public string JuicerConnected { get { return _JuicerConnected; } set { _JuicerConnected = value; OnPropertyChanged(); } } | |||||
private string _JuicerConnected { get; set; } | |||||
/// <summary> | |||||
/// 果汁机的状态 | |||||
/// </summary> | |||||
public string JuicerState { get { return _JuicerState; } set { _JuicerState = value; OnPropertyChanged(); } } | |||||
private string _JuicerState { get; set; } | |||||
#endregion | |||||
#region 咖啡机 | |||||
/// <summary> | |||||
/// 咖啡机连接状态 | |||||
/// </summary> | |||||
public string CoffeeConnected { get { return _coffeeConnected; } set { _coffeeConnected = value; OnPropertyChanged(); } } | |||||
private string _coffeeConnected { get; set; } | |||||
/// <summary> | |||||
/// 咖啡机状态 | |||||
/// </summary> | |||||
public string CoffeeStatus { get { return _coffeeStatus; } set { _coffeeStatus = value; OnPropertyChanged(); } } | |||||
private string _coffeeStatus { get; set; } | |||||
/// <summary> | |||||
/// 应用状态 | |||||
/// </summary> | |||||
public string AppStatus { get { return _appStatus; } set { _appStatus = value; OnPropertyChanged(); } } | |||||
private string _appStatus { get; set; } | |||||
/// <summary> | |||||
/// 告警 | |||||
/// </summary> | |||||
public string Warning { get { return _warning; } set { _warning = value; OnPropertyChanged(); } } | |||||
public string _warning { get; set; } | |||||
/// <summary> | |||||
/// 故障信息 | |||||
/// </summary> | |||||
public string CaffeeFault { get { return _caffeeFault; } set { _caffeeFault = value; OnPropertyChanged(); } } | |||||
public string _caffeeFault { get; set; } | |||||
public List<string> Coffees { get; set; } = new List<string>(); | |||||
public string SelectedCoffee { get; set; } | |||||
public List<string> CoffeeCmds { get; set; } = new List<string>(); | |||||
public string SelectedCoffeeCmd { get; set; } | |||||
/// <summary> | |||||
/// 制作咖啡 | |||||
/// </summary> | |||||
public RelayCommand Button_MakeCoffeeCommand { get; set; } | |||||
/// <summary> | |||||
/// 停止制作咖啡 | |||||
/// </summary> | |||||
public RelayCommand Button_StopMakeCoffeCommand { get; set; } | |||||
/// <summary> | |||||
/// 咖啡模式设置 | |||||
/// </summary> | |||||
public RelayCommand Button_CoffeeModeSetCommand { get; set; } | |||||
private void Button_MakeCoffee() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new DRCoffee_MakeCoffeeEvent() { DeviceId = DeviceId, DrinkCode = (DrCoffeeDrinksCode)Enum.Parse(typeof(DrCoffeeDrinksCode), SelectedCoffee)}); | |||||
} | |||||
private void Button_StopMakeCoffe() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new DRCoffee_CancelMakeCoffeeEvent() { DeviceId = DeviceId }); | |||||
} | |||||
private void Button_CoffeeModeSet() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new DRCoffee_CoffeeCommCmdEvent() { DeviceId = DeviceId, CommCmd = (DrCoffeeCommCmd)Enum.Parse(typeof(DrCoffeeCommCmd), SelectedCoffeeCmd)}); | |||||
} | |||||
#endregion | |||||
#region 单片机 | |||||
/// <summary> | |||||
/// 咖啡杯或冰淇淋杯落杯 | |||||
/// </summary> | |||||
public RelayCommand<object> Button_CupControlCommand { get; set; } | |||||
/// <summary> | |||||
/// 单片机冰淇淋机器制冷 | |||||
/// </summary> | |||||
public RelayCommand Button_SCChipRefrigerationCommand { get; set; } | |||||
/// <summary> | |||||
/// 单片机冰淇淋机器打料 | |||||
/// </summary> | |||||
public RelayCommand Button_SCChipDischargeCommand { get; set; } | |||||
/// <summary> | |||||
/// 模拟测试 | |||||
/// </summary> | |||||
public RelayCommand Button_SCChipTestCommand { get; set; } | |||||
private void Button_CupControl(object CupType) | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new SCChip_TakeCupEvent() { DeviceId = DeviceId, Cup = (IC_CUP)Enum.Parse(typeof(IC_CUP), CupType.ToString()) }); | |||||
} | |||||
private void Button_SCChipRefrigeration() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new SCChip_RotorSwitchEvent { DeviceId = DeviceId, TurnOn = true }); | |||||
Thread.Sleep(500); | |||||
EventBus.EventBus.GetInstance().Publish(new SCChip_RotorSwitchEvent { DeviceId = DeviceId, TurnOn = false }); | |||||
} | |||||
private void Button_SCChipDischarge() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new SCChip_MakeIceCreamEvent { DeviceId = DeviceId, SteeringEngine = IC_SE.SE_2 }); | |||||
} | |||||
#endregion | |||||
/// <summary> | |||||
/// 设备ID | |||||
/// </summary> | |||||
public int DeviceId { get; set; } | |||||
/// <summary> | |||||
/// 设备数据 | |||||
/// </summary> | |||||
public ObservableCollection<VariableMonitor> variableMonitors { get; set; } | |||||
public DebugViewModel() | |||||
{ | |||||
Button_RobotControlCommand = new RelayCommand<object>(Button_RobotControl); | |||||
Button_MakeCoffeeCommand = new RelayCommand(Button_MakeCoffee); | |||||
Button_StopMakeCoffeCommand = new RelayCommand(Button_StopMakeCoffe); | |||||
Button_CoffeeModeSetCommand = new RelayCommand(Button_CoffeeModeSet); | |||||
Button_CupControlCommand = new RelayCommand<object>(Button_CupControl); | |||||
Button_SCChipRefrigerationCommand = new RelayCommand(Button_SCChipRefrigeration); | |||||
Button_SCChipDischargeCommand = new RelayCommand(Button_SCChipDischarge); | |||||
Button_SCChipTestCommand = new RelayCommand(() => | |||||
{ | |||||
Button_SCChipRefrigeration(); | |||||
Thread.Sleep(50); | |||||
Button_SCChipDischarge(); | |||||
}); | |||||
foreach (DrCoffeeDrinksCode code in Enum.GetValues(typeof(DrCoffeeDrinksCode))) | |||||
{ | |||||
Coffees.Add(code.ToString()); | |||||
} | |||||
SelectedCoffee = Coffees[0]; | |||||
foreach (DrCoffeeCommCmd code in Enum.GetValues(typeof(DrCoffeeCommCmd))) | |||||
{ | |||||
CoffeeCmds.Add(code.ToString()); | |||||
} | |||||
SelectedCoffeeCmd = CoffeeCmds[0]; | |||||
Plugin.GetInstance()?.GetPlugin<DeviceMgr>()?.GetDevices().ForEach(device => | |||||
{ | |||||
if (device.Name == "MorkT") DeviceId = device.DeviceId | |||||
; | |||||
}); | |||||
ThreadManage.GetInstance().StartLong(new Action(() => | |||||
{ | |||||
variableMonitors = Plugin.GetInstance()?.GetPlugin<DeviceMgr>()?.GetDevices()?.FirstOrDefault(p => p.DeviceId == DeviceId)?.variableMonitors; | |||||
if (variableMonitors != null && variableMonitors.Count > 0) | |||||
{ | |||||
RobotConnected = variableMonitors.FirstOrDefault(p=>p.Notes == "机器人连接状态").CurrentValue == "True" ? "已连接" : "未连接"; | |||||
CoffeeConnected = variableMonitors.FirstOrDefault(p => p.Notes == "咖啡机连接状态").CurrentValue == "True" ? "已连接" : "未连接"; | |||||
JuicerConnected = variableMonitors.FirstOrDefault(p => p.Notes == "果汁机连接状态").CurrentValue == "True" ? "已连接" : "未连接"; | |||||
RobotMode = variableMonitors.FirstOrDefault(p => p.Notes == "机器人状态").CurrentValue; | |||||
CoffeeStatus = variableMonitors.FirstOrDefault(p => p.Notes == "咖啡机状态").CurrentValue; | |||||
AppStatus = variableMonitors.FirstOrDefault(p => p.Notes == "咖啡机应用状态").CurrentValue; | |||||
Warning = variableMonitors.FirstOrDefault(p => p.Notes == "咖啡机告警").CurrentValue; | |||||
CaffeeFault = variableMonitors.FirstOrDefault(p => p.Notes == "咖啡机故障").CurrentValue; | |||||
} | |||||
Thread.Sleep(500); | |||||
}), "MorkT-状态刷新"); | |||||
} | |||||
} | |||||
@@ -0,0 +1,94 @@ | |||||
using BPASmartClient.Business; | |||||
using BPASmartClient.Helper; | |||||
using BPASmartClient.Model.乐白机器人; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Globalization; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading; | |||||
using System.Threading.Tasks; | |||||
using System.Windows.Data; | |||||
using System.Windows.Media; | |||||
namespace BPASmartClient.MorkTJAKAJC.ViewModel | |||||
{ | |||||
public class MonitorViewModel: ObservableObject | |||||
{ | |||||
#region 传感器 | |||||
/// <summary> | |||||
/// 机器人夹爪传感器 | |||||
/// </summary> | |||||
public bool RobotSenser { get { return _robotSenser; } set { _robotSenser = value; OnPropertyChanged(); } } | |||||
private bool _robotSenser; | |||||
/// <summary> | |||||
/// 冰淇淋出口传感器 | |||||
/// </summary> | |||||
public bool IceCreamSenser { get { return _iceCreamSenser; } set { _iceCreamSenser = value; OnPropertyChanged(); } } | |||||
private bool _iceCreamSenser; | |||||
/// <summary> | |||||
/// 取餐口检测传感器 | |||||
/// </summary> | |||||
public bool TakeMealSenser { get { return _takeMealSenser; } set { _takeMealSenser = value; OnPropertyChanged(); } } | |||||
private bool _takeMealSenser; | |||||
#endregion | |||||
/// <summary> | |||||
/// 设备ID | |||||
/// </summary> | |||||
int DeviceId; | |||||
public MonitorViewModel() | |||||
{ | |||||
Plugin.GetInstance()?.GetPlugin<DeviceMgr>()?.GetDevices().ForEach(device => | |||||
{ | |||||
if (device.Name == "MorkT") DeviceId = device.DeviceId; | |||||
}); | |||||
ThreadManage.GetInstance().StartLong(new Action(() => | |||||
{ | |||||
EventBus.EventBus.GetInstance().Publish(new LebaiRobot_GetTCPInputEvent() { DeviceId = DeviceId, Pin = 1 },(res)=> | |||||
{ | |||||
if(res != null&& res.Length>0&& res[0] is bool b) | |||||
{ | |||||
RobotSenser = b; | |||||
} | |||||
}); | |||||
EventBus.EventBus.GetInstance().Publish(new LebaiRobot_GetInputEvent() { DeviceId = DeviceId, Pin = 0 }, (res) => | |||||
{ | |||||
if (res != null && res.Length > 0 && res[0] is bool b) | |||||
{ | |||||
TakeMealSenser = b; | |||||
} | |||||
}); | |||||
EventBus.EventBus.GetInstance().Publish(new LebaiRobot_GetTCPInputEvent() { DeviceId = DeviceId, Pin = 3 }, (res) => | |||||
{ | |||||
if (res != null && res.Length > 0 && res[0] is bool b) | |||||
{ | |||||
IceCreamSenser = b; | |||||
} | |||||
}); | |||||
Thread.Sleep(500); | |||||
}), "MorkT-传感器监视"); | |||||
} | |||||
} | |||||
public class BoolToColorConvert : IValueConverter | |||||
{ | |||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) | |||||
{ | |||||
return (bool) value? new SolidColorBrush(Color.FromRgb(144, 238, 144)) : new SolidColorBrush(Color.FromRgb(178, 34, 34)); | |||||
} | |||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) | |||||
{ | |||||
throw new NotImplementedException(); | |||||
} | |||||
} | |||||
} |