Управляем питанием по-взрослому: конечный автомат для устройств с батарейным питанием. В embedded-проектах с батарейным питанием управление энергопотреблением часто сводят к нескольким вызовам sleep() и проверке кнопки включения. Пока устройство простое — этого хватает. Но как только появляется аккумулятор, зарядка, дисплей, кнопка питания и требования к пользовательскому поведению, такой подход начинает разваливаться. Типичные ситуации, с которыми сталкиваются на практике: ● устройство выключено, но подключили зарядку — что должно происходить? ● зарядка идёт, пользователь нажал к...