public void BrickDataUpdater_UpdateMotorViewModel_Test_003() { var Updater = new BrickDataUpdater(); var ViewModel = new Ev3ControllerMainViewModel(); var MotorDevice = new Ev3MotorDevice(); var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { ViewModel.MotorViewModelArray[index] = new Ev3MotorDeviceViewModel(); } MotorDevice.ConnectedPort = Ev3Device.OUTPORT.OUTPORT_C; MotorDevice.DeviceType = Ev3MotorDevice.DEVICE_TYPE.MOTOR_DEVICE_LARGE_MOTOR; MotorDevice.Power = 12; Brick.MotorDeviceArray[2] = MotorDevice; Updater.UpdateMotorViewModel(ViewModel); Assert.IsFalse(ViewModel.MotorViewModelArray[0].IsConnected); Assert.IsFalse(ViewModel.MotorViewModelArray[1].IsConnected); Assert.IsTrue(ViewModel.MotorViewModelArray[2].IsConnected); Assert.AreEqual("PORT_C", ViewModel.MotorViewModelArray[2].PortName); Assert.AreEqual("LARGE MOTOR", ViewModel.MotorViewModelArray[2].DeviceName); Assert.AreEqual(12, ViewModel.MotorViewModelArray[2].CurrentOutput); Assert.AreEqual("%", ViewModel.MotorViewModelArray[2].CurrentOutputUnit); Assert.IsFalse(ViewModel.MotorViewModelArray[3].IsConnected); }
public void BrickDataUpdater_UpdateSensorViewModel_Test_004() { var Updater = new BrickDataUpdater(); var ViewModel = new Ev3ControllerMainViewModel(); var SensorDevice = new Ev3SensorDevice(); var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { ViewModel.SensorViewModelArray[index] = new Ev3SensorDeviceViewModel(); } SensorDevice.ConnectedPort = Ev3Device.INPORT.INPORT_4; SensorDevice.DeviceType = Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC; SensorDevice.Value1 = 10; SensorDevice.Value2 = 11; SensorDevice.Value3 = 12; Brick.SensorDeviceArray[3] = SensorDevice; Updater.UpdateSensorViewModel(ViewModel); Assert.IsFalse(ViewModel.SensorViewModelArray[0].IsConnected); Assert.IsFalse(ViewModel.SensorViewModelArray[1].IsConnected); Assert.IsFalse(ViewModel.SensorViewModelArray[2].IsConnected); Assert.IsTrue(ViewModel.SensorViewModelArray[3].IsConnected); Assert.AreEqual("PORT_4", ViewModel.SensorViewModelArray[3].PortName); Assert.AreEqual("ULTRASONIC", ViewModel.SensorViewModelArray[3].DeviceName); Assert.AreEqual(10, ViewModel.SensorViewModelArray[3].SensorValue1); Assert.AreEqual(11, ViewModel.SensorViewModelArray[3].SensorValue2); Assert.AreEqual(12, ViewModel.SensorViewModelArray[3].SensorValue3); Assert.AreEqual("", ViewModel.SensorViewModelArray[3].SensorValue1Unit); Assert.AreEqual("", ViewModel.SensorViewModelArray[3].SensorValue2Unit); Assert.AreEqual("", ViewModel.SensorViewModelArray[3].SensorValue3Unit); }
/// <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 } }
public void BrickDataUpdater_UpdateMotorViewModel_Test_010() { var Updater = new BrickDataUpdater(); var ViewModel = new Ev3ControllerMainViewModel(); var MotorDevice1 = new Ev3MotorDevice(); var MotorDevice2 = new Ev3MotorDevice(); var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { ViewModel.MotorViewModelArray[index] = new Ev3MotorDeviceViewModel(); } MotorDevice1.Power = 13; MotorDevice2.Power = 23; Brick.MotorDeviceArray[2] = MotorDevice1; Brick.MotorDeviceArray[3] = MotorDevice2; Updater.UpdateMotorViewModel(ViewModel); Assert.IsFalse(ViewModel.MotorViewModelArray[0].IsConnected); Assert.IsFalse(ViewModel.MotorViewModelArray[1].IsConnected); Assert.IsTrue(ViewModel.MotorViewModelArray[2].IsConnected); Assert.AreEqual(13, ViewModel.MotorViewModelArray[2].CurrentOutput); Assert.AreEqual("%", ViewModel.MotorViewModelArray[2].CurrentOutputUnit); Assert.IsTrue(ViewModel.MotorViewModelArray[3].IsConnected); Assert.AreEqual(23, ViewModel.MotorViewModelArray[3].CurrentOutput); Assert.AreEqual("%", ViewModel.MotorViewModelArray[3].CurrentOutputUnit); }
/// <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 } }
public void UpdateViewModel(Ev3ControllerMainViewModel ViewModel) { this.UpdateMotorViewModel(ViewModel); this.UpdateSensorViewModel(ViewModel); this.UpdateSafeStateViewModel(ViewModel); this.UpdateTargetMotor(ViewModel); }
/// <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> /// Reset device data by calling /// </summary> /// <param name="ViewModel"></param> public void ResetViewModel(Ev3ControllerMainViewModel ViewModel) { for (int index = 0; index < 4; index++) { if (null != ViewModel.MotorViewModelArray[index]) { ViewModel.MotorViewModelArray[index].ResetDevice(); } if (null != ViewModel.SensorViewModelArray[index]) { ViewModel.SensorViewModelArray[index].ResetDevice(); } } ViewModel.SafeStateViewModel.ResetDevice(); }
/// <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; } } }
public void BrickDataUpdater_UpdateViewModel_Test_001() { var Updater = new BrickDataUpdater(); var ViewModel = new Ev3ControllerMainViewModel(); var MotorDevice = new Ev3MotorDevice(); var SensorDevice = new Ev3SensorDevice(); var Brick = Ev3Brick.GetInstance(); for (int index = 0; index < 4; index++) { ViewModel.MotorViewModelArray[index] = new Ev3MotorDeviceViewModel(); ViewModel.SensorViewModelArray[index] = new Ev3SensorDeviceViewModel(); } MotorDevice.ConnectedPort = Ev3Device.OUTPORT.OUTPORT_A; MotorDevice.DeviceType = Ev3MotorDevice.DEVICE_TYPE.MOTOR_DEVICE_LARGE_MOTOR; MotorDevice.Power = 10; Brick.MotorDeviceArray[0] = MotorDevice; SensorDevice.ConnectedPort = Ev3Device.INPORT.INPORT_1; SensorDevice.DeviceType = Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_COLOR; SensorDevice.Value1 = 10; SensorDevice.Value2 = 11; SensorDevice.Value3 = 12; Brick.SensorDeviceArray[0] = SensorDevice; Updater.UpdateViewModel(ViewModel); Assert.IsTrue(ViewModel.MotorViewModelArray[0].IsConnected); Assert.AreEqual("PORT_A", ViewModel.MotorViewModelArray[0].PortName); Assert.AreEqual("LARGE MOTOR", ViewModel.MotorViewModelArray[0].DeviceName); Assert.AreEqual(10, ViewModel.MotorViewModelArray[0].CurrentOutput); Assert.AreEqual("%", ViewModel.MotorViewModelArray[0].CurrentOutputUnit); Assert.IsFalse(ViewModel.MotorViewModelArray[1].IsConnected); Assert.IsFalse(ViewModel.MotorViewModelArray[2].IsConnected); Assert.IsFalse(ViewModel.MotorViewModelArray[3].IsConnected); Assert.IsTrue(ViewModel.SensorViewModelArray[0].IsConnected); Assert.AreEqual("PORT_1", ViewModel.SensorViewModelArray[0].PortName); Assert.AreEqual("COLOR", ViewModel.SensorViewModelArray[0].DeviceName); Assert.AreEqual(10, ViewModel.SensorViewModelArray[0].SensorValue1); Assert.AreEqual(11, ViewModel.SensorViewModelArray[0].SensorValue2); Assert.AreEqual(12, ViewModel.SensorViewModelArray[0].SensorValue3); Assert.AreEqual("", ViewModel.SensorViewModelArray[0].SensorValue1Unit); Assert.AreEqual("", ViewModel.SensorViewModelArray[0].SensorValue2Unit); Assert.AreEqual("", ViewModel.SensorViewModelArray[0].SensorValue3Unit); Assert.IsFalse(ViewModel.SensorViewModelArray[1].IsConnected); Assert.IsFalse(ViewModel.SensorViewModelArray[2].IsConnected); Assert.IsFalse(ViewModel.SensorViewModelArray[3].IsConnected); }