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"); }
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); }
public FrontTorqueMessage(byte[] payload) { payload.RequireBytes(7); FrontTorque = new NewtonMeter((payload[5] + ((payload[6] & 0x1F) << 8) - 512 * (payload[6] & 0x10)) * 0.25m); }