v2.0.0 — TC18 wire format core
v2.0.0 — TC18 wire format core (Phase 13 milestone 44)
First milestone of the full OPEN Alliance TC18 Remote Control Protocol replacement (see ROADMAP.md). Breaking: rcp/wire.hpp's wire format is entirely replaced.
What changed
rcp/wire.hppis rebuilt from scratch as an IEEE 1722 AVTPDU/ACF codec:- NTSCF and TSCF AVTPDU headers (encode/decode, subtype validation)
- ACF_ABB (
0x0E, no timestamp) and ACF_GBB (0x0D, 64-bitmessage_timestamp) message framing - The shared
byte_message_infofields:acf_msg_type,acf_msg_length,pad,mtv,byte_bus_id,evt(ack + 3-bit sub-opcode),hs,cs,transaction_num,op,rsp,err,ms, and the dual-purposeread_size/segment_numfield StreamId(MAC + locally-assigned suffix) andbyte_bus_idaddressing, withmake_response()structurally enforcing the "echo byte_bus_id/transaction_num back unchanged" rule- The mandatory standard request kind and the four response semantic types (acknowledge / write / read / error)
avtp_timestamp/message_timestampwith an explicit fallback rule (effective_timestamp) returningstd::nulloptrather than defaulting to zero- No dependency on
rcp.hpp's Zone/Command/Controller/Registry model; no transport assumption (Ethernet, IEEE1722-over-UDP/IP, or CAN all supported later)
- The old 16-byte frame codec is preserved byte-for-byte as
rcp/legacy_wire.hppsorcp/udp.hppkeeps building/working until its own v2.13.0 rebuild. - New
REQ-WIRE-001..014requirements (.fusa-reqs.json), tested intests/test_wire.cpp; oldREQ-UDP-*tests moved unchanged totests/test_legacy_wire.cpp.
Scope note
Per ROADMAP.md, this is a pure wire-codec milestone: no RC Server lifecycle, register-map, discovery, or endpoint behavior is included (those are v2.1.0+), and full bit-for-bit conformance against other TC18 implementations isn't claimed until v2.6.0.
Verification
42/42 ctest suites pass (clang/gcc, Debug/Release); all 20 CI checks green (full build matrix across Linux/macOS/Windows × clang/gcc/msvc, clang-tidy, coverage, relay conform, and the full cpp-FuSa safety/security/traceability lifecycle including 100% requirement coverage).
Full diff: v1.2.0...v2.0.0