Anti-goals and cross-cutting traceability¶
The following requirements are explicitly rejected — captured for
the record so future readers see what the toolchain deliberately does
not do, and why. Each rejected requirement :satisfies:
CANopen device-driver codeg... (FEAT_0060) to keep the umbrella’s traceability complete.
The toolchain shall not parse DCF (Device Configuration File) inputs this round. EDS describes a device’s shape; DCF describes per-node configuration (chosen RPDO/TPDO mapping, node-id, SDO-write-at-bringup values). DCF support is a follow-on spec; adding it later does not require an IR break because the EDS IR already carries the shape DCF references. |
|
The toolchain shall not offer a
|
|
The toolchain shall not parse EDS files at application
runtime. All EDS parsing happens at build time in
|
This spec shall not require any change to the runtime
contracts of CAN (SocketCAN) reference c... (FEAT_0046) “CAN reference connector”. A
thin adapter that maps any |
The toolchain shall not download, scrape, or otherwise
fetch EDS files from vendor websites or update servers. EDS
files are inputs the user drops into an |
|
Cross-cutting traceability¶
Every requirement in this chapter (excluding rejected anti-goals)
carries a :satisfies: link to its capability-cluster feat; every
cluster feat :satisfies: CANopen device-driver codeg... (FEAT_0060). Architectural
specifications refining these requirements are emitted in
CANopen device-driver codegen — architecture (arc42). Verification artefacts are
emitted in CANopen device-driver codegen — verification.
ID |
Title |
Status |
Satisfies |
|---|---|---|---|
CANopen device-driver codegen toolchain |
open |
||
Shared OD core |
open |
||
EDS parser |
open |
||
Codegen IR and backend trait |
open |
||
taktora-connector-can codegen backend |
open |
||
Runtime trait surface |
open |
||
Build helper (build.rs glue) |
open |
||
CLI inspection (cargo subcommand) |
open |
||
EDS ↔ SDO-dump verification |
open |
ID |
Title |
Status |
Satisfies |
|---|---|---|---|
No transport-specific types in fieldbus-od-core |
open |
||
no_std + alloc, no mandatory serde |
open |
||
OD type surface |
open |
||
ethercat-esi re-exports lifted types |
open |
||
canopen-eds uses fieldbus-od-core types |
open |
||
Pure parse function with no I/O |
open |
||
no_std + alloc, no upstream coupling |
open |
||
serde-derive INI backend |
open |
||
Parse errors carry line and column |
open |
||
Unknown sections captured as RawSection |
open |
||
Liberal parsing — warn and continue on quirks |
open |
||
IR carries identity, OD, PDO comm + maps |
open |
||
CodegenBackend trait shape |
open |
||
Naming policy is owned by codegen, not the backend |
open |
||
Revision collision handled deterministically |
open |
||
Common PDO entry types deduplicated |
open |
||
Emission target is proc_macro2 TokenStream |
open |
||
One EDS file equals one device |
open |
||
Backend crate is the sole canopen-eds-rt dependency |
open |
||
One device struct per EDS file |
open |
||
Identity const emitted per device |
open |
||
PDO declarations emitted as sum types |
open |
||
Dummy entries skipped in PDO payload structs |
open |
||
Generated module root exposes a registry |
open |
||
Bring-up SDO writes emitted from EDS |
open |
||
Object dictionary emission is a default-off cargo feature |
open |
||
Generated code compiles under no_std + alloc |
open |
||
CanOpenDevice trait shape |
open |
||
CanOpenConfigurable trait shape for bring-up |
open |
||
Traits live in canopen-eds-rt, not taktora-connector-can |
open |
||
Frame payloads use heapless::Vec<u8, 8> |
open |
||
Frame-per-PDO dispatch shape |
open |
||
CanOpenError variant surface |
open |
||
RPDO rejected outside Operational state |
open |
||
Builder API shape |
open |
||
Output written to OUT_DIR |
open |
||
Cargo rerun-if directives emitted per EDS input |
open |
||
Generated output passes through prettyplease |
open |
||
Parser warnings surface as cargo warnings |
open |
||
cargo eds expand emits one device's generated code |
open |
||
cargo eds list enumerates devices in a glob |
open |
||
CLI shares the parser and codegen crates |
open |
||
Verifier ingests EDS plus JSON SDO-dump |
open |
||
Diagnostic output names the differing field |
open |
||
Verifier reuses the parser |
open |
||
Verifier exits non-zero on mismatch |
open |
||
SDO-dump JSON schema versioned |
open |
||
NO DCF support this round |
rejected |
||
NO CAN-FD payload support in PdoOut |
rejected |
||
NO proc-macro front-end |
rejected |
||
NO unification of EtherCAT and CANopen runtime traits |
rejected |
||
NO runtime EDS parsing |
rejected |
||
NO modification of taktora-connector-can runtime |
rejected |
||
NO automatic vendor library scraping |
rejected |
||
NO live-bus verifier this round |
rejected |