GpuSpeedDataViewModel.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. using NTMiner.Core;
  2. using NTMiner.Core.Gpus;
  3. using NTMiner.Vms;
  4. using System;
  5. using System.Windows.Media;
  6. namespace NTMiner.MinerStudio.Vms {
  7. public class GpuSpeedDataViewModel : ViewModelBase, IGpuSpeedData {
  8. private readonly GpuSpeedData _data;
  9. private SolidColorBrush _temperatureForeground = WpfUtil.BlackBrush;
  10. public GpuSpeedDataViewModel(GpuSpeedData data) {
  11. _data = data;
  12. }
  13. public int Index {
  14. get { return _data.Index; }
  15. set {
  16. if (_data.Index != value) {
  17. _data.Index = value;
  18. OnPropertyChanged(nameof(Index));
  19. }
  20. }
  21. }
  22. public string Name {
  23. get { return _data.Name; }
  24. set {
  25. if (_data.Name != value) {
  26. _data.Name = value;
  27. OnPropertyChanged(nameof(Name));
  28. }
  29. }
  30. }
  31. public ulong TotalMemory {
  32. get { return _data.TotalMemory; }
  33. set {
  34. if (_data.TotalMemory != value) {
  35. _data.TotalMemory = value;
  36. OnPropertyChanged(nameof(TotalMemory));
  37. OnPropertyChanged(nameof(TotalMemoryGbText));
  38. }
  39. }
  40. }
  41. private const double g = 1024 * 1024 * 1024;
  42. public string TotalMemoryGbText {
  43. get {
  44. return Math.Round(this.TotalMemory / g, 1) + "Gb";
  45. }
  46. }
  47. public double MainCoinSpeed {
  48. get { return _data.MainCoinSpeed; }
  49. set {
  50. if (_data.MainCoinSpeed != value) {
  51. _data.MainCoinSpeed = value;
  52. OnPropertyChanged(nameof(MainCoinSpeed));
  53. OnPropertyChanged(nameof(MainCoinSpeedText));
  54. }
  55. }
  56. }
  57. public string MainCoinSpeedText {
  58. get {
  59. return MainCoinSpeed.ToUnitSpeedText();
  60. }
  61. }
  62. public double DualCoinSpeed {
  63. get { return _data.DualCoinSpeed; }
  64. set {
  65. if (_data.DualCoinSpeed != value) {
  66. _data.DualCoinSpeed = value;
  67. OnPropertyChanged(nameof(DualCoinSpeed));
  68. OnPropertyChanged(nameof(DualCoinSpeedText));
  69. }
  70. }
  71. }
  72. public string DualCoinSpeedText {
  73. get {
  74. return DualCoinSpeed.ToUnitSpeedText();
  75. }
  76. }
  77. public int Temperature {
  78. get { return _data.Temperature; }
  79. set {
  80. if (_data.Temperature != value) {
  81. _data.Temperature = value;
  82. OnPropertyChanged(nameof(Temperature));
  83. OnPropertyChanged(nameof(TemperatureText));
  84. }
  85. }
  86. }
  87. public string TemperatureText {
  88. get {
  89. return this.Temperature.ToString() + "℃";
  90. }
  91. }
  92. public SolidColorBrush TemperatureForeground {
  93. get {
  94. return _temperatureForeground;
  95. }
  96. set {
  97. _temperatureForeground = value;
  98. OnPropertyChanged(nameof(TemperatureForeground));
  99. }
  100. }
  101. public uint FanSpeed {
  102. get { return _data.FanSpeed; }
  103. set {
  104. if (_data.FanSpeed != value) {
  105. _data.FanSpeed = value;
  106. OnPropertyChanged(nameof(FanSpeed));
  107. OnPropertyChanged(nameof(FanSpeedText));
  108. }
  109. }
  110. }
  111. public string FanSpeedText {
  112. get {
  113. return this.FanSpeed.ToString() + "%";
  114. }
  115. }
  116. public uint PowerUsage {
  117. get { return _data.PowerUsage; }
  118. set {
  119. if (_data.PowerUsage != value) {
  120. _data.PowerUsage = value;
  121. OnPropertyChanged(nameof(PowerUsage));
  122. OnPropertyChanged(nameof(PowerUsageW));
  123. OnPropertyChanged(nameof(PowerUsageWText));
  124. }
  125. }
  126. }
  127. public double PowerUsageW {
  128. get {
  129. return this.PowerUsage;
  130. }
  131. }
  132. public string PowerUsageWText {
  133. get {
  134. return PowerUsageW.ToString("f0") + "W";
  135. }
  136. }
  137. public int CoreClockDelta {
  138. get => _data.CoreClockDelta;
  139. set {
  140. if (_data.CoreClockDelta != value) {
  141. _data.CoreClockDelta = value;
  142. OnPropertyChanged(nameof(CoreClockDelta));
  143. OnPropertyChanged(nameof(CoreClockDeltaMText));
  144. }
  145. }
  146. }
  147. public string CoreClockDeltaMText {
  148. get {
  149. return (CoreClockDelta / 1000).ToString() + "M";
  150. }
  151. }
  152. public int MemoryClockDelta {
  153. get => _data.MemoryClockDelta;
  154. set {
  155. if (_data.MemoryClockDelta != value) {
  156. _data.MemoryClockDelta = value;
  157. OnPropertyChanged(nameof(MemoryClockDelta));
  158. OnPropertyChanged(nameof(MemoryClockDeltaMText));
  159. }
  160. }
  161. }
  162. public string MemoryClockDeltaMText {
  163. get {
  164. return (MemoryClockDelta / 1000).ToString() + "M";
  165. }
  166. }
  167. public int Cool {
  168. get => _data.Cool;
  169. set {
  170. if (_data.Cool != value) {
  171. _data.Cool = value;
  172. OnPropertyChanged(nameof(Cool));
  173. OnPropertyChanged(nameof(CoolText));
  174. }
  175. }
  176. }
  177. public string CoolText {
  178. get {
  179. return this.Cool.ToString() + "%";
  180. }
  181. }
  182. public double PowerCapacity {
  183. get => _data.PowerCapacity;
  184. set {
  185. if (_data.PowerCapacity != value) {
  186. _data.PowerCapacity = value;
  187. OnPropertyChanged(nameof(PowerCapacity));
  188. OnPropertyChanged(nameof(PowerCapacityText));
  189. }
  190. }
  191. }
  192. public string PowerCapacityText {
  193. get {
  194. return this.PowerCapacity.ToString("f0") + "%";
  195. }
  196. }
  197. public int TempLimit {
  198. get { return _data.TempLimit; }
  199. set {
  200. if (_data.TempLimit != value) {
  201. _data.TempLimit = value;
  202. OnPropertyChanged(nameof(TempLimit));
  203. OnPropertyChanged(nameof(TempLimitText));
  204. }
  205. }
  206. }
  207. public string TempLimitText {
  208. get {
  209. return this.TempLimit + "℃";
  210. }
  211. }
  212. public int CoreVoltage {
  213. get { return _data.CoreVoltage; }
  214. set {
  215. if (_data.CoreVoltage != value) {
  216. _data.CoreVoltage = value;
  217. OnPropertyChanged(nameof(CoreVoltage));
  218. }
  219. }
  220. }
  221. public int MemoryVoltage {
  222. get { return _data.MemoryVoltage; }
  223. set {
  224. if (_data.MemoryVoltage != value) {
  225. _data.MemoryVoltage = value;
  226. OnPropertyChanged(nameof(MemoryVoltage));
  227. }
  228. }
  229. }
  230. public int FoundShare {
  231. get { return _data.FoundShare; }
  232. set {
  233. if (_data.FoundShare != value) {
  234. _data.FoundShare = value;
  235. OnPropertyChanged(nameof(FoundShare));
  236. }
  237. }
  238. }
  239. public int AcceptShare {
  240. get { return _data.AcceptShare; }
  241. set {
  242. if (_data.AcceptShare != value) {
  243. _data.AcceptShare = value;
  244. OnPropertyChanged(nameof(AcceptShare));
  245. }
  246. }
  247. }
  248. public int RejectShare {
  249. get { return _data.RejectShare; }
  250. set {
  251. if (_data.RejectShare != value) {
  252. _data.RejectShare = value;
  253. OnPropertyChanged(nameof(RejectShare));
  254. }
  255. }
  256. }
  257. public int IncorrectShare {
  258. get { return _data.IncorrectShare; }
  259. set {
  260. if (_data.IncorrectShare != value) {
  261. _data.IncorrectShare = value;
  262. OnPropertyChanged(nameof(IncorrectShare));
  263. }
  264. }
  265. }
  266. }
  267. }