viva-genapi
GenApi node map evaluation engine with typed feature access backed by register I/O.
Turns a parsed XmlModel into a live NodeMap that can read and write camera features through any transport implementing the RegisterIo trait.
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
- NodeMap -- in-memory node store built from
XmlModel, with dependency tracking and cache invalidation - Typed accessors --
get_integer(),get_float(),get_enum(),get_bool(),exec_command(), etc. - SwissKnife -- full expression evaluator (arithmetic, comparisons, ternary, logical, bitwise, math functions)
- pValue delegation -- Integer, Float, Enum, Boolean, and Command nodes delegate to backing registers
- Converter / IntConverter -- linear and polynomial value conversions
- Selector support -- address switching for features like
GainSelector - NullIo -- offline XML browsing without a camera
- WASM compatible -- compiles for
wasm32-unknown-unknown
Usage
[]
= "0.1"
use ;
use parse;
let xml = read_to_string?;
let model = parse?;
let nodemap = from;
// Browse features offline
let io = NullIo;
for name in nodemap.node_names
Documentation
Part of the genicam-rs workspace.