Skip to content

CanKit.Pro.CANopen Namespace

Classes
CanOpen Factory entry point for opening ICanOpenNode instances. Non-instantiable.
CanOpenCobId CiA 301 pre-defined connection set: helpers that translate CANopen node identifiers into the 11-bit COB-IDs used for NMT, SYNC, EMCY, PDO, SDO and heartbeat traffic.
CanOpenNodeOptions Runtime configuration for a CanOpenNode. All values are captured at construction time and treated as immutable for the node's lifetime; use With(Nullable<TimeSpan>, Nullable<TimeSpan>, Nullable<TimeSpan>, Nullable<int>, Nullable<int>, Nullable<int>, Nullable<byte>, Nullable<bool>, Nullable<int>, Nullable<bool>, Nullable<bool>) to derive a modified template for tests.
CanOpenTransportException Raised when a CANopen frame could not be handed off to the bus (L2 rejection, bus-off, or TX confirmation timeout). Surfaces through the node's BackgroundExceptionOccurred event rather than any single caller — the CANopen wire protocols (SYNC / heartbeat / PDO / EMCY) are fire-and-forget from an application caller's perspective, so there is no single request task to fail. Derives from CanKitException so L2/L3/L4 failures can be caught uniformly across the library (NFR-006 error architecture, arc42 ADR-12).
EmcyReceivedEventArgs Argument type for the EmcyReceived event: a decoded incoming EMCY frame.
HeartbeatReceivedEventArgs Argument type for the HeartbeatReceived event: a valid CANopen heartbeat with the reported State from the producer's NMT slave state machine.
HeartbeatTimeoutEventArgs Argument type for the HeartbeatTimeout event: the local heartbeat consumer for ProducerNodeId did not observe a heartbeat within the configured timeout.
NmtCommandReceivedEventArgs Argument type for the NmtCommandReceived event: a decoded incoming NMT master command.
NodeGuardingReceivedEventArgs Argument type for the NodeGuardingReceived event: a valid node-guarding response was received from ProducerNodeId (FR-CO-009, CiA 301 §7.2.8.3.3).
NodeGuardingTimeoutEventArgs Argument type for the NodeGuardingTimeout event: the configured life-time (guardTime × lifeTimeFactor) elapsed without a fresh response from ProducerNodeId (FR-CO-009).
ObjectDictionary Thread-safe in-memory Object Dictionary keyed by (index, subindex) per CiA 301 §7.4.6 (FR-CO-001). Provides typed read/write accessors that enforce the declared OdDataType; typed reads against an entry of the wrong data type throw InvalidOperationException.
OdEntry A single subindex entry in the local Object Dictionary (FR-CO-001): value + declared data type + access flags. Stored inside ObjectDictionary; not intended to be constructed directly by callers — use the fluent Add* methods on the dictionary.
RpdoReceivedEventArgs Argument type for the RpdoReceived event: an RPDO whose mapping the local node knows about was received, unpacked and applied to the local Object Dictionary.
SyncReceivedEventArgs Argument type for the SyncReceived event: a raw incoming SYNC frame.
Interfaces
ICanOpenNode A single CANopen node running on top of the CanKit.Pro L2 demux (arc42 §5.3, ADR-5; FR-CO-012). Combines an NMT slave state machine, a local Object Dictionary, an SDO server (for the local OD) and an SDO client (for remote nodes on the same bus), plus the SYNC, EMCY, heartbeat producer/consumer and PDO plumbing needed by CiA 301 §7.
Enums
OdAccess Read/write access flag for an OdEntry. SDO write attempts against a read-only entry produce SDO abort 0x06010002 ("attempt to write a read-only object").
OdDataType Data types supported by the MVP Object Dictionary (subset of CiA 301 Table 44). Each type implies a fixed on-the-wire size (little-endian) used by SDO expedited encoding and PDO mapping (FR-CO-001 / FR-CO-005).