Class AbstractPowerSource

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

@ThreadSafe
public abstract class AbstractPowerSource
extends java.lang.Object
implements PowerSource
A Power Source
  • Nested Class Summary

    Nested classes/interfaces inherited from interface oshi.hardware.PowerSource

    PowerSource.CapacityUnits
  • Constructor Summary

    Constructors 
    Constructor Description
    AbstractPowerSource​(java.lang.String name, java.lang.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, java.lang.String chemistry, java.time.LocalDate manufactureDate, java.lang.String manufacturer, java.lang.String serialNumber, double temperature)  
  • Method Summary

    Modifier and Type Method Description
    double getAmperage()
    Amperage of the battery, in milliAmperes (mA).
    PowerSource.CapacityUnits getCapacityUnits()
    java.lang.String getChemistry()
    The battery chemistry (e.g., Lithium Ion).
    int getCurrentCapacity()
    The current (remaining) capacity of the battery.
    int getCycleCount()
    The cycle count of the battery, if known.
    int getDesignCapacity()
    The design (original) capacity of the battery.
    java.lang.String getDeviceName()
    Name of the power source at the device level.
    java.time.LocalDate getManufactureDate()
    The battery's date of manufacture.
    java.lang.String getManufacturer()
    The name of the battery's manufacturer.
    int getMaxCapacity()
    The maximum capacity of the battery.
    java.lang.String getName()
    Name of the power source at the Operating System level.
    double getPowerUsageRate()
    Power Usage Rate of the battery, in milliWatts (mW).
    double getRemainingCapacity()
    Estimated remaining capacity as a fraction of max capacity.
    double getRemainingCapacityPercent()
    Estimated remaining capacity as a fraction of max capacity.
    java.lang.String getSerialNumber()
    The battery's serial number.
    double getTemperature()
    The battery's temperature, in degrees Celsius.
    double getTimeRemaining()
    Estimated time remaining on the power source, in seconds, as reported by the operating system.
    double getTimeRemainingEstimated()
    Estimated time remaining on the power source, in seconds, as reported by the operating system.
    double getTimeRemainingInstant()
    Estimated time remaining on the power source, in seconds, as reported by the battery.
    double getVoltage()
    Voltage of the battery, in Volts.
    boolean isCharging()
    Reports whether the battery is charging.
    boolean isDischarging()
    Reports whether the battery is discharging.
    boolean isPowerOnLine()
    Reports whether the device is plugged in to an external power source.
    java.lang.String toString()  
    boolean updateAttributes()
    Updates statistics on this battery.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AbstractPowerSource

      public AbstractPowerSource​(java.lang.String name, java.lang.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, java.lang.String chemistry, java.time.LocalDate manufactureDate, java.lang.String manufacturer, java.lang.String serialNumber, double temperature)
  • Method Details

    • getName

      public java.lang.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 java.lang.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.
    • getRemainingCapacity

      public double getRemainingCapacity()
      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:
      getRemainingCapacity in interface PowerSource
      Returns:
      A value between 0.0 (fully drained) and 1.0 (fully charged)
    • 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)
    • getTimeRemaining

      public double getTimeRemaining()
      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:
      getTimeRemaining in interface PowerSource
      Returns:
      If positive, seconds remaining. If negative, -1.0 (calculating) or -2.0 (unlimited)
    • 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 java.lang.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 java.time.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 java.lang.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 java.lang.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 java.lang.String toString()
      Overrides:
      toString in class java.lang.Object