Files
MuditaOS/module-services/service-cellular/handler/RawATHandler.cpp
Marcin Smoczyński 958ce4906c [BH-897] Split module-sys
Split system module to better manage dependencies between system
components.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-21 16:11:59 +02:00

25 lines
1002 B
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "RawATHandler.hpp"
#include <modem/ATCommon.hpp>
#include <Service/Message.hpp>
#include <service-desktop/DeveloperModeMessage.hpp>
#include <endpoints/developerMode/event/ATRequest.hpp>
namespace cellular
{
RawATHandler::RawATHandler(at::Channel &channel) : channel(channel)
{}
auto RawATHandler::handle(sdesktop::developerMode::DeveloperModeRequest *request) -> sys::MessagePointer
{
auto event = dynamic_cast<sdesktop::developerMode::ATResponseEvent *>(request->event.get());
assert(event);
auto ret = channel.cmd(event->getCommand(), event->getTimeout());
event->setResponse(ret.response);
return std::make_shared<sdesktop::developerMode::DeveloperModeRequest>(
std::make_unique<sdesktop::developerMode::ATResponseEvent>(*event));
} // namespace cellular
} // namespace cellular