1#ifndef FSW_BOARD_CLOCK_SYNC_HPP
2#define FSW_BOARD_CLOCK_SYNC_HPP
75 std::vector<uint64_t>
stamp_packet(
const std::string& board_key, uint64_t arrival_ns,
76 const std::vector<uint32_t>& chunk_ms);
91 std::vector<std::string>
boards()
const;
101 std::deque<std::pair<uint64_t, int64_t>>
window;
BoardClockSync(const TimeSyncConfig &cfg)
std::vector< uint64_t > stamp_packet(const std::string &board_key, uint64_t arrival_ns, const std::vector< uint32_t > &chunk_ms)
Stamp one packet's chunks for one board.
BoardClockSync(const TimeSyncConfig &cfg)
void resync(BoardState &s, uint32_t newest_raw_ms, uint64_t arrival_ns, bool count)
std::vector< std::string > boards() const
All boards seen (for periodic diagnostics logging).
BoardStats stats(const std::string &board_key) const
Stats for one board (default-constructed if unknown).
std::map< std::string, BoardState > boards_
size_type count(const key_type &key) const
Motorized ball valve position: raw ADC counts -> % open.
std::deque< std::pair< uint64_t, int64_t > > window
uint64_t last_unwrapped_ms
uint32_t max_plausible_gap_s
uint32_t resync_threshold_ms