Files
MuditaOS/module-services/service-cellular/api/CellularServiceAPI.cpp
kkleczkowski 9811b7a044 Egd 2404 db modem (#137)
* [EGD-2404] Handling incoming SMS.

* [EGD-2404-db-modem] WiP onf db handling.

* [EGD-2404-db-modem] service-db notification + SmsDB::Add.

* WiP handling service-db notification in service-cellular.

* WiP on cellular<->db.

* Fix in usc2, handlig incoming message.

* Code cleanup pt 1.

* Improvements in service-csllular.

* Fixed compilation error on target, small cleanup.

* Small claenup.

* Fixes after rebase.

* Fixed incoming sms date parsing on target.

* Fix after rebase.

* PR suggestions added.

* dynamic_cast + nullptr check.
2020-01-21 10:49:18 +01:00

62 lines
2.0 KiB
C++

/*
* @file CellularServiceAPI.cpp
* @author Mateusz Piesta (mateusz.piesta@mudita.com)
* @date 09.07.19
* @brief
* @copyright Copyright (C) 2019 mudita.com
* @details
*/
#include "CellularServiceAPI.hpp"
#include "Service/Bus.hpp"
#include "../ServiceCellular.hpp"
#include "utf8/UTF8.hpp"
bool CellularServiceAPI::DialNumber(sys::Service* serv,const std::string& number) {
std::shared_ptr<CellularRequestMessage> msg = std::make_shared<CellularRequestMessage>(MessageType::CellularDialNumber);
msg->data = number;
auto ret = sys::Bus::SendUnicast(msg,ServiceCellular::serviceName,serv,5000);
CellularResponseMessage* response = reinterpret_cast<CellularResponseMessage*>(ret.second.get());
if((ret.first == sys::ReturnCodes::Success) && (response->retCode == true)){
return true;
}
else{
LOG_ERROR("Failed");
return false;
}
}
bool CellularServiceAPI::AnswerIncomingCall(sys::Service* serv) {
std::shared_ptr<CellularRequestMessage> msg = std::make_shared<CellularRequestMessage>(MessageType::CellularAnswerIncomingCall);
auto ret = sys::Bus::SendUnicast(msg,ServiceCellular::serviceName,serv,5000);
CellularResponseMessage* response = reinterpret_cast<CellularResponseMessage*>(ret.second.get());
if((ret.first == sys::ReturnCodes::Success) && (response->retCode == true)){
return true;
}
else{
LOG_ERROR("Failed");
return false;
}
}
bool CellularServiceAPI::HangupCall(sys::Service* serv){
std::shared_ptr<CellularRequestMessage> msg = std::make_shared<CellularRequestMessage>(MessageType::CellularHangupCall);
auto ret = sys::Bus::SendUnicast(msg,ServiceCellular::serviceName,serv,5000);
CellularResponseMessage* response = reinterpret_cast<CellularResponseMessage*>(ret.second.get());
if((ret.first == sys::ReturnCodes::Success) && (response->retCode == true)){
return true;
}
else{
LOG_ERROR("Failed");
return false;
}
}