lacteApp
C++17 service for Lacte hardware
Loading...
Searching...
No Matches
OfflineBufferSimulator.hpp File Reference

Тестовый (не протокольный) симулятор RAM-буфера платы lacte для сценариев .graphite/tests.yaml, группа lacte/offline (LACTE-MT-OFFLINE-*). More...

#include <cstdint>
#include "protocols/lacte/VirtualBoard.hpp"
Include dependency graph for OfflineBufferSimulator.hpp:

Go to the source code of this file.

Classes

class  lacte::testing::OfflineBufferSimulator

Namespaces

namespace  lacte
namespace  lacte::testing

Detailed Description

Тестовый (не протокольный) симулятор RAM-буфера платы lacte для сценариев .graphite/tests.yaml, группа lacte/offline (LACTE-MT-OFFLINE-*).

НЕ является частью protolib и не меняет сам провод (InfoPacketType/RFIDDataPacketType) - у него нет ни dirty-флага, ни состояния FSM (ONLINE_NO_TAG/ OFFLINE_TAG_PRESENT/OFFLINE_TAG_LOST_BUFFER_VALID), ни числа писков; это внутреннее поведение прошивки платы, км_lacte его никогда не видит и не пишет обратно (единственный параметр, доступный для записи на плату - aeration, см. BoardModel.h).

Этот класс моделирует СПЕЦИФИКАЦИЮ буфера (как она описана в манульных тестах TestIT) поверх реального VirtualBoard, паяя её только на ТЕ поля, что действительно есть на проводе и которые км_lacte реально читает: UID метки (RFIDNumberType), количество порций (MilkCounter) и накопленный объём в мл (TimeCounter - несмотря на имя, именно это поле, а не ProductVolume, растёт на объём напитка при каждом приготовлении, см. RfidDataTypes.hpp). Значит, тесты поверх этого класса проверяют, что км_lacte КОРРЕКТНО ЧИТАЕТ итоговое содержимое буфера, который ЭТОТ симулятор ему предоставляет - НЕ то, что настоящая прошивка платы правильно реализует саму FSM. dirty() ниже - величина только этого симулятора (нет отражения в проводе), используется тестом только для того, чтобы проверить логику самого симулятора (соответствие сценарию манульного теста), а не что-либо на стороне км_lacte.

Definition in file OfflineBufferSimulator.hpp.