Skip to content

v0.2.0

Choose a tag to compare

@VitalyVorobyev VitalyVorobyev released this 11 Apr 14:09
· 37 commits to main since this release
b440ecf

Added

  • USB3 Vision streaming -- U3vFrameStream async frame iterator wrapping blocking bulk reads via spawn_blocking, U3vStreamBuilder for configuring U3V streams through the same pattern as GigE
  • USB3 Vision service -- viva-service-u3v now supports real USB cameras (previously --fake only); U3vDeviceHandle is generic over T: UsbTransfer
  • USB3 Vision CLI -- viva-camctl stream-usb command for frame streaming from USB3 Vision cameras
  • FORCEIP command -- GVCP opcode 0x0004 for temporary IP assignment via broadcast (targets device by MAC address)
  • Persistent IP configuration -- read/write bootstrap registers for persistent IP, subnet, and gateway; enable_persistent_ip() method on GigeDevice
  • IP configuration CLI -- viva-camctl set-ip command with --force (FORCEIP) and persistent register modes
  • Reconnection with backoff -- DeviceHandle::refresh_connection() retries up to 5 times with exponential backoff (500ms base, 16s max)
  • GenApi node metadata -- NodeMeta struct with Visibility, Description, ToolTip, DisplayName, Representation fields; parsed from XML and exposed on all node types
  • Visibility filtering -- Visibility enum (Beginner/Expert/Guru/Invisible), Representation enum (Linear/Logarithmic/HexNumber/etc.), NodeMap::nodes_at_visibility() for UI filtering
  • U3vDevice::transport() -- public accessor for the shared USB transport Arc<T>
  • Bayer 16-bit pixel formats -- PixelFormat enum now includes BayerGR16, BayerRG16, BayerGB16, BayerBG16 with correct PFNC codes; PixelFormat::from_name() for string-to-enum conversion
  • PixelFormat::from_name() -- parse PFNC name strings (e.g. "RGB8", "Mono16", "BayerRG16") to PixelFormat

Changed

  • MSRV raised from 1.85 to 1.88 (resolves time crate security advisory RUSTSEC-2026-0009)
  • Project tagline updated from "Ethernet-first" to "GigE Vision and USB3 Vision" reflecting dual-transport support
  • viva-service-u3v Cargo.toml now enables u3v-usb feature for real USB support
  • Added cargo deny check advisories to CI pipeline with deny.toml allow-list for zenoh transitive advisories

Fixed

  • GitHub Pages deployment error ("Tag v0.1.0 not allowed to deploy") by removing wildcard tag trigger from publish-docs.yml
  • SVG logo dot alignment and genicam text spacing for correct browser rendering
  • time crate DoS vulnerability (RUSTSEC-2026-0009) by upgrading to 0.3.47