ProcedureModel.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. using Cognex.VisionPro.ToolBlock;
  2. using Newtonsoft.Json;
  3. using Prism.Mvvm;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.ObjectModel;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using TeamAAS_VP.Enums;
  11. namespace TeamAAS_VP.Models
  12. {
  13. /// <summary>
  14. /// 流程模型
  15. /// </summary>
  16. [JsonObject(MemberSerialization.OptOut)]
  17. public class ProcedureModel : BindableBase
  18. {
  19. public Guid Id { get; set; }
  20. /// <summary>
  21. /// 流程名称
  22. /// </summary>
  23. public string Name { get; set; }
  24. public string CameraName { get; set; }
  25. /// <summary>
  26. /// 视觉图像处理模式
  27. /// </summary>
  28. public VisionModel VisionModel { get; set; }
  29. /// <summary>
  30. /// 触发相机命令
  31. /// </summary>
  32. public string TriggerCommand { get; set; }
  33. /// <summary>
  34. /// 机器人
  35. /// </summary>
  36. public Guid RobotId { get; set; }
  37. /// <summary>
  38. /// Feeder
  39. /// </summary>
  40. public Guid FeederId { get; set; }
  41. /// <summary>
  42. /// Camera
  43. /// </summary>
  44. public Guid CameraId { get; set; }
  45. /// <summary>
  46. /// 校准
  47. /// </summary>
  48. public Guid CalibrationId { get; set; }
  49. private ObservableCollection<ProcedureOutput> _ProcedureOutputs;
  50. /// <summary>
  51. /// 视觉流程输出集合
  52. /// </summary>
  53. public ObservableCollection<ProcedureOutput> ProcedureOutputs
  54. {
  55. get { return _ProcedureOutputs; }
  56. set { SetProperty(ref _ProcedureOutputs,value); }
  57. }
  58. private ObservableCollection<ProcedureOutputOpcAdr> _ProcedureOutputsOpcAdrs;
  59. /// <summary>
  60. /// OPc回复输出集合
  61. /// </summary>
  62. public ObservableCollection<ProcedureOutputOpcAdr> ProcedureOutputsOpcAdrs
  63. {
  64. get { return _ProcedureOutputsOpcAdrs; }
  65. set { SetProperty(ref _ProcedureOutputsOpcAdrs, value); }
  66. }
  67. private FeederWorks _FeederWorks;
  68. /// <summary>
  69. /// Feeder振动集合
  70. /// </summary>
  71. public FeederWorks FeederWorks
  72. {
  73. get { return _FeederWorks; }
  74. set { SetProperty(ref _FeederWorks,value); }
  75. }
  76. private FeederStockWorks _FeederStockWorks;
  77. /// <summary>
  78. /// Feeder料仓振动集合
  79. /// </summary>
  80. public FeederStockWorks FeederStockWorks
  81. {
  82. get { return _FeederStockWorks; }
  83. set { SetProperty(ref _FeederStockWorks, value); }
  84. }
  85. private double _MinArea;
  86. /// <summary>
  87. /// Blob最小面积
  88. /// </summary>
  89. public double MinArea
  90. {
  91. get { return _MinArea; }
  92. set { SetProperty(ref _MinArea, value); }
  93. }
  94. private int _LightValue;
  95. /// <summary>
  96. /// 亮度
  97. /// </summary>
  98. public int LightValue
  99. {
  100. get { return _LightValue; }
  101. set { SetProperty(ref _LightValue, value); }
  102. }
  103. private float _ExposureTime;
  104. /// <summary>
  105. /// 相机曝光时间
  106. /// </summary>
  107. public float ExposureTime
  108. {
  109. get { return _ExposureTime; }
  110. set { SetProperty(ref _ExposureTime, value);}
  111. }
  112. private float _Gain;
  113. /// <summary>
  114. /// 相机增益
  115. /// </summary>
  116. public float Gain
  117. {
  118. get { return _Gain; }
  119. set { SetProperty(ref _Gain, value); }
  120. }
  121. private CogToolBlock _ToolBlock;
  122. /// <summary>
  123. /// 工具组
  124. /// </summary>
  125. [JsonIgnore]
  126. public CogToolBlock ToolBlock
  127. {
  128. get { return _ToolBlock; }
  129. set { SetProperty(ref _ToolBlock,value); }
  130. }
  131. private ObservableCollection<ToolInfo> _ToolInfo = new ObservableCollection<ToolInfo>();
  132. /// <summary>
  133. /// 工具末端的补偿
  134. /// </summary>
  135. public ObservableCollection<ToolInfo> ToolInfo
  136. {
  137. get { return _ToolInfo; }
  138. set { SetProperty(ref _ToolInfo, value); }
  139. }
  140. private int _WaitPhoto;
  141. /// <summary>
  142. /// 延时拍照时长(ms)
  143. /// </summary>
  144. public int WaitPhoto
  145. {
  146. get { return _WaitPhoto; }
  147. set { SetProperty(ref _WaitPhoto, value); }
  148. }
  149. private int _WaitFeederStop;
  150. /// <summary>
  151. /// 等待震动盘静止时长(ms)
  152. /// </summary>
  153. public int WaitFeederStop
  154. {
  155. get { return _WaitFeederStop; }
  156. set { SetProperty(ref _WaitFeederStop, value); }
  157. }
  158. private int _WaitSuction;
  159. /// <summary>
  160. /// 吸真空延时(ms)
  161. /// </summary>
  162. public int WaitSuction
  163. {
  164. get { return _WaitSuction; }
  165. set { SetProperty(ref _WaitSuction, value); }
  166. }
  167. private VibrationModel _VibrationModel;
  168. /// <summary>
  169. /// 振动模式
  170. /// </summary>
  171. public VibrationModel VibrationModel
  172. {
  173. get { return _VibrationModel; }
  174. set { SetProperty(ref _VibrationModel, value); }
  175. }
  176. private int _WaitBlow;
  177. /// <summary>
  178. /// 破真空延时(ms)
  179. /// </summary>
  180. public int WaitBlow
  181. {
  182. get { return _WaitBlow; }
  183. set { SetProperty(ref _WaitBlow, value); }
  184. }
  185. private int _FeederFailLimit;
  186. /// <summary>
  187. /// 拍照失败Feeder振动最大次数
  188. /// </summary>
  189. public int FeederFailLimit
  190. {
  191. get { return _FeederFailLimit; }
  192. set { SetProperty(ref _FeederFailLimit, value); }
  193. }
  194. private int _OutputPointCountMax=100;
  195. /// <summary>
  196. /// 每次发送给机器人的点数最大值
  197. /// </summary>
  198. public int OutputPointCountMax
  199. {
  200. get { return _OutputPointCountMax; }
  201. set { SetProperty(ref _OutputPointCountMax, value); }
  202. }
  203. private bool _IsSaveImage;
  204. /// <summary>
  205. /// 保存图像
  206. /// </summary>
  207. public bool IsSaveImage
  208. {
  209. get { return _IsSaveImage; }
  210. set { SetProperty(ref _IsSaveImage, value); }
  211. }
  212. private ProcedureSaveImageModel _SaveImageModel;
  213. /// <summary>
  214. /// 存图模式
  215. /// </summary>
  216. public ProcedureSaveImageModel SaveImageModel
  217. {
  218. get { return _SaveImageModel; }
  219. set { SetProperty(ref _SaveImageModel, value); }
  220. }
  221. private ProcedureSaveImagePathModel _SaveImagePathModel;
  222. /// <summary>
  223. /// 存图路径模式
  224. /// </summary>
  225. public ProcedureSaveImagePathModel SaveImagePathModel
  226. {
  227. get { return _SaveImagePathModel; }
  228. set { SetProperty(ref _SaveImagePathModel, value); }
  229. }
  230. private string _SavePath;
  231. /// <summary>
  232. /// 存图路径
  233. /// </summary>
  234. public string SavePath
  235. {
  236. get { return _SavePath; }
  237. set { SetProperty(ref _SavePath, value); }
  238. }
  239. private bool _IsCompress;
  240. /// <summary>
  241. /// 是否压缩图片
  242. /// </summary>
  243. public bool IsCompress
  244. {
  245. get { return _IsCompress; }
  246. set { SetProperty(ref _IsCompress, value); }
  247. }
  248. private FeederFrequencyModel _FeederFindFrequency;
  249. /// <summary>
  250. /// Feeder自动寻频配置
  251. /// </summary>
  252. public FeederFrequencyModel FeederFindFrequency
  253. {
  254. get { return _FeederFindFrequency; }
  255. set { SetProperty(ref _FeederFindFrequency, value); }
  256. }
  257. public ProcedureModel Clone()
  258. {
  259. return JsonConvert.DeserializeObject<ProcedureModel>(JsonConvert.SerializeObject(this)); ;
  260. }
  261. }
  262. }