internal BatteryStatus(BatteryStatusResult batteryStatusResult) { Capacity = batteryStatusResult.BatteryCapacity; Remaining = batteryStatusResult.BatteryDegradation; RemainingPercent = (int)Math.Round((double)batteryStatusResult.BatteryDegradation / batteryStatusResult.BatteryCapacity * 100, MidpointRounding.AwayFromZero); EstimatedRangeKm = (int)Math.Round(batteryStatusResult.CruisingRangeAcOn / 1000D, MidpointRounding.AwayFromZero); TimeToFullCharge = TimeRequiredModel.ToTimeSpan(batteryStatusResult.TimeRequiredToFull); TimeToFullCharge3KW = TimeRequiredModel.ToTimeSpan(batteryStatusResult.TimeRequiredToFull200); TimeToFullCharge6KW = TimeRequiredModel.ToTimeSpan(batteryStatusResult.TimeRequiredToFull6kW); if (batteryStatusResult.PluginState == PluginState.NotConnected) { ChargingStatus = ChargingStatus.NotConnected; } else if (batteryStatusResult.ChargeMode == ChargeMode.NotCharging) { ChargingStatus = ChargingStatus.Connected; } else if (batteryStatusResult.ChargeMode == ChargeMode.Wall220v) { ChargingStatus = ChargingStatus.Charging; } else if (batteryStatusResult.ChargeMode == ChargeMode.RapidCharging) { ChargingStatus = ChargingStatus.RapidCharging; } UpdatedAt = batteryStatusResult.TimeStamp.ToLocalTime(); }
/// <summary> /// Gets the battery level for the INS /// </summary> /// <param name="theSummit">Summit System</param> /// <param name="_log">Caliburn Micro Logger</param> /// <returns>String that tells the battery status of the INS</returns> public string GetINSBatteryLevel(ref SummitSystem theSummit, ILog _log) { BatteryStatusResult outputBuffer = null; APIReturnInfo commandInfo = new APIReturnInfo(); //Return Not Connected if summit is null if (theSummit == null) { return(INSBatteryLevel); } try { commandInfo = theSummit.ReadBatteryLevel(out outputBuffer); } catch (Exception e) { _log.Error(e); } // Ensure the command was successful before using the result try { //Check if command was successful if (commandInfo.RejectCode == 0) { // Retrieve the battery level from the output buffer if (outputBuffer != null) { INSBatteryLevel = outputBuffer.BatteryLevelPercent.ToString(); } } else { INSBatteryLevel = ""; } } catch (Exception e) { INSBatteryLevel = ""; _log.Error(e); } //Return either battery level, empty string or Not Connected return(INSBatteryLevel); }