public RearTorqueMessage(byte[] payload)
        {
            payload.RequireBytes(RequireBytes);

            RearTorque = new NewtonMeter((payload[5] + ((payload[6] & 0x1F) << 8) - 512 * (payload[6] & 0x10)) * 0.25m);
            WattPedal  = new Percent(payload[3] * 0.4m);
        }
            public void TorqueAndEnergy()
            {
                Assert.AreEqual(Joule.Sense, NewtonMeter.Sense, "Joule and NewtonMeter dimension are different");
                Assert.AreNotEqual(Joule.Family, NewtonMeter.Family, "Joule and NewtonMeter families are the same");

                Meter  distance = (Meter)10.0;
                Newton force    = (Newton)100.0;

                Joule energy = force * distance;

                Assert.AreEqual((Joule)1000.0, energy, "Energy calculation failed");

                NewtonMeter torque = force ^ distance;

                Assert.AreEqual((NewtonMeter)1000.0, torque, "Torque calculation failed");

                Meter distanceFromEnergy = energy / force;
                Meter distanceFromTorque = torque / force;

                Assert.AreEqual(distanceFromEnergy, distanceFromTorque, "Distances from Energy and Torque are different");

                Newton forceFromEnergy = energy / distance;
                Newton forceFromTorque = torque / distance;

                Assert.AreEqual(forceFromEnergy, forceFromTorque, "Forces from Energy and Torque are different");

                Assert.AreEqual(1, Catalog.Units <double>(Joule.Family).Count(), "Selection by Family failed");
                Assert.AreEqual(2, Catalog.Units <double>(Joule.Sense).Count(), "Selection by Dimension failed");
            }
示例#3
0
        public FrontTorqueMessage(byte[] payload)
        {
            payload.RequireBytes(RequireBytes);

            FrontTorqueRequest = new NewtonMeter(BitArrayConverter.ToInt16(payload, 12, 13) * 2m);
            FrontTorque        = new NewtonMeter(BitArrayConverter.ToInt16(payload, 27, 13) * 2m);
            FrontAxleRpm       = new RevolutionsPerMinute(BitArrayConverter.ToInt16(payload, 40, 16) * 0.1m);
        }
示例#4
0
        public FrontTorqueMessage(byte[] payload)
        {
            payload.RequireBytes(7);

            FrontTorque = new NewtonMeter((payload[5] + ((payload[6] & 0x1F) << 8) - 512 * (payload[6] & 0x10)) * 0.25m);
        }