4 releases
Uses new Rust 2024
| 0.2.3 | Apr 12, 2026 |
|---|---|
| 0.2.2 | Apr 12, 2026 |
| 0.2.0 | Apr 11, 2026 |
| 0.1.0 | Apr 11, 2026 |
#15 in #gen-i-cam
Used in viva-service
37KB
685 lines
viva-zenoh-api
Shared wire protocol types for GenICam camera services over Zenoh.
This crate defines the data contract between a camera service (viva-service) and its clients (e.g. genicam-studio). It has no Zenoh dependency -- it is a pure data contract built on serde.
Disclaimer -- Independent open-source Rust implementation of GenICam-related standards. Not affiliated with, endorsed by, or the reference implementation of EMVA GenICam. GenICam is a trademark of EMVA.
Features
- Discovery --
DeviceAnnounce,DeviceStatus - Node values --
NodeValueUpdate,NodeSetRequest,NodeOpResponse, bulk read types - Acquisition --
AcquisitionCommand,AcquisitionStatus - Image framing --
PixelFormat,ImageMeta,FrameHeader(16-byte binary header) - Key expressions -- helper functions for building Zenoh topic paths
Usage
[dependencies]
viva-zenoh-api = "0.1"
use viva_zenoh_api::{DeviceAnnounce, NodeValueUpdate, keys};
let key = keys::node_value("camera-01", "ExposureTime");
assert_eq!(key, "viva-genicam/devices/camera-01/nodes/ExposureTime/value");
Documentation
Part of the viva-genicam workspace.
Dependencies
~0.5–1.3MB
~28K SLoC