private void RobotConnection_CurrentSpeedFeedbackReceived(object sender, MessageParsedEventArgs e) { Application.Current.Dispatcher.Invoke(() => { var now = DateTime.Now; if (_mainViewModel.GuiStatusViewModel.IsRawVelocityEnabled) { _mainViewModel.SpeedFeedbackChart.AddNewPoint( new MeasurementModel { DateTime = now, Value = e.LeftMotor.RawVelocity }, new MeasurementModel { DateTime = now, Value = e.RightMotor.RawVelocity }); } else { _mainViewModel.SpeedFeedbackChart.AddNewPoint( new MeasurementModel { DateTime = now, Value = e.LeftMotor.Velocity }, new MeasurementModel { DateTime = now, Value = e.RightMotor.Velocity }); } if (_mainViewModel.GuiStatusViewModel.IsRawCurrentEnabled) { _mainViewModel.CurrentFeedbackChart.AddNewPoint( new MeasurementModel { DateTime = now, Value = e.LeftMotor.RawCurrent }, new MeasurementModel { DateTime = now, Value = e.RightMotor.RawCurrent }); } else { _mainViewModel.CurrentFeedbackChart.AddNewPoint( new MeasurementModel { DateTime = now, Value = e.LeftMotor.Current }, new MeasurementModel { DateTime = now, Value = e.RightMotor.Current }); } }); }
/// <summary> /// We are goind to log when speed and current appear /// because it is updated with highest frequency /// </summary> private void RobotConnection_SpeedCurrentReceived(object sender, MessageParsedEventArgs e) { _log.TimeStamp = DateTime.Now; _log.LeftSpeed = e.LeftMotor.Velocity; _log.RawLeftSpeed = e.LeftMotor.RawVelocity; _log.RightSpeed = e.RightMotor.Velocity; _log.RawRightSpeed = e.RightMotor.RawVelocity; _log.LeftCurrent = e.LeftMotor.Current; _log.RawLeftCurrent = e.LeftMotor.RawCurrent; _log.RightCurrent = e.RightMotor.Current; _log.RawRightCurrent = e.RightMotor.RawCurrent; _log.LeftSetpoint = Setpoints.LeftSpeed; _log.RightSetpoint = Setpoints.RightSpeed; Log(); }
// done private void RobotConnection_ParametersReceived(object sender, MessageParsedEventArgs e) => _mainViewModel.RobotControlsViewModel.ParametersModel = e.Parameters;
// done private void RobotConnection_VoltageTemperatureFeedbackReceived(object sender, MessageParsedEventArgs e) => _mainViewModel.RobotControlsViewModel.RobotStatus = new RobotStatusModel { Temperature = e.VoltageTemperatureFeedbackModel.Temperature, Voltage = e.VoltageTemperatureFeedbackModel.Voltage };
private void Client_OnMessageDecoded(MessageParsedEventArgs eventargs) => OnMessageDecoded?.Invoke(eventargs);
private void RobotConnection_VoltageTemperatureReceived(object sender, MessageParsedEventArgs e) { _log.Voltage = e.VoltageTemperatureFeedbackModel.Voltage; _log.Temperature = e.VoltageTemperatureFeedbackModel.Temperature; }