Skip to main content
Version: 1.0.14

ecdev::CiA401IoProfile

CiA 401 (CANopen generic I/O) profile. More...

#include <cia401_io_profile.hpp>

Inherits from ecdev::GenericIoProfile, ecdev::IDeviceProfile, ecdev::IIoProfile, IDeviceLifecycle

Public Functions

Name
virtual const char *profileName() const override
Stable identifier for diagnostics (e.g.

Additional inherited members

Public Functions inherited from ecdev::GenericIoProfile

Name
virtual voidwriteOutputs(ProcessImage & image, std::uint64_t cycle_count) override
virtual voidsetDigitalOutput(std::size_t channel, bool value) override
Command a digital output channel; out-of-range is a no-op.
virtual voidsetAnalogOutput(std::size_t channel, std::int32_t value) override
Command an analog output channel (raw counts); out-of-range is a no-op.
virtual voidresolveTopology(const ProcessImage & image) override
Resolve the static channel/PDO topology from the ENI-derived process image.
virtual voidreadInputs(const ProcessImage & image, bool wkc_valid, bool operational) override
virtual std::size_tdigitalOutputCount() const override
virtual booldigitalOutput(std::size_t ch) const override
virtual std::size_tdigitalInputCount() const override
virtual booldigitalInput(std::size_t channel) const override
Read a digital input/output channel; out-of-range returns false.
virtual std::stringconfigurePreOp(ISlaveServices & svc, ProcessImage & image) override
virtual IIoProfile *asIo() override
virtual std::size_tanalogOutputCount() const override
virtual std::int32_tanalogOutput(std::size_t ch) const override
virtual std::size_tanalogInputCount() const override
virtual std::int32_tanalogInput(std::size_t channel) const override
Read an analog input/output channel (raw counts); out-of-range returns 0.

Public Attributes inherited from ecdev::GenericIoProfile

Name
constexpr std::size_tkMaxDigital
constexpr std::size_tkMaxAnalog

Public Functions inherited from ecdev::IDeviceProfile

Name
~IDeviceProfile() override =default
virtual voidwriteOutputs(ProcessImage & image, std::uint64_t cycle_count)
virtual voidresolveTopology(const ProcessImage & image)
Resolve the static channel/PDO topology from the ENI-derived process image.
virtual voidreadInputs(const ProcessImage & image, bool wkc_valid, bool operational)
virtual voidprimeOutputs(ProcessImage & image)
virtual std::stringprepareSafeOp(ISlaveServices & svc, ProcessImage & image)
virtual std::stringconfigurePreOp(ISlaveServices & svc, ProcessImage & image)
virtual voidcaptureExitDiagnostics(ISlaveServices & svc)
End-of-run, after the RT thread has joined; safe to do SDO reads via svc.
virtual IMotionProfile *asMotion()
virtual IIoProfile *asIo()
virtual IEncoderProfile *asEncoder()

Public Functions inherited from ecdev::IIoProfile

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::CiA401IoProfile;

CiA 401 (CANopen generic I/O) profile.

A dedicated profile for genuine CoE CiA401 devices, selected ahead of [GenericIoProfile](/lxmaster/api/classes/GenericIoProfile) for slaves that expose the CiA401 standard object ranges over a CoE mailbox. The channel model is inherited from [GenericIoProfile](/lxmaster/api/classes/GenericIoProfile); this class is the seam where CiA401-specific setup (configuration objects, input filters, interrupt masks) would be added. Non-CoE / vendor I/O terminals fall through to [GenericIoProfile](/lxmaster/api/classes/GenericIoProfile) instead.

Public Functions Documentation

function profileName

inline virtual const char * profileName() const override

Stable identifier for diagnostics (e.g.

Reimplements: ecdev::IDeviceProfile::profileName

"CiA402-drive").


Updated on 2026-07-04 at 23:28:44 +0000