Tutorials
This section walks you through typical workflows step by step.
The focus is a GigE Vision camera accessed over Ethernet, using:
- The
gencamctlCLI for quick experiments and ops work. - The
genicamcrate for Rust examples you can copy into your own code.
If you haven’t done so yet, first read:
They explain how to build the workspace and verify that your toolchain works.
Recommended path
If you are new to the project, the recommended reading order is:
-
Discovery
Find cameras on your network, verify that discovery works, and understand basic NIC and firewall requirements. -
Registers & features
Read and write GenApi features (e.g.ExposureTime), understand selectors such asGainSelector, and learn when you might need raw registers. -
GenApi XML
Fetch the GenICam XML from a device, inspect it, and see how it maps to the NodeMap used bygenapi-core. -
Streaming
Start a GVSP stream, receive frames, look at stats, and learn which knobs matter for throughput and robustness.
You can stop after Discovery and Streaming if you only need to verify that your camera works. The other tutorials are useful when you want to build a full application or debug deeper GenApi issues.
What you need before starting
Before running any tutorial, make sure you have:
-
A working Rust toolchain (see
rust-toolchain.tomlfor the pinned version). -
The workspace builds successfully:
cargo build --workspace • At least one GigE Vision camera reachable from your machine: • Either directly connected to a NIC. • Or via a switch on a dedicated subnet.
For networking details (MTU, jumbo frames, Windows specifics, etc.), see Networking once that chapter is filled in.
⸻
Tutorials overview • Discovery Use gencamctl and the genicam examples to find cameras and verify that basic communication is working. • Registers & features Use features by name, work with selectors, and know when to fall back to raw register access. • GenApi XML Fetch XML from the device, inspect it, and understand how genapi-xml and genapi-core use it. • Streaming Start streaming, tune packet size and delay, and interpret statistics and logging output.
Each tutorial has: • A CLI variant using gencamctl. • A Rust variant using the genicam crate and its examples.