12#ifndef TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
13#define TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
30#include "uhal/DerivedNode.hpp"
85 uint32_t coarse_delay,
88 bool measure_rtt =
false,
89 bool control_sfp =
true)
const = 0;
101 uint32_t number_of_commands = 1)
const = 0;
106 virtual void enable_periodic_fl_cmd(uint32_t channel,
double rate,
bool poisson, uint32_t clock_frequency_hz)
const;
111 virtual void enable_periodic_fl_cmd(uint32_t command, uint32_t channel,
double rate,
bool poisson, uint32_t clock_frequency_hz)
const;
Base class for timing IO nodes.
virtual void apply_endpoint_delay(uint32_t address, uint32_t coarse_delay, uint32_t fine_delay, uint32_t phase_delay, bool measure_rtt=false, bool control_sfp=true) const =0
Apply delay to endpoint.
virtual uint32_t get_required_patch_firmware_version() const =0
Required patch firmware version.
virtual void set_timestamp(TimestampSource source) const =0
Set the timestamp.
virtual void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
Configure fake trigger generator.
virtual uint32_t get_required_minor_firmware_version() const =0
Required minor firmware version.
virtual uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true) const =0
Measure the endpoint round trip time.
virtual timingfirmware::EndpointCheckResult scan_endpoint(uint16_t endpoint_address, bool control_sfp) const =0
Scan endpoint.
virtual uint64_t read_timestamp() const =0
Read the current timestamp word.
virtual void disable_periodic_fl_cmd(uint32_t channel) const
Clear fake trigger configuration.
virtual void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const =0
Give info to collector.
virtual void switch_endpoint_sfp(uint32_t address, bool turn_on) const =0
Control the tx line of endpoint sfp.
virtual void enable_upstream_endpoint() const =0
Enable RTT endpoint.
MasterNodeInterface(const uhal::Node &node)
virtual void send_fl_cmd(uint32_t command, uint32_t channel, uint32_t number_of_commands=1) const =0
Send a fixed length command.
virtual uint32_t get_required_major_firmware_version() const =0
Required major firmware version.
virtual ~MasterNodeInterface()
virtual void sync_timestamp(TimestampSource source) const =0
Set timestamp, enable transmission.
Base class for timing nodes.