// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include #include #include #include #include namespace sys { SystemManager::SystemManager(std::vector> &&creators) : SystemManagerCommon(std::move(creators)) {} auto SystemManager::InitHandler() -> ReturnCodes { SystemManagerCommon::InitHandler(); connect(typeid(AlarmActivationStatusChangeRequest), [this](sys::Message *message) -> sys::MessagePointer { auto request = static_cast(message); return handleAlarmActivationStatusChangeRequest(request); }); return ReturnCodes::Success; } auto SystemManager::handleAlarmActivationStatusChangeRequest(AlarmActivationStatusChangeRequest *request) -> MessagePointer { switch (request->getStatus()) { case AlarmActivationStatus::ACTIVATED: bus.sendMulticast(std::make_shared(), sys::BusChannel::AlarmNotifications); break; case AlarmActivationStatus::DEACTIVATED: bus.sendMulticast(std::make_shared(), sys::BusChannel::AlarmNotifications); break; } return MessageNone{}; } void SystemManager::handleShutdown() { set(State::ShutdownReady); } } // namespace sys