~aleteoryx/muditaos

3811b1a88d283d9620b12c66f70478523ce89e9f — Maciej Gibowicz 3 years ago 2f42cd5
[MOS-371] Fix USB worker initialization

When we start the system without the USB cable connected,
worker USB is initialized, which increases
the power consumption.
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +13 -9
@@ 224,12 224,7 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
        return btMsgHandler->handle(msgl);
    });
    connect(sevm::BatteryStatusChangeMessage(), [&](sys::Message *) {
        if (Store::Battery::get().state == Store::Battery::State::Discharging) {
            usbWorkerDeinit();
        }
        else {
            usbWorkerInit();
        }
        checkChargingCondition();
        return sys::MessageNone{};
    });



@@ 255,9 250,8 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
        return sys::MessageNone{};
    });

    if (auto resUsb = usbWorkerInit(); resUsb != sys::ReturnCodes::Success) {
        return resUsb;
    }
    // initial check
    checkChargingCondition();

    return (sys::ReturnCodes::Success);
}


@@ 372,3 366,13 @@ void ServiceDesktop::restartConnectionActiveTimer()
{
    connectionActiveTimer.restart(sdesktop::connectionActiveTimerDelayMs);
}

void ServiceDesktop::checkChargingCondition()
{
    if (Store::Battery::get().state == Store::Battery::State::Discharging) {
        usbWorkerDeinit();
    }
    else {
        usbWorkerInit();
    }
}

M module-services/service-desktop/include/service-desktop/ServiceDesktop.hpp => module-services/service-desktop/include/service-desktop/ServiceDesktop.hpp +1 -0
@@ 101,6 101,7 @@ class ServiceDesktop : public sys::Service
    OutboxNotifications outboxNotifications;
    sys::TimerHandle connectionActiveTimer;
    void restartConnectionActiveTimer();
    void checkChargingCondition();

    static constexpr unsigned int DefaultLogFlushTimeoutInMs = 1000U;
    bool initialized                                         = false;