| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Linq;
- using System.Runtime.CompilerServices;
- using Newtonsoft.Json;
- using TeamAAS.Feeder.Enums;
- using TeamAAS.Feeder.Models;
- namespace TeamAAS.Feeder.Models
- {
- /// <summary>
- /// 供料器配方 —— 调试完成后保存的可复用参数集
- /// 插件运行时只需 LoadRecipe → DownloadAllParams → 执行
- /// </summary>
- public class FeederRecipe : INotifyPropertyChanged
- {
- private string _recipeName = "";
- private string _description = "";
- private FeederBrand _brand = FeederBrand.Team;
- private DateTime _createdAt = DateTime.Now;
- private DateTime _updatedAt = DateTime.Now;
- [Category("配方信息"), DisplayName("配方名称")]
- public string RecipeName
- {
- get { return _recipeName; }
- set { SetProperty(ref _recipeName, value); }
- }
- [Category("配方信息"), DisplayName("描述")]
- public string Description
- {
- get { return _description; }
- set { SetProperty(ref _description, value); }
- }
- [Category("配方信息"), DisplayName("品牌")]
- public FeederBrand Brand
- {
- get { return _brand; }
- set { SetProperty(ref _brand, value); }
- }
- [Browsable(false)]
- public DateTime CreatedAt
- {
- get { return _createdAt; }
- set { SetProperty(ref _createdAt, value); }
- }
- [Browsable(false)]
- public DateTime UpdatedAt
- {
- get { return _updatedAt; }
- set { SetProperty(ref _updatedAt, value); }
- }
- /// <summary>
- /// 11 个振动动作组参数(A~K,对应 FeederAction 0~10)
- /// </summary>
- public ObservableCollection<SingleActionParam> ActionGroups { get; set; }
- = new ObservableCollection<SingleActionParam>(
- Enumerable.Range(0, 11).Select(_ => new SingleActionParam()));
- /// <summary>
- /// 多个送料流程(序列集),可选
- /// </summary>
- public ObservableCollection<SequenceSet> Sequences { get; set; }
- = new ObservableCollection<SequenceSet>();
- public FeederRecipe Clone()
- {
- var json = JsonConvert.SerializeObject(this);
- return JsonConvert.DeserializeObject<FeederRecipe>(json);
- }
- public event PropertyChangedEventHandler PropertyChanged;
- protected virtual bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
- {
- if (EqualityComparer<T>.Default.Equals(storage, value)) return false;
- storage = value;
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- return true;
- }
- }
- }
|