Skip to main content

Error

Type Alias Error 

Source
pub type Error = KnxError;
Expand description

Canonical error surface for architecture-level composition.

Aliased Type§

pub enum Error {
Show 50 variants InvalidGroupAddress(String), InvalidIndividualAddress(String), AddressOutOfRange { address: String, valid_range: String, }, InvalidDpt(String), DptEncoding { dpt: String, reason: String, }, DptDecoding { dpt: String, reason: String, }, DptValueOutOfRange { value: String, valid_range: String, }, FrameTooShort { expected: usize, actual: usize, }, InvalidHeader(String), InvalidProtocolVersion { expected: u8, actual: u8, }, UnknownServiceType(u16), FrameLengthMismatch { header_length: usize, actual_length: usize, }, InvalidHpai(String), UnknownMessageCode(u8), InvalidCemi(String), UnknownApci(u16), ConnectionFailed { address: SocketAddr, reason: String, }, ConnectionTimeout { timeout_ms: u64, }, ConnectionClosed(String), NoMoreConnections { max: usize, }, InvalidChannel(u8), SequenceError { expected: u8, actual: u8, }, DuplicateFrame { sequence: u8, expected: u8, }, OutOfOrderFrame { sequence: u8, expected: u8, distance: u8, }, FatalDesync { sequence: u8, expected: u8, distance: u8, }, SendErrorThresholdExceeded { consecutive_errors: u32, threshold: u32, }, TunnelError(String), TunnelTimeout { channel_id: u8, }, TunnelAckError { status: u8, }, AckTimeout { channel_id: u8, sequence: u8, attempts: u8, }, ConfirmationNack { channel_id: u8, }, ConfirmationTimeout { channel_id: u8, sequence: u8, }, InvalidStateTransition { from: String, to: String, }, ChannelMismatch { expected: u8, actual: u8, }, FlowControlDrop { reason: String, }, FlowControlQueued { channel_id: u8, }, CircuitBreakerOpen { consecutive_failures: u32, threshold: u32, }, PaceFilterDelayExceeded { delay_ms: u64, max_delay_ms: u64, }, GroupObjectNotFound(String), GroupObjectWriteNotAllowed(String), GroupObjectReadNotAllowed(String), Server(String), ServerNotRunning, ServerAlreadyRunning, BindError { address: SocketAddr, reason: String, }, Config(String), InvalidConfigValue { field: String, reason: String, }, Io(Error), Core(Error), Internal(String),
}

Variants§

§

InvalidGroupAddress(String)

Invalid group address format.

§

InvalidIndividualAddress(String)

Invalid individual address format.

§

AddressOutOfRange

Address out of range.

Fields

§address: String
§valid_range: String
§

InvalidDpt(String)

Invalid datapoint type.

§

DptEncoding

DPT encoding error.

Fields

§reason: String
§

DptDecoding

DPT decoding error.

Fields

§reason: String
§

DptValueOutOfRange

DPT value out of range.

Fields

§value: String
§valid_range: String
§

FrameTooShort

Frame too short.

Fields

§expected: usize
§actual: usize
§

InvalidHeader(String)

Invalid frame header.

§

InvalidProtocolVersion

Invalid protocol version.

Fields

§expected: u8
§actual: u8
§

UnknownServiceType(u16)

Unknown service type.

§

FrameLengthMismatch

Frame length mismatch.

Fields

§header_length: usize
§actual_length: usize
§

InvalidHpai(String)

Invalid HPAI (Host Protocol Address Information).

§

UnknownMessageCode(u8)

Unknown cEMI message code.

§

InvalidCemi(String)

Invalid cEMI frame.

§

UnknownApci(u16)

Unknown APCI.

§

ConnectionFailed

Connection failed.

Fields

§address: SocketAddr
§reason: String
§

ConnectionTimeout

Connection timeout.

Fields

§timeout_ms: u64
§

ConnectionClosed(String)

Connection closed.

§

NoMoreConnections

No more connections available.

Fields

§max: usize
§

InvalidChannel(u8)

Invalid channel ID.

§

SequenceError

Sequence error.

Fields

§expected: u8
§actual: u8
§

DuplicateFrame

Duplicate frame detected.

Fields

§sequence: u8
§expected: u8
§

OutOfOrderFrame

Out-of-order frame detected.

Fields

§sequence: u8
§expected: u8
§distance: u8
§

FatalDesync

Fatal sequence desync (knxd: seqno >= rno + 5).

Fields

§sequence: u8
§expected: u8
§distance: u8
§

SendErrorThresholdExceeded

Send error threshold exceeded.

Fields

§consecutive_errors: u32
§threshold: u32
§

TunnelError(String)

Tunnel connection error.

§

TunnelTimeout

Tunnel request timeout.

Fields

§channel_id: u8
§

TunnelAckError

Tunnel ACK error.

Fields

§status: u8
§

AckTimeout

Tunnel ACK timeout after retries.

Fields

§channel_id: u8
§sequence: u8
§attempts: u8
§

ConfirmationNack

L_Data.con confirmation failure (Ctrl1 bit 0 = 1).

Fields

§channel_id: u8
§

ConfirmationTimeout

L_Data.con confirmation timeout.

Fields

§channel_id: u8
§sequence: u8
§

InvalidStateTransition

Tunnel state transition error.

Fields

§from: String
§

ChannelMismatch

Channel ID mismatch.

Fields

§expected: u8
§actual: u8
§

FlowControlDrop

Frame dropped by flow control filter.

Fields

§reason: String
§

FlowControlQueued

Frame queued by flow control (not an error, informational).

Fields

§channel_id: u8
§

CircuitBreakerOpen

Circuit breaker is open, dropping frames.

Fields

§consecutive_failures: u32
§threshold: u32
§

PaceFilterDelayExceeded

PaceFilter delay exceeded maximum allowed.

Fields

§delay_ms: u64
§max_delay_ms: u64
§

GroupObjectNotFound(String)

Group object not found.

§

GroupObjectWriteNotAllowed(String)

Group object write not allowed.

§

GroupObjectReadNotAllowed(String)

Group object read not allowed.

§

Server(String)

Server error.

§

ServerNotRunning

Server not running.

§

ServerAlreadyRunning

Server already running.

§

BindError

Bind error.

Fields

§address: SocketAddr
§reason: String
§

Config(String)

Configuration error.

§

InvalidConfigValue

Invalid configuration value.

Fields

§field: String
§reason: String
§

Io(Error)

I/O error.

§

Core(Error)

Core error.

§

Internal(String)

Internal error.