// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #include "EventStore.hpp" #include #include #include namespace Store { // if it grows bigger than these few variables - consider moving it to ram with i.e. // delayed construction singleton 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; } Usb usb; const Usb &Usb::get() { return usb; } Usb &Usb::modify() { return usb; } cpp_freertos::MutexStandard GSM::mutex; GSM *GSM::get() { static auto ptr = new GSM(); return ptr; } void GSM::setSignalStrength(const SignalStrength &newSignalStrength) { cpp_freertos::LockGuard lock(mutex); LOG_INFO("Setting signal strength to rssi = %d dBm (%d) : %d bars", newSignalStrength.rssidBm, newSignalStrength.rssi, static_cast(newSignalStrength.rssiBar)); signalStrength = newSignalStrength; } SignalStrength GSM::getSignalStrength() const { cpp_freertos::LockGuard lock(mutex); return signalStrength; } void GSM::setNetwork(const Network &newNetwork) { cpp_freertos::LockGuard lock(mutex); network = newNetwork; } 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 &newTethering) { cpp_freertos::LockGuard lock(mutex); tethering = newTethering; } Tethering GSM::getTethering() const { cpp_freertos::LockGuard lock(mutex); return tethering; } }; // namespace Store