SUN2000Info.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using NEIntelligentControl2.Models.Datas;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace NEIntelligentControl2.Models.PV
  8. {
  9. /// <summary>
  10. /// 光伏SUN2000信息
  11. /// </summary>
  12. public class SUN2000Info
  13. {
  14. /// <summary>
  15. /// 名称
  16. /// </summary>
  17. public string Name { get; set; }
  18. /// <summary>
  19. /// 电流
  20. /// </summary>
  21. public PVTagInfo I { get; set; }
  22. /// <summary>
  23. /// 电压
  24. /// </summary>
  25. public PVTagInfo V { get; set; }
  26. /// <summary>
  27. /// 电流变化值
  28. /// </summary>
  29. public double ΔI { get; set; }
  30. /// <summary>
  31. /// 功率
  32. /// </summary>
  33. public double P
  34. {
  35. get
  36. {
  37. if (I == null || V == null) return 0.0;
  38. return I.Value * V.Value / 1000;
  39. }
  40. }
  41. /// <summary>
  42. /// 值改变
  43. /// </summary>
  44. public Action<double, double> ValueChanged { get; set; }
  45. /// <summary>
  46. /// 更新数据
  47. /// </summary>
  48. /// <param name="vs"></param>
  49. internal void UpdateValue(Dictionary<string, TsData> vs)
  50. {
  51. if (vs == null) return;
  52. var bi = I.Value;
  53. V.UpdateValue(vs);
  54. I.UpdateValue(vs);
  55. if (bi != I.Value && bi != 0)
  56. {
  57. ΔI = Math.Abs(I.Value - bi);
  58. }
  59. ValueChanged?.Invoke(P, ΔI);
  60. }
  61. }
  62. }