终端一体化运控平台
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

MaterialCalibrationViewModel.cs 58 KiB

před 1 rokem
před 1 rokem
před 4 měsíci
před 1 rokem
před 2 roky
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 4 měsíci
před 2 roky
před 2 roky
před 2 roky
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 4 měsíci
před 4 měsíci
před 2 roky
před 4 měsíci
před 4 měsíci
před 2 roky
před 2 roky
před 2 roky
před 4 měsíci
před 1 rokem
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 1 rokem
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 1 rokem
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 1 rokem
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 2 roky
před 4 měsíci
před 2 roky
před 4 měsíci
před 2 roky
před 4 měsíci
před 2 roky
před 4 měsíci
před 2 roky
před 1 rokem
před 4 měsíci
před 1 rokem
před 4 měsíci
před 1 rokem
před 1 rokem
před 2 roky
před 4 měsíci
před 1 rokem
před 1 rokem
před 4 měsíci
před 1 rokem
před 4 měsíci
před 1 rokem
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 4 měsíci
před 1 rokem
před 1 rokem
před 1 rokem
před 2 roky
před 4 měsíci
před 2 roky
před 4 měsíci
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174
  1. using BPA.Helper;
  2. using BPASmartClient.MorkF.Model;
  3. using Google.Protobuf.WellKnownTypes;
  4. using BPA.Helper;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows;
  11. namespace BPASmartClient.MorkF.ViewModel
  12. {
  13. internal class MaterialCalibrationViewModel : NotifyBase
  14. {
  15. #region 菜品库控制
  16. #region 点位1
  17. public bool PositionOne { get { return _PositionOne; } set { _PositionOne = value; OnPropertyChanged(); } }
  18. private bool _PositionOne;
  19. public int OneX { get { return _OneX; } set { _OneX = value; OnPropertyChanged(); } }
  20. private int _OneX;
  21. public int OneY { get { return _OneY; } set { _OneY = value; OnPropertyChanged(); } }
  22. private int _OneY;
  23. #endregion
  24. #region 点位2
  25. public bool PositionTwo { get { return _PositionTwo; } set { _PositionTwo = value; OnPropertyChanged(); } }
  26. private bool _PositionTwo;
  27. public int TwoX { get { return _TwoX; } set { _TwoX = value; OnPropertyChanged(); } }
  28. private int _TwoX;
  29. public int TwoY { get { return _TwoY; } set { _TwoY = value; OnPropertyChanged(); } }
  30. private int _TwoY;
  31. #endregion
  32. #region 点位3
  33. public bool PositionThree { get { return _PositionThree; } set { _PositionThree = value; OnPropertyChanged(); } }
  34. private bool _PositionThree;
  35. public int ThreeX { get { return _ThreeX; } set { _ThreeX = value; OnPropertyChanged(); } }
  36. private int _ThreeX;
  37. public int ThreeY { get { return _ThreeY; } set { _ThreeY = value; OnPropertyChanged(); } }
  38. private int _ThreeY;
  39. #endregion
  40. #region 点位4
  41. public bool PositionFour { get { return _PositionFour; } set { _PositionFour = value; OnPropertyChanged(); } }
  42. private bool _PositionFour;
  43. public int FourX { get { return _FourX; } set { _FourX = value; OnPropertyChanged(); } }
  44. private int _FourX;
  45. public int FourY { get { return _FourY; } set { _FourY = value; OnPropertyChanged(); } }
  46. private int _FourY;
  47. #endregion
  48. #region 点位5
  49. public bool PositionFive { get { return _PositionFive; } set { _PositionFive = value; OnPropertyChanged(); } }
  50. private bool _PositionFive;
  51. public int FiveX { get { return _FiveX; } set { _FiveX = value; OnPropertyChanged(); } }
  52. private int _FiveX;
  53. public int FiveY { get { return _FiveY; } set { _FiveY = value; OnPropertyChanged(); } }
  54. private int _FiveY;
  55. #endregion
  56. #region 点位6
  57. public bool PositionSix { get { return _PositionSix; } set { _PositionSix = value; OnPropertyChanged(); } }
  58. private bool _PositionSix;
  59. public int SixX { get { return _SixX; } set { _SixX = value; OnPropertyChanged(); } }
  60. private int _SixX;
  61. public int SixY { get { return _SixY; } set { _SixY = value; OnPropertyChanged(); } }
  62. private int _SixY;
  63. #endregion
  64. #region 点位7
  65. public bool PositionSeven { get { return _PositionSeven; } set { _PositionSeven = value; OnPropertyChanged(); } }
  66. private bool _PositionSeven;
  67. public int SevenX { get { return _SevenX; } set { _SevenX = value; OnPropertyChanged(); } }
  68. private int _SevenX;
  69. public int SevenY { get { return _SevenY; } set { _SevenY = value; OnPropertyChanged(); } }
  70. private int _SevenY;
  71. #endregion
  72. #region 点位8
  73. public bool PositionEight { get { return _PositionEight; } set { _PositionEight = value; OnPropertyChanged(); } }
  74. private bool _PositionEight;
  75. public int EightX { get { return _EightX; } set { _EightX = value; OnPropertyChanged(); } }
  76. private int _EightX;
  77. public int EightY { get { return _EightY; } set { _EightY = value; OnPropertyChanged(); } }
  78. private int _EightY;
  79. #endregion
  80. #region 点位9
  81. public bool PositionNine { get { return _PositionNine; } set { _PositionNine = value; OnPropertyChanged(); } }
  82. private bool _PositionNine;
  83. public int NineX { get { return _NineX; } set { _NineX = value; OnPropertyChanged(); } }
  84. private int _NineX;
  85. public int NineY { get { return _NineY; } set { _NineY = value; OnPropertyChanged(); } }
  86. private int _NineY;
  87. #endregion
  88. #region 点位10
  89. public bool PositionTen { get { return _PositionTen; } set { _PositionTen = value; OnPropertyChanged(); } }
  90. private bool _PositionTen;
  91. public int TenX { get { return _TenX; } set { _TenX = value; OnPropertyChanged(); } }
  92. private int _TenX;
  93. public int TenY { get { return _TenY; } set { _TenY = value; OnPropertyChanged(); } }
  94. private int _TenY;
  95. #endregion
  96. #region 点位11
  97. public bool PositionEleven { get { return _PositionEleven; } set { _PositionEleven = value; OnPropertyChanged(); } }
  98. private bool _PositionEleven;
  99. public int ElevenX { get { return _ElevenX; } set { _ElevenX = value; OnPropertyChanged(); } }
  100. private int _ElevenX;
  101. public int ElevenY { get { return _ElevenY; } set { _ElevenY = value; OnPropertyChanged(); } }
  102. private int _ElevenY;
  103. #endregion
  104. #region 点位12
  105. public bool PositionTwelve { get { return _PositionTwelve; } set { _PositionTwelve = value; OnPropertyChanged(); } }
  106. private bool _PositionTwelve;
  107. public int TwelveX { get { return _TwelveX; } set { _TwelveX = value; OnPropertyChanged(); } }
  108. private int _TwelveX;
  109. public int TwelveY { get { return _TwelveY; } set { _TwelveY = value; OnPropertyChanged(); } }
  110. private int _TwelveY;
  111. #endregion
  112. #region 点位13
  113. public bool PositionThirteen { get { return _PositionThirteen; } set { _PositionThirteen = value; OnPropertyChanged(); } }
  114. private bool _PositionThirteen;
  115. public int ThirteenX { get { return _ThirteenX; } set { _ThirteenX = value; OnPropertyChanged(); } }
  116. private int _ThirteenX;
  117. public int ThirteenY { get { return _ThirteenY; } set { _ThirteenY = value; OnPropertyChanged(); } }
  118. private int _ThirteenY;
  119. #endregion
  120. #region 点位14
  121. public bool PositionFourteen { get { return _PositionFourteen; } set { _PositionFourteen = value; OnPropertyChanged(); } }
  122. private bool _PositionFourteen;
  123. public int FourteenX { get { return _FourteenX; } set { _FourteenX = value; OnPropertyChanged(); } }
  124. private int _FourteenX;
  125. public int FourteenY { get { return _FourteenY; } set { _FourteenY = value; OnPropertyChanged(); } }
  126. private int _FourteenY;
  127. #endregion
  128. #region 点位15
  129. public bool PositionFifteen { get { return _PositionFifteen; } set { _PositionFifteen = value; OnPropertyChanged(); } }
  130. private bool _PositionFifteen;
  131. public int FifteenX { get { return _FifteenX; } set { _FifteenX = value; OnPropertyChanged(); } }
  132. private int _FifteenX;
  133. public int FifteenY { get { return _FifteenY; } set { _FifteenY = value; OnPropertyChanged(); } }
  134. private int _FifteenY;
  135. #endregion
  136. #region 点位16
  137. public bool PositionSixteen { get { return _PositionSixteen; } set { _PositionSixteen = value; OnPropertyChanged(); } }
  138. private bool _PositionSixteen;
  139. public int SixteenX { get { return _SixteenX; } set { _SixteenX = value; OnPropertyChanged(); } }
  140. private int _SixteenX;
  141. public int SixteenY { get { return _SixteenY; } set { _SixteenY = value; OnPropertyChanged(); } }
  142. private int _SixteenY;
  143. #endregion
  144. #region 点位17
  145. public bool PositionSeventeen { get { return _PositionSeventeen; } set { _PositionSeventeen = value; OnPropertyChanged(); } }
  146. private bool _PositionSeventeen;
  147. public int SeventeenX { get { return _SeventeenX; } set { _SeventeenX = value; OnPropertyChanged(); } }
  148. private int _SeventeenX;
  149. public int SeventeenY { get { return _SeventeenY; } set { _SeventeenY = value; OnPropertyChanged(); } }
  150. private int _SeventeenY;
  151. #endregion
  152. #region 点位18
  153. public bool PositionEighteen { get { return _PositionEighteen; } set { _PositionEighteen = value; OnPropertyChanged(); } }
  154. private bool _PositionEighteen;
  155. public int EighteenX { get { return _EighteenX; } set { _EighteenX = value; OnPropertyChanged(); } }
  156. private int _EighteenX;
  157. public int EighteenY { get { return _EighteenY; } set { _EighteenY = value; OnPropertyChanged(); } }
  158. private int _EighteenY;
  159. #endregion
  160. #region 点位19
  161. public bool PositionNineteen { get { return _PositionNineteen; } set { _PositionNineteen = value; OnPropertyChanged(); } }
  162. private bool _PositionNineteen;
  163. public int NineteenX { get { return _NineteenX; } set { _NineteenX = value; OnPropertyChanged(); } }
  164. private int _NineteenX;
  165. public int NineteenY { get { return _NineteenY; } set { _NineteenY = value; OnPropertyChanged(); } }
  166. private int _NineteenY;
  167. #endregion
  168. #region 点位20
  169. public bool PositionTwenty { get { return _PositionTwenty; } set { _PositionTwenty = value; OnPropertyChanged(); } }
  170. private bool _PositionTwenty;
  171. public int TwentyX { get { return _TwentyX; } set { _TwentyX = value; OnPropertyChanged(); } }
  172. private int _TwentyX;
  173. public int TwentyY { get { return _TwentyY; } set { _TwentyY = value; OnPropertyChanged(); } }
  174. private int _TwentyY;
  175. #endregion
  176. #region 点位21
  177. public bool PositionTwentyOne { get { return _PositionTwentyOne; } set { _PositionTwentyOne = value; OnPropertyChanged(); } }
  178. private bool _PositionTwentyOne;
  179. public int TwentyOneX { get { return _TwentyOneX; } set { _TwentyOneX = value; OnPropertyChanged(); } }
  180. private int _TwentyOneX;
  181. public int TwentyOneY { get { return _TwentyOneY; } set { _TwentyOneY = value; OnPropertyChanged(); } }
  182. private int _TwentyOneY;
  183. #endregion
  184. #region 点位22
  185. public bool PositionTwentyTwo { get { return _PositionTwentyTwo; } set { _PositionTwentyTwo = value; OnPropertyChanged(); } }
  186. private bool _PositionTwentyTwo;
  187. public int TwentyTwoX { get { return _TwentyTwoX; } set { _TwentyTwoX = value; OnPropertyChanged(); } }
  188. private int _TwentyTwoX;
  189. public int TwentyTwoY { get { return _TwentyTwoY; } set { _TwentyTwoY = value; OnPropertyChanged(); } }
  190. private int _TwentyTwoY;
  191. #endregion
  192. #region 点位23
  193. public bool PositionTwentyThree { get { return _PositionTwentyThree; } set { _PositionTwentyThree = value; OnPropertyChanged(); } }
  194. private bool _PositionTwentyThree;
  195. public int TwentyThreeX { get { return _TwentyThreeX; } set { _TwentyThreeX = value; OnPropertyChanged(); } }
  196. private int _TwentyThreeX;
  197. public int TwentyThreeY { get { return _TwentyThreeY; } set { _TwentyThreeY = value; OnPropertyChanged(); } }
  198. private int _TwentyThreeY;
  199. #endregion
  200. #region 点位24
  201. public bool PositionTwentyFour { get { return _PositionTwentyFour; } set { _PositionTwentyFour = value; OnPropertyChanged(); } }
  202. private bool _PositionTwentyFour;
  203. public int TwentyFourX { get { return _TwentyFourX; } set { _TwentyFourX = value; OnPropertyChanged(); } }
  204. private int _TwentyFourX;
  205. public int TwentyFourY { get { return _TwentyFourY; } set { _TwentyFourY = value; OnPropertyChanged(); } }
  206. private int _TwentyFourY;
  207. #endregion
  208. #region 点位25
  209. public bool PositionTwentyFive { get { return _PositionTwentyFive; } set { _PositionTwentyFive = value; OnPropertyChanged(); } }
  210. private bool _PositionTwentyFive;
  211. public int TwentyFiveX { get { return _TwentyFiveX; } set { _TwentyFiveX = value; OnPropertyChanged(); } }
  212. private int _TwentyFiveX;
  213. public int TwentyFiveY { get { return _TwentyFiveY; } set { _TwentyFiveY = value; OnPropertyChanged(); } }
  214. private int _TwentyFiveY;
  215. #endregion
  216. #region 点位26
  217. public bool PositionTwentySix { get { return _PositionTwentySix; } set { _PositionTwentySix = value; OnPropertyChanged(); } }
  218. private bool _PositionTwentySix;
  219. public int TwentySixX { get { return _TwentySixX; } set { _TwentySixX = value; OnPropertyChanged(); } }
  220. private int _TwentySixX;
  221. public int TwentySixY { get { return _TwentySixY; } set { _TwentySixY = value; OnPropertyChanged(); } }
  222. private int _TwentySixY;
  223. #endregion
  224. #region 点位27
  225. public bool PositionTwentySeven { get { return _PositionTwentySeven; } set { _PositionTwentySeven = value; OnPropertyChanged(); } }
  226. private bool _PositionTwentySeven;
  227. public int TwentySevenX { get { return _TwentySevenX; } set { _TwentySevenX = value; OnPropertyChanged(); } }
  228. private int _TwentySevenX;
  229. public int TwentySevenY { get { return _TwentySevenY; } set { _TwentySevenY = value; OnPropertyChanged(); } }
  230. private int _TwentySevenY;
  231. #endregion
  232. #region 菜品库高度测距点位
  233. public bool PositionMaterialHeight { get { return _PositionMaterialHeight; } set { _PositionMaterialHeight = value; OnPropertyChanged(); } }
  234. private bool _PositionMaterialHeight;
  235. public int MaterialHeightX { get { return _MaterialHeightX; } set { _MaterialHeightX = value; OnPropertyChanged(); } }
  236. private int _MaterialHeightX;
  237. public int MaterialHeightY { get { return _MaterialHeightY; } set { _MaterialHeightY = value; OnPropertyChanged(); } }
  238. private int _MaterialHeightY;
  239. #endregion
  240. #region 炒锅1菜品交互位置
  241. public bool PositionFrying1 { get { return _PositionFrying1; } set { _PositionFrying1 = value; OnPropertyChanged(); } }
  242. private bool _PositionFrying1;
  243. public int Frying1X { get { return _Frying1X; } set { _Frying1X = value; OnPropertyChanged(); } }
  244. private int _Frying1X;
  245. public int Frying1Y { get { return _Frying1Y; } set { _Frying1Y = value; OnPropertyChanged(); } }
  246. private int _Frying1Y;
  247. #endregion
  248. #region 炒锅2菜品交互位置
  249. public bool PositionFrying2 { get { return _PositionFrying2; } set { _PositionFrying2 = value; OnPropertyChanged(); } }
  250. private bool _PositionFrying2;
  251. public int Frying2X { get { return _Frying2X; } set { _Frying2X = value; OnPropertyChanged(); } }
  252. private int _Frying2X;
  253. public int Frying2Y { get { return _Frying2Y; } set { _Frying2Y = value; OnPropertyChanged(); } }
  254. private int _Frying2Y;
  255. #endregion
  256. #region 第一层菜品库出菜位置
  257. public bool PositionMaterialOne { get { return _PositionMaterialOne; } set { _PositionMaterialOne = value; OnPropertyChanged(); } }
  258. private bool _PositionMaterialOne;
  259. public int MaterialOneX { get { return _MaterialOneX; } set { _MaterialOneX = value; OnPropertyChanged(); } }
  260. private int _MaterialOneX;
  261. #endregion
  262. #region 第二层菜品库出菜位置
  263. public bool PositionMaterialTwo { get { return _PositionMaterialTwo; } set { _PositionMaterialTwo = value; OnPropertyChanged(); } }
  264. private bool _PositionMaterialTwo;
  265. public int MaterialTwoX { get { return _MaterialTwoX; } set { _MaterialTwoX = value; OnPropertyChanged(); } }
  266. private int _MaterialTwoX;
  267. #endregion
  268. #region 第三层菜品库出菜位置
  269. public bool PositionMaterialThree { get { return _PositionMaterialThree; } set { _PositionMaterialThree = value; OnPropertyChanged(); } }
  270. private bool _PositionMaterialThree;
  271. public int MaterialThreeX { get { return _MaterialThreeX; } set { _MaterialThreeX = value; OnPropertyChanged(); } }
  272. private int _MaterialThreeX;
  273. #endregion
  274. #region 菜品库各传感器高度临时值
  275. public int Distance_1 { get { return _Distance_1; } set { _Distance_1 = value; OnPropertyChanged(); } }
  276. private int _Distance_1;
  277. public int Distance_2 { get { return _Distance_2; } set { _Distance_2 = value; OnPropertyChanged(); } }
  278. private int _Distance_2;
  279. public int Distance_3 { get { return _Distance_3; } set { _Distance_3 = value; OnPropertyChanged(); } }
  280. private int _Distance_3;
  281. #endregion
  282. #region 控制
  283. public int SettingX { get { return _settingX; } set { _settingX = value; OnPropertyChanged(); } }
  284. private int _settingX = 0;
  285. public int SettingY { get { return _settingY; } set { _settingY = value; OnPropertyChanged(); } }
  286. private int _settingY = 0;
  287. public int MoveSpeed { get { return _moveSpeed; } set { _moveSpeed = value; OnPropertyChanged(); } }
  288. private int _moveSpeed;
  289. public int SensingDistance_1 { get { return _sensingDistance_1; } set { _sensingDistance_1 = value; OnPropertyChanged(); } }
  290. private int _sensingDistance_1;
  291. public int SensingDistance_2 { get { return _sensingDistance_2; } set { _sensingDistance_2 = value; OnPropertyChanged(); } }
  292. private int _sensingDistance_2;
  293. public int SensingDistance_3 { get { return _sensingDistance_3; } set { _sensingDistance_3 = value; OnPropertyChanged(); } }
  294. private int _sensingDistance_3;
  295. public BPARelayCommand SetSpeed { get; set; }//速度设定
  296. public BPARelayCommand SetArmPosition { get; set; }//机器臂位置设定
  297. public BPARelayCommand GetTestDistance_1 { get; set; }//获取感应器距离1
  298. public BPARelayCommand GetTestDistance_2 { get; set; }//获取感应器距离2
  299. public BPARelayCommand GetTestDistance_3 { get; set; }//获取感应器距离3
  300. #endregion
  301. public bool Up { get { return _Up; } set { _Up = value; OnPropertyChanged(); } }
  302. private bool _Up;
  303. public bool Down { get { return _Down; } set { _Down = value; OnPropertyChanged(); } }
  304. private bool _Down;
  305. public bool Left { get { return _Left; } set { _Left = value; OnPropertyChanged(); } }
  306. private bool _Left;
  307. public bool Right { get { return _Right; } set { _Right = value; OnPropertyChanged(); } }
  308. private bool _Right;
  309. public bool Point { get { return _Point; } set { _Point = value; OnPropertyChanged(); } }
  310. private bool _Point;
  311. public string Str { get { return _str; } set { _str = value; OnPropertyChanged(); } }
  312. private string _str;
  313. /// <summary>
  314. /// 操作时,x轴移动的距离
  315. /// </summary>
  316. public int OperationX { get; set; } = 0;
  317. /// <summary>
  318. /// 操作时,y轴移动的距离
  319. /// </summary>
  320. public int OperationY { get; set; } = 0;
  321. /// <summary>
  322. /// Y轴大菜品库的间隙
  323. /// </summary>
  324. private const int bigMaterialClearanceY = 54000;
  325. /// <summary>
  326. /// Y轴小菜品库的间隙
  327. /// </summary>
  328. private const int smartMaterialClearanceY = 28000;
  329. /// <summary>
  330. /// X轴菜品库的间隙
  331. /// </summary>
  332. private const int materialClearanceX1 = 78000;
  333. /// <summary>
  334. /// X轴菜品库的间隙
  335. /// </summary>
  336. private const int materialClearanceX2 = 88000;
  337. /// <summary>
  338. /// 移动系数
  339. /// </summary>
  340. public int Factor = 1;
  341. /// <summary>
  342. /// 移动基础点位
  343. /// </summary>
  344. private int BasicPosition { get; set; } = 100;
  345. public BPARelayCommand SetNowPosition { get; set; }//设置机械臂当前坐标
  346. public BPARelayCommand SaveCoordinate { get; set; }//设置机械臂基于当前坐标往左移动
  347. public BPARelayCommand ReadCoordinate { get; set; }//设置机械臂基于当前坐标往右移动
  348. public BPARelayCommand AutoCalculation { get; set; }//设置机械臂基于当前坐标往上移动
  349. public BPARelayCommand SetNowDownPosition { get; set; }//设置机械臂基于当前坐标往下移动
  350. public BPARelayCommand FoodLibInit { get; set; }//初始化
  351. public BPARelayCommand StartElectromagnetism { get; set; }//电磁阀启动
  352. public BPARelayCommand StopElectromagnetism { get; set; }
  353. public BPARelayCommand PawTurnFront { get; set; }//夹爪正转
  354. public BPARelayCommand PawTurnBack { get; set; }//夹爪反转
  355. public BPARelayCommand PawToPoint1 { get; set; }//夹爪位置1
  356. public BPARelayCommand PawToPoint2 { get; set; }//夹爪位置2
  357. public BPARelayCommand PawToPoint3 { get; set; }//夹爪位置3
  358. public BPARelayCommand GetDistance_1 { get; set; }//感应测距1
  359. public BPARelayCommand GetDistance_2 { get; set; }//感应测距2
  360. public BPARelayCommand GetDistance_3 { get; set; }//感应测距3
  361. private static object saveMaterialCoordinateLock = new object();
  362. /// <summary>
  363. /// 保存当前的坐标系
  364. /// </summary>
  365. public void SaveMaterialCoordinate()
  366. {
  367. MaterialCoordinate materialCoordinate = new MaterialCoordinate();
  368. foreach (var dicNoMaterialCoordinate in materialCoordinate.dicNoMaterialCoordinate)
  369. {
  370. switch (dicNoMaterialCoordinate.Key)
  371. {
  372. case "1":
  373. dicNoMaterialCoordinate.Value.X = OneX;
  374. dicNoMaterialCoordinate.Value.Y = OneY;
  375. break;
  376. case "2":
  377. dicNoMaterialCoordinate.Value.X = TwoX;
  378. dicNoMaterialCoordinate.Value.Y = TwoY;
  379. break;
  380. case "3":
  381. dicNoMaterialCoordinate.Value.X = ThreeX;
  382. dicNoMaterialCoordinate.Value.Y = ThreeY;
  383. break;
  384. case "4":
  385. dicNoMaterialCoordinate.Value.X = FourX;
  386. dicNoMaterialCoordinate.Value.Y = FourY;
  387. break;
  388. case "5":
  389. dicNoMaterialCoordinate.Value.X = FiveX;
  390. dicNoMaterialCoordinate.Value.Y = FiveY;
  391. break;
  392. case "6":
  393. dicNoMaterialCoordinate.Value.X = SixX;
  394. dicNoMaterialCoordinate.Value.Y = SixY;
  395. break;
  396. case "7":
  397. dicNoMaterialCoordinate.Value.X = SevenX;
  398. dicNoMaterialCoordinate.Value.Y = SevenY;
  399. break;
  400. case "8":
  401. dicNoMaterialCoordinate.Value.X = EightX;
  402. dicNoMaterialCoordinate.Value.Y = EightY;
  403. break;
  404. case "9":
  405. dicNoMaterialCoordinate.Value.X = NineX;
  406. dicNoMaterialCoordinate.Value.Y = NineY;
  407. break;
  408. case "10":
  409. dicNoMaterialCoordinate.Value.X = TenX;
  410. dicNoMaterialCoordinate.Value.Y = TenY;
  411. break;
  412. case "11":
  413. dicNoMaterialCoordinate.Value.X = ElevenX;
  414. dicNoMaterialCoordinate.Value.Y = ElevenY;
  415. break;
  416. case "12":
  417. dicNoMaterialCoordinate.Value.X = TwelveX;
  418. dicNoMaterialCoordinate.Value.Y = TwelveY;
  419. break;
  420. case "13":
  421. dicNoMaterialCoordinate.Value.X = ThirteenX;
  422. dicNoMaterialCoordinate.Value.Y = ThirteenY;
  423. break;
  424. case "14":
  425. dicNoMaterialCoordinate.Value.X = FourteenX;
  426. dicNoMaterialCoordinate.Value.Y = FourteenY;
  427. break;
  428. case "15":
  429. dicNoMaterialCoordinate.Value.X = FifteenX;
  430. dicNoMaterialCoordinate.Value.Y = FifteenY;
  431. break;
  432. case "16":
  433. dicNoMaterialCoordinate.Value.X = SixteenX;
  434. dicNoMaterialCoordinate.Value.Y = SixteenY;
  435. break;
  436. case "17":
  437. dicNoMaterialCoordinate.Value.X = SeventeenX;
  438. dicNoMaterialCoordinate.Value.Y = SeventeenY;
  439. break;
  440. case "18":
  441. dicNoMaterialCoordinate.Value.X = EighteenX;
  442. dicNoMaterialCoordinate.Value.Y = EighteenY;
  443. break;
  444. case "19":
  445. dicNoMaterialCoordinate.Value.X = NineteenX;
  446. dicNoMaterialCoordinate.Value.Y = NineteenY;
  447. break;
  448. case "20":
  449. dicNoMaterialCoordinate.Value.X = TwentyX;
  450. dicNoMaterialCoordinate.Value.Y = TwentyY;
  451. break;
  452. case "21":
  453. dicNoMaterialCoordinate.Value.X = TwentyOneX;
  454. dicNoMaterialCoordinate.Value.Y = TwentyOneY;
  455. break;
  456. case "22":
  457. dicNoMaterialCoordinate.Value.X = TwentyTwoX;
  458. dicNoMaterialCoordinate.Value.Y = TwentyTwoY;
  459. break;
  460. case "23":
  461. dicNoMaterialCoordinate.Value.X = TwentyThreeX;
  462. dicNoMaterialCoordinate.Value.Y = TwentyThreeY;
  463. break;
  464. case "24":
  465. dicNoMaterialCoordinate.Value.X = TwentyFourX;
  466. dicNoMaterialCoordinate.Value.Y = TwentyFourY;
  467. break;
  468. case "25":
  469. dicNoMaterialCoordinate.Value.X = TwentyFiveX;
  470. dicNoMaterialCoordinate.Value.Y = TwentyFiveY;
  471. break;
  472. case "26":
  473. dicNoMaterialCoordinate.Value.X = TwentySixX;
  474. dicNoMaterialCoordinate.Value.Y = TwentySixY;
  475. break;
  476. case "27":
  477. dicNoMaterialCoordinate.Value.X = TwentySevenX;
  478. dicNoMaterialCoordinate.Value.Y = TwentySevenY;
  479. break;
  480. default:
  481. break;
  482. }
  483. }
  484. materialCoordinate.frying1.X = Frying1X;
  485. materialCoordinate.frying1.Y = Frying1Y;
  486. materialCoordinate.frying2.X = Frying2X;
  487. materialCoordinate.frying2.Y = Frying2Y;
  488. materialCoordinate.materialHeight.X = MaterialHeightX;
  489. materialCoordinate.materialHeight.Y = MaterialHeightY;
  490. materialCoordinate.distance_1 = Distance_1;
  491. materialCoordinate.distance_2 = Distance_2;
  492. materialCoordinate.distance_3 = Distance_3;
  493. materialCoordinate.MaterialOneX = MaterialOneX;
  494. materialCoordinate.MaterialTwoX = MaterialTwoX;
  495. materialCoordinate.MaterialThreeX = MaterialThreeX;
  496. Json<MaterialCoordinate>.Data = materialCoordinate;
  497. Json<MaterialCoordinate>.Save();
  498. //更新当前的菜品库数据
  499. MaterialCoordinate.GetInstance.frying1 = materialCoordinate.frying1;
  500. MaterialCoordinate.GetInstance.frying2 = materialCoordinate.frying2;
  501. MaterialCoordinate.GetInstance.materialHeight = materialCoordinate.materialHeight;
  502. MaterialCoordinate.GetInstance.dicNoMaterialCoordinate = materialCoordinate.dicNoMaterialCoordinate;
  503. MaterialCoordinate.GetInstance.MaterialOneX = materialCoordinate.MaterialOneX;
  504. MaterialCoordinate.GetInstance.MaterialTwoX = materialCoordinate.MaterialTwoX;
  505. MaterialCoordinate.GetInstance.MaterialThreeX = materialCoordinate.MaterialThreeX;
  506. }
  507. /// <summary>
  508. /// 读取坐标系
  509. /// </summary>
  510. /// <returns></returns>
  511. private MaterialCoordinate ReadMaterialCoordinate()
  512. {
  513. try
  514. {
  515. Json<MaterialCoordinate>.Read();
  516. MaterialCoordinate materialCoordinate = Json<MaterialCoordinate>.Data;
  517. return materialCoordinate;
  518. }
  519. catch (Exception ex)
  520. {
  521. return null;
  522. }
  523. }
  524. /// <summary>
  525. /// 从json文件中读取菜品库坐标系数据
  526. /// </summary>
  527. private void PhysicalMaterialCoordinate()
  528. {
  529. MaterialCoordinate materialCoordinate = ReadMaterialCoordinate();
  530. if (materialCoordinate == null)
  531. {
  532. return;
  533. }
  534. if (materialCoordinate.dicNoMaterialCoordinate.Count == 27)
  535. {
  536. foreach (var dicNoMaterialCoordinate in materialCoordinate.dicNoMaterialCoordinate)
  537. {
  538. switch (dicNoMaterialCoordinate.Key)
  539. {
  540. case "1":
  541. OneX = dicNoMaterialCoordinate.Value.X;
  542. OneY = dicNoMaterialCoordinate.Value.Y;
  543. break;
  544. case "2":
  545. TwoX = dicNoMaterialCoordinate.Value.X;
  546. TwoY = dicNoMaterialCoordinate.Value.Y;
  547. break;
  548. case "3":
  549. ThreeX = dicNoMaterialCoordinate.Value.X;
  550. ThreeY = dicNoMaterialCoordinate.Value.Y;
  551. break;
  552. case "4":
  553. FourX = dicNoMaterialCoordinate.Value.X;
  554. FourY = dicNoMaterialCoordinate.Value.Y;
  555. break;
  556. case "5":
  557. FiveX = dicNoMaterialCoordinate.Value.X;
  558. FiveY = dicNoMaterialCoordinate.Value.Y;
  559. break;
  560. case "6":
  561. SixX = dicNoMaterialCoordinate.Value.X;
  562. SixY = dicNoMaterialCoordinate.Value.Y;
  563. break;
  564. case "7":
  565. SevenX = dicNoMaterialCoordinate.Value.X;
  566. SevenY = dicNoMaterialCoordinate.Value.Y;
  567. break;
  568. case "8":
  569. EightX = dicNoMaterialCoordinate.Value.X;
  570. EightY = dicNoMaterialCoordinate.Value.Y;
  571. break;
  572. case "9":
  573. NineX = dicNoMaterialCoordinate.Value.X;
  574. NineY = dicNoMaterialCoordinate.Value.Y;
  575. break;
  576. case "10":
  577. TenX = dicNoMaterialCoordinate.Value.X;
  578. TenY = dicNoMaterialCoordinate.Value.Y;
  579. break;
  580. case "11":
  581. ElevenX = dicNoMaterialCoordinate.Value.X;
  582. ElevenY = dicNoMaterialCoordinate.Value.Y;
  583. break;
  584. case "12":
  585. TwelveX = dicNoMaterialCoordinate.Value.X;
  586. TwelveY = dicNoMaterialCoordinate.Value.Y;
  587. break;
  588. case "13":
  589. ThirteenX = dicNoMaterialCoordinate.Value.X;
  590. ThirteenY = dicNoMaterialCoordinate.Value.Y;
  591. break;
  592. case "14":
  593. FourteenX = dicNoMaterialCoordinate.Value.X;
  594. FourteenY = dicNoMaterialCoordinate.Value.Y;
  595. break;
  596. case "15":
  597. FifteenX = dicNoMaterialCoordinate.Value.X;
  598. FifteenY = dicNoMaterialCoordinate.Value.Y;
  599. break;
  600. case "16":
  601. SixteenX = dicNoMaterialCoordinate.Value.X;
  602. SixteenY = dicNoMaterialCoordinate.Value.Y;
  603. break;
  604. case "17":
  605. SeventeenX = dicNoMaterialCoordinate.Value.X;
  606. SeventeenY = dicNoMaterialCoordinate.Value.Y;
  607. break;
  608. case "18":
  609. EighteenX = dicNoMaterialCoordinate.Value.X;
  610. EighteenY = dicNoMaterialCoordinate.Value.Y;
  611. break;
  612. case "19":
  613. NineteenX = dicNoMaterialCoordinate.Value.X;
  614. NineteenY = dicNoMaterialCoordinate.Value.Y;
  615. break;
  616. case "20":
  617. TwentyX = dicNoMaterialCoordinate.Value.X;
  618. TwentyY = dicNoMaterialCoordinate.Value.Y;
  619. break;
  620. case "21":
  621. TwentyOneX = dicNoMaterialCoordinate.Value.X;
  622. TwentyOneY = dicNoMaterialCoordinate.Value.Y;
  623. break;
  624. case "22":
  625. TwentyTwoX = dicNoMaterialCoordinate.Value.X;
  626. TwentyTwoY = dicNoMaterialCoordinate.Value.Y;
  627. break;
  628. case "23":
  629. TwentyThreeX = dicNoMaterialCoordinate.Value.X;
  630. TwentyThreeY = dicNoMaterialCoordinate.Value.Y;
  631. break;
  632. case "24":
  633. TwentyFourX = dicNoMaterialCoordinate.Value.X;
  634. TwentyFourY = dicNoMaterialCoordinate.Value.Y;
  635. break;
  636. case "25":
  637. TwentyFiveX = dicNoMaterialCoordinate.Value.X;
  638. TwentyFiveY = dicNoMaterialCoordinate.Value.Y;
  639. break;
  640. case "26":
  641. TwentySixX = dicNoMaterialCoordinate.Value.X;
  642. TwentySixY = dicNoMaterialCoordinate.Value.Y;
  643. break;
  644. case "27":
  645. TwentySevenX = dicNoMaterialCoordinate.Value.X;
  646. TwentySevenY = dicNoMaterialCoordinate.Value.Y;
  647. break;
  648. case "MaterialHeight":
  649. MaterialHeightX = materialCoordinate.materialHeight.X;
  650. MaterialHeightY = materialCoordinate.materialHeight.Y;
  651. break;
  652. case "Frying1":
  653. Frying1X = materialCoordinate.frying1.X;
  654. Frying1Y = materialCoordinate.frying1.Y;
  655. break;
  656. case "Frying2":
  657. Frying2X = materialCoordinate.frying2.X;
  658. Frying2Y = materialCoordinate.frying2.Y;
  659. break;
  660. default:
  661. break;
  662. }
  663. }
  664. }
  665. MaterialOneX = materialCoordinate.MaterialOneX;
  666. MaterialTwoX = materialCoordinate.MaterialTwoX;
  667. MaterialThreeX = materialCoordinate.MaterialThreeX;
  668. MaterialHeightX = materialCoordinate.materialHeight.X;
  669. MaterialHeightY = materialCoordinate.materialHeight.Y;
  670. Frying1X = materialCoordinate.frying1.X;
  671. Frying1Y = materialCoordinate.frying1.Y;
  672. Frying2X = materialCoordinate.frying2.X;
  673. Frying2Y = materialCoordinate.frying2.Y;
  674. Distance_1 = materialCoordinate.distance_1;
  675. Distance_2 = materialCoordinate.distance_2;
  676. Distance_3 = materialCoordinate.distance_3;
  677. }
  678. /// <summary>
  679. ///
  680. /// </summary>
  681. /// <param name="Num"></param>
  682. private void Calibration(string Num)
  683. {
  684. switch (Num)
  685. {
  686. case "1":
  687. OneX = OneX + OperationX;
  688. OneY = OneY + OperationX;
  689. break;
  690. case "2":
  691. TwoX = TwoX + OperationX;
  692. TwoY = TwoY + OperationY;
  693. break;
  694. case "3":
  695. ThreeX = ThreeX + OperationX;
  696. ThreeY = ThreeY + OperationY;
  697. break;
  698. case "4":
  699. FourX = FourX + OperationX;
  700. FourY = FourY + OperationY;
  701. break;
  702. case "5":
  703. FiveX = FiveX + OperationX;
  704. FiveY = FiveY + OperationY;
  705. break;
  706. case "6":
  707. SixX = SixX + OperationX;
  708. SixY = SixY + OperationY;
  709. break;
  710. case "7":
  711. SevenX = SevenX + OperationX;
  712. SevenY = SevenY + OperationY;
  713. break;
  714. case "8":
  715. EightX = EightX + OperationX;
  716. EightY = EightY + OperationY;
  717. break;
  718. case "9":
  719. NineX = NineX + OperationX;
  720. NineY = NineY + OperationY;
  721. break;
  722. case "10":
  723. TenX = TenX + OperationX;
  724. TenY = TenY + OperationY;
  725. break;
  726. case "11":
  727. ElevenX = ElevenX + OperationX;
  728. ElevenY = ElevenY + OperationY;
  729. break;
  730. case "12":
  731. TwelveX = TwelveX + OperationX;
  732. TwelveY = TwelveY + OperationY;
  733. break;
  734. case "13":
  735. ThirteenX = ThirteenX + OperationX;
  736. ThirteenY = ThirteenY + OperationY;
  737. break;
  738. case "14":
  739. FourteenX = FourteenX + OperationX;
  740. FourteenY = FourteenY + OperationY;
  741. break;
  742. case "15":
  743. FifteenX = FifteenX + OperationX;
  744. FifteenY = FifteenY + OperationY;
  745. break;
  746. case "16":
  747. SixteenX = SixteenX + OperationX;
  748. SixteenY = SixteenY + OperationY;
  749. break;
  750. case "17":
  751. SeventeenX = SeventeenX + OperationX;
  752. SeventeenY = SeventeenY + OperationY;
  753. break;
  754. case "18":
  755. EighteenX = EighteenX + OperationX;
  756. EighteenY = EighteenY + OperationY;
  757. break;
  758. case "19":
  759. NineteenX = NineteenX + OperationX;
  760. NineteenY = NineteenY + OperationY;
  761. break;
  762. case "20":
  763. TwentyX = TwentyX + OperationX;
  764. TwentyY = TwentyY + OperationY;
  765. break;
  766. case "21":
  767. TwentyOneX = TwentyOneX + OperationX;
  768. TwentyOneY = TwentyOneY + OperationY;
  769. break;
  770. case "22":
  771. TwentyTwoX = TwentyTwoX + OperationX;
  772. TwentyTwoY = TwentyTwoY + OperationY;
  773. break;
  774. case "23":
  775. TwentyThreeX = TwentyThreeX + OperationX;
  776. TwentyThreeY = TwentyThreeY + OperationY;
  777. break;
  778. case "24":
  779. TwentyFourX = TwentyFourX + OperationX;
  780. TwentyFourY = TwentyFourY + OperationY;
  781. break;
  782. case "25":
  783. TwentyFiveX = TwentyFiveX + OperationX;
  784. TwentyFiveY = TwentyFiveY + OperationY;
  785. break;
  786. case "26":
  787. TwentySixX = TwentySixX + OperationX;
  788. TwentySixY = TwentySixY + OperationY;
  789. break;
  790. case "27":
  791. TwentySevenX = TwentySevenX + OperationX;
  792. TwentySevenY = TwentySevenY + OperationY;
  793. break;
  794. case "MaterialHeight":
  795. MaterialHeightX = MaterialHeightX + OperationX;
  796. MaterialHeightY = MaterialHeightY + OperationY;
  797. break;
  798. case "Frying1":
  799. Frying1X = Frying1X + OperationX;
  800. Frying1Y = Frying1Y + OperationY;
  801. break;
  802. case "Frying2":
  803. Frying2X = Frying2X + OperationX;
  804. Frying2Y = Frying2Y + OperationY;
  805. break;
  806. case "MaterialOne":
  807. MaterialOneX = MaterialOneX + OperationX;
  808. break;
  809. case "MaterialTwo":
  810. MaterialTwoX = MaterialTwoX + OperationX;
  811. break;
  812. case "MaterialThree":
  813. MaterialThreeX = MaterialThreeX + OperationX;
  814. break;
  815. default:
  816. break;
  817. }
  818. OperationX = 0;
  819. OperationY = 0;
  820. }
  821. private void SetPosition()
  822. {
  823. //判断是否有选择下发的设备
  824. if (!PositionOne && !PositionTwo && !PositionThree && !PositionFour && !PositionFive && !PositionSix && !PositionSeven && !PositionEight && !PositionNine
  825. && !PositionTen && !PositionEleven && !PositionTwelve && !PositionThirteen && !PositionFourteen && !PositionFifteen && !PositionSixteen && !PositionSeventeen && !PositionEighteen
  826. && !PositionNineteen && !PositionTwenty && !PositionTwentyOne && !PositionTwentyTwo && !PositionTwentyThree && !PositionTwentyFour && !PositionTwentyFive && !PositionTwentySix && !PositionTwentySeven
  827. && !PositionMaterialHeight && !PositionFrying1 && !PositionFrying2 && !PositionMaterialOne && !PositionMaterialThree && !PositionMaterialTwo)
  828. {
  829. MessageBox.Show("未选择点位");
  830. return;
  831. }
  832. //if (PositionOne)
  833. //{
  834. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> {"1", OneX + OperationX, OneY + OperationY });//设定机械臂当前位置
  835. //}
  836. if (PositionTwo)
  837. {
  838. ActionManage.GetInstance.Send(new List<object> { "2", TwoX + OperationX, TwoY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  839. }
  840. if (PositionThree)
  841. {
  842. ActionManage.GetInstance.Send(new List<object> { "3", ThreeX + OperationX, ThreeY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  843. }
  844. if (PositionFour)
  845. {
  846. ActionManage.GetInstance.Send(new List<object> { "4", FourX + OperationX, FourY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  847. }
  848. if (PositionFive)
  849. {
  850. ActionManage.GetInstance.Send(new List<object> { "5", FiveX + OperationX, FiveY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  851. }
  852. if (PositionSix)
  853. {
  854. ActionManage.GetInstance.Send(new List<object> { "6", SixX + OperationX, SixY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  855. }
  856. if (PositionSeven)
  857. {
  858. ActionManage.GetInstance.Send(new List<object> { "7", SevenX + OperationX, SevenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  859. }
  860. if (PositionEight)
  861. {
  862. ActionManage.GetInstance.Send(new List<object> { "8", EightX + OperationX, EightY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  863. }
  864. //if (PositionNine)
  865. //{
  866. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> { "9", NineX + OperationX, NineY + OperationY });//设定机械臂当前位置
  867. //}
  868. //if (PositionTen)
  869. //{
  870. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> { "10", TenX + OperationX, TenY + OperationY });//设定机械臂当前位置
  871. //}
  872. if (PositionEleven)
  873. {
  874. ActionManage.GetInstance.Send(new List<object> { "11", ElevenX + OperationX, ElevenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  875. }
  876. if (PositionTwelve)
  877. {
  878. ActionManage.GetInstance.Send(new List<object> { "12", TwelveX + OperationX, TwelveY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  879. }
  880. if (PositionThirteen)
  881. {
  882. ActionManage.GetInstance.Send(new List<object> { "13", ThirteenX + OperationX, ThirteenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  883. }
  884. if (PositionFourteen)
  885. {
  886. ActionManage.GetInstance.Send(new List<object> { "14", FourteenX + OperationX, FourteenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  887. }
  888. if (PositionFifteen)
  889. {
  890. ActionManage.GetInstance.Send(new List<object> { "15", FifteenX + OperationX, FifteenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  891. }
  892. if (PositionSixteen)
  893. {
  894. ActionManage.GetInstance.Send(new List<object> { "16", SixteenX + OperationX, SixteenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  895. }
  896. if (PositionSeventeen)
  897. {
  898. ActionManage.GetInstance.Send(new List<object> { "17", SeventeenX + OperationX, SeventeenY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  899. }
  900. //if (PositionEighteen)
  901. //{
  902. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> { "18", EighteenX + OperationX, EighteenY + OperationY });//设定机械臂当前位置
  903. //}
  904. //if (PositionNineteen)
  905. //{
  906. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> { "19", NineteenX + OperationX, NineteenY + OperationY });//设定机械臂当前位置
  907. //}
  908. if (PositionTwenty)
  909. {
  910. ActionManage.GetInstance.Send(new List<object> { "20", TwentyX + OperationX, TwentyY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  911. }
  912. if (PositionTwentyOne)
  913. {
  914. ActionManage.GetInstance.Send(new List<object> { "21", TwentyOneX + OperationX, TwentyOneY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  915. }
  916. if (PositionTwentyTwo)
  917. {
  918. ActionManage.GetInstance.Send(new List<object> { "22", TwentyTwoX + OperationX, TwentyTwoY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  919. }
  920. if (PositionTwentyThree)
  921. {
  922. ActionManage.GetInstance.Send(new List<object> { "23", TwentyThreeX + OperationX, TwentyThreeY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  923. }
  924. if (PositionTwentyFour)
  925. {
  926. ActionManage.GetInstance.Send(new List<object> { "24", TwentyFourX + OperationX, TwentyFourY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  927. }
  928. if (PositionTwentyFive)
  929. {
  930. ActionManage.GetInstance.Send(new List<object> { "25", TwentyFiveX + OperationX, TwentyFiveY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  931. }
  932. if (PositionTwentySix)
  933. {
  934. ActionManage.GetInstance.Send(new List<object> { "26", TwentySixX + OperationX, TwentySixY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  935. }
  936. //if (PositionTwentySeven)
  937. //{
  938. // ActionManage.GetInstance.Send("CalibrationCoordination", new List<object> { "27", TwentySevenX + OperationX, TwentySevenY + OperationY });//设定机械臂当前位置
  939. //}
  940. if (PositionMaterialHeight)
  941. {
  942. ActionManage.GetInstance.Send(new List<object> { "MaterialHeight", MaterialHeightX + OperationX, MaterialHeightY + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  943. }
  944. if (PositionFrying1)
  945. {
  946. ActionManage.GetInstance.Send(new List<object> { "Frying1", Frying1X + OperationX, Frying1Y + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  947. }
  948. if (PositionFrying2)
  949. {
  950. ActionManage.GetInstance.Send(new List<object> { "Frying2", Frying2X + OperationX, Frying2Y + OperationY }, "CalibrationCoordination");//设定机械臂当前位置
  951. }
  952. if (PositionMaterialOne)
  953. {
  954. ActionManage.GetInstance.Send(new List<object> { "MaterialOne", MaterialOneX + OperationX, 0 }, "CalibrationCoordination");//设定机械臂当前位置
  955. }
  956. if (PositionMaterialTwo)
  957. {
  958. ActionManage.GetInstance.Send(new List<object> { "MaterialTwo", MaterialTwoX + OperationX, 0 }, "CalibrationCoordination");//设定机械臂当前位置
  959. }
  960. if (PositionMaterialThree)
  961. {
  962. ActionManage.GetInstance.Send(new List<object> { "MaterialThree", MaterialThreeX + OperationX, 0 }, "CalibrationCoordination");//设定机械臂当前位置
  963. }
  964. }
  965. public MaterialCalibrationViewModel()
  966. {
  967. StartElectromagnetism = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<bool> { false }, "Electromagnetism"); });//电磁阀启动
  968. StopElectromagnetism = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<bool> { true }, "Electromagnetism"); });//电磁阀关闭
  969. FoodLibInit = new BPARelayCommand(() => { ActionManage.GetInstance.Send("FoodLibInit"); });//菜品库初始化
  970. PawToPoint1 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint1"); });//爪子去1号位
  971. PawToPoint2 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint2"); });//爪子去2号位
  972. PawToPoint3 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("PawToPoint3"); });//爪子去3号位
  973. PawTurnFront = new BPARelayCommand(() =>
  974. {
  975. ActionManage.GetInstance.Send("PawTurnFront");
  976. });//夹爪伸出
  977. PawTurnBack = new BPARelayCommand(() =>
  978. {
  979. ActionManage.GetInstance.Send("PawTurnBack");
  980. });//夹爪收缩
  981. GetDistance_1 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_1"); });//感应距离1
  982. GetDistance_2 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_2"); });//感应距离2
  983. GetDistance_3 = new BPARelayCommand(() => { ActionManage.GetInstance.Send("GetDistance_3"); });//感应距离3
  984. SetSpeed = new BPARelayCommand(() => { ActionManage.GetInstance.Send(new List<int> { MoveSpeed }, "SetSpeed"); });//速度设定
  985. SetArmPosition = new BPARelayCommand(() =>
  986. {
  987. ActionManage.GetInstance.Send(new List<int> { SettingX, SettingY }, "SetArmPosition");
  988. });//设定移动位置
  989. PhysicalMaterialCoordinate();
  990. ActionManage.GetInstance.Register(new Action<object>((o) =>
  991. {
  992. TaskManage.GetInstance.Start(new Action(() =>
  993. {
  994. if (o is List<string> nums)
  995. {
  996. Calibration(nums[0]);
  997. }
  998. }), "CalibrationCallBack");
  999. }), "CalibrationCallBack");
  1000. ActionManage.GetInstance.Register(new Action<object>((o) =>
  1001. {
  1002. TaskManage.GetInstance.Start(new Action(() =>
  1003. {
  1004. if (o is List<string> nums)
  1005. {
  1006. int distance = 0;
  1007. bool ret = false;
  1008. ret = int.TryParse(nums[1], out distance);
  1009. if (ret == false) { return; }
  1010. if (nums[0] == "1")
  1011. {
  1012. Distance_1 = distance;
  1013. }
  1014. else if (nums[0] == "2")
  1015. {
  1016. Distance_2 = distance;
  1017. }
  1018. else if (nums[0] == "3")
  1019. {
  1020. Distance_3 = distance;
  1021. }
  1022. }
  1023. }), "GetDistanceCallBack");
  1024. }), "GetDistanceCallBack");
  1025. SetNowPosition = new BPARelayCommand(() =>
  1026. {
  1027. if (!Point && !Left && !Right && !Down && !Up)
  1028. {
  1029. MessageBox.Show("请选择需要移动的方式");
  1030. return;
  1031. }
  1032. if (!Point)
  1033. {
  1034. if (!int.TryParse(Str, out Factor))
  1035. {
  1036. Factor = 1;
  1037. }
  1038. if (Factor > 100 || Factor < 0)
  1039. {
  1040. MessageBox.Show("请输入有效系数");
  1041. return;
  1042. }
  1043. }
  1044. if (Left)
  1045. {
  1046. OperationX = -1 * BasicPosition * Factor;
  1047. }
  1048. else if (Right)
  1049. {
  1050. OperationX = BasicPosition * Factor;
  1051. }
  1052. else if (Down)
  1053. {
  1054. OperationY = BasicPosition * Factor;
  1055. }
  1056. else if (Up)
  1057. {
  1058. OperationY = -1 * BasicPosition * Factor;
  1059. }
  1060. else
  1061. {
  1062. OperationX = 0;
  1063. OperationY = 0;
  1064. }
  1065. SetPosition();
  1066. });
  1067. SaveCoordinate = new BPARelayCommand(() =>
  1068. {
  1069. SaveMaterialCoordinate();
  1070. });
  1071. ReadCoordinate = new BPARelayCommand(() =>
  1072. {
  1073. PhysicalMaterialCoordinate();
  1074. });
  1075. AutoCalculation = new BPARelayCommand(() =>
  1076. {
  1077. AutoCalculationCoordination();
  1078. });
  1079. }
  1080. /// <summary>
  1081. /// 自动计算坐标
  1082. /// </summary>
  1083. private void AutoCalculationCoordination()
  1084. {
  1085. #region 菜品库一层计算
  1086. //X轴改变
  1087. TwoX = ThreeX = FourX = FiveX = SixX = SevenX = EightX = NineX = OneX;
  1088. TwoY = OneY + 1000;
  1089. ThreeY = OneY + 1000 + smartMaterialClearanceY;
  1090. FourY = OneY + 1000 + smartMaterialClearanceY + bigMaterialClearanceY;
  1091. FiveY = OneY + 1000 + 2 * smartMaterialClearanceY + bigMaterialClearanceY;
  1092. SixY = OneY + 3 * smartMaterialClearanceY + bigMaterialClearanceY;
  1093. SevenY = OneY + 3 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1094. EightY = OneY + 4 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1095. NineY = OneY + 5 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1096. #endregion
  1097. #region 菜品库二层计算
  1098. //X轴改变
  1099. TenX = ElevenX = TwelveX = ThirteenX = FourteenX = FifteenX = SixteenX = SeventeenX = EighteenX = (OneX + materialClearanceX1);
  1100. TenY = OneY;
  1101. ElevenY = OneY + 1000;
  1102. TwelveY = OneY + smartMaterialClearanceY;
  1103. ThirteenY = OneY + smartMaterialClearanceY + bigMaterialClearanceY;
  1104. FourteenY = OneY + 2 * smartMaterialClearanceY + bigMaterialClearanceY;
  1105. FifteenY = OneY + 3 * smartMaterialClearanceY + bigMaterialClearanceY;
  1106. SixteenY = OneY + 3 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1107. SeventeenY = OneY + 4 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1108. EighteenY = OneY + 5 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1109. #endregion
  1110. #region 菜品库三层计算
  1111. //X轴改变
  1112. NineteenX = TwentyX = TwentyOneX = TwentyTwoX = TwentyThreeX = TwentyFourX = TwentyFiveX = TwentySixX = TwentySevenX = (OneX + 2 * materialClearanceX2);
  1113. NineteenY = OneY;
  1114. TwentyY = OneY + 1000;
  1115. TwentyOneY = OneY + smartMaterialClearanceY;
  1116. TwentyTwoY = OneY + smartMaterialClearanceY + bigMaterialClearanceY;
  1117. TwentyThreeY = OneY + 2 * smartMaterialClearanceY + bigMaterialClearanceY;
  1118. TwentyFourY = OneY + 3 * smartMaterialClearanceY + bigMaterialClearanceY;
  1119. TwentyFiveY = OneY + 3 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1120. TwentySixY = OneY + 4 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1121. TwentySevenY = OneY + 5 * smartMaterialClearanceY + 2 * bigMaterialClearanceY;
  1122. #endregion
  1123. }
  1124. #endregion
  1125. }
  1126. }