peary::interface::Endpoint

Communication interface endpoint. More…

#include <peary/interfaces/Endpoint.hpp>

Public Types

Name
using RegisterType reg_t
using DataType data_t
using std::pair< RegisterType, DataType > pair_t
using std::vector< DataType > vector_t

Public Functions

Name
Endpoint(const Endpoint & ) =delete
Endpoint & operator=(const Endpoint & ) =delete
Endpoint(Endpoint && ) =delete
Endpoint & operator=(Endpoint && ) =delete
std::string info() constReturn human-readable endpoint information.
data_t write(const data_t & value)Write a single data word to a device which does not contain internal registers.
vector_t write(const vector_t & values)Write multiple data words to a device which does not contain internal registers.
pair_t write(const pair_t & regData)Write a single data word to a device containing internal registers.
vector_t write(const reg_t & reg, const vector_t & values)Write multiple data words to a specific register of a device containing internal registers.
std::vector< pair_t > write(const std::vector< pair_t > & regDataVec)Write multiple data words to multiple registers of a device containing internal registers.
data_t read()Read a single data word from a device which does not contain internal registers.
vector_t read(unsigned int count)Read multiple data words from a device which does not contain internal registers.
vector_t read(const reg_t & reg, unsigned int count)Read a single data word from a specific register of a device containing internal registers.

Protected Functions

Name
Endpoint(const std::string & info)
virtual ~Endpoint() =default
virtual data_t write_impl(const data_t & )
virtual vector_t write_impl(const vector_t & )
virtual pair_t write_impl(const pair_t & )
virtual vector_t write_impl(const reg_t & , const vector_t & )
virtual std::vector< pair_t > write_impl(const std::vector< pair_t > & )
virtual data_t read_impl()
virtual vector_t read_impl(const unsigned int )
virtual vector_t read_impl(const reg_t & , const unsigned int )

Detailed Description

  template <typename InterfaceTag ,
typename RegisterType ,
typename DataType >
class peary::interface::Endpoint;
  

Communication interface endpoint.

Template Parameters:

  • InterfaceTag Tag for the type of communication interface, used for locking
  • RegisterType Type for register addresses
  • DataType Type for register values

This class represents an endpoint of communication in Peary. It implements a locking mechanism on an interface- type basis, meaning there can only be one communication per type of interface going on simultaneously.

Public Types Documentation

using reg_t

  using peary::interface::Endpoint< InterfaceTag, RegisterType, DataType >::reg_t =  RegisterType;
  

using data_t

  using peary::interface::Endpoint< InterfaceTag, RegisterType, DataType >::data_t =  DataType;
  

using pair_t

  using peary::interface::Endpoint< InterfaceTag, RegisterType, DataType >::pair_t =  std::pair<RegisterType, DataType>;
  

using vector_t

  using peary::interface::Endpoint< InterfaceTag, RegisterType, DataType >::vector_t =  std::vector<DataType>;
  

Public Functions Documentation

function Endpoint

  Endpoint(
    const Endpoint & 
) =delete
  

function operator=

  Endpoint & operator=(
    const Endpoint & 
) =delete
  

function Endpoint

  Endpoint(
    Endpoint && 
) =delete
  

function operator=

  Endpoint & operator=(
    Endpoint && 
) =delete
  

function info

  inline std::string info() const
  

Return human-readable endpoint information.

Return: Endpoint information as string

function write

  inline data_t write(
    const data_t & value
)
  

Write a single data word to a device which does not contain internal registers.

Return: The data word read back from the device (if applicable)

function write

  inline vector_t write(
    const vector_t & values
)
  

Write multiple data words to a device which does not contain internal registers.

Return: A vector containing the data words read back from the device (if applicable)

function write

  inline pair_t write(
    const pair_t & regData
)
  

Write a single data word to a device containing internal registers.

Return: A pair containing the register address and the data word read back from the device (if applicable)

function write

  inline vector_t write(
    const reg_t & reg,
    const vector_t & values
)
  

Write multiple data words to a specific register of a device containing internal registers.

Return: A vector containing the data words read back from the device (if applicable)

function write

  inline std::vector< pair_t > write(
    const std::vector< pair_t > & regDataVec
)
  

Write multiple data words to multiple registers of a device containing internal registers.

Return: A vector of pairs, each containing a register address and the corresponding data word read back from the device (if applicable)

function read

  inline data_t read()
  

Read a single data word from a device which does not contain internal registers.

Return: The data word read from the device

function read

  inline vector_t read(
    unsigned int count
)
  

Read multiple data words from a device which does not contain internal registers.

Return: A vector containing the data words read from the device

function read

  inline vector_t read(
    const reg_t & reg,
    unsigned int count
)
  

Read a single data word from a specific register of a device containing internal registers.

Return: A vector containing the data words read from the specified register

Protected Functions Documentation

function Endpoint

  inline Endpoint(
    const std::string & info
)
  

function ~Endpoint

  virtual ~Endpoint() =default
  

function write_impl

  inline virtual data_t write_impl(
    const data_t & 
)
  

Reimplemented by: peary::interface::I2CEndpoint::write_impl, peary::interface::IPSocketEndpoint::write_impl, peary::interface::LoopbackEndpoint::write_impl

function write_impl

  inline virtual vector_t write_impl(
    const vector_t & 
)
  

Reimplemented by: peary::interface::LoopbackEndpoint::write_impl

function write_impl

  inline virtual pair_t write_impl(
    const pair_t & 
)
  

Reimplemented by: peary::interface::AXI4LiteEndpoint::write_impl, peary::interface::SerialMemoryEndpoint::write_impl, peary::interface::I2CEndpoint::write_impl, peary::interface::LoopbackEndpoint::write_impl

function write_impl

  inline virtual vector_t write_impl(
    const reg_t & ,
    const vector_t & 
)
  

Reimplemented by: peary::interface::I2CEndpoint::write_impl, peary::interface::LoopbackEndpoint::write_impl

function write_impl

  inline virtual std::vector< pair_t > write_impl(
    const std::vector< pair_t > & 
)
  

Reimplemented by: peary::interface::LoopbackEndpoint::write_impl

function read_impl

  inline virtual data_t read_impl()
  

function read_impl

  inline virtual vector_t read_impl(
    const unsigned int 
)
  

Reimplemented by: peary::interface::I2CEndpoint::read_impl, peary::interface::LoopbackEndpoint::read_impl

function read_impl

  inline virtual vector_t read_impl(
    const reg_t & ,
    const unsigned int 
)
  

Reimplemented by: peary::interface::AXI4LiteEndpoint::read_impl, peary::interface::SerialMemoryEndpoint::read_impl, peary::interface::IPSocketEndpoint::read_impl, peary::interface::I2CEndpoint::read_impl, peary::interface::LoopbackEndpoint::read_impl


Updated on 2026-01-30 at 22:01:05 +0100