// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #pragma once #include "Urc.hpp" #include namespace at::urc { class Ctze : public Urc { enum Tokens { GMTDifference, DaylightSavingsAdjustment, Date, Time }; public: static constexpr std::string_view head = "+CTZE"; static auto isURC(const std::string &uHead) -> bool { return uHead.find(Ctze::head) != std::string::npos; } using Urc::Urc; constexpr static int maxTimezoneOffset = 56; constexpr static int minTimezoneOffset = -48; [[nodiscard]] auto isValid() const noexcept -> bool override; [[nodiscard]] auto getTimeInfo() const noexcept -> tm; [[nodiscard]] auto getTimeZoneOffset() const -> int; [[nodiscard]] auto getTimeZoneString() const -> std::string; [[nodiscard]] auto getGMTTime() const -> const struct tm; void Handle(UrcHandler &h) final { h.Handle(*this); } }; } // namespace at::urc