lacteApp
C++17 service for Lacte hardware
Loading...
Searching...
No Matches
BoardModel.h File Reference

BoardModel - связь с самой платой lacte, и больше ничего: проводной протокол (m_host_proto), цикл опроса, который его читает (Worker()/UpdateParams()), прошивка firmware и единственный параметр, доступный для записи на плату (aeration). More...

#include <algorithm>
#include <array>
#include <atomic>
#include <cstdint>
#include <functional>
#include <memory>
#include <mutex>
#include <optional>
#include <string>
#include <thread>
#include <tuple>
#include "AppRuntime.hpp"
#include "ILogger.hpp"
#include "protocols/lacte/LacteProtocol.hpp"
Include dependency graph for BoardModel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  detail::BoardReadingOf< std::tuple< Fields... > >
class  BoardModel

Namespaces

namespace  detail

Typedefs

using BoardData = typename detail::BoardReadingOf<RuntimeFields>::type

Variables

constexpr auto K_WORKER_POLL_INTERVAL = 333ms
constexpr auto K_MODEL_BOARD_PROTO_THROTTLE_DELAY
constexpr std::chrono::milliseconds K_MODEL_DEFAULT_ONLINE_TIMEOUT {3000}
constexpr auto K_MODEL_PARAM_RETRY_DELAY = std::chrono::milliseconds(10)
constexpr int K_MODEL_PARAM_RETRY_COUNT = 5

Detailed Description

BoardModel - связь с самой платой lacte, и больше ничего: проводной протокол (m_host_proto), цикл опроса, который его читает (Worker()/UpdateParams()), прошивка firmware и единственный параметр, доступный для записи на плату (aeration).

Никакого знания о шине/UI вообще (ни ModelBusHandler, ни шинных клиентов, ни отображения на wire-снапшот) - теперь этот слой живёт в LacteApp (см. собственную реализацию ModelBusHandler в LacteApp.hpp и BuildSnapshot()/ GetRfidData()).

BoardModel также ничего не знает об insitech::runtime::Runtime

  • никогда не хранит, не читает и не пишет такой объект. Каждый цикл опроса просто сообщает прочитанное как обычное значение BoardData через OnUpdate() (см. собственный doc-комментарий): плата обновила своё состояние, вернула новое состояние, и решать, что означает "обновить runtime, получить из этого diff/событие", целиком дело того, кто зарегистрировал callback (LacteApp) - см. собственный алиас LacteRuntime в LacteApp.hpp и конструктор в LacteApp.cpp для этой связки.

Definition in file BoardModel.h.

Typedef Documentation

◆ BoardData

Definition at line 69 of file BoardModel.h.

Variable Documentation

◆ K_MODEL_BOARD_PROTO_THROTTLE_DELAY

auto K_MODEL_BOARD_PROTO_THROTTLE_DELAY
inlineconstexpr
Initial value:
=
std::chrono::milliseconds(100)

Definition at line 88 of file BoardModel.h.

◆ K_MODEL_DEFAULT_ONLINE_TIMEOUT

std::chrono::milliseconds K_MODEL_DEFAULT_ONLINE_TIMEOUT {3000}
inlineconstexpr

Definition at line 93 of file BoardModel.h.

◆ K_MODEL_PARAM_RETRY_COUNT

int K_MODEL_PARAM_RETRY_COUNT = 5
inlineconstexpr

Definition at line 99 of file BoardModel.h.

◆ K_MODEL_PARAM_RETRY_DELAY

auto K_MODEL_PARAM_RETRY_DELAY = std::chrono::milliseconds(10)
inlineconstexpr

Definition at line 98 of file BoardModel.h.

◆ K_WORKER_POLL_INTERVAL

auto K_WORKER_POLL_INTERVAL = 333ms
inlineconstexpr

Definition at line 83 of file BoardModel.h.