mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-20 15:07:17 -04:00
When tethering is on, info appears in the status bar and network coverage indicates "no connection"
104 lines
2.5 KiB
C++
104 lines
2.5 KiB
C++
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#include "EventStore.hpp"
|
|
#include <log/log.hpp>
|
|
#include <memory>
|
|
#include <mutex.hpp>
|
|
|
|
namespace Store
|
|
{
|
|
// if it grows bigger than these few variables - consider moving it to ram with i.e.
|
|
// delayed construction singletone
|
|
Battery battery;
|
|
bool Battery::updated = true;
|
|
|
|
const Battery &Battery::get()
|
|
{
|
|
return battery;
|
|
}
|
|
|
|
Battery &Battery::modify()
|
|
{
|
|
Battery::setUpdated();
|
|
return battery;
|
|
}
|
|
|
|
void Battery::setUpdated()
|
|
{
|
|
battery.updated = true;
|
|
}
|
|
|
|
bool Battery::takeUpdated()
|
|
{
|
|
if (battery.updated) {
|
|
battery.updated = false;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
cpp_freertos::MutexStandard GSM::mutex;
|
|
|
|
GSM *GSM::get()
|
|
{
|
|
static auto ptr = new GSM();
|
|
return ptr;
|
|
}
|
|
|
|
void GSM::setSignalStrength(const SignalStrength &signalStrength)
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
LOG_INFO("Setting signal strength to rssi = %d dBm (%d) : %d bars",
|
|
signalStrength.rssidBm,
|
|
signalStrength.rssi,
|
|
static_cast<int>(signalStrength.rssiBar));
|
|
|
|
this->signalStrength = signalStrength;
|
|
}
|
|
|
|
SignalStrength GSM::getSignalStrength() const
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
return signalStrength;
|
|
}
|
|
|
|
void GSM::setNetwork(const Network &network)
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
this->network = network;
|
|
}
|
|
|
|
Network GSM::getNetwork() const
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
return network;
|
|
}
|
|
|
|
bool GSM::simCardInserted()
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
return (sim == SIM::SIM1 || sim == SIM::SIM2);
|
|
}
|
|
void GSM::setNetworkOperatorName(const std::string &newNetworkOperatorName)
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
networkOperatorName = newNetworkOperatorName;
|
|
}
|
|
std::string GSM::getNetworkOperatorName() const
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
return networkOperatorName;
|
|
}
|
|
void GSM::setTethering(const Tethering &tethering)
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
this->tethering = tethering;
|
|
}
|
|
Tethering GSM::getTethering() const
|
|
{
|
|
cpp_freertos::LockGuard lock(mutex);
|
|
return tethering;
|
|
}
|
|
}; // namespace Store
|