Exemplo n.º 1
0
    def get_current_batteries_info(batteries: list):
        result = {}
        if not threading.current_thread() is threading.main_thread():
            pythoncom.CoInitialize()
        try:
            w = WMI(namespace='WMI')
            for details in w.BatteryStatus():
                for battery in batteries:
                    result[battery] = None
                    if battery == details.InstanceName:
                        result[battery] = {
                            'Active': details.Active,
                            'ChargeRate': details.ChargeRate,
                            'Charging': details.Charging,
                            'Discharging': details.Discharging,
                            'DischargeRate': details.DischargeRate,
                            'PowerOnline': details.PowerOnline,
                            'Voltage': details.Voltage,
                            'RemainingCapacity': details.RemainingCapacity

                        }
            return result
        except Exception as e:
            print(e)
            return None
        finally:
            if not threading.current_thread() is threading.main_thread():
                pythoncom.CoUninitialize()
Exemplo n.º 2
0
    def get_batteries_info():
        batteries = []
        if not threading.current_thread() is threading.main_thread():
            pythoncom.CoInitialize()
        try:
            w = WMI(namespace='WMI')
            for battery in w.BatteryStaticData(
                    ["Active", "DeviceName", "DesignedCapacity", "ManufactureName", "SerialNumber", "InstanceName"]):
                batt = {"DeviceName": battery.DeviceName,
                        "ManufactureName": battery.ManufactureName,
                        "SerialNumber": battery.SerialNumber,
                        "DesignedCapacity": battery.DesignedCapacity,
                        "InstanceName": battery.InstanceName}
                for capacity in w.BatteryFullChargedCapacity():
                    if batt['InstanceName'] == capacity.InstanceName:
                        batt['FullChargedCapacity'] = capacity.FullChargedCapacity
                for cycle_count in w.BatteryCycleCount():
                    if batt['InstanceName'] == cycle_count.InstanceName:
                        batt['CycleCount'] = cycle_count.CycleCount
                for details in w.BatteryStatus():
                    if batt['InstanceName'] == details.InstanceName:
                        batt['Status'] = {
                            'Active': details.Active,
                            'ChargeRate': details.ChargeRate,
                            'Charging': details.Charging,
                            'Discharging': details.Discharging,
                            'DischargeRate': details.DischargeRate,
                            'PowerOnline': details.PowerOnline,
                            'Voltage': details.Voltage,
                            'RemainingCapacity': details.RemainingCapacity

                        }
                batteries.append(batt)
            return batteries
        except Exception as e:
            print(e)
            return None
        finally:
            if not threading.current_thread() is threading.main_thread():
                pythoncom.CoUninitialize()