MotionIODev.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using SKMC.Api.Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Linq;
  6. using System.Text;
  7. namespace SKMC.Api.Motion.Model
  8. {
  9. /// <summary>
  10. /// IO模块设备
  11. /// </summary>
  12. public class MotionIODev
  13. {
  14. /// <summary>
  15. /// 设备编号
  16. /// </summary>
  17. public short DevNo { get; set; }
  18. /// <summary>
  19. /// 设备类型, DI/DO/AD/DA
  20. /// </summary>
  21. public string Type { get; set; }
  22. /// <summary>
  23. /// 当前的分类, 在分类筛选时有用
  24. /// </summary>
  25. public string Catalog { get; set; }
  26. /// <summary>
  27. /// 所属(模块)分类, 一个IODev可能包含多个分类
  28. /// </summary>
  29. public HashSet<string> Catalogs { get; set; } = new HashSet<string>();
  30. public string Desc
  31. {
  32. get
  33. {
  34. if (MotionIOs != null & MotionIOs.Count > 0)
  35. {
  36. HashSet<string> descs = new HashSet<string>();
  37. foreach(var motionIO in MotionIOs)
  38. {
  39. if (!CommonUtil.IsEmptyString(motionIO.Code))
  40. {
  41. descs.Add(motionIO.Desc);
  42. }
  43. }
  44. StringBuilder builder = new StringBuilder();
  45. foreach(var desc in descs)
  46. {
  47. builder.Append(desc).Append(',');
  48. }
  49. return builder.Remove(builder.Length - 1, 1).ToString();
  50. }
  51. return default;
  52. }
  53. }
  54. /// <summary>
  55. /// 点位数量
  56. /// </summary>
  57. public int SiteNum { get => MotionIOs.Count; }
  58. public List<MotionIO> MotionIOs { get; set; }
  59. public string DevInfo() => $"{Type} [{DevNo}]: {Desc}";
  60. }
  61. }