// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "service-cellular/CellularMessage.hpp" #include "service-cellular/CellularServiceAPI.hpp" #include "service-cellular/ServiceCellular.hpp" #include #include #include #include #include #include #include #include #include #include #include #include /** * ServiceCellular helper for handling Urc messages */ class CellularUrcHandler : public at::urc::UrcHandler { public: explicit CellularUrcHandler(ServiceCellular &cellularService) : cellularService(cellularService) {} void Handle(at::urc::Clip &urc) final; void Handle(at::urc::Creg &urc) final; void Handle(at::urc::Cmti &urc) final; void Handle(at::urc::Cusd &urc) final; void Handle(at::urc::Ctze &urc) final; void Handle(at::urc::Qind &urc) final; void Handle(at::urc::Cpin &urc) final; void Handle(at::urc::Qiurc &urc) final; void Handle(at::urc::Ring &urc) final; void Handle(at::urc::PoweredDown &urc) final; void Handle(at::urc::UrcResponse &urc) final; void Handle(at::urc::QSimstat &urc) final; /** * Gets the response that should be returned after handling Urc * @return */ std::optional> getResponse() { return std::move(response); }; private: ServiceCellular &cellularService; std::optional> response; };