DriveStateViewModel.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using GSG.NET.Extensions;
  2. using OHV.Common.Events;
  3. using OHV.Common.Shareds;
  4. using Prism.Events;
  5. using Prism.Mvvm;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace OHV.Module.Status
  12. {
  13. public class DriveStateViewModel : BindableBase
  14. {
  15. #region Front Drive
  16. private double frontSpeed;
  17. public double FrontSpeed
  18. {
  19. get { return frontSpeed; }
  20. set { this.SetProperty( ref this.frontSpeed , value ); }
  21. }
  22. private double frontTorque;
  23. public double FrontTorque
  24. {
  25. get { return frontTorque; }
  26. set { this.SetProperty( ref this.frontTorque , value ); }
  27. }
  28. private double frontRpm;
  29. public double FrontRpm
  30. {
  31. get { return frontRpm; }
  32. set { this.SetProperty( ref this.frontRpm , value ); }
  33. }
  34. private double frontLoadFactor;
  35. public double FrontLoadFactor
  36. {
  37. get { return frontLoadFactor; }
  38. set { this.SetProperty( ref this.frontLoadFactor , value ); }
  39. }
  40. #endregion
  41. #region Back Drive
  42. private double rearSpeed;
  43. public double RearSpeed
  44. {
  45. get { return rearSpeed; }
  46. set { this.SetProperty( ref this.rearSpeed, value ); }
  47. }
  48. private double rearTorque;
  49. public double RearTorque
  50. {
  51. get { return rearTorque; }
  52. set { this.SetProperty( ref this.rearTorque, value ); }
  53. }
  54. private double rearRpm;
  55. public double RearRpm
  56. {
  57. get { return rearRpm; }
  58. set { this.SetProperty( ref this.rearRpm, value ); }
  59. }
  60. private double rearLoadFactor;
  61. public double RearLoadFactor
  62. {
  63. get { return rearLoadFactor; }
  64. set { this.SetProperty( ref this.rearLoadFactor, value ); }
  65. }
  66. #endregion
  67. IEventAggregator eventAggregator;
  68. public DriveStateViewModel( IEventAggregator _ea )
  69. {
  70. this.eventAggregator = _ea;
  71. eventAggregator = _ea;
  72. eventAggregator.GetEvent<GUIMessagePubSubEvent>().Unsubscribe( UICallbackCommunication );
  73. eventAggregator.GetEvent<GUIMessagePubSubEvent>().Subscribe( UICallbackCommunication , ThreadOption.UIThread );
  74. //this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish( new VCSMessageEventArgs { Kind = VCSMessageEventArgs.eVCSMessageKind.ReqBatteryState } );
  75. }
  76. private void UICallbackCommunication( GUIMessageEventArgs obj )
  77. {
  78. switch ( obj.Kind )
  79. {
  80. case GUIMessageEventArgs.eGUIMessageKind.ModelPropertyChange:
  81. this.UICallBackModelPropertyChange( obj );
  82. break;
  83. case GUIMessageEventArgs.eGUIMessageKind.RspIOObject:
  84. break;
  85. case GUIMessageEventArgs.eGUIMessageKind.RspIOMapList:
  86. break;
  87. case GUIMessageEventArgs.eGUIMessageKind.RspCommandList:
  88. break;
  89. case GUIMessageEventArgs.eGUIMessageKind.RspAutoModeChange:
  90. break;
  91. case GUIMessageEventArgs.eGUIMessageKind.RspManualModeChange:
  92. break;
  93. case GUIMessageEventArgs.eGUIMessageKind.RspAlarmReset:
  94. break;
  95. case GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange:
  96. break;
  97. case GUIMessageEventArgs.eGUIMessageKind.RspEStop:
  98. break;
  99. case GUIMessageEventArgs.eGUIMessageKind.RspVihicleState:
  100. break;
  101. case GUIMessageEventArgs.eGUIMessageKind.RspMachineModeChg:
  102. break;
  103. default:
  104. break;
  105. }
  106. }
  107. private void UICallBackModelPropertyChange( GUIMessageEventArgs obj )
  108. {
  109. if ( obj.MessageKey.Equals( MessageKey.Vehicle ) )
  110. {
  111. switch ( obj.ModelPropertyName )
  112. {
  113. case "FrontLoadFactor":
  114. {
  115. var v = CastTo<double>.From<object>( obj.Args );
  116. this.FrontLoadFactor = v;
  117. }
  118. break;
  119. case "FrontRpm":
  120. {
  121. var v = CastTo<double>.From<object>( obj.Args );
  122. this.FrontRpm = v;
  123. }
  124. break;
  125. case "FrontSpeed":
  126. {
  127. var v = CastTo<double>.From<object>( obj.Args );
  128. this.FrontSpeed = v;
  129. }
  130. break;
  131. case "FrontTorque":
  132. {
  133. var v = CastTo<double>.From<object>( obj.Args );
  134. this.FrontTorque = v;
  135. }
  136. break;
  137. case "RearLoadFactor":
  138. {
  139. var v = CastTo<double>.From<object>( obj.Args );
  140. this.RearLoadFactor = v;
  141. }
  142. break;
  143. case "RearRpm":
  144. {
  145. var v = CastTo<double>.From<object>( obj.Args );
  146. this.RearRpm = v;
  147. }
  148. break;
  149. case "RearSpeed":
  150. {
  151. var v = CastTo<double>.From<object>( obj.Args );
  152. this.RearSpeed = v;
  153. }
  154. break;
  155. case "RearTorque":
  156. {
  157. var v = CastTo<double>.From<object>( obj.Args );
  158. this.RearTorque = v;
  159. }
  160. break;
  161. }
  162. }
  163. }
  164. public void Init( ) { }
  165. }
  166. }