You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过LLRP接收Impinj阅读器温度消息及相关技术实现问询

解答

问题1:温度数据的获取方式

Impinj阅读器的温度属于厂商自定义配置参数,不会主动推送,必须通过主动请求获取,也就是需要轮询:

  • 你需要定期发送请求消息触发阅读器返回当前温度,默认情况下阅读器不会主动上报温度变化(除非额外配置温度告警规则,但基础LLRP框架不包含此默认逻辑)。
  • 不需要单独配置"报告规则",直接通过对应的请求消息即可获取温度数据。

问题2:适配LLRP的正确消息类型

要获取温度数据,应使用CGET_READER_CONFIG消息,结合枚举中的ImpinjRequestedDataType_Impinj_Reader_Temperature参数:

  1. 构造CGET_READER_CONFIG实例,添加CRequestedDataParameter参数,并将其类型设置为ImpinjRequestedDataType_Impinj_Reader_Temperature(数值为2004,Impinj扩展的自定义类型)。
  2. 发送该消息后,阅读器会返回CREADER_CONFIG响应,其中包含CImpinjReaderTemperature实例,从中即可提取温度值。

为什么不用CUSTOM_MESSAGE?因为Impinj已将温度参数封装为LLRP配置请求的扩展项,属于阅读器配置范畴,标准的CGET_READER_CONFIG即可满足需求,CUSTOM_MESSAGE多用于更复杂的厂商私有命令,此处无需使用。

核心代码示例

// 构造GET_READER_CONFIG请求
CGET_READER_CONFIG* pGetConfig = new CGET_READER_CONFIG();

// 添加请求数据类型,指定获取温度
CRequestedDataParameter* pReqData = new CRequestedDataParameter();
pReqData->setRequestedDataType((ERequestedDataType)ImpinjRequestedDataType_Impinj_Reader_Temperature);
pGetConfig->addRequestedDataParameter(pReqData);

// 发送消息(假设pLLRPConnection是已建立的连接实例)
pLLRPConnection->sendMessage(pGetConfig);

// 处理响应回调
void onReaderConfigResponse(CREADER_CONFIG* pResponse) {
    // 遍历响应参数,找到温度数据对象
    for (size_t i = 0; i < pResponse->getNumParameters(); i++) {
        CParameter* pParam = pResponse->getParameterAt(i);
        if (pParam->getTypeDescriptor() == &CImpinjReaderTemperature::s_typeDescriptor) {
            CImpinjReaderTemperature* pTemp = static_cast<CImpinjReaderTemperature*>(pParam);
            // 提取温度值(具体方法需参考类的完整实现,比如getTemperature())
            float temperature = pTemp->getTemperature();
            // 后续温度数据处理逻辑
            break;
        }
    }
}

内容的提问来源于stack exchange,提问作者adc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:10:39