public CoolantFlowMessage(byte[] payload) { payload.RequireBytes(RequireBytes); BatteryCoolantFlowRate = new LitersPerMinute(BitArrayConverter.ToUInt16(payload, 0, 9) * 0.1m); PowerTrainCoolantFlowRate = new LitersPerMinute(BitArrayConverter.ToUInt16(payload, 22, 9) * 0.1m); }
public ChargeDischargeMessage(byte[] payload) { payload.RequireBytes(RequireBytes); TotalDischarge = new KiloWattHour(BitArrayConverter.ToUInt32(payload, 0, 32) * 0.001m); TotalCharge = new KiloWattHour(BitArrayConverter.ToUInt32(payload, 32, 32) * 0.001m); }
public SpeedMessage(byte[] payload) { payload.RequireBytes(RequireBytes); SignedSpeed = new KilometerPerHour(BitArrayConverter.ToUInt16(payload, 12, 12) * 0.08m - 40m); UISpeed = new KilometerPerHour(BitArrayConverter.ToUInt16(payload, 24, 8)); }
public PowerLimitsMessage(byte[] payload) { payload.RequireBytes(RequireBytes); RegenPowerLimit = new KiloWatt(BitArrayConverter.ToUInt16(payload, 0, 16) * 0.01m); DischargePowerLimit = new KiloWatt(BitArrayConverter.ToUInt16(payload, 16, 16) * 0.01m); }
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 FastChargeLimitsMessage(byte[] payload) { payload.RequireBytes(RequireBytes); FastChargePowerLimit = new KiloWatt(Math.Round(BitArrayConverter.ToUInt16(payload, 0, 13) * 0.06226m, 4)); FastChargeCurrentLimit = new Ampere(Math.Round(BitArrayConverter.ToUInt16(payload, 16, 13) * 0.073242m, 2)); FastChargeMaxVoltage = new Volt(Math.Round(BitArrayConverter.ToUInt16(payload, 32, 13) * 0.073242m, 2)); FastChargeMinVoltage = new Volt(Math.Round(BitArrayConverter.ToUInt16(payload, 48, 13) * 0.073242m, 2)); }
public StateOfChargeMessage(byte[] payload) { payload.RequireBytes(RequireBytes); StateOfChargeUI = new Percent(BitArrayConverter.ToUInt16(payload, 0, 10) * 0.1m); StateOfChargeMin = new Percent(BitArrayConverter.ToUInt16(payload, 10, 10) * 0.1m); StateOfChargeMax = new Percent(BitArrayConverter.ToUInt16(payload, 20, 10) * 0.1m); StateOfChargeAvg = new Percent(BitArrayConverter.ToUInt16(payload, 30, 10) * 0.1m); }
public TemperatureMessage(byte[] payload) { payload.RequireBytes(RequireBytes); CoolantTempBatteryInlet = new Celsius(BitArrayConverter.ToUInt16(payload, 0, 10) * 0.125m - 40m); CoolantTempPowerTrainInlet = new Celsius(BitArrayConverter.ToUInt16(payload, 10, 10) * 0.125m - 40m); AmbientTempRaw = new Celsius(BitArrayConverter.ToUInt16(payload, 24, 8) * 0.5m - 40m); AmbientTempFiltered = new Celsius(BitArrayConverter.ToUInt16(payload, 40, 8) * 0.5m - 40m); }
public BatteryPowerMessage(byte[] payload) { payload.RequireBytes(RequireBytes); BatteryVoltage = new Volt(BitArrayConverter.ToUInt16(payload, 0, 16) / 100.0m); BatteryCurrentSmooth = new Ampere(BitArrayConverter.ToInt16(payload, 16, 15) * -0.01m); BatteryCurrentRaw = new Ampere(BitArrayConverter.ToInt16(payload, 32, 16) * -0.05m + 500m); ChargeTimeRemaining = TimeSpan.FromMinutes(BitArrayConverter.ToUInt16(payload, 48, 12)); }
public BatteryCapacityMessage(byte[] payload) { payload.RequireBytes(RequireBytes); FullBatteryCapacity = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 0, 10) * 0.1m); RemainingBatteryCapacity = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 10, 10) * 0.1m); ExpectedRemainingCapacity = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 20, 10) * 0.1m); IdealRemaining = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 30, 10) * 0.1m); ToCompleteCharge = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 40, 10) * 0.1m); EnergyBuffer = new KiloWattHour(BitArrayConverter.ToUInt16(payload, 50, 10) * 0.1m); }
public BatteryInfoMessage(byte[] payload) { payload.RequireBytes(RequireBytes); BmsNumberOfContactors = BitArrayConverter.ToUInt16(payload, 8, 3); BmsState = BitArrayConverter.ToUInt16(payload, 11, 4); IsolationResistance = new KiloOhm(BitArrayConverter.ToInt16(payload, 19, 10)); BmsChargeStatus = BitArrayConverter.ToUInt16(payload, 32, 3); BmsChargePowerAvailable = new KiloWatt(BitArrayConverter.ToUInt16(payload, 38, 11) * 0.125m); MinBatteryTemperature = new Celsius(BitArrayConverter.ToUInt16(payload, 56, 8) * 0.5m - 40m); }
public void ToUInt32_BitConverter() { // Arrange var array = BitConverter.GetBytes(1234567890); // Act var result = BitArrayConverter.ToUInt32(array, 0, 32); // Assert result.Should().Be(1234567890); }
public void ToUInt16_BitConverter() { // Arrange var array = BitConverter.GetBytes(12345); // Act var result = BitArrayConverter.ToUInt16(array, 0, 16); // Assert result.Should().Be(12345); }