示例
示例目录:卡片式索引,按主题与难度浏览可运行示例。
用途
本页是示例目录:每个示例一张卡片,点标题进入各自的文档页(每页含逐段源码讲解、构建运行、输出与退出码)。
示例钉住的契约见各页「常见误区」;场景规格见 examples-scenarios(TC019)。示例通过 ≠ TC-* 验收:验收另需供应商 SDK 实机与真实渲染。
示例目录
端到端最小闭环:headless_run
建组、装载工具、跑一次,并显式停两端——最小端到端闭环。
入门编排采集
双工具串联:gray_mean_demo(OpenCV)
image_load 收图 → Link 传句柄 → gray_mean 求均值;客户直链 opencv_world 的写法示范。
入门OpenCV编排Link
跨层配额总账:quota_ledger_demo
打印跨层配额各层读数,4 轮启停验证字节平台与回基线。
进阶配额诊断
.avtg 往返:serialize_roundtrip
SaveAvtg → LoadAvtg 往返,校验流名、工具数与顺序。
入门组包序列化
学习路线
先读这三行——宿主集成最容易做错的一步,是以为「工具跑完」会顺手把相机停掉。真实接线只有一次转交:
void WireToolWorkHook(vyntek::toolgroup::RunSession & session, vyntek::imaging::AcquisitionSession & camera) {
session.SetToolWorkDoneHook([&camera](bool tool_work_done) { camera.SetToolWorkDone(tool_work_done); });
}钩子只报告工具是否在途;停流仍由宿主显式执行。三个示例都围绕这条边界展开。
建议按卡片顺序读:先跑通一次(对象所有权与两端停流),再看住内存(字节/引用/槽位三单位),最后存取配方(往返与顺序契约)。
概念速查
RunSessionvsAcquisitionSession—— 前者是编排的一次 Run 边界;后者是采集设备会话。互不驱动(M3-07)Latest()vsPeekIngressFront()——Latest()是最近一次投递的所有权预览槽(替换即关旧);队首是PeekIngressFront()GetOutputvs KeepLatest —— 前者是标量投影(图像输出为空串);后者是output_inspector的观察保留- 解析 vs 算法 ——
.avtgLoad/Save 已实现;passthrough的Run仍是基类桩 - bytes vs refs vs slots —— 只有 bytes 可跨层去重汇总;refs 是计数;slots 只对本队列容量
构建与运行
VYNTEK_BUILD_EXAMPLES=ON 才会构建示例;ninja-debug-all 预设已同时打开 tests 与 examples。二进制统一落在 build/ninja-debug-all/bin/。
Linux(本机 VPS,AGENTS.md「本机 VPS」小节)
cmake --preset ninja-debug-all
cmake --build --preset ninja-debug-allWindows(PowerShell,AGENTS.md「构建」小节,仓库在 D:\Works\Vyntek)
cmake --preset ninja-debug-all
cmake --build --preset ninja-debug-all每个示例的运行命令、实跑输出与退出码在各自页面的「构建与运行 / 输出 / 退出码」章节。只想跑测试时用 ninja-debug-tests(不含示例)。