终端一体化运控平台
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

99 linhas
3.2 KiB

  1. using System;
  2. using System.Collections.Concurrent;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace BPASmartClient.Device
  8. {
  9. public class DeviceStatus
  10. {
  11. //字典值
  12. public Dictionary<string, string> keyValues = new Dictionary<string, string>()
  13. {
  14. {"PLC","煮面机机器人" },
  15. {"Lebai","乐白机器人" },
  16. {"SCChip","单片机" },
  17. {"DRCoffee","咖博士咖啡机器" },
  18. {"KLMCoffee","伽乐美咖啡机器" },
  19. {"GSIceCream","乐白机器人" },
  20. {"IsConnected","连接状态" },
  21. {"IsWork","工作状态" },
  22. {"CompletedOpen_SE_1","舵机1打开" },
  23. {"CompletedOpen_SE_2","舵机2打开" },
  24. {"CompletedOpen_SE_3","舵机3打开" },
  25. {"CompletedClose_SE_1","舵机1关闭" },
  26. {"CompletedClose_SE_2","舵机2关闭" },
  27. {"CompletedClose_SE_3","舵机3关闭" },
  28. {"False","异常" },
  29. {"True","正常" }
  30. };
  31. public ConcurrentDictionary<string, object> status = new ConcurrentDictionary<string, object>();
  32. public void Update(string key, object value)
  33. {
  34. status.AddOrUpdate(key, value, (key, value) => value);
  35. }
  36. public Dictionary<string, object> GetStatus()
  37. {
  38. return status.ToDictionary(x => x.Key, x => x.Value);
  39. }
  40. public object GetIOTStatus()
  41. {
  42. List<DevStatus> StatusALL = new List<DevStatus>();
  43. foreach (var item in status)
  44. {
  45. string name = item.Key;
  46. string Ms = string.Empty;
  47. if (item.Key.Contains("."))
  48. {
  49. string sta = item.Key.Split('.')[0];
  50. string sop = item.Key.Split('.')[item.Key.Split('.').Length - 1]; name = sop;
  51. string value = item.Value.ToString();
  52. if (keyValues.ContainsKey(sta)) sta = keyValues[sta];
  53. if (keyValues.ContainsKey(sop)) sop = keyValues[sop];
  54. if (keyValues.ContainsKey(value)) value = keyValues[value];
  55. Ms = $"[{sta}]-[{sop}]-[{value}]";
  56. }
  57. StatusALL.Add(new DevStatus { Name = name, Status = item.Value.ToString(), Ms = Ms });
  58. }
  59. return new { data = StatusALL };
  60. }
  61. }
  62. public class DevStatus
  63. {
  64. public string Name { get; set; }
  65. private string _status { get; set; }
  66. public string Status
  67. {
  68. get { return _status; }
  69. set
  70. {
  71. _status = value;
  72. if (_status == "False" || _status == "True")
  73. {
  74. if (_status == "True")
  75. StatusColor = new { r = 51, g = 232, b = 34, a = 1 };
  76. else
  77. StatusColor = new { r = 255, g = 0, b = 0, a = 1 };
  78. }
  79. }
  80. }
  81. public string Ms { get; set; }
  82. public object StatusColor { get; set; }
  83. public DevStatus()
  84. {
  85. StatusColor = new { r = 51, g = 232, b = 34, a = 1 };
  86. }
  87. }
  88. }