REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
net_settings.h
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3//
4// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5
6#pragma once
7
8#include "net/auth.h"
9#include "net/ethernet.h"
10#include "nvmconfig/persistent.h"
11#include "protocol/handler.h"
12
13namespace msg {
14
15namespace handlers {
16
18class GetNetworkSettingsHandler : public MessageHandler {
19public:
20 utils::status replyWithObject(const Request& req, JsonObject &msg_out) override {
21 nvmconfig::PersistentSettingsWriter::get().toJson(msg_out, nvmconfig::Context::User);
22 return utils::status::success();
23 }
24};
25
27class SetNetworkSettingsHandler : public MessageHandler {
28public:
29 utils::status replyWithObject(const Request& req, JsonObject &msg_out) override {
30 nvmconfig::PersistentSettingsWriter::get().fromJson(req.msg_in, nvmconfig::Context::User);
31
32 if (!req.msg_in.containsKey("no_write"))
33 nvmconfig::PersistentSettingsWriter::get().write_to_eeprom();
34
35 // Since ArduinoJSON has no good methods of finding whether data
36 // deserialization worked correctly, return the new values to the
37 // client so he can check by himself.
38 return GetNetworkSettingsHandler().replyWithObject(/*is ignored*/ req, msg_out);
39 }
40};
41
43class NetworkStatusHandler : public MessageHandler {
44public:
45 utils::status replyWithObject(const Request& req, JsonObject &msg_out) override {
46 net::status(msg_out);
47 return utils::status::success();
48 }
49};
50
52class ResetNetworkSettingsHandler : public MessageHandler {
53public:
54 utils::status replyWithObject(const Request& req, JsonObject &msg_out) override {
55 // TODO: Must also reset all other config classes!
56 // Probably better reset all nvmconfig info or so.
57 net::StartupConfig::get().reset_defaults();
58 return utils::status::success();
59 }
60};
61
62} // namespace handlers
63
64} // namespace msg
utils::status replyWithObject(const Request &req, JsonObject &msg_out) override
utils::status replyWithObject(const Request &req, JsonObject &msg_out) override
utils::status replyWithObject(const Request &req, JsonObject &msg_out) override
utils::status replyWithObject(const Request &req, JsonObject &msg_out) override
Definition carrier.h:10