Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        /// <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
            }
        }
Пример #6
0
 public void UpdateViewModel(Ev3ControllerMainViewModel ViewModel)
 {
     this.UpdateMotorViewModel(ViewModel);
     this.UpdateSensorViewModel(ViewModel);
     this.UpdateSafeStateViewModel(ViewModel);
     this.UpdateTargetMotor(ViewModel);
 }
Пример #7
0
        /// <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;
        }
Пример #8
0
 /// <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();
 }
Пример #9
0
        /// <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;
                }
            }
        }
Пример #10
0
        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);
        }