LLRPCSharpReader CLI GitHub ↗

LLRPCSHARP / CLI USER’S GUIDE

Reader CLI User’s Guide

LlrpCli(命令名 llrp)基于 LlrpSdk,用于真实或虚拟 Reader 的现场连接、能力查看、设置部署、盘点、标准 Tag Access,以及 LLRP 十六进制帧和 Wireshark .pcapng 抓包分析。

1. 工具定位与启动

从源码启动 CLI:

dotnet run --project src/LlrpCli/LlrpCli.csproj

发布版 Reader CLI 是自包含的多平台可执行包;平台压缩包和当前版本的下载入口见 发布资源中心。CLI 不负责创建虚拟设备服务;需要设备端仿真时使用 Virtual Device CLI。

2. 交互式 Live Shell

进入 Shell 后,先连接设备,再查看状态和能力:

> connect 192.168.1.100
> status
> status --full
> caps
> caps --raw
> caps --json
connect <host> [--port 5084]建立连接并执行协议版本协商。
status [--full]查看连接和托管状态;--full 刷新 Settings、ROSpec 和 AccessSpec。
caps [--raw|--json]查询归一化能力;--raw 展开协议参数树,--json 输出脚本友好数据。
sync刷新设备观察快照,不会清除 SDK 的 DesiredState。

3. 设置与资源

Live Shell 不维护隐式草稿。写入动作需要明确的文件、默认值和确认选项:

> settings apply --defaults --yes
> settings apply settings.json --yes
> settings validate settings.json
> settings show --json
> settings edit
settings apply --defaults --yes按当前 Reader 能力生成并应用默认设置。
settings apply <file> --yes校验并应用本地 JSON;默认保留外部 ROSpec/AccessSpec。
settings apply <file> --yes --replace-all显式全量接管并删除全部标准资源。
settings validate <file>只读取和校验文件,不修改设备。
settings show [--json|--raw]读取高层配置;可选展开原始资源参数树。
settings save <file>保存当前高层设置,供后续审阅或再次应用。
接管提示:--replace-all 会删除其他应用创建的标准资源。共享设备优先使用默认的 PreserveForeign 策略。

4. 盘点与标签操作

> inventory start
> inventory start --monitor frames
> inventory start --monitor live --monitor-duration 30
> inventory status --refresh
> inventory stop

> tag read E28011910000000000000001 --bank user --word 0 --count 2
> tag write E28011910000000000000001 --bank user --word 0 --data CAFEBABE --yes
> tag lock E28011910000000000000001 --target user --privilege lock --yes
> tag kill E28011910000000000000001 --yes

inventory start 使用 SDK 托管盘点资源并消费唯一的报告流。--monitor frames 适合观察原始 LLRP 报文;--monitor-duration 只限制前台监控时间,不等同于设备端停止。

Read、Write、Lock、Kill 和 Erase 均通过 SDK 的标准 Tag Access 路径执行。Kill、Lock 和写入可能不可逆,CLI 会要求确认;生产环境应限制权限和目标标签。

5. 单次自动化命令

不进入交互 Shell 时,可以用一次性命令供 CI、Agent 或运维脚本调用:

# 在线状态和能力查询
dotnet run --project src/LlrpCli/LlrpCli.csproj -- status 192.168.1.100
dotnet run --project src/LlrpCli/LlrpCli.csproj -- caps 192.168.1.100 --output json

# 连接、部署设置、盘点 10 秒并输出 JSON
dotnet run --project src/LlrpCli/LlrpCli.csproj -- inventory 192.168.1.100 --duration 10 --yes

# 使用本地设置文件
dotnet run --project src/LlrpCli/LlrpCli.csproj -- inventory 192.168.1.100 --settings reader.json --duration 30 --yes

在线一次性命令会连接、执行任务并断开;需要长时间观察或逐步编辑时使用 Live Shell。

6. 离线协议工具

inspect、decode、validate 和 encode 不连接 Reader,直接处理十六进制帧或 pcapng:

inspect <HEX>只查看 LLRP Header:版本、消息类型、消息 ID 和长度。
decode <HEX|PCAPNG> --output summary解码单帧或抓包;summary 输出方向、消息名、ID 和长度。
validate <HEX>校验帧长度和结构完整性。
encode <MESSAGE> --llrp <VERSION>按消息名和选项构造 LLRP 十六进制帧。
# 抓包摘要
dotnet run --project src/LlrpCli/LlrpCli.csproj -- decode capture.pcapng --output summary

# 抓包完整参数树或 JSON
dotnet run --project src/LlrpCli/LlrpCli.csproj -- decode capture.pcapng --output text
dotnet run --project src/LlrpCli/LlrpCli.csproj -- decode capture.pcapng --output json

# 构造指定协议版本的消息
dotnet run --project src/LlrpCli/LlrpCli.csproj -- encode get-reader-capabilities --requested-data All --llrp 2.0

实时和离线命令均按显式版本支持 1.0.1、1.1 和 2.0;离线注册表还包含 Impinj 与 Zebra 扩展。decode 会自动识别存在的 pcapng 文件。

7. 版本与安全边界

主题当前行为提示
协议版本auto、1.0.1、1.1、2.01.1/2.0 与真实设备的覆盖需按型号验收。
资源策略默认 PreserveForeign只在确认设备独占时使用 ReplaceAll。
硬件测试无可达设备时可能跳过发布验收必须确认测试确实执行。
虚拟设备由独立 CLI 启动Reader CLI 不会自己生成设备端服务。

需要在 .NET 应用内完成同样的连接、设置和盘点流程时,返回 Reader SDK Programmer’s Guide;需要查方法签名时查看 Reader SDK API Reference。