
// ===================================================================
// Battery
// ===================================================================
   [Description (
       "Capabilities and management of the Battery LogicalDevice. "
       "This class applies to both batteries in Laptop Systems and "
       "other internal/external batteries, such as used in, "
       "or as UPSs.")
   ] 
class CIM_Battery : CIM_LogicalDevice 
{
      [Description (
	  "Description of the Battery's charge status. Values such "
	  "as \"Fully Charged\" (value=3) or \"Partially Charged\" "
	  "(11) can be specified. The value, 10, is "
	  "not valid in the CIM Schema since in DMI it represents "
	  "that no battery is installed. In this case, this object "
	  "should not be instantiated."),
	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
	       "11"},
       Values {"Other", "Unknown", "Fully Charged",  
	       "Low", "Critical", "Charging", "Charging and High", 
	       "Charging and Low", "Charging and Critical", "Undefined", 
	       "Partially Charged"},
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   uint16 BatteryStatus;
      [Description (
	  "TimeOnBattery indicates the elapsed time in seconds "
	  "since the ComputerSystem, UPS, ... last switched to "
	  "battery power, or the time since the System or UPS "
	  "was last restarted, whichever is less. Zero shall "
	  "be returned if the Battery is 'on line'."), 
       Units ("Seconds")
      ]
   uint32 TimeOnBattery;
      [Description (
	  "EstimatedRunTime is an estimate in minutes of the "
	  "time to battery charge depletion under the present "
	  "load conditions if the utility power is off, or lost "
	  "and remains off, or a Laptop is disconnected from a "
	  "power source."),
       Units ("Minutes"),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   uint32 EstimatedRunTime;
      [Gauge, Description (
	  "An estimate of the percentage of full charge remaining."),
       Units ("Percent")
      ]	
   uint16 EstimatedChargeRemaining;
      [Description (
	  "An enumeration that describes the Battery's chemistry."),
	 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
       Values {"Other", "Unknown", "Lead Acid", "Nickel Cadmium", 
	       "Nickel Metal Hydride", "Lithium-ion", "Zinc air", 
	       "Lithium Polymer"},
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   uint16 Chemistry;
      [Description (
	  "The design capacity of the battery in mWatt-hours. "
	  "If this property is not supported, enter 0."),
       Units ("MilliWattHours"),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]	 
   uint32 DesignCapacity;
      [Description (
	  "The full charge capacity of the battery in mWatt-hours. "
	  "Comparison of this value to the Battery DesignCapacity "
	  "determines when the Battery requires replacement.  A "
	  "Battery's end of life is typically when the FullCharge"
	  "Capacity falls below 80% of the DesignCapacity. "
	  "If this property is not supported, enter 0."),
       Units ("MilliWattHours"),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   uint32 FullChargeCapacity;
      [Description (
	  "The design voltage of the battery in mVolts. If "
	  "this attribute is not supported, enter 0."),
       Units ("MilliVolts"),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]	  
   uint64 DesignVoltage;
      [MaxLen (64), Description (
	  "The Smart Battery Data Specification version number "
	  "supported by this Battery. If the Battery does not "
 	  "support this function, the value should be left blank."),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   string SmartBatteryVersion;
      [Description (
	  "The remaining time to charge the battery fully in minutes "
	  "at the current charging rate and usage."),
       Units ("Minutes"),
       MappingStrings {"MIF.DMTF|Portable Battery|003"}
      ]
   uint32 TimeToFullCharge;
	[Description (
	  "Indicates the Battery's expected lifetime in minutes, " 
	  "assuming that the Battery is fully charged. This property "
	  "represents the total expected life of the Battery, not its "
	  "current remaining life, which is indicated by the "
	  "EstimatedRunTime property. "), 
	 Units ("Minutes")
	]
   uint32 ExpectedLife;
	[Description (
	  "MaxRechargeTime indicates the maximum time, in minutes, " 
	  "to fully charge the Battery. This property represents the "
	  "time to recharge a fully depleted Battery, not the current "
	  "remaining charging time, which is indicated in the "
	  "TimeToFullCharge property. "), 
	 Units ("Minutes")
	]
   uint32 MaxRechargeTime;	
};

