mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-19 06:30:46 -04:00
57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
// Copyright (c) 2017-2024, 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/ServiceCellular.hpp"
|
|
|
|
#include <module-cellular/at/UrcClip.hpp>
|
|
#include <module-cellular/at/UrcCmti.hpp>
|
|
#include <module-cellular/at/UrcCreg.hpp>
|
|
#include <module-cellular/at/UrcCtze.hpp>
|
|
#include <module-cellular/at/UrcCusd.hpp>
|
|
#include <module-cellular/at/UrcCpin.hpp>
|
|
#include <module-cellular/at/UrcPoweredDown.hpp>
|
|
#include <module-cellular/at/UrcQind.hpp>
|
|
#include <module-cellular/at/UrcResponse.hpp>
|
|
#include <module-cellular/at/UrcQiurc.hpp>
|
|
#include <module-cellular/at/UrcRing.hpp>
|
|
#include <module-cellular/at/UrcQSimstat.hpp>
|
|
|
|
/**
|
|
* 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<std::shared_ptr<sys::Message>> getResponse()
|
|
{
|
|
return std::move(response);
|
|
};
|
|
|
|
private:
|
|
ServiceCellular &cellularService;
|
|
std::optional<std::unique_ptr<sys::Message>> response;
|
|
};
|