Class AbstractPowerSource

java.lang.Object
oshi.hardware.common.AbstractPowerSource
All Implemented Interfaces:
PowerSource
Direct Known Subclasses:
AixPowerSource, FreeBsdPowerSource, LinuxPowerSource, MacPowerSource, OpenBsdPowerSource, SolarisPowerSource, WindowsPowerSource

@ThreadSafe public abstract class AbstractPowerSource extends Object implements PowerSource
A Power Source
  • Constructor Details

    • AbstractPowerSource

      protected AbstractPowerSource(String name, String deviceName, double remainingCapacityPercent, double timeRemainingEstimated, double timeRemainingInstant, double powerUsageRate, double voltage, double amperage, boolean powerOnLine, boolean charging, boolean discharging, PowerSource.CapacityUnits capacityUnits, int currentCapacity, int maxCapacity, int designCapacity, int cycleCount, String chemistry, LocalDate manufactureDate, String manufacturer, String serialNumber, double temperature)
  • Method Details

    • getName

      public String getName()
      Description copied from interface: PowerSource
      Name of the power source at the Operating System level.
      Specified by:
      getName in interface PowerSource
      Returns:
      The power source name, as reported by the operating system.
    • getDeviceName

      public String getDeviceName()
      Description copied from interface: PowerSource
      Name of the power source at the device level.
      Specified by:
      getDeviceName in interface PowerSource
      Returns:
      The power source name, as reported by the device itself.
    • getRemainingCapacityPercent

      public double getRemainingCapacityPercent()
      Description copied from interface: PowerSource
      Estimated remaining capacity as a fraction of max capacity.

      This is an estimated/smoothed value which should correspond to the Operating System's "percent power" display, and may not directly correspond to the ratio of PowerSource.getCurrentCapacity() to PowerSource.getMaxCapacity().

      Specified by:
      getRemainingCapacityPercent in interface PowerSource
      Returns:
      A value between 0.0 (fully drained) and 1.0 (fully charged)
    • getTimeRemainingEstimated

      public double getTimeRemainingEstimated()
      Description copied from interface: PowerSource
      Estimated time remaining on the power source, in seconds, as reported by the operating system.

      This is an estimated/smoothed value which should correspond to the Operating System's "battery time remaining" display, and will react slowly to changes in power consumption.

      Specified by:
      getTimeRemainingEstimated in interface PowerSource
      Returns:
      If positive, seconds remaining. If negative, -1.0 (calculating) or -2.0 (unlimited)
    • getTimeRemainingInstant

      public double getTimeRemainingInstant()
      Description copied from interface: PowerSource
      Estimated time remaining on the power source, in seconds, as reported by the battery. If the battery is charging, this value may represent time remaining to fully charge the battery.

      Note that this value is not very accurate on some battery systems. The value may vary widely depending on present power usage, which could be affected by disk activity and other factors. This value will often be a higher value than PowerSource.getTimeRemainingEstimated().

      Specified by:
      getTimeRemainingInstant in interface PowerSource
      Returns:
      Seconds remaining to fully discharge or fully charge the battery.
    • getPowerUsageRate

      public double getPowerUsageRate()
      Description copied from interface: PowerSource
      Power Usage Rate of the battery, in milliWatts (mW).
      Specified by:
      getPowerUsageRate in interface PowerSource
      Returns:
      If positive, the charge rate. If negative, the discharge rate.
    • getVoltage

      public double getVoltage()
      Description copied from interface: PowerSource
      Voltage of the battery, in Volts.
      Specified by:
      getVoltage in interface PowerSource
      Returns:
      the battery voltage, or -1 if unknown.
    • getAmperage

      public double getAmperage()
      Description copied from interface: PowerSource
      Amperage of the battery, in milliAmperes (mA).
      Specified by:
      getAmperage in interface PowerSource
      Returns:
      the battery amperage. If positive, charging the battery. If negative, discharging the battery.
    • isPowerOnLine

      public boolean isPowerOnLine()
      Description copied from interface: PowerSource
      Reports whether the device is plugged in to an external power source.
      Specified by:
      isPowerOnLine in interface PowerSource
      Returns:
      true if plugged in, false otherwise.
    • isCharging

      public boolean isCharging()
      Description copied from interface: PowerSource
      Reports whether the battery is charging.
      Specified by:
      isCharging in interface PowerSource
      Returns:
      true if the battery is charging, false otherwise.
    • isDischarging

      public boolean isDischarging()
      Description copied from interface: PowerSource
      Reports whether the battery is discharging.
      Specified by:
      isDischarging in interface PowerSource
      Returns:
      true if the battery is discharging, false otherwise.
    • getCapacityUnits

      public PowerSource.CapacityUnits getCapacityUnits()
      Description copied from interface: PowerSource
      Specified by:
      getCapacityUnits in interface PowerSource
      Returns:
      The units of battery capacity.
    • getCurrentCapacity

      public int getCurrentCapacity()
      Description copied from interface: PowerSource
      The current (remaining) capacity of the battery.
      Specified by:
      getCurrentCapacity in interface PowerSource
      Returns:
      The current capacity. Units are defined by PowerSource.getCapacityUnits().
    • getMaxCapacity

      public int getMaxCapacity()
      Description copied from interface: PowerSource
      The maximum capacity of the battery. When compared to design capacity, permits a measure of battery state of health. It is possible for max capacity to exceed design capacity.
      Specified by:
      getMaxCapacity in interface PowerSource
      Returns:
      The maximum capacity. Units are defined by PowerSource.getCapacityUnits().
    • getDesignCapacity

      public int getDesignCapacity()
      Description copied from interface: PowerSource
      The design (original) capacity of the battery. When compared to maximum capacity, permits a measure of battery state of health. It is possible for max capacity to exceed design capacity.
      Specified by:
      getDesignCapacity in interface PowerSource
      Returns:
      The design capacity. Units are defined by PowerSource.getCapacityUnits().
    • getCycleCount

      public int getCycleCount()
      Description copied from interface: PowerSource
      The cycle count of the battery, if known.
      Specified by:
      getCycleCount in interface PowerSource
      Returns:
      The cycle count of the battery, or -1 if unknown.
    • getChemistry

      public String getChemistry()
      Description copied from interface: PowerSource
      The battery chemistry (e.g., Lithium Ion).
      Specified by:
      getChemistry in interface PowerSource
      Returns:
      the battery chemistry.
    • getManufactureDate

      public LocalDate getManufactureDate()
      Description copied from interface: PowerSource
      The battery's date of manufacture.

      Some battery manufacturers encode the manufacture date in the serial number. Parsing this value is operating system and battery manufacturer dependent, and is left to the user.

      Specified by:
      getManufactureDate in interface PowerSource
      Returns:
      the manufacture date, if available. May be null.
    • getManufacturer

      public String getManufacturer()
      Description copied from interface: PowerSource
      The name of the battery's manufacturer.
      Specified by:
      getManufacturer in interface PowerSource
      Returns:
      the manufacturer name.
    • getSerialNumber

      public String getSerialNumber()
      Description copied from interface: PowerSource
      The battery's serial number.

      Some battery manufacturers encode the manufacture date in the serial number. Parsing this value is operating system and battery manufacturer dependent, and is left to the user.

      Specified by:
      getSerialNumber in interface PowerSource
      Returns:
      the serial number.
    • getTemperature

      public double getTemperature()
      Description copied from interface: PowerSource
      The battery's temperature, in degrees Celsius.
      Specified by:
      getTemperature in interface PowerSource
      Returns:
      the battery's temperature, or 0 if uknown.
    • updateAttributes

      public boolean updateAttributes()
      Description copied from interface: PowerSource
      Updates statistics on this battery.
      Specified by:
      updateAttributes in interface PowerSource
      Returns:
      true if the update was successful. If false the battery statistics are unchanged.
    • toString

      public String toString()
      Overrides:
      toString in class Object