1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// SPDX-License-Identifier: GPL-3.0-only
// Copyright (C) 2026 Fabian Schmieder
//! `knx-device` — KNX device stack with ETS programming support.
//!
//! # Architecture
//!
//! ```text
//! Application code ←→ GroupObjects ←→ ApplicationLayer ←→ TransportLayer ←→ Bus
//! ↕
//! InterfaceObjects (properties, tables)
//! ↕
//! DeviceMemory (persistence)
//! ```
//!
//! # `no_std` Support
//!
//! This crate is `no_std`-compatible with `alloc`.
extern crate alloc;
/// Address table — maps TSAPs to group addresses.
/// Application layer — APDU encoding, parsing, and service dispatch.
/// Application program object — ETS-downloadable program data.
/// Association table — maps ASAPs to TSAPs.
/// Bus Access Unit — main device controller.
/// BAU state persistence — save/restore device state.
/// Device object — identity and configuration properties.
/// Group objects — communication objects with DPT-aware values.
/// Group object table — descriptors for group object configuration.
/// Interface objects — property containers for device configuration.
/// Device memory — persistence backend for embedded targets.
/// Property system — data model for KNX interface objects.
/// Table objects — ETS Load State Machine for address/association/program tables.
/// Transport layer — connection-oriented point-to-point communication.