Как мне оптимизировать мой код на Python, который читает Battery Staus - PullRequest
3 голосов
/ 16 июня 2019

В основном я пытался создать скрипт Py, который работает в фоновом режиме, чтобы уведомить пользователя, когда подключить зарядное устройство, а когда отключить.

проблема, с которой я сталкиваюсь, связана с производительностью, скрипт использует больше процессорного времени (возможно, потому что я использовал цикл while)

Скажите, есть ли лучший способ справиться с таким сценарием.

Я уже пробовал использовать время сна, но это не сработало.

class Battery_code:

    def __init__(self, c_var):
        self.c_var = c_var

    def mbox(self, title, text, style):
        return Custom.windll.user32.MessageBoxW(0, text, title, style)



    while 1:
        battery = Reader.sensors_battery()
        plugged = battery.power_plugged
        percent = str(battery.percent)
        if plugged is False and int(percent) in range(40, 80, 1) and c_var == 0:
            speak.Speak("Charger is Disconnected Now")
            c_var += 1
            time.sleep(2)
        if plugged is True and int(percent) in range(40, 80, 1) and c_var == 0:
            speak.Speak("Charger is Connected Now")
            c_var += 1
            time.sleep(2)
        if plugged is True and int(percent) > 80:
            mbox('',
                 'Battery is at [' + percent + '%] and Still Plugged Please Unplug ', 0)
            speak.Speak("Please Unplug the charger to increase battery life")
            c_var = 0
        if plugged is False and int(percent) < 40:
            mbox('',
                 'Battery is at [' + percent + '%] Please Connect Charger  ', 0)
            speak.Speak("Please Connect charger to increase battery life")
            c_var = 0
    time.sleep(3)

1 Ответ

0 голосов
/ 16 июня 2019

используйте «battery.secsleft», чтобы выяснить, сколько времени осталось пользователю.

Затем, используя простую математику, вы сможете выяснить, когда подать сигнал тревоги и поспать до тех пор.Конечно, это может варьироваться в зависимости от использования, поэтому вы можете использовать некоторое дополнительное заполнение для времени.

Кроме того, в случаях: если подключено True и int (процент)> 80: а подключено False и int(проценты) <40: </p>

вы забыли использовать сон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...