Firmware
0.9.0
Toggle main menu visibility
Loading...
Searching...
No Matches
loco.hpp
Go to the documentation of this file.
1
// Copyright (C) 2025 Vincent Hamp
2
//
3
// This program is free software: you can redistribute it and/or modify
4
// it under the terms of the GNU General Public License as published by
5
// the Free Software Foundation, either version 3 of the License, or
6
// (at your option) any later version.
7
//
8
// This program is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
// GNU General Public License for more details.
12
//
13
// You should have received a copy of the GNU General Public License
14
// along with this program. If not, see <https://www.gnu.org/licenses/>.
15
16
#pragma once
17
18
#include <ArduinoJson.h>
19
#include <dcc/dcc.hpp>
20
#include <optional>
21
#include <type_traits>
22
#include <z21/z21.hpp>
23
#include <ztl/string.hpp>
24
25
namespace
mw::dcc
{
26
27
using namespace
::dcc;
28
namespace
z21 = ::z21;
29
31
struct
NvLocoBase
: z21::LocoInfo, z21::LocoEntry {
32
constexpr
NvLocoBase
() =
default
;
33
explicit
NvLocoBase
(JsonVariantConst src);
34
35
void
fromJson
(JsonVariantConst src);
36
JsonDocument
toJson
()
const
;
37
};
38
40
struct
Loco
:
NvLocoBase
{
41
constexpr
Loco
() =
default
;
42
explicit
Loco
(JsonVariantConst src);
43
44
void
fromJson
(JsonVariantConst src);
45
JsonDocument
toJson
()
const
;
46
47
uint64_t
priority
{};
48
z21::RailComData
bidi
{};
49
};
50
51
}
// namespace mw::dcc
mw::dcc
Definition
config.hpp:576
mw::dcc::Loco::toJson
JsonDocument toJson() const
Definition
loco.cpp:75
mw::dcc::Loco::bidi
z21::RailComData bidi
Definition
loco.hpp:48
mw::dcc::Loco::Loco
constexpr Loco()=default
mw::dcc::Loco::fromJson
void fromJson(JsonVariantConst src)
Definition
loco.cpp:49
mw::dcc::Loco::priority
uint64_t priority
Definition
loco.hpp:47
mw::dcc::NvLocoBase::fromJson
void fromJson(JsonVariantConst src)
Definition
loco.cpp:25
mw::dcc::NvLocoBase::toJson
JsonDocument toJson() const
Definition
loco.cpp:37
mw::dcc::NvLocoBase::NvLocoBase
constexpr NvLocoBase()=default
src
mw
dcc
loco.hpp
Firmware 0.9.0