Skip to content

Releases: Pixout-Lighting/sig-net

v0.7.0 — Protocol spec v0.19

04 May 17:13

Choose a tag to compare

Breaking Changes 💥

  • TID_PATCH → TID_UNIVERSE — renamed everywhere (constants, TLV encoder, parser). Old name kept as #[deprecated] alias.
  • Ephemeral TUID → Dynamic TUIDgenerate_ephemeral_tuid / signet_generate_ephemeral_tuid renamed to generate_dynamic_tuid / signet_generate_dynamic_tuid.
  • Beacon/Lost URI /0 suffixnode_beacon/{TUID}/0 and node_lost/{TUID}/0 per v0.19 spec. Packet builders and URI builders updated.
  • PATCH_ANNOUNCE_INTERVAL_SECS → UNIVERSE_ANNOUNCE_INTERVAL_SECS — renamed without deprecated alias (0.x SemVer: backward compatibility not guaranteed).

Added 🚀

  • SECURITY_MODE_OPEN_MODE constant (0x01) for unauthenticated operation.
  • GuestKeys struct and export_guest_keys(k0) — exports (Km_global, Ks, Kc) for Guest Manager key provisioning.
  • Tests: export_guest_keys_roundtrip (56 total).

Changed 🧰

  • to_hex_display() — now uses uppercase hex characters (ABCDEF), matching §6.6 of the spec.

Migration Guide 🚢

  1. Replace TID_PATCHTID_UNIVERSE (deprecated alias available).
  2. Replace generate_ephemeral_tuid / signet_generate_ephemeral_tuidgenerate_dynamic_tuid / signet_generate_dynamic_tuid.
  3. Beacon/lost packet URIs now include trailing /0.
  4. PATCH_ANNOUNCE_INTERVAL_SECSUNIVERSE_ANNOUNCE_INTERVAL_SECS.
  5. to_hex_display() now returns uppercase hex (previously lowercase).

v0.6.1 — Updated docs

29 Apr 18:53

Choose a tag to compare

New features 🚀

  • updated docs;

v0.6.0 — Protocol spec v0.18

27 Apr 08:57

Choose a tag to compare

Breaking changes 💥

  • SoemCode type alias — mfg_code: u16 + product_variant_id: u16 merged into a single SoemCode = u32. Use soem_code(mfg,
    variant) to construct, soem_code_mfg(sc) / soem_code_variant(sc) to unpack.
  • build_dmx_packet — new scope: &str parameter (was hardcoded to "local").
  • build_announce_packet — new endpoint_count: u16 parameter.
  • build_startup_announce_payload — new endpoint_count: u16 parameter; now encodes TID_RT_ENDPOINT_COUNT in the canonical §10.2.5 TLV order.
  • machine_version_id in TID_RT_FIRMWARE_VERSION — type changed from u16 to u32 (4 bytes on the wire).
  • TUID in URIs — always uppercase (534C00000001). TUID::to_hex() deprecated in favour of to_hex_upper() (URIs) / to_hex_display() (UI).
  • TID_RT_UNPROVISION — renamed to TID_RT_OFFBOARD; old name kept as a #[deprecated] alias.

New features 🚀

New TIDs:

  • TID_PREVIEW (0x0103) — DMX data for preview stream
  • TID_TIMECODE (0x0202) — 5 bytes: hours / minutes / seconds / frames / type
  • TID_PATCH (0x0203) — 7 bytes: universe / command / multicast IP
  • TID_RT_MULT_OVERRIDE (0x0606) — multicast override state
  • TID_RT_OTW_CAPABILITY (0x060D) — listener port + protocols bitfield

New packet builders (send):

  • build_beacon_packet — Security-Mode 0xFF, HMAC = zeros, scope always "local", no key parameter
  • build_node_lost_packet — signed with citizen key (Kc)
  • build_timecode_packet
  • build_preview_packet
  • build_manager_command_packet — uses Km_local (per-node key)

New URI builders (coap):

  • build_node_beacon_uri_string → /node_beacon/{TUID}
  • build_node_lost_uri_string → /node_lost/{TUID}
  • build_manager_uri_string → /manager/{TUID}/{endpoint}
  • build_timecode_uri_string → /timecode/{stream}
  • build_preview_uri_string → /preview/{universe}

New TLV encoders / parsers:

  • tlv::encode_tid_timecode, encode_tid_patch, encode_tid_preview, encode_tid_rt_mult_override,
    encode_tid_rt_otw_capability, encode_tid_rt_reboot
  • parse::parse_tid_timecode, parse_tid_patch

New protocol timing constants (§16 Appendix B):

POLL_BACKOFF_MAX_MS, POLL_TIME_SECS, NODE_LOST_TIMEOUT_POLLS, UNIVERSE_LOST_TIMEOUT_SECS, OFFBOARD_LOCKOUT_SECS, SYNC_LOST_TIMEOUT_MS, IP_ROLLBACK_TIMER_SECS, TIMECODE_LOST_TIMEOUT_SECS, MANAGER_POLL_JITTER_MS, BEACON_MIN_INTERVAL_SECS, BEACON_TIMEOUT_SECS, NODE_PROCESSING_MAX_MS, ENDPOINT_SPACING_DELAY_MS, PATCH_ANNOUNCE_INTERVAL_SECS, STATUS_PUBLISH_RATE_SECS

Other 🧢

  • SigNetError::SessionIdOverflow variant added
  • MULTICAST_PREVIEW_IP = "239.254.255.249" added to constants
  • CI via GitHub Actions (test + clippy + FFI build on every push and PR)

Tests 🤖

55 integration tests (up from 24), covering all new TIDs, packet builders, URI uppercase enforcement, firmware version, wire format, and HMAC round-trips for all new packet types.