/// <summary> /// Set sensor data into controller view model. /// </summary> /// <param name="ViewModel"></param> public void UpdateSensorViewModel(Ev3ControllerMainViewModel ViewModel) { var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { var DeviceViewModel = ViewModel.SensorViewModelArray[index]; try { var Device = Brick.SensorDeviceArray[index]; DeviceViewModel.PortName = Device.Port; DeviceViewModel.DeviceName = Device.Device; DeviceViewModel.IsConnected = true; DeviceViewModel.SensorValue1 = Device.Value1; DeviceViewModel.SensorValue1Unit = ""; DeviceViewModel.SensorValue2 = Device.Value2; DeviceViewModel.SensorValue2Unit = ""; DeviceViewModel.SensorValue3 = Device.Value3; DeviceViewModel.SensorValue3Unit = ""; } #pragma warning disable 168 catch (NullReferenceException ex) { DeviceViewModel.IsConnected = false; DeviceViewModel.SensorValue1 = 0; DeviceViewModel.SensorValue1Unit = ""; DeviceViewModel.SensorValue2 = 0; DeviceViewModel.SensorValue2Unit = ""; DeviceViewModel.SensorValue3 = 0; DeviceViewModel.SensorValue3Unit = ""; } #pragma warning restore } }
/// <summary> /// Set motor data into controller view model. /// </summary> /// <param name="ViewModel"></param> public void UpdateMotorViewModel(Ev3ControllerMainViewModel ViewModel) { var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { var DeviceViewModel = ViewModel.MotorViewModelArray[index]; try { var Device = Brick.MotorDeviceArray[index]; DeviceViewModel.PortName = Device.Port; DeviceViewModel.DeviceName = Device.Device; DeviceViewModel.CurrentOutput = Device.Power; DeviceViewModel.IsConnected = Device.IsConnected; DeviceViewModel.CurrentOutputUnit = @"%"; } #pragma warning disable 168 catch (NullReferenceException ex) { DeviceViewModel.IsConnected = false; DeviceViewModel.TargetOutput = 0; DeviceViewModel.TargetOutputUnit = ""; DeviceViewModel.CurrentOutput = 0; DeviceViewModel.CurrentOutputUnit = ""; } #pragma warning restore } }
/// <summary> /// Set safe state. /// </summary> /// <param name="ViewModel"></param> public void UpdateSafeStateViewModel(Ev3ControllerMainViewModel ViewModel) { var Brick = Ev3Brick.GetInstance(); ViewModel.SafeStateViewModel.IsConnected = true; ViewModel.SafeStateViewModel.SafetyState = Brick.State.StateName; ViewModel.SafeStateViewModel.ImageSource = Brick.State.StateImage; }
/// <summary> /// Set target motor and steering value to Ev3Brick instance. /// </summary> /// <param name="ViewModel"></param> public void UpdateTargetMotor(Ev3ControllerMainViewModel ViewModel) { var Brick = Ev3Brick.GetInstance(); Brick.Output.MotorOutput = ViewModel.MotorSteerViewModel.TargetMotorOutput; Brick.Output.Steering = ViewModel.MotorSteerViewModel.TargetSteer; foreach (Ev3MotorDeviceViewModel MotorDeviceViewModel in ViewModel.MotorViewModelArray) { if (MotorDeviceViewModel.IsConnected) { MotorDeviceViewModel.TargetOutput = ViewModel.MotorSteerViewModel.TargetMotorOutput; } } }