public void Ev3PortViewModel_DataSendAndReceivedFinishedCallback_Test_005()
        {
            var Command = new Command_0C_00();

            Command.ResData    = new byte[8];
            Command.ResData[0] = Command.Res;
            Command.ResData[1] = Command.SubRes;
            Command.ResData[2] = 0x00;
            Command.ResData[3] = 0x04;
            Command.ResData[4] = 0x00;
            Command.ResData[5] = 0x01;
            Command.ResData[6] = 0x02;
            Command.ResData[7] = 0x03;

            var Args = new NotifySendReceiveDataEventArgs(Command);

            this.TestVM.DataSendAndReceivedFinishedCallback(this, Args);

            Assert.AreEqual((Ev3MotorDevice.DEVICE_TYPE) 0x00,
                            Ev3Brick.GetInstance().MotorDevice(0).DeviceType);
            Assert.AreEqual((Ev3MotorDevice.DEVICE_TYPE) 0x01,
                            Ev3Brick.GetInstance().MotorDevice(1).DeviceType);
            Assert.AreEqual((Ev3MotorDevice.DEVICE_TYPE) 0x02,
                            Ev3Brick.GetInstance().MotorDevice(2).DeviceType);
            Assert.AreEqual((Ev3MotorDevice.DEVICE_TYPE) 0x03,
                            Ev3Brick.GetInstance().MotorDevice(3).DeviceType);
        }
        public void BrickUpdater_50_00_Update_Test_005()
        {
            var Command = new Command_50_00();

            Command.ResData     = new byte[11];
            Command.ResData[4]  = 0x02;
            Command.ResData[5]  = 0x00;
            Command.ResData[6]  = 0x00;
            Command.ResData[7]  = 0x00;
            Command.ResData[8]  = 0x01;
            Command.ResData[9]  = 0xFF;
            Command.ResData[10] = 0x7F;

            var Updater = new BrickUpdater_50_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.IsTrue(Brick.SensorDevice(0).IsConnected);
            Assert.AreEqual((Ev3SensorDevice.INPORT) 0, Brick.SensorDevice(0).ConnectedPort);
            Assert.AreEqual(0x0000, Brick.SensorDevice(0).Value1);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_GYRO,
                            Brick.SensorDevice(0).DeviceType);
            Assert.AreEqual((Ev3SensorDevice.INPORT) 1, Brick.SensorDevice(1).ConnectedPort);
            Assert.AreEqual(0x7FFF, Brick.SensorDevice(1).Value1);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_GYRO,
                            Brick.SensorDevice(1).DeviceType);
        }
예제 #3
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);
        }
예제 #4
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);
        }
예제 #5
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);
        }
        public void BrickUpdater_0C_00_Update_Test_002()
        {
            var Command = new Command_0C_00();

            Command.ResData    = new byte[8];
            Command.ResData[4] = 0xFE;
            Command.ResData[5] = 0xFF;
            Command.ResData[6] = 0x04;
            Command.ResData[7] = 0x00;

            var Updater = new BrickUpdater_0C_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.AreEqual(Ev3Device.OUTPORT.OUTPORT_A, Brick.MotorDevice(0).ConnectedPort);
            Assert.AreEqual(Ev3Device.OUTPORT.OUTPORT_B, Brick.MotorDevice(1).ConnectedPort);
            Assert.AreEqual(Ev3Device.OUTPORT.OUTPORT_C, Brick.MotorDevice(2).ConnectedPort);
            Assert.AreEqual(Ev3Device.OUTPORT.OUTPORT_D, Brick.MotorDevice(3).ConnectedPort);
            Assert.AreEqual(DEVICE_TYPE.MOTOR_DEVICE_UNKNOWN, Brick.MotorDevice(0).DeviceType);
            Assert.AreEqual(DEVICE_TYPE.MOTOR_DEVICE_UNKNOWN, Brick.MotorDevice(1).DeviceType);
            Assert.AreEqual(DEVICE_TYPE.MOTOR_DEVICE_UNKNOWN, Brick.MotorDevice(2).DeviceType);
            Assert.AreEqual("PORT_A", Brick.MotorDevice(0).Port);
            Assert.AreEqual("PORT_B", Brick.MotorDevice(1).Port);
            Assert.AreEqual("PORT_C", Brick.MotorDevice(2).Port);
            Assert.AreEqual("Unknown", Brick.MotorDevice(0).Device);
            Assert.AreEqual("Unknown", Brick.MotorDevice(1).Device);
            Assert.AreEqual("Unknown", Brick.MotorDevice(2).Device);
            Assert.IsFalse(Brick.MotorDevice(0).IsConnected);
            Assert.IsFalse(Brick.MotorDevice(1).IsConnected);
            Assert.IsFalse(Brick.MotorDevice(2).IsConnected);
        }
        public void BrickUpdater_20_01_Update_Test_022()
        {
            var Command = new Command_20_01();

            Command.ResData     = new byte[11];
            Command.ResData[4]  = 0x03;
            Command.ResData[5]  = 0x01;
            Command.ResData[6]  = 0x01;
            Command.ResData[7]  = 0x02;
            Command.ResData[8]  = 0x02;
            Command.ResData[9]  = 0x03;
            Command.ResData[10] = 0x03;

            var Updater = new BrickUpdater_20_01();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.IsFalse(Brick.SensorDevice(0).IsConnected);
            Assert.IsTrue(Brick.SensorDevice(1).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 1, Brick.SensorDevice(1).ConnectedPort);
            Assert.AreEqual(0x01, Brick.SensorDevice(1).Value2);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(1).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(2).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 2, Brick.SensorDevice(2).ConnectedPort);
            Assert.AreEqual(0x02, Brick.SensorDevice(2).Value2);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(2).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(3).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 3, Brick.SensorDevice(3).ConnectedPort);
            Assert.AreEqual(0x03, Brick.SensorDevice(3).Value2);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(3).DeviceType);
        }
        public void EV3Brick_MotorDevice_Test_002()
        {
            var Brick  = Ev3Brick.GetInstance();
            var Device = Brick.MotorDevice(3);

            Assert.AreEqual(0, Device.Power);
            Assert.AreEqual(0, Device.Counts);
        }
        public void EV3Brick_SensorDevice_Test_002()
        {
            var Brick        = Ev3Brick.GetInstance();
            var SensorDevice = Brick.SensorDevice(3);

            Assert.AreEqual(0, SensorDevice.Value1);
            Assert.AreEqual(0, SensorDevice.Value2);
            Assert.AreEqual(0, SensorDevice.Value3);
        }
 /// <summary>
 /// Update command param, steering output value.
 /// </summary>
 /// <param name="CommandParam">CommandParam object contains Steering value to set.</param>
 public override void UpdateCmdData(ICommandParam CommandParam = null)
 {
     if (null == CommandParam)
     {
         var Brick = Ev3Brick.GetInstance();
         int Steer = Brick.Output.Steering;
         CommandParam = new CommandParam_16_00(Steer);
     }
     this.SetUp(CommandParam);
 }
예제 #11
0
 /// <summary>
 /// Update command param, motor output.
 /// </summary>
 /// <param name="CommandParam"></param>
 public override void UpdateCmdData(ICommandParam CommandParam = null)
 {
     if (null == CommandParam)
     {
         var  Brick     = Ev3Brick.GetInstance();
         byte Output    = Convert.ToByte(Math.Abs(Brick.Output.MotorOutput));
         byte Direction = (byte)(Brick.Output.MotorOutput > 0 ? 1 : 0);
         CommandParam = new CommandParam_12_00(Output, Direction);
     }
     this.SetUp(CommandParam);
 }
        public void BrickUpdater_06_00_Update_Test_005()
        {
            var Command = new Command_06_00();

            Command.ResData    = new byte[5];
            Command.ResData[4] = 0x04;
            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_06_00();

            Updater.Update(Command, Brick);

            Assert.AreEqual(SafeState.SAFE_STATE.SAFE_STATE_UNKNOWN, Brick.State.State);
            Assert.AreEqual("ERROR", Brick.State.StateName);
        }
예제 #13
0
        public void BrickUpdater_F0_00_Update_Test_005()
        {
            var Command = new Command_F0_00();

            Command.ResData     = new byte[16];
            Command.ResData[0]  = 0xF1;
            Command.ResData[1]  = 0x00;
            Command.ResData[2]  = 0x00;
            Command.ResData[3]  = 0x0C;
            Command.ResData[4]  = 0x50;
            Command.ResData[5]  = 0x04;
            Command.ResData[6]  = 0x02;
            Command.ResData[7]  = 0x03;
            Command.ResData[8]  = 0x04;
            Command.ResData[9]  = 0x05;
            Command.ResData[10] = 0x00;
            Command.ResData[11] = 0x00;
            Command.ResData[12] = 0x00;
            Command.ResData[13] = 0x00;
            Command.ResData[14] = 0x00;
            Command.ResData[15] = 0x00;

            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_F0_00();

            Updater.Update(Command, Brick);
            ushort ExpectedAngle = 0x0302;
            ushort ExpectedApeed = 0x0504;

            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_GYRO,
                Brick.SensorDevice(0).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(0).IsConnected);
            Assert.AreEqual((int)((short)ExpectedAngle), Brick.SensorDevice(0).Value1);
            Assert.AreEqual((int)((short)ExpectedApeed), Brick.SensorDevice(0).Value2);
            Assert.AreEqual(0, Brick.SensorDevice(0).Value3);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(1).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(1).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(2).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(2).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(3).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(3).IsConnected);
        }
예제 #14
0
        public void BrickUpdater_F0_00_Update_Test_003()
        {
            var Command = new Command_F0_00();

            Command.ResData     = new byte[15];
            Command.ResData[0]  = 0xF1;
            Command.ResData[1]  = 0x00;
            Command.ResData[2]  = 0x00;
            Command.ResData[3]  = 0x0B;
            Command.ResData[4]  = 0x30;
            Command.ResData[5]  = 0x03;
            Command.ResData[6]  = 0xAA;
            Command.ResData[7]  = 0x07;
            Command.ResData[8]  = 0x55;
            Command.ResData[9]  = 0x00;
            Command.ResData[10] = 0x00;
            Command.ResData[11] = 0x00;
            Command.ResData[12] = 0x00;
            Command.ResData[13] = 0x00;
            Command.ResData[14] = 0x00;

            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_F0_00();

            Updater.Update(Command, Brick);
            ushort ExpectedAmbient = 0xAA;
            ushort ExpectedReflect = 0x55;

            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_COLOR,
                Brick.SensorDevice(0).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(0).IsConnected);
            Assert.AreEqual((int)((short)(ExpectedAmbient)), Brick.SensorDevice(0).Value1);
            Assert.AreEqual(7, Brick.SensorDevice(0).Value2);
            Assert.AreEqual((int)((short)(ExpectedReflect)), Brick.SensorDevice(0).Value3);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(1).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(1).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(2).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(2).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(3).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(3).IsConnected);
        }
        public void BrickUpdater_02_00_Update_Test_002()
        {
            var Command = new Command_04_00();

            Command.ResData    = new byte[6];
            Command.ResData[4] = 0xAA;
            Command.ResData[5] = 0x55;

            var Updater = new BrickUpdater_02_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.AreEqual(0x00, Brick.Version.Major);
            Assert.AreEqual(0x00, Brick.Version.Minor);
        }
        public void EV3Brick_MotorDevice_Test_001()
        {
            var Brick  = Ev3Brick.GetInstance();
            var Device = Brick.MotorDevice(0);

            Assert.AreEqual(0, Device.Power);
            Assert.AreEqual(0, Device.Counts);

            Device.Power  = 1;
            Device.Counts = 2;

            var SensorDevice2 = Brick.SensorDevice(0);

            Assert.AreEqual(1, Device.Power);
            Assert.AreEqual(2, Device.Counts);
        }
        public void BrickUpdater_04_00_Update_Test_004()
        {
            var Command = new Command_04_00();

            Command.ResData    = new byte[8];
            Command.ResData[4] = 0xFF;
            Command.ResData[5] = 0x7F;
            Command.ResData[6] = 0x00;
            Command.ResData[7] = 0x00;
            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_04_00();

            Updater.Update(Command, Brick);

            Assert.AreEqual(32767, Brick.Battery.Voltage);
            Assert.AreEqual(0, Brick.Battery.Current);
        }
        public void BrickUpdater_04_00_Update_Test_001()
        {
            var Command = new Command_04_00();

            Command.ResData    = new byte[8];
            Command.ResData[4] = 0x01;
            Command.ResData[5] = 0x02;
            Command.ResData[6] = 0x03;
            Command.ResData[7] = 0x04;
            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_04_00();

            Updater.Update(Command, Brick);

            Assert.AreEqual(0x0201, Brick.Battery.Voltage);
            Assert.AreEqual(0x0403, Brick.Battery.Current);
        }
예제 #19
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);
        }
        public void Ev3PortViewModel_DataSendAndReceivedFinishedCallback_Test_015()
        {
            var Command = new Command_A0_00();

            Command.ResData    = new byte[5];
            Command.ResData[0] = Command.Res;
            Command.ResData[1] = Command.SubRes;
            Command.ResData[2] = 0x00;
            Command.ResData[3] = 0x01;
            Command.ResData[4] = 0x03;

            var Args = new NotifySendReceiveDataEventArgs(Command);

            this.TestVM.DataSendAndReceivedFinishedCallback(this, Args);

            Assert.AreEqual((SafeState.SAFE_STATE) 0x03, Ev3Brick.GetInstance().State.State);
        }
        public void BrickUpdater_20_00_Update_Test_013()
        {
            var Command = new Command_20_00();

            Command.ResData     = new byte[17];
            Command.ResData[4]  = 0x04;
            Command.ResData[5]  = 0x03;
            Command.ResData[6]  = 0x77;
            Command.ResData[7]  = 0x88;
            Command.ResData[8]  = 0x02;
            Command.ResData[9]  = 0x55;
            Command.ResData[10] = 0x66;
            Command.ResData[11] = 0x01;
            Command.ResData[12] = 0x33;
            Command.ResData[13] = 0x44;
            Command.ResData[14] = 0x00;
            Command.ResData[15] = 0x11;
            Command.ResData[16] = 0x22;

            var Updater = new BrickUpdater_20_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.IsTrue(Brick.SensorDevice(0).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 0x00, (Brick.SensorDevice(0).ConnectedPort));
            Assert.AreEqual(0x2211, (Brick.SensorDevice(0).Value1));
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(0).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(1).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 0x01, (Brick.SensorDevice(1).ConnectedPort));
            Assert.AreEqual(0x4433, (Brick.SensorDevice(1).Value1));
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(1).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(2).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 0x02, (Brick.SensorDevice(2).ConnectedPort));
            Assert.AreEqual(0x6655, (Brick.SensorDevice(2).Value1));
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(2).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(3).IsConnected);
            Assert.AreEqual((Ev3Device.INPORT) 0x03, (Brick.SensorDevice(3).ConnectedPort));
            Assert.AreEqual(0x8877, (Brick.SensorDevice(3).Value1));
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_ULTRASONIC,
                            Brick.SensorDevice(3).DeviceType);
        }
예제 #22
0
        public void BrickUpdater_F0_00_Update_Test_004()
        {
            var Command = new Command_F0_00();

            Command.ResData     = new byte[13];
            Command.ResData[0]  = 0xF1;
            Command.ResData[1]  = 0x00;
            Command.ResData[2]  = 0x00;
            Command.ResData[3]  = 0x09;
            Command.ResData[4]  = 0x40;
            Command.ResData[5]  = 0x01;
            Command.ResData[6]  = 0x01;
            Command.ResData[7]  = 0x00;
            Command.ResData[8]  = 0x00;
            Command.ResData[9]  = 0x00;
            Command.ResData[10] = 0x00;
            Command.ResData[11] = 0x00;
            Command.ResData[12] = 0x00;

            var Brick   = Ev3Brick.GetInstance();
            var Updater = new BrickUpdater_F0_00();

            Updater.Update(Command, Brick);

            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_TOUCH,
                Brick.SensorDevice(0).DeviceType);
            Assert.IsTrue(Brick.SensorDevice(0).IsConnected);
            Assert.AreEqual(1, Brick.SensorDevice(0).Value1);
            Assert.AreEqual(0, Brick.SensorDevice(0).Value2);
            Assert.AreEqual(0, Brick.SensorDevice(0).Value3);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(1).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(1).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(2).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(2).IsConnected);
            Assert.AreEqual(
                Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_NO_DEVICE,
                Brick.SensorDevice(3).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(3).IsConnected);
        }
        public void EV3Brick_SensorDevice_Test_001()
        {
            var Brick        = Ev3Brick.GetInstance();
            var SensorDevice = Brick.SensorDevice(0);

            Assert.AreEqual(0, SensorDevice.Value1);
            Assert.AreEqual(0, SensorDevice.Value2);
            Assert.AreEqual(0, SensorDevice.Value3);

            SensorDevice.Value1 = 1;
            SensorDevice.Value2 = 2;
            SensorDevice.Value3 = 3;

            var SensorDevice2 = Brick.SensorDevice(0);

            Assert.AreEqual(1, SensorDevice2.Value1);
            Assert.AreEqual(2, SensorDevice2.Value2);
            Assert.AreEqual(3, SensorDevice2.Value3);
        }
        public void Ev3PortViewModel_DataSendAndReceivedFinishedCallback_Test_002()
        {
            var Command = new Command_02_00();

            Command.ResData    = new byte[6];
            Command.ResData[0] = Command.Res;
            Command.ResData[1] = Command.SubRes;
            Command.ResData[2] = 0x00;
            Command.ResData[3] = 0x02;
            Command.ResData[4] = 0x11;
            Command.ResData[5] = 0x33;

            var Args = new NotifySendReceiveDataEventArgs(Command);

            this.TestVM.DataSendAndReceivedFinishedCallback(this, Args);

            Assert.AreEqual(0x11, Ev3Brick.GetInstance().Version.Major);
            Assert.AreEqual(0x33, Ev3Brick.GetInstance().Version.Minor);
        }
        public void BrickUpdater_10_00_Update_Test_001()
        {
            var Command = new Command_10_00();

            Command.ResData    = new byte[5];
            Command.ResData[4] = 0x10;

            var Updater = new BrickUpdater_10_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.IsFalse(Brick.MotorDevice(0).IsConnected);
            Assert.IsFalse(Brick.MotorDevice(1).IsConnected);
            Assert.IsFalse(Brick.MotorDevice(2).IsConnected);
            Assert.IsFalse(Brick.MotorDevice(3).IsConnected);
            Assert.AreEqual(0, Brick.MotorDevice(0).Power);
            Assert.AreEqual(0, Brick.MotorDevice(1).Power);
            Assert.AreEqual(0, Brick.MotorDevice(2).Power);
            Assert.AreEqual(0, Brick.MotorDevice(3).Power);
        }
        public void Ev3PortViewModel_DataSendAndReceivedFinishedCallback_Test_003()
        {
            var Command = new Command_04_00();

            Command.ResData    = new byte[8];
            Command.ResData[0] = Command.Res;
            Command.ResData[1] = Command.SubRes;
            Command.ResData[2] = 0x00;
            Command.ResData[3] = 0x04;
            Command.ResData[4] = 0x11;
            Command.ResData[5] = 0x22;
            Command.ResData[6] = 0x33;
            Command.ResData[7] = 0x44;

            var Args = new NotifySendReceiveDataEventArgs(Command);

            this.TestVM.DataSendAndReceivedFinishedCallback(this, Args);

            Assert.AreEqual(0x2211, Ev3Brick.GetInstance().Battery.Voltage);
            Assert.AreEqual(0x4433, Ev3Brick.GetInstance().Battery.Current);
        }
예제 #27
0
        public void BrickUpdater_50_00_Update_Test_004()
        {
            var Command = new Command_50_01();

            Command.ResData    = new byte[8];
            Command.ResData[4] = 0x01;
            Command.ResData[5] = 0x03;
            Command.ResData[6] = 0x00;
            Command.ResData[7] = 0x80;

            var Updater = new BrickUpdater_50_01();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.IsTrue(Brick.SensorDevice(3).IsConnected);
            Assert.AreEqual((Ev3SensorDevice.INPORT) 3, Brick.SensorDevice(3).ConnectedPort);
            Assert.AreEqual(-32768, Brick.SensorDevice(3).Value2);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_GYRO,
                            Brick.SensorDevice(3).DeviceType);
        }
예제 #28
0
        public void BrickUpdater_0E_00_Update_Test_003()
        {
            var Command = new Command_0E_00();

            Command.ResData    = new byte[8];
            Command.ResData[4] = 0x07;
            Command.ResData[5] = 0x05;
            Command.ResData[6] = 0x06;
            Command.ResData[7] = 0xFF;

            var Updater = new BrickUpdater_0E_00();
            var Brick   = Ev3Brick.GetInstance();

            Updater.Update(Command, Brick);

            Assert.AreEqual(Ev3Device.INPORT.INPORT_1, Brick.SensorDevice(0).ConnectedPort);
            Assert.AreEqual(Ev3Device.INPORT.INPORT_2, Brick.SensorDevice(1).ConnectedPort);
            Assert.AreEqual(Ev3Device.INPORT.INPORT_3, Brick.SensorDevice(2).ConnectedPort);
            Assert.AreEqual(Ev3Device.INPORT.INPORT_4, Brick.SensorDevice(3).ConnectedPort);
            Assert.AreEqual(Ev3SensorDevice.DEVICE_TYPE.SENSOR_DEVICE_UNKNOWN,
                            Brick.SensorDevice(0).DeviceType);
            Assert.IsFalse(Brick.SensorDevice(0).IsConnected);
        }
        public void Ev3PortViewModel_DataSendAndReceivedFinishedCallback_Test_012()
        {
            var Command = new Command_40_00();

            Command.ResData    = new byte[7];
            Command.ResData[0] = Command.Res;
            Command.ResData[1] = Command.SubRes;
            Command.ResData[2] = 0x00;
            Command.ResData[3] = 0x03;
            Command.ResData[4] = 0x01;
            Command.ResData[5] = 0x03;
            Command.ResData[6] = 0x01;

            var Args = new NotifySendReceiveDataEventArgs(Command);

            this.TestVM.DataSendAndReceivedFinishedCallback(this, Args);

            Assert.IsFalse(Ev3Brick.GetInstance().SensorDevice(0).IsConnected);
            Assert.IsFalse(Ev3Brick.GetInstance().SensorDevice(1).IsConnected);
            Assert.IsFalse(Ev3Brick.GetInstance().SensorDevice(2).IsConnected);
            Assert.IsTrue(Ev3Brick.GetInstance().SensorDevice(3).IsConnected);
            Assert.AreEqual(0x01, Ev3Brick.GetInstance().SensorDevice(3).Value1);
        }
        /// <summary>
        /// Handle data sending and response receiving event.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public virtual void DataSendAndReceivedFinishedCallback(object sender, EventArgs e)
        {
            if (e is NotifySendReceiveDataEventArgs)
            {
                try
                {
                    var Args = e as NotifySendReceiveDataEventArgs;
                    Console.WriteLine(@"Snd:" + Ev3Utility.Buff2String(Args.SendData));
                    Console.WriteLine(@"Rcv:" + Ev3Utility.Buff2String(Args.RecvData));

                    var Command = Args.Command;
                    var Updater = BrickUpdater.Factory(Command);
                    Updater.Update(Command, Ev3Brick.GetInstance());
                }
                catch (NullReferenceException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }