Skip to content

v0.1.0

Choose a tag to compare

@VitalyVorobyev VitalyVorobyev released this 11 Apr 08:45
· 46 commits to main since this release
47ca3ec

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