LLRPCSHARP / CLI USER’S GUIDE
Virtual Device CLI User’s Guide
LlrpVirtualDevice.Cli 是设备侧的独立命令行工具。它在一个进程中托管一台确定性虚拟 LLRP 设备,提供标准 TCP 端点,让 Reader SDK、WPF 客户端或第三方 LLRP 客户端在没有真实硬件时进行联调。
1. 定位与启动
从源码启动。无参数进入交互式设备 Shell,但不会立即创建设备:
dotnet run --project src/LlrpVirtualDevice.Cli/LlrpVirtualDevice.Cli.csproj命令行帮助使用的可执行文件名是 llrp-virtual-device;源码运行时使用上面的项目路径。
2. 运行模式
llrp-virtual-device进入 Shell,不创建设备。llrp-virtual-device run [options]创建并以前台服务模式运行,Ctrl+C 停止。llrp-virtual-device live [options]自动创建并启动设备,然后进入带 RX/TX 事件输出的 Shell。llrp-virtual-device shell显式进入空的交互式 Shell。llrp-virtual-device validate --config PATH校验一个本地 JSON 设备配置。llrp-virtual-device presets列出内置设备预设。llrp-virtual-device caps列出能力 Profile。# 安静的前台服务
dotnet run --project src/LlrpVirtualDevice.Cli/LlrpVirtualDevice.Cli.csproj -- run --port 5084
# 自动启动并观察客户端产生的 RX/TX 报文
dotnet run --project src/LlrpVirtualDevice.Cli/LlrpVirtualDevice.Cli.csproj -- live --llrp 1.0.1live 不会自己伪造客户端请求;必须由 LlrpCli、Reader SDK 或其他 LLRP 客户端连接并产生流量。
3. 交互式生命周期 Shell
进入 Shell 后,生命周期按“创建 → 启动 → 观察 → 停止/销毁”管理:
vdev (empty)> server create --llrp 1.0.1
vdev (created)> server start
vdev (running)> server status
vdev (running)> logs on
vdev (running)> server stop
vdev (stopped)> server destroy
vdev (empty)> exitserver create [options]创建 Host,但默认不绑定 TCP。server run [options]创建并启动一台设备。server start|stop|restart控制同一个 Host 的监听器和客户端会话。server status显示状态、端点、协议、Profile 和客户端数量。server destroy销毁当前设备,之后才能创建下一台。logs on|off|status控制生命周期、客户端和解码后的 RX/TX 事件输出。默认监听地址是 127.0.0.1、端口是 5084、连接数为 1;通过 --listen、--port 和 --max-client-connections 覆盖。
4. 预设与 JSON 配置
当前内置预设以协议和设备形状为中心,而不是虚构的业务场景:
llrp.standard101.basicLLRP 1.0.1 标准设备与确定性标签报告。
llrp.standard101.strictLLRP 1.0.1 标准设备,启用严格盘点状态校验。
llrp.standard11.basicLLRP 1.1 设备,显式执行版本协商。
llrp.standard20.basic当前 LLRP 2.0 翻译设备基线。
impinj.r420.basicImpinj R420 形状的 LLRP 1.0.1 扩展设备。
配置文件描述能力 Profile、数据源、报告节奏和确定性 RF 可观察行为;监听地址、端口和运行中的 ROSpec/AccessSpec 不写入配置:
{
"schemaVersion": 1,
"presetId": "llrp.standard101.basic",
"capabilityProfileId": "llrp1.0.1_standard",
"protocolVersion": "1.0.1",
"inventoryDataSource": "default",
"reportIntervalMilliseconds": 100,
"repeat": true,
"rfScenario": "static",
"randomSeed": 2026,
"singleTagProbability": 0.85,
"maxTagsPerRound": 2,
"tags": [
{
"epc": "E28011910000000000000001",
"antennaId": 1,
"peakRssi": -55,
"tid": "E280110520007001",
"userMemory": [4660, 22136]
}
]
}# 校验配置
dotnet run --project src/LlrpVirtualDevice.Cli/LlrpVirtualDevice.Cli.csproj -- validate --config virtual-device.json
# 运行配置
dotnet run --project src/LlrpVirtualDevice.Cli/LlrpVirtualDevice.Cli.csproj -- run --config virtual-device.json标准 Profile 暴露 4 根逻辑天线,默认数据源包含确定性标签。static、moving-tags 和 noisy 只控制可观察标签行为,不是物理 RF 波形模拟。
5. 第三方客户端联调
启动虚拟设备后,任何普通 LLRP 客户端都可以连接 127.0.0.1:5084。典型组合是:
llrp-virtual-device run 或 live 启动设备端。LlrpCli、LlrpSdk 或第三方客户端连接端点。logs on 观察连接、能力查询、ROSpec 和报告的 RX/TX 事件。Impinj R420 Profile 已用 ItemTest 2.10.0 验证 LLRP 1.0.1 连接和进入盘点启动流程。这一结论只覆盖 LLRP 通道,不代表实现 mDNS、rshell/SSH 等非 LLRP 服务。
6. 工具边界
- 支持标准设备端连接、能力/配置、ROSpec/AccessSpec 生命周期、报告和标准 Tag Access 路径。
- 不驱动真实 RFID 模块,不计算 Tx Power、灵敏度、Tari、距离和碰撞物理。
- 默认只托管一个设备实例,不提供多设备目录或跨进程恢复。
- 设备端的协议版本和厂商 Profile 仍以当前状态与互操作证据为准。