Skip to main content
Version: 1.1.1

ecdev::IIoProfile

Facade-facing contract for a digital/analog I/O device (CiA 401 family). More...

#include <io_profile.hpp>

Inherited by ecdev::GenericIoProfile

Public Functions

Name
virtual~IIoProfile() =default
virtual voidsetDigitalOutput(std::size_t channel, bool value) =0
Command a digital output channel; out-of-range is a no-op.
virtual voidsetAnalogOutput(std::size_t channel, std::int32_t value) =0
Command an analog output channel (raw counts); out-of-range is a no-op.
virtual std::size_tdigitalOutputCount() const =0
virtual booldigitalOutput(std::size_t channel) const =0
virtual std::size_tdigitalInputCount() const =0
virtual booldigitalInput(std::size_t channel) const =0
Read a digital input/output channel; out-of-range returns false.
virtual std::size_tanalogOutputCount() const =0
virtual std::int32_tanalogOutput(std::size_t channel) const =0
virtual std::size_tanalogInputCount() const =0
virtual std::int32_tanalogInput(std::size_t channel) const =0
Read an analog input/output channel (raw counts); out-of-range returns 0.

Detailed Description

class ecdev::IIoProfile;

Facade-facing contract for a digital/analog I/O device (CiA 401 family).

The IoModule facade depends only on this – never on PDO offsets, CoE objects, or the backend. Channels are numbered from 0 in process-image order. All methods are safe to call from an application thread while the RT cycle runs (backed by lock-free state).

Public Functions Documentation

function ~IIoProfile

virtual ~IIoProfile() =default

function setDigitalOutput

virtual void setDigitalOutput(
std::size_t channel,
bool value
) =0

Command a digital output channel; out-of-range is a no-op.

Reimplemented by: ecdev::GenericIoProfile::setDigitalOutput

function setAnalogOutput

virtual void setAnalogOutput(
std::size_t channel,
std::int32_t value
) =0

Command an analog output channel (raw counts); out-of-range is a no-op.

Reimplemented by: ecdev::GenericIoProfile::setAnalogOutput

function digitalOutputCount

virtual std::size_t digitalOutputCount() const =0

Reimplemented by: ecdev::GenericIoProfile::digitalOutputCount

function digitalOutput

virtual bool digitalOutput(
std::size_t channel
) const =0

Reimplemented by: ecdev::GenericIoProfile::digitalOutput

function digitalInputCount

virtual std::size_t digitalInputCount() const =0

Reimplemented by: ecdev::GenericIoProfile::digitalInputCount

function digitalInput

virtual bool digitalInput(
std::size_t channel
) const =0

Read a digital input/output channel; out-of-range returns false.

Reimplemented by: ecdev::GenericIoProfile::digitalInput

function analogOutputCount

virtual std::size_t analogOutputCount() const =0

Reimplemented by: ecdev::GenericIoProfile::analogOutputCount

function analogOutput

virtual std::int32_t analogOutput(
std::size_t channel
) const =0

Reimplemented by: ecdev::GenericIoProfile::analogOutput

function analogInputCount

virtual std::size_t analogInputCount() const =0

Reimplemented by: ecdev::GenericIoProfile::analogInputCount

function analogInput

virtual std::int32_t analogInput(
std::size_t channel
) const =0

Read an analog input/output channel (raw counts); out-of-range returns 0.

Reimplemented by: ecdev::GenericIoProfile::analogInput


Updated on 2026-07-13 at 20:44:41 +0000