v0.1.0
Initial public release of the genicam-rs workspace.
Added
- viva-genicam -- High-level facade crate with
Camera<T>, discovery, streaming, events, and action commands - viva-gige -- GigE Vision transport layer: GVCP discovery, GenCP register I/O, GVSP streaming with resend and reassembly
- viva-genapi -- In-memory GenApi node map with typed feature access (Integer, Float, Enum, Boolean, Command, SwissKnife, Converter, String)
- viva-genapi-xml -- GenICam XML parsing into an intermediate representation with async XML fetch
- viva-gencp -- Transport-agnostic GenCP protocol encode/decode
- viva-u3v -- USB3 Vision transport: bootstrap registers, GenCP-over-USB control, and bulk streaming
- viva-pfnc -- Pixel Format Naming Convention (PFNC) tables and helpers
- viva-sfnc -- Standard Feature Naming Convention (SFNC) string constants
- viva-zenoh-api -- Shared Zenoh API payload types (no Zenoh dependency)
- viva-service -- Zenoh bridge exposing GenICam cameras as network services
Protocol Features
- GVCP discovery (broadcast and unicast)
- GenCP register read/write with retry and backoff
- GVSP streaming with frame reassembly
- Packet resend with bitmap tracking and exponential backoff
- Automatic packet size negotiation from MTU
- Multicast stream support (IGMP join/leave)
- GVCP event channel with timestamp mapping
- Action commands with scheduled execution
- Chunk data parsing (timestamp, exposure time, gain, line status)
- Extended ID support (64-bit block IDs, 32-bit packet IDs per GigE Vision 2.0+)
Testing
viva-fake-gige-- In-process fake GigE Vision camera for self-contained integration testing (no external dependencies required)viva-fake-u3v-- In-process fake USB3 Vision camera for testing