signalWithHistory Helper

template<typename T, size_t HistorySize, size_t MaxDeps = 8, typename Filter = std::not_equal_to<T>>
Signal<T, MaxDeps, Filter, HistorySize> RxESP32::Helpers::Utility::signalWithHistory(const T &initial_value = T(), const typename Signal<T, MaxDeps, Filter, HistorySize>::Options &options = {})

Create a Signal with history tracking enabled.

Factory function that creates a Signal with a compile-time specified history buffer size. Equivalent to constructing Signal<T, MaxDeps, Filter, HistorySize> but provides clearer intent.

Since

v0.1.0

auto s = signalWithHistory<int, 5>(0); // Track last 5 values
s.set(10);
s.set(20);
s.set(30);

int prev = s.getPrevious(1); // Returns 20 (1 step back)

Note

  • Requires RXESP32_ENABLE_SIGNAL_HISTORY to be enabled.

  • Access history via signal.getPrevious(), signal.getHistory(n), etc.

Template Parameters:
typename T

Value type stored in the Signal.

size_t HistorySize

Size of the circular history buffer.

size_t MaxDeps = 8

Maximum number of dependents.

typename Filter = std::not_equal_to<T>

Change detection filter.

Parameters:
const T &initial_value = T()

Initial value for the Signal.

const typename Signal<T, MaxDeps, Filter, HistorySize>::Options &options = {}

Optional Signal configuration.

Returns:

Signal with history tracking enabled.

See Also