终端一体化运控平台
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

DebugViewModel.cs 19 KiB

2年前
1年前
1年前
2年前
1年前
2年前
2年前
2年前
1年前
1年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
1年前
2年前
2年前
2年前
1年前
2年前
1年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
1年前
2年前
2年前
1年前
1年前
2年前
2年前
1年前
2年前
1年前
2年前
2年前
2年前
1年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. using BPASmartClient.Business;
  2. using BPASmartClient.Device;
  3. using BPA.Helper;
  4. using BPASmartClient.MorkF.Model;
  5. using BPA.Helper;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Collections.ObjectModel;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace BPASmartClient.MorkF.ViewModel
  13. {
  14. internal class DebugViewModel : NotifyBase
  15. {
  16. public bool SimOrderEnable { get { return General_Config.SimOrderAllow; } set { General_Config.SimOrderAllow = value; OnPropertyChanged(); } }
  17. /// <summary>
  18. /// 设备数据
  19. /// </summary>
  20. public ObservableCollection<VariableMonitor> variableMonitors { get; set; }
  21. /// <summary>
  22. /// 设备ID
  23. /// </summary>
  24. public int DeviceId { get; set; }
  25. #region 设备控制
  26. public int FoodMenuID { get { return _foodMenuID; } set { _foodMenuID = value; OnPropertyChanged(); } }
  27. private int _foodMenuID;
  28. public BPARelayCommand PlcInite { get; set; }
  29. public BPARelayCommand FoodPlcInite { get; set; }
  30. public BPARelayCommand Plc1Reset { get; set; }
  31. public BPARelayCommand StartOrder { get; set; }
  32. public BPARelayCommand StopLocalOrder { get; set; }
  33. public BPARelayCommand ModeChange { get; set; }
  34. #endregion
  35. #region 菜品控制
  36. public string RealX { get { return _realX; } set { _realX = value; OnPropertyChanged(); } }
  37. private string _realX;
  38. public string RealY { get { return _realY; } set { _realY = value; OnPropertyChanged(); } }
  39. private string _realY;
  40. public int SettingX { get { return _settingX; } set { _settingX = value; OnPropertyChanged(); } }
  41. private int _settingX = 0;
  42. public int SettingY { get { return _settingY; } set { _settingY = value; OnPropertyChanged(); } }
  43. private int _settingY = 0;
  44. public int SettingNowX { get { return _settingNowX; } set { _settingNowX = value; OnPropertyChanged(); } }
  45. private int _settingNowX = 0;
  46. public int SettingNowY { get { return _settingNowY; } set { _settingNowY = value; OnPropertyChanged(); } }
  47. private int _settingNowY = 0;
  48. public int MoveSpeed { get { return _moveSpeed; } set { _moveSpeed = value; OnPropertyChanged(); } }
  49. private int _moveSpeed;
  50. public string SensingDistance_1 { get { return _sensingDistance_1; } set { _sensingDistance_1 = value; OnPropertyChanged(); } }
  51. private string _sensingDistance_1;
  52. public string SensingDistance_2 { get { return _sensingDistance_2; } set { _sensingDistance_2 = value; OnPropertyChanged(); } }
  53. private string _sensingDistance_2;
  54. public string SensingDistance_3 { get { return _sensingDistance_3; } set { _sensingDistance_3 = value; OnPropertyChanged(); } }
  55. private string _sensingDistance_3;
  56. public bool PawPositon1 { get { return _pawPositon1; } set { _pawPositon1 = value; OnPropertyChanged(); } }
  57. private bool _pawPositon1;
  58. public bool PawPositon2 { get { return _pawPositon2; } set { _pawPositon2 = value; OnPropertyChanged(); } }
  59. private bool _pawPositon2;
  60. public bool PawPositon3 { get { return _pawPositon3; } set { _pawPositon3 = value; OnPropertyChanged(); } }
  61. private bool _pawPositon3;
  62. public bool ArmRunUp { get { return _armRunUp; } set { _armRunUp = value; OnPropertyChanged(); } }
  63. private bool _armRunUp;
  64. public bool ArmRunDown { get { return _armRunDown; } set { _armRunDown = value; OnPropertyChanged(); } }
  65. private bool _armRunDown;
  66. public bool ArmRunLeft { get { return _armRunLeft; } set { _armRunLeft = value; OnPropertyChanged(); } }
  67. private bool _armRunLeft;
  68. public bool ArmRunRight { get { return _armRunRight; } set { _armRunRight = value; OnPropertyChanged(); } }
  69. private bool _armRunRight;
  70. public bool ArmRunEnable { get { return _ArmRunEnable; } set { _ArmRunEnable = value; OnPropertyChanged(); } }
  71. private bool _ArmRunEnable = true;
  72. public string ArmButtonName { get { return _ArmButtonName; } set { _ArmButtonName = value; OnPropertyChanged(); } }
  73. private string _ArmButtonName = "启动";
  74. public string ModeButten { get { return _ModeButten; } set { _ModeButten = value; OnPropertyChanged(); } }
  75. private string _ModeButten = "联网模式";
  76. public BPARelayCommand SetNowPosition { get; set; }//设置机械臂当前坐标
  77. public BPARelayCommand FoodLibInit { get; set; }//初始化
  78. public BPARelayCommand SurplusCheck { get; set; }//初始化
  79. public BPARelayCommand StartElectromagnetism { get; set; }//电磁阀启动
  80. public BPARelayCommand StopElectromagnetism { get; set; }
  81. public BPARelayCommand SetSpeed { get; set; }//速度设定
  82. public BPARelayCommand GetDistance_1 { get; set; }//感应测距1
  83. public BPARelayCommand GetDistance_2 { get; set; }//感应测距2
  84. public BPARelayCommand GetDistance_3 { get; set; }//感应测距3
  85. public BPARelayCommand PawTurnFront { get; set; }//夹爪正转
  86. public BPARelayCommand PawTurnBack { get; set; }//夹爪反转
  87. public BPARelayCommand SetArmPosition { get; set; }//机器臂位置设定
  88. public BPARelayCommand ArmRun { get; set; }//机械臂运动
  89. public BPARelayCommand PawToPoint1 { get; set; }//感应测距1
  90. public BPARelayCommand PawToPoint2 { get; set; }//感应测距2
  91. public BPARelayCommand PawToPoint3 { get; set; }//感应测距3
  92. #endregion
  93. #region 配料仓控制
  94. public List<string> PassageWays { get; set; } = new List<string>()
  95. {
  96. "通道1",
  97. "通道2",
  98. "通道3",
  99. "通道4",
  100. "通道5",
  101. "通道6",
  102. "通道7",
  103. "通道8",
  104. "通道9",
  105. "通道10",
  106. "通道11",
  107. "通道12",
  108. "通道13",
  109. "通道14",
  110. };
  111. public int PassagePosition { get { return _passagePosition; } set { _passagePosition = value; OnPropertyChanged(); } }
  112. private int _passagePosition;
  113. public int Weight { get { return _weight; } set { _weight = value; OnPropertyChanged(); } }
  114. private int _weight;
  115. public BPARelayCommand OutMaterials { get; set; }
  116. #endregion
  117. #region 炒锅1
  118. public BPARelayCommand Pot1SimOrder { get; set; }
  119. public BPARelayCommand AddOil { get; set; }
  120. public BPARelayCommand StartFire { get; set; }
  121. public BPARelayCommand StopFire { get; set; }
  122. public BPARelayCommand StartStir { get; set; }
  123. public BPARelayCommand StopStir { get; set; }
  124. public BPARelayCommand MagnetOn { get; set; }
  125. public BPARelayCommand MagnetOff { get; set; }
  126. public BPARelayCommand OutFood { get; set; }
  127. public BPARelayCommand StirArmGoOrigin { get; set; }
  128. public BPARelayCommand StirArmGoWork { get; set; }
  129. public BPARelayCommand HBOTGoWork { get; set; }
  130. public BPARelayCommand OutMeal { get; set; }
  131. public BPARelayCommand SetFire { get; set; }
  132. public BPARelayCommand SetFry { get; set; }
  133. public BPARelayCommand SetStir { get; set; }
  134. public List<int> lstFire { get; set; } = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  135. public List<int> lstFry { get; set; } = new List<int>() { 1, 2 };
  136. public List<int> lstStir { get; set; } = new List<int>() { 1, 2, 3 };
  137. public int FireGear { get { return _fireGear; } set { _fireGear = value; OnPropertyChanged(); } }
  138. private int _fireGear;
  139. public int FryGear { get { return _fryeGear; } set { _fryeGear = value; OnPropertyChanged(); } }
  140. private int _fryeGear;
  141. public int StirGear { get { return _stirGear; } set { _stirGear = value; OnPropertyChanged(); } }
  142. private int _stirGear;
  143. #region 模拟
  144. public int OilTime { get { return _oilTime; } set { _oilTime = value; OnPropertyChanged(); } }
  145. private int _oilTime = 10;
  146. public int OilFirGear { get { return _oilFirGear; } set { _oilFirGear = value; OnPropertyChanged(); } }
  147. private int _oilFirGear = 3;
  148. public int OilStrGear { get { return _oilStrGear; } set { _oilStrGear = value; OnPropertyChanged(); } }
  149. private int _oilStrGear = 1;
  150. public int Food1Time { get { return _food1Time; } set { _food1Time = value; OnPropertyChanged(); } }
  151. private int _food1Time = 30;
  152. public int Food1FirGear { get { return _food1FirGear; } set { _food1FirGear = value; OnPropertyChanged(); } }
  153. private int _food1FirGear = 6;
  154. public int Food1StrGear { get { return _food1StrGear; } set { _food1StrGear = value; OnPropertyChanged(); } }
  155. private int _food1StrGear = 2;
  156. public int Food2Time { get { return _food2Time; } set { _food2Time = value; OnPropertyChanged(); } }
  157. private int _food2Time = 30;
  158. public int Food2FirGear { get { return _food2FirGear; } set { _food2FirGear = value; OnPropertyChanged(); } }
  159. private int _food2FirGear = 6;
  160. public int Food2StrGear { get { return _food2StrGear; } set { _food2StrGear = value; OnPropertyChanged(); } }
  161. private int _food2StrGear = 2;
  162. #endregion
  163. #endregion
  164. #region 炒锅2
  165. public BPARelayCommand SecAddOil { get; set; }
  166. public BPARelayCommand SecTempTurnOff { get; set; }
  167. public BPARelayCommand SecOneBlock { get; set; }
  168. public BPARelayCommand SecTwoBlock { get; set; }
  169. public BPARelayCommand SecThreeBlock { get; set; }
  170. public BPARelayCommand SecOverTurnOff { get; set; }
  171. public BPARelayCommand SecOverOneBlock { get; set; }
  172. public BPARelayCommand SecOverTwoBlock { get; set; }
  173. public BPARelayCommand SecOverThreeBlock { get; set; }
  174. public BPARelayCommand SecOverGoOn { get; set; }
  175. public BPARelayCommand SecOverGoDown { get; set; }
  176. public BPARelayCommand SecAutoModel { get; set; }
  177. public BPARelayCommand SecManualModel { get; set; }
  178. #endregion
  179. public DebugViewModel()
  180. {
  181. #region 设备控制
  182. PlcInite = new BPARelayCommand(() => { ActionManage.GetInstance.Send("InitCommand"); });
  183. Plc1Reset = new BPARelayCommand(() => { ActionManage.GetInstance.Send("Plc1Reset"); });
  184. StartOrder = new BPARelayCommand(() => { ActionManage.GetInstance.Send(FoodMenuID, "StartOrder"); });
  185. StopLocalOrder = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StopLocalOrder"); });
  186. ModeChange = new BPARelayCommand(() =>
  187. {
  188. ActionManage.GetInstance.Send("ModeChange");
  189. if (ModeButten == "联网模式")
  190. {
  191. ModeButten = "本地模式";
  192. }
  193. else
  194. {
  195. ModeButten = "联网模式";
  196. }
  197. });
  198. #endregion
  199. #region 菜品控制
  200. FoodLibInit = new BPARelayCommand(() => { ActionManage.GetInstance.Send("FoodLibInit"); });//菜品库初始化
  201. SurplusCheck = new BPARelayCommand(() => { ActionManage.GetInstance.Send("SurplusCheck"); });//菜品库初始化
  202. StartElectromagnetism = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<bool> { false }, "Electromagnetism"); });//电磁阀启动
  203. StopElectromagnetism = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<bool> { true }, "Electromagnetism"); });//电磁阀关闭
  204. SetSpeed = new BPARelayCommand(() =>
  205. {
  206. ActionManage.GetInstance.Send(new List<int> { MoveSpeed }, "SetSpeed");
  207. });//设定速度
  208. PawToPoint1 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint1"); });//爪子去1号位
  209. PawToPoint2 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint2"); });//爪子去2号位
  210. PawToPoint3 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint3"); });//爪子去3号位
  211. GetDistance_1 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_1"); });//感应距离1
  212. GetDistance_2 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_2"); });//感应距离2
  213. GetDistance_3 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_3"); });//感应距离3
  214. PawTurnFront = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawTurnFront"); });//夹爪正转
  215. PawTurnBack = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawTurnBack"); });//夹爪反转
  216. SetArmPosition = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { SettingX, SettingY }, "SetArmPosition"); });//设定机械臂位置
  217. SetNowPosition = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { SettingX, SettingY }, "SetNowPosition"); });//设定机械臂当前位置
  218. ArmRun = new BPARelayCommand(() =>
  219. {
  220. //判断是否都未点击
  221. if (!ArmRunDown && !ArmRunUp && !ArmRunLeft && !ArmRunRight)
  222. {
  223. return;
  224. }
  225. ArmRunEnable = !ArmRunEnable;
  226. if (ArmRunEnable)
  227. {
  228. ArmButtonName = "启动";
  229. }
  230. else
  231. {
  232. ArmButtonName = "停止";
  233. }
  234. if (ArmRunUp)
  235. {
  236. ActionManage.GetInstance.Send(!ArmRunEnable, "ArmRunUp");
  237. }
  238. else if (ArmRunDown)
  239. {
  240. ActionManage.GetInstance.Send(!ArmRunEnable, "ArmRunDown");
  241. }
  242. else if (ArmRunLeft)
  243. {
  244. ActionManage.GetInstance.Send(!ArmRunEnable, "ArmRunLeft");
  245. }
  246. else if (ArmRunRight)
  247. {
  248. ActionManage.GetInstance.Send(!ArmRunEnable, "ArmRunRight");
  249. }
  250. });//设定机械臂位置
  251. #endregion
  252. #region 配料仓控制
  253. OutMaterials = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { PassagePosition + 1, Weight }, "OutMaterials"); });
  254. #endregion
  255. #region 炒锅1
  256. Pot1SimOrder = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { OilTime, OilFirGear, OilStrGear, Food1Time, Food1FirGear, Food1StrGear, Food2Time, Food2FirGear, Food2StrGear }, "模拟小炒锅1订单"); });//模拟订单
  257. AddOil = new BPARelayCommand(() => { ActionManage.GetInstance.Send(1, "AddOil"); });//加油
  258. StartFire = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StartFire"); });//加热启动
  259. StopFire = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StopFire"); });//加热停止
  260. StartStir = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StartStir"); });//搅拌启动
  261. StopStir = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StopStir"); });//搅拌停止
  262. MagnetOn = new BPARelayCommand(() => { ActionManage.GetInstance.Send("MagnetOn"); });//磁吸开启
  263. MagnetOff = new BPARelayCommand(() => { ActionManage.GetInstance.Send("MagnetOff"); });//磁吸开启
  264. OutFood = new BPARelayCommand(() => { ActionManage.GetInstance.Send("OutFood"); });//倒菜启动
  265. StirArmGoOrigin = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StirArmGoOrigin"); });//搅拌臂去原点位
  266. StirArmGoWork = new BPARelayCommand(() => { ActionManage.GetInstance.Send("StirArmGoWork"); });//搅拌臂去炒制位
  267. HBOTGoWork = new BPARelayCommand(() => { ActionManage.GetInstance.Send("HBOTGoWork"); });//放盒子到位
  268. OutMeal = new BPARelayCommand(() => { ActionManage.GetInstance.Send("OutMeal"); });//出餐启动
  269. SetFire = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { FireGear }, "SetFire"); });//加热挡位设定
  270. SetStir = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { StirGear }, "SetStir"); });//搅拌挡位设定
  271. SetFry = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { FryGear }, "SetFry"); });//炒锅选择
  272. #endregion
  273. #region 炒锅2
  274. SecAddOil = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "AddOil"); });
  275. SecTempTurnOff = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "TakeOff"); });
  276. SecOneBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OneBlock"); });
  277. SecTwoBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "TwoBlock"); });
  278. SecThreeBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "ThreeBlock"); });
  279. SecOverTurnOff = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverTurnOff"); });
  280. SecOverOneBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverOneBlock"); });
  281. SecOverTwoBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverTwoBlock"); });
  282. SecOverThreeBlock = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverThreeBlock"); });
  283. SecOverGoOn = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverGoOn"); });
  284. SecOverGoDown = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "OverGoDown"); });
  285. SecAutoModel = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "AutoModel"); });
  286. SecManualModel = new BPARelayCommand(() => { ActionManage.GetInstance.Send(2, "ManualModel"); });
  287. #endregion
  288. Plugin.GetInstance?.GetPlugin<DeviceMgr>()?.GetDevices().ForEach(device =>
  289. {
  290. if (device.Name == "MorkT") DeviceId = device.DeviceId
  291. ;
  292. });
  293. TaskManage.GetInstance.StartLong(new Action(() =>
  294. {
  295. //variableMonitors = Plugin.GetInstance?.GetPlugin<DeviceMgr>()?.GetDevices()?.FirstOrDefault(p => p.DeviceId == DeviceId)?.variableMonitors;
  296. if (variableMonitors != null)
  297. {
  298. RealX = variableMonitors.FirstOrDefault(p => p.Notes == "机械手臂X").CurrentValue;
  299. RealY = variableMonitors.FirstOrDefault(p => p.Notes == "机械手臂Y").CurrentValue;
  300. }
  301. }), "获取小炒数据");
  302. }
  303. }
  304. }